a Skaffold command for which the profile is auto-activated.

a Skaffold command for which the profile is auto-activated.

a `key=pattern` pair. The profile is auto-activated if an Environment Variable `key` matches the pattern. If the pattern starts with `!`, activation happens if the remaining pattern is _not_ matched. The pattern matches if the Environment Variable value is exactly `pattern`, or the regex `pattern` is found in it. An empty `pattern` (e.g. `env: "key="`) always only matches if the Environment Variable is undefined or empty.

a key=pattern pair. The profile is auto-activated if an Environment Variable key matches the pattern. If the pattern starts with !, activation happens if the remaining pattern is not matched. The pattern matches if the Environment Variable value is exactly pattern, or the regex pattern is found in it. An empty pattern (e.g. env: "key=") always only matches if the Environment Variable is undefined or empty.

a Kubernetes context for which the profile is auto-activated.

a Kubernetes context for which the profile is auto-activated.

criteria by which a profile is auto-activated.

criteria by which a profile is auto-activated.

directory containing the artifact's sources.

directory containing the artifact's sources.

name of the image to be built.

*alpha* local files synced to pods instead of triggering an image build when modified.

alpha local files synced to pods instead of triggering an image build when modified.

*beta* describes an artifact built from a Dockerfile.

beta describes an artifact built from a Dockerfile.

name of the image to be built.

*beta* requires bazel CLI to be installed and the sources to contain [Bazel](https://bazel.build/) configuration files.

beta requires bazel CLI to be installed and the sources to contain Bazel configuration files.

name of the image to be built.

name of the image to be built.

*alpha* builds images using the [Jib plugins for Maven or Gradle](https://github.com/GoogleContainerTools/jib/).

alpha builds images using the Jib plugins for Maven or Gradle.

name of the image to be built.

*alpha* builds images using [kaniko](https://github.com/GoogleContainerTools/kaniko).

*alpha* builds images using a custom build script written by the user.

alpha builds images using a custom build script written by the user.

name of the image to be built.

items that need to be built, along with the context in which they should be built.

items that need to be built, along with the context in which they should be built.

additional args to pass to `bazel build`.

`bazel build` target to run.

*beta* describes an artifact built with [Bazel](https://bazel.build/).

beta describes an artifact built with Bazel.

the images you're going to be building.

a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.

a list of registries declared by the user to be insecure. These registries will be connected to via HTTP instead of HTTPS.

*beta* determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to `gitCommit: {variant: Tags}`.

beta determines how images are tagged. A few strategies are provided here, although you most likely won't need to care! If not specified, it defaults to gitCommit: {variant: Tags}.

the images you're going to be building.

*beta* describes how to do a build on the local docker daemon and optionally push to a repository.

beta describes how to do a build on the local docker daemon and optionally push to a repository.

artifacts insecureRegistries tagPolicy local

the images you're going to be building.

*beta* describes how to do a remote build on [Google Cloud Build](https://cloud.google.com/cloud-build/).

beta describes how to do a remote build on Google Cloud Build.

artifacts insecureRegistries tagPolicy googleCloudBuild

the images you're going to be building.

*beta* describes how to do an on-cluster build.

beta describes how to do an on-cluster build.

artifacts insecureRegistries tagPolicy cluster

contains all the configuration for the build steps.

contains all the configuration for the build steps.

for kaniko pod.

for kaniko pod.

how many artifacts can be built concurrently. 0 means "no-limit" Defaults to 0.

how many artifacts can be built concurrently. 0 means "no-limit" Defaults to 0.

describes how to mount the local Docker configuration into a pod.

describes how to mount the local Docker configuration into a pod.

Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.

Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.

path to the Google Cloud service account secret key file.

path to the Google Cloud service account secret key file.

name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key `kaniko-secret`.

name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key kaniko-secret.

define the resource requirements for the kaniko pod.

define the resource requirements for the kaniko pod.

amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (`20m`).

amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (20m).

HTTP_PROXY HTTPS_PROXY pullSecret pullSecretName namespace timeout dockerConfig resources concurrency

command executed to build the image.

file dependencies that skaffold should watch for both rebuilding and file syncing for this artifact.

file dependencies that skaffold should watch for both rebuilding and file syncing for this artifact.

*alpha* describes an artifact built from a custom build script written by the user. It can be used to build images with builders that aren't directly integrated with skaffold.

alpha describes an artifact built from a custom build script written by the user. It can be used to build images with builders that aren't directly integrated with skaffold.

represents a custom command that skaffold executes to obtain dependencies. The output of this command *must* be a valid JSON array.

represents a custom command that skaffold executes to obtain dependencies. The output of this command must be a valid JSON array.

should be set if the artifact is built from a Dockerfile, from which skaffold can determine dependencies.

should be set if the artifact is built from a Dockerfile, from which skaffold can determine dependencies.

specifies the paths that should be ignored by skaffold's file watcher. If a file exists in both `paths` and in `ignore`, it will be ignored, and will be excluded from both rebuilds and file synchronization. Will only work in conjunction with `paths`.

specifies the paths that should be ignored by skaffold's file watcher. If a file exists in both paths and in ignore, it will be ignored, and will be excluded from both rebuilds and file synchronization. Will only work in conjunction with paths.

should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization.

*alpha* used to specify dependencies for an artifact built by a custom build script. Either `dockerfile` or `paths` should be specified for file watching to work as expected.

alpha used to specify dependencies for an artifact built by a custom build script. Either dockerfile or paths should be specified for file watching to work as expected.

formats the date and time. See [#Time.Format](https://golang.org/pkg/time/#Time.Format).

formats the date and time. See #Time.Format.

sets the timezone for the date and time. See [Time.LoadLocation](https://golang.org/pkg/time/#Time.LoadLocation). Defaults to the local timezone.

sets the timezone for the date and time. See Time.LoadLocation. Defaults to the local timezone.

*beta* tags images with the build timestamp.

beta tags images with the build timestamp.

*beta* deadline for deployments to stabilize in seconds.

beta deadline for deployments to stabilize in seconds.

*beta* uses the `helm` CLI to apply the charts to the cluster.

beta uses the helm CLI to apply the charts to the cluster.

*beta* uses a client side `kubectl apply` to deploy manifests. You'll need a `kubectl` CLI version installed that's compatible with your cluster.

beta uses a client side kubectl apply to deploy manifests. You'll need a kubectl CLI version installed that's compatible with your cluster.

*beta* uses the `kustomize` CLI to "patch" a deployment for a target environment.

beta uses the kustomize CLI to "patch" a deployment for a target environment.

contains all the configuration needed by the deploy steps.

contains all the configuration needed by the deploy steps.

arguments passed to the docker build.

the Docker images used as cache sources.

the Docker images used as cache sources.

locates the Dockerfile relative to workspace.

locates the Dockerfile relative to workspace.

passed through to docker and overrides the network configuration of docker builder. If unset, use whatever is configured in the underlying docker daemon. Valid modes are `host`: use the host's networking stack. `bridge`: use the bridged network configuration. `none`: no networking in the container.

passed through to docker and overrides the network configuration of docker builder. If unset, use whatever is configured in the underlying docker daemon. Valid modes are host: use the host's networking stack. bridge: use the bridged network configuration. none: no networking in the container.

used to pass in --no-cache to docker build to prevent caching.

used to pass in --no-cache to docker build to prevent caching.

Dockerfile target name to build.

dockerfile target buildArgs network cacheFrom noCache

*beta* describes an artifact built from a Dockerfile, usually using `docker build`.

beta describes an artifact built from a Dockerfile, usually using docker build.

path to the docker `config.json`.

Kubernetes secret that contains the `config.json` Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'.

Kubernetes secret that contains the config.json Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'.

contains information about the docker `config.json` to mount.

contains information about the docker config.json to mount.

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

*alpha* used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile.

alpha used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile.

used to produce the image name and tag. See golang [text/template](https://golang.org/pkg/text/template/). The template is executed against the current environment, with those variables injected:   IMAGE_NAME   |  Name of the image being built, as supplied in the artifacts section.

used to produce the image name and tag. See golang text/template. The template is executed against the current environment, with those variables injected:   IMAGE_NAME   |  Name of the image being built, as supplied in the artifacts section.

*beta* tags images with a configurable template string.

beta tags images with a configurable template string.

determines the behavior of the git tagger. Valid variants are `Tags` (default): use git tags or fall back to abbreviated commit hash. `CommitSha`: use the full git commit sha. `AbbrevCommitSha`: use the abbreviated git commit sha. `TreeSha`: use the full tree hash of the artifact workingdir. `AbbrevTreeSha`: use the abbreviated tree hash of the artifact workingdir.

determines the behavior of the git tagger. Valid variants are Tags (default): use git tags or fall back to abbreviated commit hash. CommitSha: use the full git commit sha. AbbrevCommitSha: use the abbreviated git commit sha. TreeSha: use the full tree hash of the artifact workingdir. AbbrevTreeSha: use the abbreviated tree hash of the artifact workingdir.

Tags CommitSha AbbrevCommitSha TreeSha AbbrevTreeSha

*beta* tags images with the git tag or commit of the artifact's workspace.

beta tags images with the git tag or commit of the artifact's workspace.

how many artifacts can be built concurrently. 0 means "no-limit" Defaults to 0.

how many artifacts can be built concurrently. 0 means "no-limit" Defaults to 0.

disk size of the VM that runs the build. See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions).

disk size of the VM that runs the build. See Cloud Build Reference.

image that runs a Docker build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).

image that runs a Docker build. See Cloud Builders.

image that runs a Gradle build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).

image that runs a Gradle build. See Cloud Builders.

image that runs a Kaniko build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).

image that runs a Kaniko build. See Cloud Builders.

type of the VM that runs the build. See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions).

type of the VM that runs the build. See Cloud Build Reference.

image that runs a Maven build. See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).

image that runs a Maven build. See Cloud Builders.

ID of your Cloud Platform Project. If it is not provided, Skaffold will guess it from the image name. For example, given the artifact image name `gcr.io/myproject/image`, Skaffold will use the `myproject` GCP project.

ID of your Cloud Platform Project. If it is not provided, Skaffold will guess it from the image name. For example, given the artifact image name gcr.io/myproject/image, Skaffold will use the myproject GCP project.

amount of time (in seconds) that this build should be allowed to run. See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#resource-build).

amount of time (in seconds) that this build should be allowed to run. See Cloud Build Reference.

projectId diskSizeGb machineType timeout dockerImage kanikoImage mavenImage gradleImage concurrency

*beta* describes how to do a remote build on [Google Cloud Build](https://cloud.google.com/cloud-build/docs/). Docker and Jib artifacts can be built on Cloud Build. The `projectId` needs to be provided and the currently logged in user should be given permissions to trigger new builds.

beta describes how to do a remote build on Google Cloud Build. Docker and Jib artifacts can be built on Cloud Build. The projectId needs to be provided and the currently logged in user should be given permissions to trigger new builds.

separates `image.registry` to the image config syntax. Useful for some charts e.g. `postgresql`.

separates image.registry to the image config syntax. Useful for some charts e.g. postgresql.

image config in the syntax of image.repository and image.tag.

image config in the syntax of image.repository and image.tag.

additional option flags that are passed on the command line to `helm`.

additional option flags that are passed on the command line to helm.

a list of Helm releases.

*beta* uses the `helm` CLI to apply the charts to the cluster.

beta uses the helm CLI to apply the charts to the cluster.

additional flags passed on every command.

additional flags passed on every command.

additional flags passed to (`helm install`).

additional flags passed to (helm install).

additional flags passed to (`helm upgrade`).

additional flags passed to (helm upgrade).

defines the image config.

image config to use the FullyQualifiedImageName as param to set.

image config to use the FullyQualifiedImageName as param to set.

image configuration uses the syntax `IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG`.

image configuration uses the syntax IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG.

image configuration uses the syntax `IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG`.

image configuration uses the syntax IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG.

adds image configurations to the Helm `values` file.

adds image configurations to the Helm values file.

sets the `appVersion` on the chart to this version.

sets the appVersion on the chart to this version.

sets the `version` on the chart to this semver version.

sets the version on the chart to this semver version.

parameters for packaging helm chart (`helm package`).

parameters for packaging helm chart (helm package).

path to the Helm chart.

name of the Helm release.

Kubernetes namespace.

key-value pairs. If present, Skaffold will build a Helm `values` file that overrides the original and use it to call Helm CLI (`--f` flag).

key-value pairs. If present, Skaffold will build a Helm values file that overrides the original and use it to call Helm CLI (--f flag).

if `true`, Skaffold will send `--recreate-pods` flag to Helm CLI when upgrading a new version of a chart in subsequent dev loop deploy.

if true, Skaffold will send --recreate-pods flag to Helm CLI when upgrading a new version of a chart in subsequent dev loop deploy.

specifies whether the chart path is remote, or exists on the host filesystem. `remote: true` implies `skipBuildDependencies: true`.

specifies whether the chart path is remote, or exists on the host filesystem. remote: true implies skipBuildDependencies: true.

key-value pairs. If present, Skaffold will send `--set-file` flag to Helm CLI and append all pairs after the flag.

key-value pairs. If present, Skaffold will send <code>--set-file</code> flag to Helm CLI and append all pairs after the flag.

key-value pairs. If present, Skaffold will try to parse the value part of each key-value pair using environment variables in the system, then send `--set` flag to Helm CLI and append all parsed pairs after the flag.

key-value pairs. If present, Skaffold will try to parse the value part of each key-value pair using environment variables in the system, then send <code>--set</code> flag to Helm CLI and append all parsed pairs after the flag.

key-value pairs. If present, Skaffold will send `--set` flag to Helm CLI and append all pairs after the flag.

key-value pairs. If present, Skaffold will send <code>--set</code> flag to Helm CLI and append all pairs after the flag.

should build dependencies be skipped.

instructs skaffold to use secrets plugin on deployment.

instructs skaffold to use secrets plugin on deployment.

key-value pairs supplementing the Helm `values` file.

key-value pairs supplementing the Helm values file.

paths to the Helm `values` files.

version of the chart.

if `true`, Skaffold will send `--wait` flag to Helm CLI.

if true, Skaffold will send --wait flag to Helm CLI.

name chartPath valuesFiles values namespace version setValues setValueTemplates setFiles wait recreatePods skipBuildDependencies useHelmSecrets remote overrides packaged imageStrategy

describes a helm release to be deployed.

describes a helm release to be deployed.

source position in the yaml, used for `copy` or `move` operations.

source position in the yaml, used for copy or move operations.

operation carried by the patch: `add`, `remove`, `replace`, `move`, `copy` or `test`.

operation carried by the patch: add, remove, replace, move, copy or test.

position in the yaml where the operation takes place. For example, this targets the `dockerfile` of the first artifact built.

position in the yaml where the operation takes place. For example, this targets the dockerfile of the first artifact built.

value to apply. Can be any portion of yaml.

value to apply. Can be any portion of yaml.

patch to be applied by a profile.

additional build flags passed to the builder.

additional build flags passed to the builder.

selects which sub-project to build for multi-module builds.

selects which sub-project to build for multi-module builds.

the Jib builder type; normally determined automatically. Valid types are `maven`: for Maven. `gradle`: for Gradle.

the Jib builder type; normally determined automatically. Valid types are maven: for Maven. gradle: for Gradle.

*alpha* builds images using the [Jib plugins for Maven and Gradle](https://github.com/GoogleContainerTools/jib/).

alpha builds images using the Jib plugins for Maven and Gradle.

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

where the build context for this artifact resides.

where the build context for this artifact resides.

configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.

configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.

locates the Dockerfile relative to workspace.

locates the Dockerfile relative to workspace.

additional flags to be passed to Kaniko command line. See [Kaniko Additional Flags](https://github.com/GoogleContainerTools/kaniko#additional-flags). Deprecated - instead the named, unique fields should be used, e.g. `buildArgs`, `cache`, `target`.

additional flags to be passed to Kaniko command line. See Kaniko Additional Flags. Deprecated - instead the named, unique fields should be used, e.g. buildArgs, cache, target.

Docker image used by the Kaniko pod. Defaults to the latest released version of `gcr.io/kaniko-project/executor`.

Docker image used by the Kaniko pod. Defaults to the latest released version of gcr.io/kaniko-project/executor.

used to strip timestamps out of the built image.

used to strip timestamps out of the built image.

Dockerfile target name to build.

flags dockerfile target buildArgs buildContext image cache reproducible

*alpha* describes an artifact built from a Dockerfile, with kaniko.

alpha describes an artifact built from a Dockerfile, with kaniko.

GCS bucket to which sources are uploaded. Kaniko will need access to that bucket to download the sources.

GCS bucket to which sources are uploaded. Kaniko will need access to that bucket to download the sources.

configures how Kaniko mounts sources directly via an `emptyDir` volume.

configures how Kaniko mounts sources directly via an emptyDir volume.

contains the different fields available to specify a Kaniko build context.

contains the different fields available to specify a Kaniko build context.

specifies a path on the host that is mounted to each pod as read only cache volume containing base images. If set, must exist on each node and prepopulated with kaniko-warmer.

a remote repository to store cached layers. If none is specified, one will be inferred from the image name. See [Kaniko Caching](https://github.com/GoogleContainerTools/kaniko#caching).

a remote repository to store cached layers. If none is specified, one will be inferred from the image name. See Kaniko Caching.

additional flags passed to `kubectl`.

the Kubernetes yaml or json manifests.

Kubernetes manifests in remote clusters.

Kubernetes manifests in remote clusters.

additional flags passed on creations (`kubectl apply`).

additional flags passed on creations (kubectl apply).

additional flags passed on deletions (`kubectl delete`).

additional flags passed on deletions (kubectl delete).

additional flags passed on every command.

additional flags passed on every command.

additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete).

additional args passed to `kustomize build`.

additional args passed to kustomize build.

additional flags passed to `kubectl`.

path to Kustomization files.

*beta* uses the `kustomize` CLI to "patch" a deployment for a target environment.

beta uses the kustomize CLI to "patch" a deployment for a target environment.

should images be pushed to a registry. If not specified, images are pushed only if the current Kubernetes context connects to a remote cluster.

use BuildKit to build Docker images.

use `docker` command-line interface instead of Docker Engine APIs.

use docker command-line interface instead of Docker Engine APIs.

*beta* describes how to do a build on the local docker daemon and optionally push to a repository.

beta describes how to do a build on the local docker daemon and optionally push to a repository.

image used to run init container which mounts kaniko context.

image used to run init container which mounts kaniko context.

an identifier for the project.

holds an optional name of the project.

local port to forward to. If the port is unavailable, Skaffold will choose a random open port to forward to. *Optional*.

local port to forward to. If the port is unavailable, Skaffold will choose a random open port to forward to. Optional.

namespace of the resource to port forward.

namespace of the resource to port forward.

resource port that will be forwarded.

name of the Kubernetes resource to port forward.

name of the Kubernetes resource to port forward.

Kubernetes type that should be port forwarded. Acceptable resource types include: `Service`, `Pod` and Controller resource type that has a pod spec: `ReplicaSet`, `ReplicationController`, `Deployment`, `StatefulSet`, `DaemonSet`, `Job`, `CronJob`.

Kubernetes type that should be port forwarded. Acceptable resource types include: Service, Pod and Controller resource type that has a pod spec: ReplicaSet, ReplicationController, Deployment, StatefulSet, DaemonSet, Job, CronJob.

resourceType resourceName namespace port localPort

describes a resource to port forward.

criteria by which a profile can be auto-activated. The profile is auto-activated if any one of the activations are triggered. An activation is triggered if all of the criteria (env, kubeContext, command) are triggered.

describes how images are built.

describes how images are deployed.

a unique profile name.

patches applied to the configuration. Patches use the JSON patch notation.

patches applied to the configuration. Patches use the JSON patch notation.

describes user defined resources to port-forward.

describes user defined resources to port-forward.

describes how images are tested.

name build test deploy portForward patches activation

*beta* profiles are used to override any `build`, `test` or `deploy` configuration.

beta profiles are used to override any build, test or deploy configuration.

the number cores to be used.

the amount of memory to allocate to the pod.

the amount of memory to allocate to the pod.

stores the CPU/Memory requirements for the pod.

stores the CPU/Memory requirements for the pod.

[resource limits](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) for the Kaniko pod.

[resource requests](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) for the Kaniko pod.

describes the resource requirements for the kaniko pod.

describes the resource requirements for the kaniko pod.

describes the Kubernetes resource types used for port forwarding.

describes the Kubernetes resource types used for port forwarding.

*beta* tags images with their sha256 digest.

beta tags images with their sha256 digest.

version of the configuration.

describes how images are built.

describes how images are deployed.

always `Config`.

holds additional information about the config.

holds additional information about the config.

*beta* can override be used to `build`, `test` or `deploy` configuration.

beta can override be used to build, test or deploy configuration.

describes how images are tested.

apiVersion kind metadata build test deploy portForward profiles

holds the fields parsed from the Skaffold configuration file (skaffold.yaml).

holds the fields parsed from the Skaffold configuration file (skaffold.yaml).

file patterns which may be synced into the container. The container destination is inferred by the builder. Currently only available for docker artifacts.

manual sync rules indicating the source and destination.

manual sync rules indicating the source and destination.

*alpha* specifies what files to sync into the container. This is a list of sync rules indicating the intent to sync for source files.

alpha specifies what files to sync into the container. This is a list of sync rules indicating the intent to sync for source files.

destination path in the container where the files should be synced to.

destination path in the container where the files should be synced to.

a glob pattern to match local paths against. Directories should be delimited by `/` on all platforms.

a glob pattern to match local paths against. Directories should be delimited by <code>/</code> on all platforms.

specifies the path prefix to remove from the source path when transplanting the files into the destination folder.

specifies the path prefix to remove from the source path when transplanting the files into the destination folder.

specifies which local files to sync to remote folders.

specifies which local files to sync to remote folders.

*beta* tags images with the build timestamp.

beta tags images with the build timestamp.

*beta* tags images with a configurable template string.

beta tags images with a configurable template string.

*beta* tags images with the git tag or commit of the artifact's workspace.

beta tags images with the git tag or commit of the artifact's workspace.

contains all the configuration for the tagging step.

contains all the configuration for the tagging step.

artifact on which to run those tests.

the [Container Structure Tests](https://github.com/GoogleContainerTools/container-structure-test) to run on that artifact.

the Container Structure Tests to run on that artifact.

a list of structure tests to run on images that Skaffold builds.

a list of structure tests to run on images that Skaffold builds.


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<title>Python: module nmap</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<big><big>nmap</big></big> (version 0.6.1)	index
/home/xael/ESPACE_KM/python/python-nmap/nmap/nmap.py

<tt>nmap.py - version and date, see below

Source code : https://bitbucket.org/xael/python-nmap

Author :

* Alexandre Norman - norman at xael.org

Contributors:

* Steve 'Ashcrow' Milner - steve at gnulinux.net

* Brian Bustin - brian at bustin.us

* old.schepperhand

* Johan Lundberg

* Thomas D. maaaaz

* Robert Bost

* David Peltier

Licence: GPL v3 or any later version for python-nmap

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program.  If not, see <http://www.gnu.org/licenses/>.

**************

IMPORTANT NOTE

**************

The Nmap Security Scanner used by python-nmap is distributed

under it's own licence that you can find at https://svn.nmap.org/nmap/COPYING

Any redistribution of python-nmap along with the Nmap Security Scanner

must conform to the Nmap Security Scanner licence</tt>

<big>Modules</big>

<tt>      </tt>

xml.etree.ElementTree

csv

	io

os

	re

shlex

	subprocess

sys

<big>Classes</big>

<tt>      </tt>

builtins.Exception(builtins.BaseException)

PortScannerError

builtins.dict(builtins.object)

PortScannerHostDict

builtins.object

PortScanner

PortScannerAsync

PortScannerYield

class PortScanner(builtins.object)

<tt>   </tt>
<tt>PortScanner class allows to use nmap from python
 </tt>

Methods defined here:

__getitem__(self, host)

<tt>returns a host detail</tt>

__init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap'))

<tt>Initialize PortScanner module

* detects nmap on the system and nmap version

* may raise PortScannerError exception if nmap is not found in the path

:param nmap_search_path: tupple of string where to search for nmap executable. Change this if you want to use a specific version of nmap.

:returns: nothing</tt>

all_hosts(self)

<tt>returns a sorted list of all hosts</tt>

analyse_nmap_xml_scan(self, nmap_xml_output=None, nmap_err='', nmap_err_keep_trace='', nmap_warn_keep_trace='')

<tt>Analyses NMAP xml scan ouput

May raise PortScannerError exception if nmap output was not xml

Test existance of the following key to know if something went wrong : ['nmap']['scaninfo']['error']

If not present, everything was ok.

:param nmap_xml_output: xml string to analyse

:returns: scan_result as dictionnary</tt>

command_line(self)

<tt>returns command line used for the scan

may raise AssertionError exception if called before scanning</tt>

csv(self)

<tt>returns CSV output as text

Example :

host;hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe

127.0.0.1;localhost;PTR;tcp;22;ssh;open;OpenSSH;protocol 2.0;syn-ack;5.9p1 Debian 5ubuntu1;10;cpe

127.0.0.1;localhost;PTR;tcp;23;telnet;closed;;;conn-refused;;3;

127.0.0.1;localhost;PTR;tcp;24;priv-mail;closed;;;conn-refused;;3;</tt>

get_nmap_last_output(self)

<tt>Returns the last text output of nmap in raw text

this may be used for debugging purpose

:returns: string containing the last text output of nmap in raw text</tt>

has_host(self, host)

<tt>returns True if host has result, False otherwise</tt>

listscan(self, hosts='127.0.0.1')

<tt>do not scan but interpret target hosts and return a list a hosts</tt>

nmap_version(self)

<tt>returns nmap version if detected (int version, int subversion)

or (0, 0) if unknown

:returns: (nmap_version_number, nmap_subversion_number)</tt>

scan(self, hosts='127.0.0.1', ports=None, arguments='-sV', sudo=False)

<tt>Scan given hosts

May raise PortScannerError exception if nmap output was not xml

Test existance of the following key to know

if something went wrong : ['nmap']['scaninfo']['error']

If not present, everything was ok.

:param hosts: string for hosts as nmap use it 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'

:param ports: string for ports as nmap use it '22,53,110,143-4564'

:param arguments: string of arguments for nmap '-sU -sX -sC'

:param sudo: launch nmap with sudo if True

:returns: scan_result as dictionnary</tt>

scaninfo(self)

<tt>returns scaninfo structure

{'tcp': {'services': '22', 'method': 'connect'}}

may raise AssertionError exception if called before scanning</tt>

scanstats(self)

<tt>returns scanstats structure

{'uphosts': '3', 'timestr': 'Thu Jun  3 21:45:07 2010', 'downhosts': '253', 'totalhosts': '256', 'elapsed': '5.79'}

may raise AssertionError exception if called before scanning</tt>

Data descriptors defined here:

__dict__

<tt>dictionary for instance variables (if defined)</tt>

__weakref__

<tt>list of weak references to the object (if defined)</tt>

class PortScannerAsync(builtins.object)

<tt>   </tt>
<tt>PortScannerAsync allows to use nmap from python asynchronously

for each host scanned, callback is called with scan result for the host
 </tt>

Methods defined here:

__del__(self)

<tt>Cleanup when deleted</tt>

__init__(self)

<tt>Initialize the module

* detects nmap on the system and nmap version

* may raise PortScannerError exception if nmap is not found in the path</tt>

scan(self, hosts='127.0.0.1', ports=None, arguments='-sV', callback=None, sudo=False)

<tt>Scan given hosts in a separate process and return host by host result using callback function

PortScannerError exception from standard nmap is catched and you won't know about but get None as scan_data

:param hosts: string for hosts as nmap use it 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'

:param ports: string for ports as nmap use it '22,53,110,143-4564'

:param arguments: string of arguments for nmap '-sU -sX -sC'

:param callback: callback function which takes (host, scan_data) as arguments

:param sudo: launch nmap with sudo if true</tt>

still_scanning(self)

<tt>:returns: True if a scan is currently running, False otherwise</tt>

stop(self)

<tt>Stop the current scan process</tt>

wait(self, timeout=None)

<tt>Wait for the current scan process to finish, or timeout

:param timeout: default = None, wait timeout seconds</tt>

Data descriptors defined here:

__dict__

<tt>dictionary for instance variables (if defined)</tt>

__weakref__

<tt>list of weak references to the object (if defined)</tt>

class PortScannerError(builtins.Exception)

<tt>   </tt>
<tt>Exception error class for PortScanner class
 </tt>

Method resolution order:

PortScannerError

builtins.Exception

builtins.BaseException

builtins.object

Methods defined here:

__init__(self, value)

__repr__(self)

__str__(self)

Data descriptors defined here:

__weakref__

<tt>list of weak references to the object (if defined)</tt>

Methods inherited from builtins.Exception:

__new__(*args, **kwargs) from builtins.type

<tt>Create and return a new object.  See help(type) for accurate signature.</tt>

Methods inherited from builtins.BaseException:

__delattr__(self, name, /)

<tt>Implement delattr(self, name).</tt>

__getattribute__(self, name, /)

<tt>Return getattr(self, name).</tt>

__reduce__(...)

__setattr__(self, name, value, /)

<tt>Implement setattr(self, name, value).</tt>

__setstate__(...)

with_traceback(...)

<tt>Exception.with_traceback(tb) --

set self.__traceback__ to tb and return self.</tt>

Data descriptors inherited from builtins.BaseException:

__cause__

<tt>exception cause</tt>

__context__

<tt>exception context</tt>

__dict__

__suppress_context__

__traceback__

args

class PortScannerHostDict(builtins.dict)

<tt>   </tt>
<tt>Special dictionnary class for storing and accessing host scan result
 </tt>

Method resolution order:

PortScannerHostDict

builtins.dict

builtins.object

Methods defined here:

all_ip(self)

<tt>:returns: list of ip ports</tt>

all_protocols(self)

<tt>:returns: a list of all scanned protocols</tt>

all_sctp(self)

<tt>:returns: list of sctp ports</tt>

all_tcp(self)

<tt>:returns: list of tcp ports</tt>

all_udp(self)

<tt>:returns: list of udp ports</tt>

has_ip(self, port)

<tt>:param port: (int) ip port

:returns: True if ip port has info, False otherwise</tt>

has_sctp(self, port)

<tt>:returns: True if sctp port has info, False otherwise</tt>

has_tcp(self, port)

<tt>:param port: (int) tcp port

:returns: True if tcp port has info, False otherwise</tt>

has_udp(self, port)

<tt>:param port: (int) udp port

:returns: True if udp port has info, False otherwise</tt>

hostname(self)

<tt>For compatibility purpose...

:returns: try to return the user record or the first hostname of the list hostnames</tt>

hostnames(self)

<tt>:returns: list of hostnames</tt>

ip(self, port)

<tt>:param port: (int) ip port

:returns: info for ip port</tt>

sctp(self, port)

<tt>:returns: info for sctp port</tt>

state(self)

<tt>:returns: host state</tt>

tcp(self, port)

<tt>:param port: (int) tcp port

:returns: info for tpc port</tt>

udp(self, port)

<tt>:param port: (int) udp port

:returns: info for udp port</tt>

uptime(self)

<tt>:returns: host state</tt>

Data descriptors defined here:

__dict__

<tt>dictionary for instance variables (if defined)</tt>

__weakref__

<tt>list of weak references to the object (if defined)</tt>

Methods inherited from builtins.dict:

__contains__(self, key, /)

<tt>True if D has a key k, else False.</tt>

__delitem__(self, key, /)

<tt>Delete self[key].</tt>

__eq__(self, value, /)

<tt>Return self==value.</tt>

__ge__(self, value, /)

<tt>Return self>=value.</tt>

__getattribute__(self, name, /)

<tt>Return getattr(self, name).</tt>

__getitem__(...)

<tt>x.__getitem__(y) <==> x[y]</tt>

__gt__(self, value, /)

<tt>Return self>value.</tt>

__init__(self, /, *args, **kwargs)

<tt>Initialize self.  See help(type(self)) for accurate signature.</tt>

__iter__(self, /)

<tt>Implement iter(self).</tt>

__le__(self, value, /)

<tt>Return self<=value.</tt>

__len__(self, /)

<tt>Return len(self).</tt>

__lt__(self, value, /)

<tt>Return self<value.</tt>

__ne__(self, value, /)

<tt>Return self!=value.</tt>

__new__(*args, **kwargs) from builtins.type

<tt>Create and return a new object.  See help(type) for accurate signature.</tt>

__repr__(self, /)

<tt>Return repr(self).</tt>

__setitem__(self, key, value, /)

<tt>Set self[key] to value.</tt>

__sizeof__(...)

<tt>D.__sizeof__() -> size of D in memory, in bytes</tt>

clear(...)

<tt>D.clear() -> None.  Remove all items from D.</tt>

copy(...)

<tt>D.copy() -> a shallow copy of D</tt>

fromkeys(iterable, value=None, /) from builtins.type

<tt>Returns a new dict with keys from iterable and values equal to value.</tt>

get(...)

<tt>D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.</tt>

items(...)

<tt>D.items() -> a set-like object providing a view on D's items</tt>

keys(...)

<tt>D.keys() -> a set-like object providing a view on D's keys</tt>

pop(...)

<tt>D.pop(k[,d]) -> v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised</tt>

popitem(...)

<tt>D.popitem() -> (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.</tt>

setdefault(...)

<tt>D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D</tt>

update(...)

<tt>D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]

If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v

In either case, this is followed by: for k in F:  D[k] = F[k]</tt>

values(...)

<tt>D.values() -> an object providing a view on D's values</tt>

Data and other attributes inherited from builtins.dict:

__hash__ = None

class PortScannerYield(PortScannerAsync)

<tt>   </tt>
<tt>PortScannerYield allows to use nmap from python with a generator

for each host scanned, yield is called with scan result for the host
 </tt>

Method resolution order:

PortScannerYield

PortScannerAsync

builtins.object

Methods defined here:

__init__(self)

<tt>Initialize the module

* detects nmap on the system and nmap version

* may raise PortScannerError exception if nmap is not found in the path</tt>

scan(self, hosts='127.0.0.1', ports=None, arguments='-sV', sudo=False)

<tt>Scan given hosts in a separate process and return host by host result using callback function

PortScannerError exception from standard nmap is catched and you won't know about it

:param hosts: string for hosts as nmap use it 'scanme.nmap.org' or '198.116.0-255.1-127' or '216.163.128.20/20'

:param ports: string for ports as nmap use it '22,53,110,143-4564'

:param arguments: string of arguments for nmap '-sU -sX -sC'

:param callback: callback function which takes (host, scan_data) as arguments

:param sudo: launch nmap with sudo if true</tt>

still_scanning(self)

stop(self)

wait(self, timeout=None)

Methods inherited from PortScannerAsync:

__del__(self)

<tt>Cleanup when deleted</tt>

Data descriptors inherited from PortScannerAsync:

__dict__

<tt>dictionary for instance variables (if defined)</tt>

__weakref__

<tt>list of weak references to the object (if defined)</tt>

<big>Functions</big>

<tt>      </tt>

__scan_progressive__(self, hosts, ports, arguments, callback, sudo)

<tt>Used by PortScannerAsync for callback</tt>

convert_nmap_output_to_encoding(value, code='ascii')

<tt>Change encoding for scan_result object from unicode to whatever

:param value: scan_result as dictionnary

:param code: default = "ascii", encoding destination

:returns: scan_result as dictionnary with new encoding</tt>

<big>Data</big>

<tt>      </tt>
__last_modification__ = '2016.07.29'

<big>Author</big>

<tt>      </tt>
Alexandre Norman (norman@xael.org)


.f ../test_bring_files/test_bring_8.txt

 >>> End context
you are in the kitchen
to the south there is the living_room
you see some book -s
? what do you want to do

 >>> End context
you are in the library
to the south there is the hall
you see nothing
? what do you want to do

 >>> End context
you are in the bathroom
to the south there is the corridor
you see nothing
? what do you want to do

 >>> End context
you are in the veranda
to the east there is the living_room
you see nothing
? what do you want to do

 >>> End context
you are in the living_room
to the east there is the hall
to the north there is the kitchen
to the west there is the veranda
you see nothing
? what do you want to do

 >>> End context
you are in the hall
to the east there is the corridor
to the north there is the library
to the west there is the living_room
to the south there is the garden
you see nothing
Alfred is here
? what do you want to do

 >>> End context
you are in the corridor
to the east there is the bedroom
to the north there is the bathroom
to the west there is the hall
to the south there is the studio
you see nothing
? what do you want to do

 >>> End context
you are in the bedroom
to the west there is the corridor
you see nothing
? what do you want to do

 >>> End context
you are in the garden
to the north there is the hall
to the south there is the street
you see nothing
? what do you want to do

 >>> End context
you are in the studio
to the north there is the corridor
you see nothing
? what do you want to do

 >>> End context
you are in the street
to the north there is the garden
you see nothing
? what do you want to do

 >>> End context
you are in the hall
to the east there is the corridor
to the north there is the library
to the west there is the living_room
to the south there is the garden
you see nothing
Alfred is here
? what do you want to do
bring a book to Alfred
.x
 -> west
.
west

 >>> End context
you are in the living_room
to the east there is the hall
to the north there is the kitchen
to the west there is the veranda
you see nothing
? what do you want to do
.x
 -> north
.
north

 >>> End context
you are in the kitchen
to the south there is the living_room
you see some book -s
? what do you want to do
.x
 -> take the
 ...  -> book
.
take the book
you take a book
.x
 -> south
.
south

 >>> End context
you are in the living_room
to the east there is the hall
to the north there is the kitchen
to the west there is the veranda
you see nothing
? what do you want to do
.x
 -> east
.
east

 >>> End context
you are in the hall
to the east there is the corridor
to the north there is the library
to the west there is the living_room
to the south there is the garden
you see nothing
Alfred is here
? what do you want to do
.x
 -> give the
 ...  -> book to Alfred
.
give the book to Alfred
you give the book to Alfred
.x
 ->
.

 >>> End context
.q
.q


[ExifTool, ExifTool, ExifTool] ExifToolVersion - ExifTool Version Number: 9.93
[File, System, Image] FileName - File Name: FLAC.flac
[File, System, Image] Directory - Directory: t/images
[File, System, Image] FileSize - File Size: 282 bytes
[File, System, Time] FileModifyDate - File Modification Date/Time: 2006:11:13 15:12:26-05:00
[File, System, Time] FileAccessDate - File Access Date/Time: 2015:04:18 07:17:35-04:00
[File, System, Time] FileInodeChangeDate - File Inode Change Date/Time: 2015:03:07 15:31:09-05:00
[File, System, Image] FilePermissions - File Permissions: rw-r--r--
[File, File, Image] FileType - File Type: FLAC
[File, File, Image] FileTypeExtension - File Type Extension: flac
[File, File, Image] MIMEType - MIME Type: audio/flac
[FLAC, FLAC, Audio] Bit000-015 - Block Size Min: 4608
[FLAC, FLAC, Audio] Bit016-031 - Block Size Max: 4608
[FLAC, FLAC, Audio] Bit032-055 - Frame Size Min: 16777215
[FLAC, FLAC, Audio] Bit056-079 - Frame Size Max: 0
[FLAC, FLAC, Audio] Bit080-099 - Sample Rate: 8000
[FLAC, FLAC, Audio] Bit100-102 - Channels: 2
[FLAC, FLAC, Audio] Bit103-107 - Bits Per Sample: 8
[FLAC, FLAC, Audio] Bit108-143 - Total Samples: 0
[Vorbis, Vorbis, Audio] vendor - Vendor: reference libFLAC 1.1.2 20050205
[Vorbis, Vorbis, Audio] REPLAYGAIN_TRACK_PEAK - Replay Gain Track Peak: 0.00000000
[Vorbis, Vorbis, Audio] REPLAYGAIN_TRACK_GAIN - Replay Gain Track Gain: -24601.00 dB
[Vorbis, Vorbis, Audio] REPLAYGAIN_ALBUM_PEAK - Replay Gain Album Peak: 0.00000000
[Vorbis, Vorbis, Audio] REPLAYGAIN_ALBUM_GAIN - Replay Gain Album Gain: -24601.00 dB
[Vorbis, Vorbis, Audio] TITLE - Title: ExifTool test
[Vorbis, Vorbis, Author] COPYRIGHT - Copyright: Phil Harvey


/*
 * Copyright (c) 2019. JetBrains s.r.o.
 * Use of this source code is governed by the MIT license that can be found in the LICENSE file.
 */

package jetbrains.datalore.plot.base.pos

import jetbrains.datalore.base.geometry.DoubleVector
import jetbrains.datalore.plot.base.Aesthetics
import jetbrains.datalore.plot.base.DataPointAesthetics
import jetbrains.datalore.plot.base.GeomContext
import jetbrains.datalore.plot.base.PositionAdjustment

class JitterDodgePos(aesthetics: Aesthetics, groupCount: Int, width: Double?, jitterWidth: Double?, jitterHeight: Double?) :
    PositionAdjustment {
    private val myJitterPosHelper: PositionAdjustment
    private val myDodgePosHelper: PositionAdjustment

    init {
        myJitterPosHelper = JitterPos(jitterWidth, jitterHeight)
        myDodgePosHelper = DodgePos(aesthetics, groupCount, width)
    }

    override fun translate(v: DoubleVector, p: DataPointAesthetics, ctx: GeomContext): DoubleVector {
        val afterJitter = myJitterPosHelper.translate(v, p, ctx)
        return myDodgePosHelper.translate(afterJitter, p, ctx)
    }

    override fun handlesGroups(): Boolean {
        return PositionAdjustments.Meta.JITTER_DODGE.handlesGroups()
    }
}


/*
*******************************************************************************
*
*   Copyright (C) 2003-2006, International Business Machines
*   Corporation and others.  All Rights Reserved.
*
*******************************************************************************
*   file name:  utrace.h
*   encoding:   US-ASCII
*   tab size:   8 (not used)
*   indentation:4
*
*   created on: 2003aug06
*   created by: Markus W. Scherer
*
*   Definitions for ICU tracing/logging.
*
*/

#ifndef __UTRACE_H__
#define __UTRACE_H__

#include <stdarg.h>
#include "unicode/utypes.h"

/**
 * \file
 * \brief C API:  Definitions for ICU tracing/logging.
 *
 * This provides API for debugging the internals of ICU without the use of
 * a traditional debugger.
 *
 * By default, tracing is disabled in ICU. If you need to debug ICU with
 * tracing, please compile ICU with the --enable-tracing configure option.
 */

U_CDECL_BEGIN

/**
 * Trace severity levels.  Higher levels increase the verbosity of the trace output.
 * @see utrace_setLevel
 * @stable ICU 2.8
 */
typedef enum UTraceLevel {
    /** Disable all tracing  @stable ICU 2.8*/
    UTRACE_OFF=-1,
    /** Trace error conditions only  @stable ICU 2.8*/
    UTRACE_ERROR=0,
    /** Trace errors and warnings  @stable ICU 2.8*/
    UTRACE_WARNING=3,
    /** Trace opens and closes of ICU services  @stable ICU 2.8*/
    UTRACE_OPEN_CLOSE=5,
    /** Trace an intermediate number of ICU operations  @stable ICU 2.8*/
    UTRACE_INFO=7,
    /** Trace the maximum number of ICU operations  @stable ICU 2.8*/
    UTRACE_VERBOSE=9
} UTraceLevel;

/**
 *  These are the ICU functions that will be traced when tracing is enabled.
 *  @stable ICU 2.8
 */
typedef enum UTraceFunctionNumber {
    UTRACE_FUNCTION_START=0,
    UTRACE_U_INIT=UTRACE_FUNCTION_START,
    UTRACE_U_CLEANUP,
    UTRACE_FUNCTION_LIMIT,

    UTRACE_CONVERSION_START=0x1000,
    UTRACE_UCNV_OPEN=UTRACE_CONVERSION_START,
    UTRACE_UCNV_OPEN_PACKAGE,
    UTRACE_UCNV_OPEN_ALGORITHMIC,
    UTRACE_UCNV_CLONE,
    UTRACE_UCNV_CLOSE,
    UTRACE_UCNV_FLUSH_CACHE,
    UTRACE_UCNV_LOAD,
    UTRACE_UCNV_UNLOAD,
    UTRACE_CONVERSION_LIMIT,

    UTRACE_COLLATION_START=0x2000,
    UTRACE_UCOL_OPEN=UTRACE_COLLATION_START,
    UTRACE_UCOL_CLOSE,
    UTRACE_UCOL_STRCOLL,
    UTRACE_UCOL_GET_SORTKEY,
    UTRACE_UCOL_GETLOCALE,
    UTRACE_UCOL_NEXTSORTKEYPART,
    UTRACE_UCOL_STRCOLLITER,
    UTRACE_UCOL_OPEN_FROM_SHORT_STRING,
    UTRACE_COLLATION_LIMIT
} UTraceFunctionNumber;

/**
 * Setter for the trace level.
 * @param traceLevel A UTraceLevel value.
 * @stable ICU 2.8
 */
U_STABLE void U_EXPORT2
utrace_setLevel(int32_t traceLevel);

/**
 * Getter for the trace level.
 * @return The UTraceLevel value being used by ICU.
 * @stable ICU 2.8
 */
U_STABLE int32_t U_EXPORT2
utrace_getLevel(void);

/* Trace function pointers types  ----------------------------- */

/**
  *  Type signature for the trace function to be called when entering a function.
  *  @param context value supplied at the time the trace functions are set.
  *  @param fnNumber Enum value indicating the ICU function being entered.
  *  @stable ICU 2.8
  */
typedef void U_CALLCONV
UTraceEntry(const void *context, int32_t fnNumber);

/**
  *  Type signature for the trace function to be called when exiting from a function.
  *  @param context value supplied at the time the trace functions are set.
  *  @param fnNumber Enum value indicating the ICU function being exited.
  *  @param fmt     A formatting string that describes the number and types
  *                 of arguments included with the variable args.  The fmt
  *                 string has the same form as the utrace_vformat format
  *                 string.
  *  @param args    A variable arguments list.  Contents are described by
  *                 the fmt parameter.
  *  @see   utrace_vformat
  *  @stable ICU 2.8
  */
typedef void U_CALLCONV
UTraceExit(const void *context, int32_t fnNumber,
           const char *fmt, va_list args);

/**
  *  Type signature for the trace function to be called from within an ICU function
  *  to display data or messages.
  *  @param context  value supplied at the time the trace functions are set.
  *  @param fnNumber Enum value indicating the ICU function being exited.
  *  @param level    The current tracing level
  *  @param fmt      A format string describing the tracing data that is supplied
  *                  as variable args
  *  @param args     The data being traced, passed as variable args.
  *  @stable ICU 2.8
  */
typedef void U_CALLCONV
UTraceData(const void *context, int32_t fnNumber, int32_t level,
           const char *fmt, va_list args);

/**
  *  Set ICU Tracing functions.  Installs application-provided tracing
  *  functions into ICU.  After doing this, subsequent ICU operations
  *  will call back to the installed functions, providing a trace
  *  of the use of ICU.  Passing a NULL pointer for a tracing function
  *  is allowed, and inhibits tracing action at points where that function
  *  would be called.
  *  <p>
  *  Tracing and Threads:  Tracing functions are global to a process, and
  *  will be called in response to ICU operations performed by any
  *  thread.  If tracing of an individual thread is desired, the
  *  tracing functions must themselves filter by checking that the
  *  current thread is the desired thread.
  *
  *  @param context an uninterpretted pointer.  Whatever is passed in
  *                 here will in turn be passed to each of the tracing
  *                 functions UTraceEntry, UTraceExit and UTraceData.
  *                 ICU does not use or alter this pointer.
  *  @param e       Callback function to be called on entry to a
  *                 a traced ICU function.
  *  @param x       Callback function to be called on exit from a
  *                 traced ICU function.
  *  @param d       Callback function to be called from within a
  *                 traced ICU function, for the purpose of providing
  *                 data to the trace.
  *
  *  @stable ICU 2.8
  */
U_STABLE void U_EXPORT2
utrace_setFunctions(const void *context,
                    UTraceEntry *e, UTraceExit *x, UTraceData *d);

/**
  * Get the currently installed ICU tracing functions.   Note that a null function
  *   pointer will be returned if no trace function has been set.
  *
  * @param context  The currently installed tracing context.
  * @param e        The currently installed UTraceEntry function.
  * @param x        The currently installed UTraceExit function.
  * @param d        The currently installed UTraceData function.
  * @stable ICU 2.8
  */
U_STABLE void U_EXPORT2
utrace_getFunctions(const void **context,
                    UTraceEntry **e, UTraceExit **x, UTraceData **d);

/*
 *
 * ICU trace format string syntax
 *
 * Format Strings are passed to UTraceData functions, and define the
 * number and types of the trace data being passed on each call.
 *
 * The UTraceData function, which is supplied by the application,
 * not by ICU, can either forward the trace data (passed via
 * varargs) and the format string back to ICU for formatting into
 * a displayable string, or it can interpret the format itself,
 * and do as it wishes with the trace data.
 *
 *
 * Goals for the format string
 * - basic data output
 * - easy to use for trace programmer
 * - sufficient provision for data types for trace output readability
 * - well-defined types and binary portable APIs
 *
 * Non-goals
 * - printf compatibility
 * - fancy formatting
 * - argument reordering and other internationalization features
 *
 * ICU trace format strings contain plain text with argument inserts,
 * much like standard printf format strings.
 * Each insert begins with a '%', then optionally contains a 'v',
 * then exactly one type character.
 * Two '%' in a row represent a '%' instead of an insert.
 * The trace format strings need not have \n at the end.
 *
 *
 * Types
 * -----
 *
 * Type characters:
 * - c A char character in the default codepage.
 * - s A NUL-terminated char * string in the default codepage.
 * - S A UChar * string.  Requires two params, (ptr, length).  Length=-1 for nul term.
 * - b A byte (8-bit integer).
 * - h A 16-bit integer.  Also a 16 bit Unicode code unit.
 * - d A 32-bit integer.  Also a 20 bit Unicode code point value.
 * - l A 64-bit integer.
 * - p A data pointer.
 *
 * Vectors
 * -------
 *
 * If the 'v' is not specified, then one item of the specified type
 * is passed in.
 * If the 'v' (for "vector") is specified, then a vector of items of the
 * specified type is passed in, via a pointer to the first item
 * and an int32_t value for the length of the vector.
 * Length==-1 means zero or NUL termination.  Works for vectors of all types.
 *
 * Note:  %vS is a vector of (UChar *) strings.  The strings must
 *        be nul terminated as there is no way to provide a
 *        separate length parameter for each string.  The length
 *        parameter (required for all vectors) is the number of
 *        strings, not the length of the strings.
 *
 * Examples
 * --------
 *
 * These examples show the parameters that will be passed to an application's
 *   UTraceData() function for various formats.
 *
 * - the precise formatting is up to the application!
 * - the examples use type casts for arguments only to _show_ the types of
 *   arguments without needing variable declarations in the examples;
 *   the type casts will not be necessary in actual code
 *
 * UTraceDataFunc(context, fnNumber, level,
 *              "There is a character %c in the string %s.",   // Format String
 *              (char)c, (const char *)s);                     // varargs parameters
 * ->   There is a character 0x42 'B' in the string "Bravo".
 *
 * UTraceDataFunc(context, fnNumber, level,
 *              "Vector of bytes %vb vector of chars %vc",
 *              (const uint8_t *)bytes, (int32_t)bytesLength,
 *              (const char *)chars, (int32_t)charsLength);
 * ->  Vector of bytes
 *      42 63 64 3f [4]
 *     vector of chars
 *      "Bcd?"[4]
 *
 * UTraceDataFunc(context, fnNumber, level,
 *              "An int32_t %d and a whole bunch of them %vd",
 *              (int32_t)-5, (const int32_t *)ints, (int32_t)intsLength);
 * ->   An int32_t 0xfffffffb and a whole bunch of them
 *      fffffffb 00000005 0000010a [3]
 *
 */

/**
  *  Trace output Formatter.  An application's UTraceData tracing functions may call
  *                 back to this function to format the trace output in a
  *                 human readable form.  Note that a UTraceData function may choose
  *                 to not format the data;  it could, for example, save it in
  *                 in the raw form it was received (more compact), leaving
  *                 formatting for a later trace analyis tool.
  *  @param outBuf  pointer to a buffer to receive the formatted output.  Output
  *                 will be nul terminated if there is space in the buffer -
  *                 if the length of the requested output < the output buffer size.
  *  @param capacity  Length of the output buffer.
  *  @param indent  Number of spaces to indent the output.  Intended to allow
  *                 data displayed from nested functions to be indented for readability.
  *  @param fmt     Format specification for the data to output
  *  @param args    Data to be formatted.
  *  @return        Length of formatted output, including the terminating NUL.
  *                 If buffer capacity is insufficient, the required capacity is returned.
  *  @stable ICU 2.8
  */
U_STABLE int32_t U_EXPORT2
utrace_vformat(char *outBuf, int32_t capacity,
              int32_t indent, const char *fmt,  va_list args);

/**
  *  Trace output Formatter.  An application's UTraceData tracing functions may call
  *                 this function to format any additional trace data, beyond that
  *                 provided by default, in human readable form with the same
  *                 formatting conventions used by utrace_vformat().
  *  @param outBuf  pointer to a buffer to receive the formatted output.  Output
  *                 will be nul terminated if there is space in the buffer -
  *                 if the length of the requested output < the output buffer size.
  *  @param capacity  Length of the output buffer.
  *  @param indent  Number of spaces to indent the output.  Intended to allow
  *                 data displayed from nested functions to be indented for readability.
  *  @param fmt     Format specification for the data to output
  *  @param ...     Data to be formatted.
  *  @return        Length of formatted output, including the terminating NUL.
  *                 If buffer capacity is insufficient, the required capacity is returned.
  *  @stable ICU 2.8
  */
U_STABLE int32_t U_EXPORT2
utrace_format(char *outBuf, int32_t capacity,
              int32_t indent, const char *fmt,  ...);

/* Trace function numbers --------------------------------------------------- */

/**
 * Get the name of a function from its trace function number.
 *
 * @param fnNumber The trace number for an ICU function.
 * @return The name string for the function.
 *
 * @see UTraceFunctionNumber
 * @stable ICU 2.8
 */
U_STABLE const char * U_EXPORT2
utrace_functionName(int32_t fnNumber);

U_CDECL_END

#endif


/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
 */

'use strict';

/**
 * Class representing a LegacyUpdateCheckResponseUpdateInfo.
 */
class LegacyUpdateCheckResponseUpdateInfo {
  /**
   * Create a LegacyUpdateCheckResponseUpdateInfo.
   * @property {string} [appVersion]
   * @property {string} [description]
   * @property {boolean} [isDisabled]
   * @property {boolean} [isMandatory]
   * @property {number} [rollout]
   * @property {string} [downloadURL]
   * @property {boolean} isAvailable
   * @property {number} [packageSize]
   * @property {boolean} [shouldRunBinaryVersion]
   * @property {boolean} [updateAppVersion]
   * @property {string} [packageHash]
   * @property {string} [label]
   */
  constructor() {
  }

  /**
   * Defines the metadata of LegacyUpdateCheckResponseUpdateInfo
   *
   * @returns {object} metadata of LegacyUpdateCheckResponseUpdateInfo
   *
   */
  mapper() {
    return {
      required: false,
      serializedName: 'LegacyUpdateCheckResponse_updateInfo',
      type: {
        name: 'Composite',
        className: 'LegacyUpdateCheckResponseUpdateInfo',
        modelProperties: {
          appVersion: {
            required: false,
            serializedName: 'appVersion',
            type: {
              name: 'String'
            }
          },
          description: {
            required: false,
            serializedName: 'description',
            type: {
              name: 'String'
            }
          },
          isDisabled: {
            required: false,
            serializedName: 'isDisabled',
            type: {
              name: 'Boolean'
            }
          },
          isMandatory: {
            required: false,
            serializedName: 'isMandatory',
            type: {
              name: 'Boolean'
            }
          },
          rollout: {
            required: false,
            serializedName: 'rollout',
            type: {
              name: 'Number'
            }
          },
          downloadURL: {
            required: false,
            serializedName: 'downloadURL',
            type: {
              name: 'String'
            }
          },
          isAvailable: {
            required: true,
            serializedName: 'isAvailable',
            type: {
              name: 'Boolean'
            }
          },
          packageSize: {
            required: false,
            serializedName: 'packageSize',
            type: {
              name: 'Number'
            }
          },
          shouldRunBinaryVersion: {
            required: false,
            serializedName: 'shouldRunBinaryVersion',
            type: {
              name: 'Boolean'
            }
          },
          updateAppVersion: {
            required: false,
            serializedName: 'updateAppVersion',
            type: {
              name: 'Boolean'
            }
          },
          packageHash: {
            required: false,
            serializedName: 'packageHash',
            type: {
              name: 'String'
            }
          },
          label: {
            required: false,
            serializedName: 'label',
            type: {
              name: 'String'
            }
          }
        }
      }
    };
  }
}

module.exports = LegacyUpdateCheckResponseUpdateInfo;


#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 256x256
#sar 0: 0/1
0,          0,          0,        1,   196608, 0xada11d14


CANCELLED COMPLETED FAILED PENDING PENDING_CANCEL RUNNING

logGroupName filterName filterPattern metricTransformations

logGroupName filterName filterPattern destinationArn


input("MapSymbols")
{
    string("txtfile", ""){
        file("txt");
    };
    string("pattern1", "");
    string("subst1", "");
    string("pattern2", "");
    string("subst2", "");
    string("pattern3", "");
    string("subst3", "");
    string("pattern4", "");
    string("subst4", "");
    string("pattern5", "");
    string("subst5", "");
    string("pattern6", "");
    string("subst6", "");
    string("pattern7", "");
    string("subst7", "");
    string("pattern8", "");
    string("subst8", "");
	feature("source", "list");
	feature("menu", "6.Tools/Subst");
	feature("description", "just so so");
}
process
{
    $lines=readalllines(txtfile);
    if(!isnullorempty(pattern1)){
        $lines = subst($lines, pattern1, subst1);
    };
    if(!isnullorempty(pattern2)){
        $lines = subst($lines, pattern2, subst2);
    };
    if(!isnullorempty(pattern3)){
        $lines = subst($lines, pattern3, subst3);
    };
    if(!isnullorempty(pattern4)){
        $lines = subst($lines, pattern4, subst4);
    };
    if(!isnullorempty(pattern5)){
        $lines = subst($lines, pattern5, subst5);
    };
    if(!isnullorempty(pattern6)){
        $lines = subst($lines, pattern6, subst6);
    };
    if(!isnullorempty(pattern7)){
        $lines = subst($lines, pattern7, subst7);
    };
    if(!isnullorempty(pattern8)){
        $lines = subst($lines, pattern8, subst8);
    };
    $dir = getdirectoryname(txtfile);
    $filename = getfilenamewithoutextension(txtfile);
    $file = combinepath($dir,$filename+"_subst.txt");
    writealllines($file,$lines);
};


// ==========================================================================
//                           arg_parse_exceptions.h
// ==========================================================================
// Copyright (c) 2006-2018, Knut Reinert, FU Berlin
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
//       its contributors may be used to endorse or promote products derived
//       from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
// DAMAGE.
//
// ==========================================================================
// Author: Stephan Aiche <stephan.aiche@fu-berlin.de>
// ==========================================================================

#ifndef SEQAN_INCLUDE_SEQAN_ARG_PARSE_ARG_PARSE_EXCEPTIONS_H_
#define SEQAN_INCLUDE_SEQAN_ARG_PARSE_ARG_PARSE_EXCEPTIONS_H_

namespace seqan {

// ============================================================================
// Tags, Classes, Enums
// ============================================================================

// ----------------------------------------------------------------------------
// Class ParseError
// ----------------------------------------------------------------------------

// Defined in include/seqan/stream/tokenization.h
struct ParseError;

// ----------------------------------------------------------------------------
// Class InvalidOption
// ----------------------------------------------------------------------------

class InvalidOption : public ParseError
{
public:
    InvalidOption(std::string const & option) :
        ParseError("illegal option -- " + option)
    {}
};

// ----------------------------------------------------------------------------
// Class MissingArgument
// ----------------------------------------------------------------------------

class MissingArgument : public ParseError
{
public:
    MissingArgument(std::string const & option) :
        ParseError("option requires an argument -- " + option)
    {}
};

// ----------------------------------------------------------------------------
// Class NotEnoughArguments
// ----------------------------------------------------------------------------

class NotEnoughArguments : public ParseError
{
public:
    NotEnoughArguments(std::string const & option) :
        ParseError("option requires more arguments -- " + option)
    {}
};

}  // namespace seqan

#endif  // #ifndef SEQAN_INCLUDE_SEQAN_ARG_PARSE_ARG_PARSE_EXCEPTIONS_H_


// +build 386,linux
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_linux.go

package unix

const (
	sizeofPtr      = 0x4
	sizeofShort    = 0x2
	sizeofInt      = 0x4
	sizeofLong     = 0x4
	sizeofLongLong = 0x8
	PathMax        = 0x1000
)

type (
	_C_short     int16
	_C_int       int32
	_C_long      int32
	_C_long_long int64
)

type Timespec struct {
	Sec  int32
	Nsec int32
}

type Timeval struct {
	Sec  int32
	Usec int32
}

type Timex struct {
	Modes     uint32
	Offset    int32
	Freq      int32
	Maxerror  int32
	Esterror  int32
	Status    int32
	Constant  int32
	Precision int32
	Tolerance int32
	Time      Timeval
	Tick      int32
	Ppsfreq   int32
	Jitter    int32
	Shift     int32
	Stabil    int32
	Jitcnt    int32
	Calcnt    int32
	Errcnt    int32
	Stbcnt    int32
	Tai       int32
	Pad_cgo_0 [44]byte
}

type Time_t int32

type Tms struct {
	Utime  int32
	Stime  int32
	Cutime int32
	Cstime int32
}

type Utimbuf struct {
	Actime  int32
	Modtime int32
}

type Rusage struct {
	Utime    Timeval
	Stime    Timeval
	Maxrss   int32
	Ixrss    int32
	Idrss    int32
	Isrss    int32
	Minflt   int32
	Majflt   int32
	Nswap    int32
	Inblock  int32
	Oublock  int32
	Msgsnd   int32
	Msgrcv   int32
	Nsignals int32
	Nvcsw    int32
	Nivcsw   int32
}

type Rlimit struct {
	Cur uint64
	Max uint64
}

type _Gid_t uint32

type Stat_t struct {
	Dev       uint64
	X__pad1   uint16
	Pad_cgo_0 [2]byte
	X__st_ino uint32
	Mode      uint32
	Nlink     uint32
	Uid       uint32
	Gid       uint32
	Rdev      uint64
	X__pad2   uint16
	Pad_cgo_1 [2]byte
	Size      int64
	Blksize   int32
	Blocks    int64
	Atim      Timespec
	Mtim      Timespec
	Ctim      Timespec
	Ino       uint64
}

type Statfs_t struct {
	Type    int32
	Bsize   int32
	Blocks  uint64
	Bfree   uint64
	Bavail  uint64
	Files   uint64
	Ffree   uint64
	Fsid    Fsid
	Namelen int32
	Frsize  int32
	Flags   int32
	Spare   [4]int32
}

type Dirent struct {
	Ino       uint64
	Off       int64
	Reclen    uint16
	Type      uint8
	Name      [256]int8
	Pad_cgo_0 [1]byte
}

type Fsid struct {
	X__val [2]int32
}

type Flock_t struct {
	Type   int16
	Whence int16
	Start  int64
	Len    int64
	Pid    int32
}

const (
	FADV_NORMAL     = 0x0
	FADV_RANDOM     = 0x1
	FADV_SEQUENTIAL = 0x2
	FADV_WILLNEED   = 0x3
	FADV_DONTNEED   = 0x4
	FADV_NOREUSE    = 0x5
)

type RawSockaddrInet4 struct {
	Family uint16
	Port   uint16
	Addr   [4]byte /* in_addr */
	Zero   [8]uint8
}

type RawSockaddrInet6 struct {
	Family   uint16
	Port     uint16
	Flowinfo uint32
	Addr     [16]byte /* in6_addr */
	Scope_id uint32
}

type RawSockaddrUnix struct {
	Family uint16
	Path   [108]int8
}

type RawSockaddrLinklayer struct {
	Family   uint16
	Protocol uint16
	Ifindex  int32
	Hatype   uint16
	Pkttype  uint8
	Halen    uint8
	Addr     [8]uint8
}

type RawSockaddrNetlink struct {
	Family uint16
	Pad    uint16
	Pid    uint32
	Groups uint32
}

type RawSockaddrHCI struct {
	Family  uint16
	Dev     uint16
	Channel uint16
}

type RawSockaddr struct {
	Family uint16
	Data   [14]int8
}

type RawSockaddrAny struct {
	Addr RawSockaddr
	Pad  [96]int8
}

type _Socklen uint32

type Linger struct {
	Onoff  int32
	Linger int32
}

type Iovec struct {
	Base *byte
	Len  uint32
}

type IPMreq struct {
	Multiaddr [4]byte /* in_addr */
	Interface [4]byte /* in_addr */
}

type IPMreqn struct {
	Multiaddr [4]byte /* in_addr */
	Address   [4]byte /* in_addr */
	Ifindex   int32
}

type IPv6Mreq struct {
	Multiaddr [16]byte /* in6_addr */
	Interface uint32
}

type Msghdr struct {
	Name       *byte
	Namelen    uint32
	Iov        *Iovec
	Iovlen     uint32
	Control    *byte
	Controllen uint32
	Flags      int32
}

type Cmsghdr struct {
	Len          uint32
	Level        int32
	Type         int32
	X__cmsg_data [0]uint8
}

type Inet4Pktinfo struct {
	Ifindex  int32
	Spec_dst [4]byte /* in_addr */
	Addr     [4]byte /* in_addr */
}

type Inet6Pktinfo struct {
	Addr    [16]byte /* in6_addr */
	Ifindex uint32
}

type IPv6MTUInfo struct {
	Addr RawSockaddrInet6
	Mtu  uint32
}

type ICMPv6Filter struct {
	Data [8]uint32
}

type Ucred struct {
	Pid int32
	Uid uint32
	Gid uint32
}

type TCPInfo struct {
	State          uint8
	Ca_state       uint8
	Retransmits    uint8
	Probes         uint8
	Backoff        uint8
	Options        uint8
	Pad_cgo_0      [2]byte
	Rto            uint32
	Ato            uint32
	Snd_mss        uint32
	Rcv_mss        uint32
	Unacked        uint32
	Sacked         uint32
	Lost           uint32
	Retrans        uint32
	Fackets        uint32
	Last_data_sent uint32
	Last_ack_sent  uint32
	Last_data_recv uint32
	Last_ack_recv  uint32
	Pmtu           uint32
	Rcv_ssthresh   uint32
	Rtt            uint32
	Rttvar         uint32
	Snd_ssthresh   uint32
	Snd_cwnd       uint32
	Advmss         uint32
	Reordering     uint32
	Rcv_rtt        uint32
	Rcv_space      uint32
	Total_retrans  uint32
}

const (
	SizeofSockaddrInet4     = 0x10
	SizeofSockaddrInet6     = 0x1c
	SizeofSockaddrAny       = 0x70
	SizeofSockaddrUnix      = 0x6e
	SizeofSockaddrLinklayer = 0x14
	SizeofSockaddrNetlink   = 0xc
	SizeofSockaddrHCI       = 0x6
	SizeofLinger            = 0x8
	SizeofIPMreq            = 0x8
	SizeofIPMreqn           = 0xc
	SizeofIPv6Mreq          = 0x14
	SizeofMsghdr            = 0x1c
	SizeofCmsghdr           = 0xc
	SizeofInet4Pktinfo      = 0xc
	SizeofInet6Pktinfo      = 0x14
	SizeofIPv6MTUInfo       = 0x20
	SizeofICMPv6Filter      = 0x20
	SizeofUcred             = 0xc
	SizeofTCPInfo           = 0x68
)

const (
	IFA_UNSPEC          = 0x0
	IFA_ADDRESS         = 0x1
	IFA_LOCAL           = 0x2
	IFA_LABEL           = 0x3
	IFA_BROADCAST       = 0x4
	IFA_ANYCAST         = 0x5
	IFA_CACHEINFO       = 0x6
	IFA_MULTICAST       = 0x7
	IFLA_UNSPEC         = 0x0
	IFLA_ADDRESS        = 0x1
	IFLA_BROADCAST      = 0x2
	IFLA_IFNAME         = 0x3
	IFLA_MTU            = 0x4
	IFLA_LINK           = 0x5
	IFLA_QDISC          = 0x6
	IFLA_STATS          = 0x7
	IFLA_COST           = 0x8
	IFLA_PRIORITY       = 0x9
	IFLA_MASTER         = 0xa
	IFLA_WIRELESS       = 0xb
	IFLA_PROTINFO       = 0xc
	IFLA_TXQLEN         = 0xd
	IFLA_MAP            = 0xe
	IFLA_WEIGHT         = 0xf
	IFLA_OPERSTATE      = 0x10
	IFLA_LINKMODE       = 0x11
	IFLA_LINKINFO       = 0x12
	IFLA_NET_NS_PID     = 0x13
	IFLA_IFALIAS        = 0x14
	IFLA_MAX            = 0x1d
	RT_SCOPE_UNIVERSE   = 0x0
	RT_SCOPE_SITE       = 0xc8
	RT_SCOPE_LINK       = 0xfd
	RT_SCOPE_HOST       = 0xfe
	RT_SCOPE_NOWHERE    = 0xff
	RT_TABLE_UNSPEC     = 0x0
	RT_TABLE_COMPAT     = 0xfc
	RT_TABLE_DEFAULT    = 0xfd
	RT_TABLE_MAIN       = 0xfe
	RT_TABLE_LOCAL      = 0xff
	RT_TABLE_MAX        = 0xffffffff
	RTA_UNSPEC          = 0x0
	RTA_DST             = 0x1
	RTA_SRC             = 0x2
	RTA_IIF             = 0x3
	RTA_OIF             = 0x4
	RTA_GATEWAY         = 0x5
	RTA_PRIORITY        = 0x6
	RTA_PREFSRC         = 0x7
	RTA_METRICS         = 0x8
	RTA_MULTIPATH       = 0x9
	RTA_FLOW            = 0xb
	RTA_CACHEINFO       = 0xc
	RTA_TABLE           = 0xf
	RTN_UNSPEC          = 0x0
	RTN_UNICAST         = 0x1
	RTN_LOCAL           = 0x2
	RTN_BROADCAST       = 0x3
	RTN_ANYCAST         = 0x4
	RTN_MULTICAST       = 0x5
	RTN_BLACKHOLE       = 0x6
	RTN_UNREACHABLE     = 0x7
	RTN_PROHIBIT        = 0x8
	RTN_THROW           = 0x9
	RTN_NAT             = 0xa
	RTN_XRESOLVE        = 0xb
	RTNLGRP_NONE        = 0x0
	RTNLGRP_LINK        = 0x1
	RTNLGRP_NOTIFY      = 0x2
	RTNLGRP_NEIGH       = 0x3
	RTNLGRP_TC          = 0x4
	RTNLGRP_IPV4_IFADDR = 0x5
	RTNLGRP_IPV4_MROUTE = 0x6
	RTNLGRP_IPV4_ROUTE  = 0x7
	RTNLGRP_IPV4_RULE   = 0x8
	RTNLGRP_IPV6_IFADDR = 0x9
	RTNLGRP_IPV6_MROUTE = 0xa
	RTNLGRP_IPV6_ROUTE  = 0xb
	RTNLGRP_IPV6_IFINFO = 0xc
	RTNLGRP_IPV6_PREFIX = 0x12
	RTNLGRP_IPV6_RULE   = 0x13
	RTNLGRP_ND_USEROPT  = 0x14
	SizeofNlMsghdr      = 0x10
	SizeofNlMsgerr      = 0x14
	SizeofRtGenmsg      = 0x1
	SizeofNlAttr        = 0x4
	SizeofRtAttr        = 0x4
	SizeofIfInfomsg     = 0x10
	SizeofIfAddrmsg     = 0x8
	SizeofRtMsg         = 0xc
	SizeofRtNexthop     = 0x8
)

type NlMsghdr struct {
	Len   uint32
	Type  uint16
	Flags uint16
	Seq   uint32
	Pid   uint32
}

type NlMsgerr struct {
	Error int32
	Msg   NlMsghdr
}

type RtGenmsg struct {
	Family uint8
}

type NlAttr struct {
	Len  uint16
	Type uint16
}

type RtAttr struct {
	Len  uint16
	Type uint16
}

type IfInfomsg struct {
	Family     uint8
	X__ifi_pad uint8
	Type       uint16
	Index      int32
	Flags      uint32
	Change     uint32
}

type IfAddrmsg struct {
	Family    uint8
	Prefixlen uint8
	Flags     uint8
	Scope     uint8
	Index     uint32
}

type RtMsg struct {
	Family   uint8
	Dst_len  uint8
	Src_len  uint8
	Tos      uint8
	Table    uint8
	Protocol uint8
	Scope    uint8
	Type     uint8
	Flags    uint32
}

type RtNexthop struct {
	Len     uint16
	Flags   uint8
	Hops    uint8
	Ifindex int32
}

const (
	SizeofSockFilter = 0x8
	SizeofSockFprog  = 0x8
)

type SockFilter struct {
	Code uint16
	Jt   uint8
	Jf   uint8
	K    uint32
}

type SockFprog struct {
	Len       uint16
	Pad_cgo_0 [2]byte
	Filter    *SockFilter
}

type InotifyEvent struct {
	Wd     int32
	Mask   uint32
	Cookie uint32
	Len    uint32
	Name   [0]int8
}

const SizeofInotifyEvent = 0x10

type PtraceRegs struct {
	Ebx      int32
	Ecx      int32
	Edx      int32
	Esi      int32
	Edi      int32
	Ebp      int32
	Eax      int32
	Xds      int32
	Xes      int32
	Xfs      int32
	Xgs      int32
	Orig_eax int32
	Eip      int32
	Xcs      int32
	Eflags   int32
	Esp      int32
	Xss      int32
}

type FdSet struct {
	Bits [32]int32
}

type Sysinfo_t struct {
	Uptime    int32
	Loads     [3]uint32
	Totalram  uint32
	Freeram   uint32
	Sharedram uint32
	Bufferram uint32
	Totalswap uint32
	Freeswap  uint32
	Procs     uint16
	Pad       uint16
	Totalhigh uint32
	Freehigh  uint32
	Unit      uint32
	X_f       [8]int8
}

type Utsname struct {
	Sysname    [65]int8
	Nodename   [65]int8
	Release    [65]int8
	Version    [65]int8
	Machine    [65]int8
	Domainname [65]int8
}

type Ustat_t struct {
	Tfree  int32
	Tinode uint32
	Fname  [6]int8
	Fpack  [6]int8
}

type EpollEvent struct {
	Events uint32
	Fd     int32
	Pad    int32
}

const (
	AT_FDCWD            = -0x64
	AT_REMOVEDIR        = 0x200
	AT_SYMLINK_FOLLOW   = 0x400
	AT_SYMLINK_NOFOLLOW = 0x100
)

type PollFd struct {
	Fd      int32
	Events  int16
	Revents int16
}

const (
	POLLIN    = 0x1
	POLLPRI   = 0x2
	POLLOUT   = 0x4
	POLLRDHUP = 0x2000
	POLLERR   = 0x8
	POLLHUP   = 0x10
	POLLNVAL  = 0x20
)

type Sigset_t struct {
	X__val [16]uint64
}

type Termios struct {
	Iflag  uint32
	Oflag  uint32
	Cflag  uint32
	Lflag  uint32
	Line   uint8
	Cc     [19]uint8
	Ispeed uint32
	Ospeed uint32
}


import Vue from 'vue'
import eventBus from '@/plugins/event-bus'
import { create as createEventsSandbox } from '@/services/plugin-manager/sandbox/events-sandbox'

Vue.prototype.$eventBus = eventBus

describe('Events Sandbox', () => {
  let app
  let walletApi
  beforeEach(() => {
    walletApi = {}
    app = new Vue()
    createEventsSandbox(walletApi, app)()
  })

  it('should expose functions', () => {
    expect(walletApi.eventBus).toBeTruthy()
  })

  describe('on', () => {
    it('should enable and trigger event', async () => {
      const eventTriggerMock = jest.fn()
      walletApi.eventBus.on('test:event', eventTriggerMock)

      expect(eventTriggerMock).toHaveBeenCalledTimes(0)

      await app.$eventBus.emit('test:event')
      await app.$eventBus.emit('test:event')
      await app.$eventBus.emit('test:event')

      expect(eventTriggerMock).toHaveBeenCalledTimes(3)
    })

    it('should allow regex', async () => {
      const eventTriggerMock = jest.fn()
      walletApi.eventBus.on(/test:event:\d/, eventTriggerMock)

      expect(eventTriggerMock).toHaveBeenCalledTimes(0)

      await app.$eventBus.emit('test:event:1')
      await app.$eventBus.emit('test:event:2')
      await app.$eventBus.emit('test:event:3')

      expect(eventTriggerMock).toHaveBeenCalledTimes(3)
    })
  })

  describe('off', () => {
    it('should disable event', async () => {
      const eventTriggerMock = jest.fn()
      walletApi.eventBus.on('test:event', eventTriggerMock)

      await app.$eventBus.emit('test:event')

      expect(eventTriggerMock).toHaveBeenCalledTimes(1)

      walletApi.eventBus.off('test:event', eventTriggerMock)
      eventTriggerMock.mockReset()

      await app.$eventBus.emit('test:event')
      await app.$eventBus.emit('test:event')
      await app.$eventBus.emit('test:event')

      expect(eventTriggerMock).toHaveBeenCalledTimes(0)
    })

    it('should disable regex', async () => {
      const eventTriggerMock = jest.fn()
      walletApi.eventBus.on(/test:event:\d/, eventTriggerMock)

      expect(eventTriggerMock).toHaveBeenCalledTimes(0)

      await app.$eventBus.emit('test:event:1')
      await app.$eventBus.emit('test:event:2')
      await app.$eventBus.emit('test:event:3')

      expect(eventTriggerMock).toHaveBeenCalledTimes(3)

      walletApi.eventBus.off(/test:event:\d/, eventTriggerMock)
      eventTriggerMock.mockReset()

      await app.$eventBus.emit('test:event:1')
      await app.$eventBus.emit('test:event:2')
      await app.$eventBus.emit('test:event:3')

      expect(eventTriggerMock).toHaveBeenCalledTimes(0)
    })
  })

  describe('destroy', () => {
    it('should clear all events', async () => {
      const eventTriggerMock = jest.fn()
      walletApi.eventBus.on('test:event:1', eventTriggerMock)
      walletApi.eventBus.on('test:event:2', eventTriggerMock)
      walletApi.eventBus.on('test:event:3', eventTriggerMock)

      await app.$eventBus.emit('test:event:1')
      await app.$eventBus.emit('test:event:2')
      await app.$eventBus.emit('test:event:3')

      expect(eventTriggerMock).toHaveBeenCalledTimes(3)

      walletApi.eventBus.destroy()
      eventTriggerMock.mockReset()

      await app.$eventBus.emit('test:event:1')
      await app.$eventBus.emit('test:event:2')
      await app.$eventBus.emit('test:event:3')

      expect(eventTriggerMock).toHaveBeenCalledTimes(0)
    })
  })
})


---
title: "Quadtree - Part 2"
redirect_from: CodingChallenges/98.2-quadtree.html
video_number: 98.2
date: 2018-03-28
video_id: QQx_NmCIuCY
repository: CC_098.1_QuadTree
web_editor: g7LnWQ42x

links:
  - title: "Quadtree repo"
    url: "https://github.com/CodingTrain/QuadTree"
  - title: "Quadtree on Wikipedia"
    url: "https://en.wikipedia.org/wiki/Quadtree"

videos:
  - title: "Quadtrees Live Stream Archive"
    video_id: "MxnqJGwu2cc"
  - title: "Frogger Coding Challenge"
    url: "/CodingChallenges/072.1-frogger"

parts:
  - title: "Quadtree - Part 1"
    url: "/CodingChallenges/098.1-quadtree"
  - title: "Quadtree - Part 3"
    url: "/CodingChallenges/098.3-quadtree"
---

In part 2 of the Quadtree coding challenge, I query the data structure for points contained within a rectangular boundary.


#ifndef EXCITE_FPGA_H_INCLUDED
#define EXCITE_FPGA_H_INCLUDED

/**
 * Adress alignment of the individual FPGA bytes.
 * The address arrangement of the individual bytes of the FPGA is two
 * byte aligned at the embedded MK2 platform.
 */
#ifdef EXCITE_CCI_FPGA_MK2
typedef unsigned char excite_cci_fpga_align_t __attribute__ ((aligned(2)));
#else
typedef unsigned char excite_cci_fpga_align_t;
#endif

/**
 * Size of Dual Ported RAM.
 */
#define EXCITE_DPR_SIZE 263

/**
 * Size of Reserved Status Fields in Dual Ported RAM.
 */
#define EXCITE_DPR_STATUS_SIZE 7

/**
 * FPGA.
 * Hardware register layout of the FPGA interface. The FPGA must accessed
 * byte wise solely.
 * @see EXCITE_CCI_DPR_MK2
 */
typedef struct excite_fpga {

	/**
	 * Dual Ported RAM.
	 */
	excite_cci_fpga_align_t dpr[EXCITE_DPR_SIZE];

	/**
	 * Status.
	 */
	excite_cci_fpga_align_t status[EXCITE_DPR_STATUS_SIZE];

#ifdef EXCITE_CCI_FPGA_MK2
	/**
	 * RM9000 Interrupt.
	 * Write access initiates interrupt at the RM9000 (MIPS) processor of the eXcite.
	 */
	excite_cci_fpga_align_t rm9k_int;
#else
	/**
	 * MK2 Interrupt.
	 * Write access initiates interrupt at the ARM processor of the MK2.
	 */
	excite_cci_fpga_align_t mk2_int;

	excite_cci_fpga_align_t gap[0x1000-0x10f];

	/**
	 * IRQ Source/Acknowledge.
	 */
	excite_cci_fpga_align_t rm9k_irq_src;

	/**
	 * IRQ Mask.
	 * Set bits enable the related interrupt.
	 */
	excite_cci_fpga_align_t rm9k_irq_mask;
#endif

} excite_fpga;

#endif	/* ndef EXCITE_FPGA_H_INCLUDED */


package com.wdjr.springboot.component;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginHandlerInterceptor implements HandlerInterceptor {

    //目标方法执行之前
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Object user = request.getSession().getAttribute("loginUser");
        if(user!=null){
            //已经登录
            return true;
        }
        //未经过验证
        request.setAttribute("msg", "没权限请先登录");
        request.getRequestDispatcher("/index.html").forward(request, response);

        return false;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}


<?xml version="1.0" encoding="utf-8"?>
<topic id="$guid1$" revisionNumber="1">
  <developerHowToDocument
    xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"
    xmlns:xlink="http://www.w3.org/1999/xlink">

    <!--
    <summary>
      <para>Optional summary abstract</para>
    </summary>
    -->

    <introduction>
      <para>Required introduction</para>
    </introduction>

    <!-- Optional procedures followed by optional code example but must have
         at least one procedure or code example -->
    <procedure>
      <title>Procedure title</title>
      <steps class="ordered">
        <step>
          <content>
            <para>First step</para>
          </content>
        </step>
        <step>
          <content>
            <para>Second step</para>
          </content>
        </step>
      </steps>
      <!-- <conclusion>Optional conclusion</conclusion> -->
    </procedure>

    <!-- <codeExample>Optional code example</codeExample> -->

    <!-- <buildInstructions>Optional instructions for building a
         code example.</buildInstructions> -->

    <!-- <robustProgramming>Optional discussion of error handling and other
         issues related to writing solid code.</robustProgramming> -->

    <!-- <security>Optional discussion of security issues.</security> -->

    <relatedTopics>
      <!-- One or more of the following:
           - A local link
           - An external link
           - A code entity reference

      <link xlink:href="Other Topic's ID">Link text</link>
      <externalLink>
          <linkText>Link text</linkText>
          <linkAlternateText>Optional alternate link text</linkAlternateText>
          <linkUri>URI</linkUri>
      </externalLink>
      <codeEntityReference>API member ID</codeEntityReference>

      Examples:

      <link xlink:href="00e97994-e9e6-46e0-b420-5be86b2f8278">Some other topic</link>

      <externalLink>
          <linkText>SHFB on GitHub</linkText>
          <linkAlternateText>Go to GitHub</linkAlternateText>
          <linkUri>https://GitHub.com/EWSoftware/SHFB</linkUri>
      </externalLink>

      <codeEntityReference>T:TestDoc.TestClass</codeEntityReference>
      <codeEntityReference>P:TestDoc.TestClass.SomeProperty</codeEntityReference>
      <codeEntityReference>M:TestDoc.TestClass.#ctor</codeEntityReference>
      <codeEntityReference>M:TestDoc.TestClass.#ctor(System.String,System.Int32)</codeEntityReference>
      <codeEntityReference>M:TestDoc.TestClass.ToString</codeEntityReference>
      <codeEntityReference>M:TestDoc.TestClass.FirstMethod</codeEntityReference>
      <codeEntityReference>M:TestDoc.TestClass.SecondMethod(System.Int32,System.String)</codeEntityReference>
      -->
    </relatedTopics>
  </developerHowToDocument>
</topic>