diff --git a/parsers/manifest_parser.go b/parsers/manifest_parser.go
index ff2124b..619cf91 100644
--- a/parsers/manifest_parser.go
+++ b/parsers/manifest_parser.go
@@ -649,7 +649,7 @@
 
 	if utils.IsDirectory(actionFilePath) {
 		zipFileName = actionFilePath + "." + runtimes.ZIP_FILE_EXTENSION
-		err := utils.NewZipWritter(actionFilePath, zipFileName).Zip()
+		err := utils.NewZipWritter(actionFilePath, zipFileName, action.Include, action.Exclude, filepath.Dir(manifestFilePath)).Zip()
 		if err != nil {
 			return actionFilePath, nil, err
 		}
diff --git a/parsers/yamlparser.go b/parsers/yamlparser.go
index 5f12370..4776e6e 100644
--- a/parsers/yamlparser.go
+++ b/parsers/yamlparser.go
@@ -114,8 +114,8 @@
 	Inputs      map[string]Parameter   `yaml:"inputs"`
 	Outputs     map[string]Parameter   `yaml:"outputs"`
 	Annotations map[string]interface{} `yaml:"annotations,omitempty"`
-	// TODO() this is propoagated from package to every action within that package
-	//Parameters  map[string]interface{} `yaml:parameters`
+	Include     [][]string             `yaml:"include,omitempty"`
+	Exclude     []string               `yaml:"exclude,omitempty"`
 }
 
 type Limits struct {
diff --git a/tests/dat/manifest_validate_inputs.yaml b/tests/dat/manifest_validate_inputs.yaml
new file mode 100644
index 0000000..4c721c8
--- /dev/null
+++ b/tests/dat/manifest_validate_inputs.yaml
@@ -0,0 +1,13 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
+packages:
+  helloworld:
+    actions:
+      helloNodejs:
+        function: actions/
+        runtime: nodejs:6
+        include:
+            - ["actions/hello.js"]
+            - ["actions/hello.js", "actions/hello.js"]
+            - ["actions/hello.js", "actions/hello.js", "actions/hello.js"]
diff --git a/tests/src/integration/zipactionwithexclude/actions/common/utils.js b/tests/src/integration/zipactionwithexclude/actions/common/utils.js
new file mode 100644
index 0000000..9abcf16
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/common/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Hello Dear";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithexclude/actions/greeting/index.js b/tests/src/integration/zipactionwithexclude/actions/greeting/index.js
new file mode 100644
index 0000000..e61d71a
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/greeting/index.js
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common = require('./common/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithexclude/actions/greeting/package.json b/tests/src/integration/zipactionwithexclude/actions/greeting/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/greeting/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithexclude/actions/index.js b/tests/src/integration/zipactionwithexclude/actions/index.js
new file mode 100644
index 0000000..e61d71a
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/index.js
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common = require('./common/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithexclude/actions/libs/lib1/utils.js b/tests/src/integration/zipactionwithexclude/actions/libs/lib1/utils.js
new file mode 100644
index 0000000..9abcf16
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/libs/lib1/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Hello Dear";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithexclude/actions/libs/lib2/utils.js b/tests/src/integration/zipactionwithexclude/actions/libs/lib2/utils.js
new file mode 100644
index 0000000..9abcf16
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/libs/lib2/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Hello Dear";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithexclude/actions/libs/lib3/utils.js b/tests/src/integration/zipactionwithexclude/actions/libs/lib3/utils.js
new file mode 100644
index 0000000..9abcf16
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/libs/lib3/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Hello Dear";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithexclude/actions/package.json b/tests/src/integration/zipactionwithexclude/actions/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/actions/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithexclude/manifest.yml b/tests/src/integration/zipactionwithexclude/manifest.yml
new file mode 100644
index 0000000..c79b83c
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/manifest.yml
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
+packages:
+    zipactionwithexclude:
+        version: 1.0
+        license: Apache-2.0
+        actions:
+            greeting1:
+                function: actions
+                runtime: nodejs:6
+                exclude:
+                    - actions/*
+                include:
+                    - ["actions/common/utils.js", "common/utils.js"]
+                    - ["actions/index.js", "index.js"]
+                    - ["actions/package.json", "package.json"]
+
diff --git a/tests/src/integration/zipactionwithexclude/zipactionwithexclude_test.go b/tests/src/integration/zipactionwithexclude/zipactionwithexclude_test.go
new file mode 100644
index 0000000..027285b
--- /dev/null
+++ b/tests/src/integration/zipactionwithexclude/zipactionwithexclude_test.go
@@ -0,0 +1,40 @@
+// +build integration
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests
+
+import (
+	"github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/common"
+	"github.com/stretchr/testify/assert"
+	"os"
+	"testing"
+)
+
+func TestZipActionWithExclude(t *testing.T) {
+	wskdeploy := common.NewWskdeploy()
+	_, err := wskdeploy.Deploy(manifestPath, deploymentPath)
+	assert.Equal(t, nil, err, "Failed to deploy based on the manifest and deployment files.")
+	_, err = wskdeploy.Undeploy(manifestPath, deploymentPath)
+	assert.Equal(t, nil, err, "Failed to undeploy based on the manifest and deployment files.")
+}
+
+var (
+	manifestPath   = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/zipactionwithexclude/manifest.yml"
+	deploymentPath = ""
+)
diff --git a/tests/src/integration/zipactionwithinclude/actions/common/utils.js b/tests/src/integration/zipactionwithinclude/actions/common/utils.js
new file mode 100644
index 0000000..9abcf16
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/common/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Hello Dear";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting1/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting1/index.js
new file mode 100644
index 0000000..af3597b
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting1/index.js
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common = require('./actions/common/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting1/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting1/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting1/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting10/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting10/index.js
new file mode 100644
index 0000000..85e3ed7
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting10/index.js
@@ -0,0 +1,23 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var lib1 = require('./actions/libs/lib1/utils.js')
+var lib2 = require('./actions/libs/lib2/utils.js')
+var lib3 = require('./actions/libs/lib3/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = lib1.hello || lib2.hello || lib3.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting10/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting10/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting10/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting2/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting2/index.js
new file mode 100644
index 0000000..3836539
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting2/index.js
@@ -0,0 +1,23 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common1 = require('./common/utils.js')
+var common2 = require('./common/common1/utils.js')
+var common3 = require('./common/common1/copyUtils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common1.hello || common2.hello || common3.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting2/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting2/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting2/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting3/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting3/index.js
new file mode 100644
index 0000000..ab9b3df
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting3/index.js
@@ -0,0 +1,22 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common1 = require('./common/utils.js')
+var common2 = require('./common/common1/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common1.hello || common2.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting3/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting3/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting3/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting4/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting4/index.js
new file mode 100644
index 0000000..e61d71a
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting4/index.js
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common = require('./common/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting4/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting4/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting4/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting5/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting5/index.js
new file mode 100644
index 0000000..e61d71a
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting5/index.js
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common = require('./common/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting5/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting5/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting5/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting6/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting6/index.js
new file mode 100644
index 0000000..af3597b
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting6/index.js
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var common = require('./actions/common/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = common.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting6/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting6/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting6/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting7/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting7/index.js
new file mode 100644
index 0000000..3461c69
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting7/index.js
@@ -0,0 +1,23 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var lib1 = require('./libs/lib1/utils.js')
+var lib2 = require('./libs/lib2/utils.js')
+var lib3 = require('./libs/lib3/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = lib1.hello || lib2.hello || lib3.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting7/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting7/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting7/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting8/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting8/index.js
new file mode 100644
index 0000000..3461c69
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting8/index.js
@@ -0,0 +1,23 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var lib1 = require('./libs/lib1/utils.js')
+var lib2 = require('./libs/lib2/utils.js')
+var lib3 = require('./libs/lib3/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = lib1.hello || lib2.hello || lib3.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting8/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting8/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting8/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting9/index.js b/tests/src/integration/zipactionwithinclude/actions/greeting9/index.js
new file mode 100644
index 0000000..85e3ed7
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting9/index.js
@@ -0,0 +1,23 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+/**
+ * Return a simple greeting message for someone.
+ *
+ * @param name A person's name.
+ * @param place Where the person is from.
+ */
+
+
+var lib1 = require('./actions/libs/lib1/utils.js')
+var lib2 = require('./actions/libs/lib2/utils.js')
+var lib3 = require('./actions/libs/lib3/utils.js')
+
+function main(params) {
+    var name = params.name || params.payload || 'stranger';
+    var place = params.place || 'somewhere';
+    var hello = lib1.hello || lib2.hello || lib3.hello || 'Hello';
+    return {payload:  hello + ', ' + name + ' from ' + place + '!'};
+}
+exports.main = main;
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/greeting9/package.json b/tests/src/integration/zipactionwithinclude/actions/greeting9/package.json
new file mode 100644
index 0000000..80cb6cd
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/greeting9/package.json
@@ -0,0 +1,6 @@
+{
+   "name": "my-action",
+   "main": "index.js",
+   "dependencies" : {
+   }
+}
diff --git a/tests/src/integration/zipactionwithinclude/actions/libs/lib1/utils.js b/tests/src/integration/zipactionwithinclude/actions/libs/lib1/utils.js
new file mode 100644
index 0000000..308416b
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/libs/lib1/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Good Morning";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/libs/lib2/utils.js b/tests/src/integration/zipactionwithinclude/actions/libs/lib2/utils.js
new file mode 100644
index 0000000..031e63e
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/libs/lib2/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Good Evening";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithinclude/actions/libs/lib3/utils.js b/tests/src/integration/zipactionwithinclude/actions/libs/lib3/utils.js
new file mode 100644
index 0000000..1fd7cf3
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/actions/libs/lib3/utils.js
@@ -0,0 +1,9 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+const hello = "Hello Afternoon";
+
+module.exports = {
+    hello: hello
+};
+
diff --git a/tests/src/integration/zipactionwithinclude/deployment.yml b/tests/src/integration/zipactionwithinclude/deployment.yml
new file mode 100644
index 0000000..dcd26c8
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/deployment.yml
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
+project:
+    packages:
+        zipactionwithinclude:
+            actions:
+                greeting1:
+                    inputs:
+                        name: Amy
+                        place: Vermont
+                greeting2:
+                    inputs:
+                        name: Bernie
+                        place: Paris
+                greeting3:
+                    inputs:
+                        name: Cindy
+                        place: New York
+                greeting4:
+                    inputs:
+                        name: Dough
+                        place: Spain
+                greeting5:
+                    inputs:
+                        name: Evya
+                        place: Japan
+
diff --git a/tests/src/integration/zipactionwithinclude/manifest.yml b/tests/src/integration/zipactionwithinclude/manifest.yml
new file mode 100644
index 0000000..6f0c298
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/manifest.yml
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
+packages:
+    zipactionwithinclude:
+        version: 1.0
+        license: Apache-2.0
+        actions:
+            greeting1:
+                function: actions/greeting1
+                runtime: nodejs:6
+                include:
+                    - []
+                    - ["actions/common/utils.js"]
+            greeting2:
+                function: actions/greeting2
+                runtime: nodejs:6
+                include:
+                    - ["actions/common/utils.js", "common/utils.js"]
+                    - ["actions/common/utils.js", "common/common1/utils.js"]
+                    - ["actions/common/utils.js", "common/common1/copyUtils.js"]
+            greeting3:
+                function: actions/greeting3
+                runtime: nodejs:6
+                include:
+                    - ["actions/common/", "common/"]
+                    - ["actions/common/", "common/common1/"]
+            greeting4:
+                function: actions/greeting4
+                runtime: nodejs:6
+                include:
+                    - ["actions/common/*.js", "common/"]
+            greeting5:
+                function: actions/greeting5
+                runtime: nodejs:6
+                include:
+                    - ["actions/common/utils.js", "./common/"]
+            greeting6:
+                function: actions/greeting6
+                runtime: nodejs:6
+                include:
+                    - ["actions/common/*.js"]
+            greeting7:
+                function: actions/greeting7
+                runtime: nodejs:6
+                include:
+                    - ["actions/libs/*", "libs/"]
+            greeting8:
+                function: actions/greeting8
+                runtime: nodejs:6
+                include:
+                    - ["actions/libs/*/utils.js", "libs/"]
+            greeting9:
+                function: actions/greeting9
+                runtime: nodejs:6
+                include:
+                    - ["actions/*/*/utils.js"]
+            greeting10:
+                function: actions/greeting10
+                runtime: nodejs:6
+                include:
+                    - ["actions/*/*/utils.js", "actions/"]
+
diff --git a/tests/src/integration/zipactionwithinclude/zipactionwithinclude_test.go b/tests/src/integration/zipactionwithinclude/zipactionwithinclude_test.go
new file mode 100644
index 0000000..4032f53
--- /dev/null
+++ b/tests/src/integration/zipactionwithinclude/zipactionwithinclude_test.go
@@ -0,0 +1,40 @@
+// +build integration
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests
+
+import (
+	"github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/common"
+	"github.com/stretchr/testify/assert"
+	"os"
+	"testing"
+)
+
+func TestZipActionWithInclude(t *testing.T) {
+	wskdeploy := common.NewWskdeploy()
+	_, err := wskdeploy.Deploy(manifestPath, deploymentPath)
+	assert.Equal(t, nil, err, "Failed to deploy based on the manifest and deployment files.")
+	_, err = wskdeploy.Undeploy(manifestPath, deploymentPath)
+	assert.Equal(t, nil, err, "Failed to undeploy based on the manifest and deployment files.")
+}
+
+var (
+	manifestPath   = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/zipactionwithinclude/manifest.yml"
+	deploymentPath = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/zipactionwithinclude/deployment.yml"
+)
diff --git a/utils/file.go b/utils/file.go
new file mode 100644
index 0000000..4155358
--- /dev/null
+++ b/utils/file.go
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package utils
+
+import (
+	"io"
+	"io/ioutil"
+	"os"
+	"path"
+	"path/filepath"
+
+	"github.com/apache/incubator-openwhisk-wskdeploy/wskprint"
+)
+
+// check if the path represents file path or dir path
+func isFilePath(path string) bool {
+	// when split returns dir and file, splitting path on the final "/"
+	// check if file is not empty to classify that path as a file path
+	_, file := filepath.Split(path)
+	if len(file) == 0 {
+		return false
+	}
+	return true
+}
+
+// check if the given path exists as a file
+func isFile(path string) (bool, error) {
+	var err error
+	var info os.FileInfo
+	// run stat on the file and if the it returns no error,
+	// read the fileInfo to check if its a file or not
+	if info, err = os.Stat(path); err == nil {
+		if info.Mode().IsRegular() {
+			return true, nil
+		}
+	}
+	// stat returned an error and here we are chekcking if it was os.PathError
+	if !os.IsNotExist(err) {
+		return false, nil
+	}
+	// after running through all the possible checks, return false and an err
+	return false, err
+}
+
+// copy one single source file to the destination path
+func copyFile(src, dst string) error {
+	var err error
+	var sourceFD *os.File
+	var destFD *os.File
+	var srcInfo os.FileInfo
+	var srcDirInfo os.FileInfo
+
+	wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, "Source File ["+src+"] is being copied to ["+dst+"]")
+
+	// open source file to read it from disk and defer to close the file
+	// once this function is done executing
+	if sourceFD, err = os.Open(src); err != nil {
+		return err
+	}
+	defer sourceFD.Close()
+
+	// running stat on Dir(src), Dir returns all but the last element of the src
+	// this info is needed in case when a destination path has a directory structure which does not exist
+	if srcDirInfo, err = os.Stat(filepath.Dir(src)); err != nil {
+		return err
+	}
+
+	// check if the parent directory exist before creating a destination file
+	// create specified path along with creating any parent directory
+	// e.g. when destination is greeting/common/utils.js and parent dir common
+	// doesn't exist, its getting created here at greeting/common
+	if _, err = os.Stat(filepath.Dir(dst)); os.IsNotExist(err) {
+		wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, "Creating directory pattern ["+filepath.Dir(dst)+"] before creating destination file")
+		if err = os.MkdirAll(filepath.Dir(dst), srcDirInfo.Mode()); err != nil {
+			return err
+		}
+	}
+
+	// create destination file before copying source content
+	// defer closing the destination file until the function is done executing
+	if destFD, err = os.Create(dst); err != nil {
+		return err
+	}
+	defer destFD.Close()
+
+	// now, actually copy the source file content into destination file
+	if _, err = io.Copy(destFD, sourceFD); err != nil {
+		return err
+	}
+
+	// retrieve the file mode bits of the source file
+	// so that the bits can be set to the destination file
+	if srcInfo, err = os.Stat(src); err != nil {
+		return err
+	}
+	return os.Chmod(dst, srcInfo.Mode())
+}
+
+// recursively copy the entire source directory to destination path
+func copyDir(src, dst string) error {
+	var err error
+	var fileDescriptors []os.FileInfo
+	var srcInfo os.FileInfo
+
+	// retrieve os.fileInfo of the source directory
+	if srcInfo, err = os.Stat(src); err != nil {
+		return err
+	}
+
+	// create destination directory with parent directories
+	if err = os.MkdirAll(dst, srcInfo.Mode()); err != nil {
+		return err
+	}
+
+	// now, retrieve all the directory/file entries under the source directory
+	if fileDescriptors, err = ioutil.ReadDir(src); err != nil {
+		return err
+	}
+
+	// iterating over the entire list of files/directories under the destination path
+	// run copyFile or recursive copyDir based on if its file or dir
+	for _, fd := range fileDescriptors {
+		srcFilePath := path.Join(src, fd.Name())
+		dstFilePath := path.Join(dst, fd.Name())
+
+		if fd.IsDir() {
+			if err = copyDir(srcFilePath, dstFilePath); err != nil {
+				return err
+			}
+		} else {
+			if err = copyFile(srcFilePath, dstFilePath); err != nil {
+				return err
+			}
+		}
+	}
+	return nil
+}
diff --git a/utils/file_test.go b/utils/file_test.go
new file mode 100644
index 0000000..cb8f98d
--- /dev/null
+++ b/utils/file_test.go
@@ -0,0 +1,85 @@
+// +build unit
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package utils
+
+import (
+	"fmt"
+	"github.com/stretchr/testify/assert"
+	"testing"
+)
+
+const IS_FILE_PATH_FAILURE_FOR_FILE = "Failed to classify the file path [%s] as file."
+const IS_FILE_PATH_FAILURE_FOR_DIR = "Failed to classify the dir path [%s] as dir."
+const IS_FILE_PATH_FAILURE_FOR_EMPTY_PATH = "Failed to classify empty path [%s] as dir."
+const IS_FILE_FAILURE_FOR_FILE = "Failed to detect if the path [%s] is a valid file."
+const IS_FILE_FAILURE_FOR_DIR = "Failed to detect if the path [%s] is a dir."
+const TEST_ERROR_IS_FILE_FAILURE = "Failed to run isFile on [%s] Error: %s"
+
+func TestIsFilePath(t *testing.T) {
+	paths := []string{
+		"",
+		"/home/arnie/amelia.jpg",
+		"/mnt/photos/",
+		"rabbit.jpg",
+		"/usr/local//go",
+		"common/actions/*.js/",
+		"common/*/actions/*/code/*.js",
+		"common/actions/",
+	}
+	for _, p := range paths {
+		switch p {
+		case "":
+			assert.False(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_EMPTY_PATH, p))
+		case "/home/arnie/amelia.jpg":
+			assert.True(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_FILE, p))
+		case "/mnt/photos/":
+			assert.False(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_DIR, p))
+		case "rabbit.jpg":
+			assert.True(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_FILE, p))
+		case "/usr/local//go":
+			assert.True(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_FILE, p))
+		case "common/actions/*.js/":
+			assert.False(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_DIR, p))
+		case "common/*/actions/*/code/*.js":
+			assert.True(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_FILE, p))
+		case "common/actions/":
+			assert.False(t, isFilePath(p), fmt.Sprintf(IS_FILE_PATH_FAILURE_FOR_DIR, p))
+		}
+	}
+}
+
+func TestIsFile(t *testing.T) {
+	paths := []string{
+		"../tests/dat/",
+		"../tests/dat/manifest_hello_swift.yaml",
+	}
+	for _, p := range paths {
+		f, err := isFile(p)
+		if err != nil {
+			assert.Fail(t, fmt.Sprintf(TEST_ERROR_IS_FILE_FAILURE, p, err.Error()))
+		}
+		switch p {
+		case "tests/dat/":
+			assert.False(t, f, fmt.Sprintf(IS_FILE_FAILURE_FOR_FILE, p))
+		case "tests/dat/manifest_hello_swift.yaml":
+			assert.True(t, f, fmt.Sprintf(IS_FILE_FAILURE_FOR_FILE, p))
+		}
+	}
+}
diff --git a/utils/misc.go b/utils/misc.go
index 81ea403..715db30 100644
--- a/utils/misc.go
+++ b/utils/misc.go
@@ -18,15 +18,12 @@
 package utils
 
 import (
-	"archive/zip"
 	"encoding/json"
-	"io"
 	"io/ioutil"
 	"net/http"
 	"os"
 	"os/user"
 	"path"
-	"path/filepath"
 	"strings"
 
 	"github.com/apache/incubator-openwhisk-client-go/whisk"
@@ -99,62 +96,6 @@
 	return string(bytes), nil
 }
 
-func NewZipWritter(src, des string) *ZipWritter {
-	zw := &ZipWritter{src: src, des: des}
-	return zw
-}
-
-type ZipWritter struct {
-	src        string
-	des        string
-	zipWritter *zip.Writer
-}
-
-func (zw *ZipWritter) zipFile(path string, f os.FileInfo, err error) error {
-	if err != nil {
-		return err
-	}
-	if !f.Mode().IsRegular() || f.Size() == 0 {
-		return nil
-	}
-	file, err := os.Open(path)
-	if err != nil {
-		return err
-	}
-	defer file.Close()
-
-	fileName := strings.TrimPrefix(path, zw.src+"/")
-	wr, err := zw.zipWritter.Create(fileName)
-	if err != nil {
-		return err
-	}
-
-	_, err = io.Copy(wr, file)
-	if err != nil {
-		return err
-	}
-	return nil
-}
-
-func (zw *ZipWritter) Zip() error {
-	// create zip file
-	zipFile, err := os.Create(zw.des)
-	if err != nil {
-		return err
-	}
-	defer zipFile.Close()
-	zw.zipWritter = zip.NewWriter(zipFile)
-	err = filepath.Walk(zw.src, zw.zipFile)
-	if err != nil {
-		return nil
-	}
-	err = zw.zipWritter.Close()
-	if err != nil {
-		return err
-	}
-	return nil
-}
-
 func GetManifestFilePath(projectPath string) string {
 	if _, err := os.Stat(path.Join(projectPath, ManifestFileNameYaml)); err == nil {
 		return path.Join(projectPath, ManifestFileNameYaml)
diff --git a/utils/misc_test.go b/utils/misc_test.go
index 72d518b..4f92be2 100644
--- a/utils/misc_test.go
+++ b/utils/misc_test.go
@@ -61,7 +61,7 @@
 func TestNewZipWritter(t *testing.T) {
 	filePath := "../tests/src/integration/zipaction/actions/cat"
 	zipName := filePath + ".zip"
-	err := NewZipWritter(filePath, zipName).Zip()
+	err := NewZipWritter(filePath, zipName, make([][]string, 0), make([]string, 0), "").Zip()
 	defer os.Remove(zipName)
 	assert.Equal(t, nil, err, "zip folder error happened.")
 }
diff --git a/utils/zip.go b/utils/zip.go
new file mode 100644
index 0000000..a818bc0
--- /dev/null
+++ b/utils/zip.go
@@ -0,0 +1,363 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package utils
+
+import (
+	"archive/zip"
+	"io"
+	"os"
+	"path/filepath"
+	"strings"
+
+	"github.com/apache/incubator-openwhisk-wskdeploy/wski18n"
+	"github.com/apache/incubator-openwhisk-wskdeploy/wskprint"
+)
+
+const PATH_WILDCARD = "*"
+const ONE_DIR_UP = "../"
+
+func NewZipWritter(src string, des string, include [][]string, exclude []string, manifestFilePath string) *ZipWritter {
+	zw := &ZipWritter{
+		src:              src,
+		des:              des,
+		include:          include,
+		exclude:          exclude,
+		excludedFiles:    make(map[string]bool, 0),
+		manifestFilePath: manifestFilePath,
+	}
+	return zw
+}
+
+type ZipWritter struct {
+	src              string
+	des              string
+	include          [][]string
+	exclude          []string
+	excludedFiles    map[string]bool
+	manifestFilePath string
+	zipWritter       *zip.Writer
+}
+
+type Include struct {
+	source      string
+	destination string
+}
+
+func (zw *ZipWritter) zipFile(path string, f os.FileInfo, err error) error {
+	var file *os.File
+	var wr io.Writer
+	var verboseMsg string
+
+	if err != nil {
+		return err
+	}
+
+	if zw.excludedFiles[filepath.Clean(path)] {
+		verboseMsg = wski18n.T(wski18n.ID_VERBOSE_ZIP_EXCLUDING_FILE_X_path_X,
+			map[string]interface{}{
+				wski18n.KEY_PATH: path,
+			})
+		wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+		return nil
+	}
+
+	if !f.Mode().IsRegular() || f.Size() == 0 {
+		return nil
+	}
+	if file, err = os.Open(path); err != nil {
+		return err
+	}
+	defer file.Close()
+
+	fileName := strings.TrimPrefix(path, zw.src+"/")
+	if wr, err = zw.zipWritter.Create(fileName); err != nil {
+		return err
+	}
+
+	if _, err = io.Copy(wr, file); err != nil {
+		return err
+	}
+	verboseMsg = wski18n.T(wski18n.ID_VERBOSE_ZIP_ADDING_FILE_X_path_X,
+		map[string]interface{}{
+			wski18n.KEY_PATH: path,
+		})
+	wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+	return nil
+}
+
+func (zw *ZipWritter) buildIncludeMetadata() ([]Include, error) {
+	var includeInfo []Include
+	var listOfSourceFiles []string
+	var err error
+	var verboseMsg string
+
+	// iterate over set of included files specified in manifest YAML e.g.
+	// include:
+	// - ["source"]
+	// - ["source", "destination"]
+	for _, includeData := range zw.include {
+		var i Include
+		// if "destination" is not specified, its considered same as "source"
+		// "source" is relative to where manifest.yaml file is located
+		// relative source path is converted to absolute path by appending manifest path
+		// since the relative source path might not be accessible from where wskdeploy is invoked
+		// "destination" is relative to the action directory, the one specified in function
+		// relative path is converted to absolute path by appending function directory
+		if len(includeData) == 1 {
+			i.source = filepath.Join(zw.manifestFilePath, includeData[0])
+			i.destination = filepath.Join(zw.src, includeData[0])
+			verboseMsg = wski18n.T(wski18n.ID_VERBOSE_ZIP_INCLUDE_SOURCE_PATH_X_path_X,
+				map[string]interface{}{
+					wski18n.KEY_PATH: includeData[0],
+				})
+			wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+		} else if len(includeData) == 2 {
+			i.source = filepath.Join(zw.manifestFilePath, includeData[0])
+			i.destination = zw.src + "/" + includeData[1]
+			verboseMsg = wski18n.T(wski18n.ID_VERBOSE_ZIP_INCLUDE_SOURCE_PATH_X_path_X_DESTINATION_PATH_X_dest_X,
+				map[string]interface{}{
+					wski18n.KEY_PATH:        includeData[0],
+					wski18n.KEY_DESTINATION: includeData[1],
+				})
+		} else {
+			if len(includeData) == 0 {
+				verboseMsg = wski18n.T(wski18n.ID_VERBOSE_INVALID_INCLUDE_ENTRY,
+					map[string]interface{}{
+						wski18n.KEY_INCLUDE: "",
+					})
+				wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+			} else {
+				for index, d := range includeData {
+					includeData[index] = "\"" + d + "\""
+				}
+				includeEntry := strings.Join(includeData, ", ")
+				verboseMsg = wski18n.T(wski18n.ID_VERBOSE_INVALID_INCLUDE_ENTRY,
+					map[string]interface{}{
+						wski18n.KEY_INCLUDE: includeEntry,
+					})
+				wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+			}
+			continue
+		}
+
+		// set destDir to the destination location
+		// check if its a file than change it to the Dir of destination file
+		destDir := i.destination
+		if isFilePath(destDir) {
+			destDir = filepath.Dir(destDir)
+		}
+		// trim path wildcard "*" from the destination path as if it has any
+		destDirs := strings.Split(destDir, PATH_WILDCARD)
+		destDir = destDirs[0]
+
+		// retrieve the name of all files matching pattern or nil if there is no matching file
+		// listOfSourceFiles will hold a list of files matching patterns such as
+		// actions/* or actions/libs/* or actions/libs/*/utils.js or actions/*/*/utils.js
+		if listOfSourceFiles, err = filepath.Glob(i.source); err != nil {
+			return includeInfo, err
+		}
+
+		// handle the scenarios where included path is something similar to actions/common/*.js
+		// or actions/libs/* or actions/libs/*/utils.js
+		// and destination is set to libs/ or libs/* or ./libs/* or libs/*/utils.js or libs/ or ./libs/
+		if strings.ContainsAny(i.source, PATH_WILDCARD) {
+			wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, wski18n.T(wski18n.ID_VERBOSE_LIST_OF_FILES_MATCHING_PATTERN))
+			for _, file := range listOfSourceFiles {
+				var relPath string
+				if relPath, err = filepath.Rel(i.source, file); err != nil {
+					return includeInfo, err
+				}
+				relPath = strings.TrimLeft(relPath, ONE_DIR_UP)
+				j := Include{
+					source:      file,
+					destination: filepath.Join(destDir, relPath),
+				}
+				includeInfo = append(includeInfo, j)
+				zw.excludedFiles[j.source] = false
+				verboseMsg = wski18n.T(wski18n.ID_VERBOSE_ZIP_INCLUDE_SOURCE_PATH_X_path_X_DESTINATION_PATH_X_dest_X,
+					map[string]interface{}{
+						wski18n.KEY_PATH:        j.source,
+						wski18n.KEY_DESTINATION: j.destination,
+					})
+				wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+			}
+			// handle scenarios where included path is something similar to actions/common/utils.js
+			// and destination is set to ./common/ i.e. no file name specified in the destination
+		} else {
+			if f, err := isFile(i.source); err == nil && f {
+				if _, file := filepath.Split(i.destination); len(file) == 0 {
+					_, sFile := filepath.Split(i.source)
+					i.destination = i.destination + sFile
+				}
+			}
+			// append just parsed include info to the list for further processing
+			wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, wski18n.T(wski18n.ID_VERBOSE_LIST_OF_FILES_MATCHING_PATTERN))
+			verboseMsg = wski18n.T(wski18n.ID_VERBOSE_ZIP_INCLUDE_SOURCE_PATH_X_path_X_DESTINATION_PATH_X_dest_X,
+				map[string]interface{}{
+					wski18n.KEY_PATH:        i.source,
+					wski18n.KEY_DESTINATION: i.destination,
+				})
+			wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+			includeInfo = append(includeInfo, i)
+			zw.excludedFiles[i.source] = false
+		}
+	}
+	return includeInfo, nil
+}
+
+func (zw *ZipWritter) buildExcludeMetadata() error {
+	var err error
+	for _, exclude := range zw.exclude {
+		exclude = filepath.Join(zw.manifestFilePath, exclude)
+		if err = zw.findExcludedIncludedFiles(exclude, true); err != nil {
+			return err
+		}
+	}
+	return err
+}
+
+func (zw *ZipWritter) findExcludedIncludedFiles(functionPath string, flag bool) error {
+	var err error
+	var files []string
+	var excludedFiles []string
+	var f bool
+
+	if !strings.HasSuffix(functionPath, PATH_WILDCARD) {
+		functionPath = filepath.Join(functionPath, PATH_WILDCARD)
+	}
+	if excludedFiles, err = filepath.Glob(functionPath); err != nil {
+		return err
+	}
+	for _, file := range excludedFiles {
+		err = filepath.Walk(file, func(path string, info os.FileInfo, err error) error {
+			files = append(files, path)
+			return nil
+		})
+		if err != nil {
+			return err
+		}
+	}
+	for _, file := range files {
+		if f, err = isFile(file); err != nil {
+			return err
+		} else if f {
+			zw.excludedFiles[file] = flag
+		} else {
+			if err = zw.findExcludedIncludedFiles(file, flag); err != nil {
+				return err
+			}
+		}
+	}
+	return err
+}
+
+func (zw *ZipWritter) Zip() error {
+
+	var zipFile *os.File
+	var err error
+	var fileInfo os.FileInfo
+	var verboseMsg string
+
+	// create zip file e.g. greeting.zip
+	if zipFile, err = os.Create(zw.des); err != nil {
+		return err
+	}
+	defer zipFile.Close()
+
+	verboseMsg = wski18n.T(wski18n.ID_VERBOSE_CREATING_ZIP_FILE_X_path_X,
+		map[string]interface{}{
+			wski18n.KEY_PATH: zipFile.Name(),
+		})
+	wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+
+	// creating a new zip writter for greeting.zip
+	zw.zipWritter = zip.NewWriter(zipFile)
+
+	// build a map of file names and bool indicating whether the file is included or excluded
+	// iterate over the directory specified in "function", find the list of files and mark them as not excluded
+	if err = zw.findExcludedIncludedFiles(zw.src, false); err != nil {
+		return err
+	}
+
+	if err = zw.buildExcludeMetadata(); err != nil {
+		return err
+	}
+
+	// walk file system rooted at the directory specified in "function"
+	// walk over each file and dir under root directory e.g. function: actions/greeting
+	// add actions/greeting/index.js and actions/greeting/package.json to zip file
+	if err = filepath.Walk(zw.src, zw.zipFile); err != nil {
+		return nil
+	}
+
+	// maintain a list of included files and/or directories with their destination
+	var includeInfo []Include
+	includeInfo, err = zw.buildIncludeMetadata()
+	if err != nil {
+		return err
+	}
+
+	for _, i := range includeInfo {
+		if i.source != i.destination {
+			// now determine whether the included item is file or dir
+			// it could list something like this as well, "actions/common/*.js"
+			if fileInfo, err = os.Stat(i.source); err != nil {
+				return err
+			}
+
+			// if the included item is a directory, call a function to copy the
+			// entire directory recursively including its subdirectories and files
+			if fileInfo.Mode().IsDir() {
+				if err = copyDir(i.source, i.destination); err != nil {
+					return err
+				}
+				// if the included item is a file, call a function to copy the file
+				// along with its path by creating the parent directories
+			} else if fileInfo.Mode().IsRegular() {
+				if err = copyFile(i.source, i.destination); err != nil {
+					return err
+				}
+			}
+		}
+		// add included item into zip file greeting.zip
+		if err = filepath.Walk(i.destination, zw.zipFile); err != nil {
+			return nil
+		}
+	}
+
+	// now close the zip file greeting.zip as all the included items
+	// are added into the zip file along with the action root dir
+	if err = zw.zipWritter.Close(); err != nil {
+		return err
+	}
+
+	// and its safe to delete the files/directories which we copied earlier
+	// to include them in the zip file greeting.zip
+	for _, i := range includeInfo {
+		if filepath.Clean(i.source) != filepath.Clean(i.destination) {
+			verboseMsg = wski18n.T(wski18n.ID_VERBOSE_DELETING_FILE_X_path_X,
+				map[string]interface{}{
+					wski18n.KEY_PATH: i.destination,
+				})
+			wskprint.PrintlnOpenWhiskVerbose(Flags.Verbose, verboseMsg)
+			os.RemoveAll(i.destination)
+		}
+	}
+
+	return nil
+}
diff --git a/wski18n/i18n_ids.go b/wski18n/i18n_ids.go
index 0cdd2dd..1203516 100644
--- a/wski18n/i18n_ids.go
+++ b/wski18n/i18n_ids.go
@@ -86,6 +86,8 @@
 	KEY_API_BASE_PATH     = "apibasepath"
 	KEY_RESPONSE          = "response"
 	KEY_API_RELATIVE_PATH = "apirelativepath"
+	KEY_DESTINATION       = "destination"
+	KEY_INCLUDE           = "include"
 )
 
 // DO NOT TRANSLATE
@@ -241,10 +243,18 @@
 	**/
 
 	// Verbose (Debug/Trace) messages
-	ID_DEBUG_PROJECT_SEARCH_X_path_X_key_X                = "msg_dbg_searching_project_directory"
-	ID_DEBUG_DEPLOYMENT_NAME_FOUND_X_key_X_name_X         = "msg_dbg_deployment_name_found"
-	ID_DEBUG_PACKAGES_FOUND_UNDER_ROOT_X_path_X           = "msg_dbg_packages_found_root"
-	ID_DEBUG_PACKAGES_FOUND_UNDER_PROJECT_X_path_X_name_X = "msg_dbg_packages_found_project"
+	ID_DEBUG_PROJECT_SEARCH_X_path_X_key_X                                = "msg_dbg_searching_project_directory"
+	ID_DEBUG_DEPLOYMENT_NAME_FOUND_X_key_X_name_X                         = "msg_dbg_deployment_name_found"
+	ID_DEBUG_PACKAGES_FOUND_UNDER_ROOT_X_path_X                           = "msg_dbg_packages_found_root"
+	ID_DEBUG_PACKAGES_FOUND_UNDER_PROJECT_X_path_X_name_X                 = "msg_dbg_packages_found_project"
+	ID_VERBOSE_ZIP_EXCLUDING_FILE_X_path_X                                = "msg_verbose_zip_exclude_file_path"
+	ID_VERBOSE_ZIP_ADDING_FILE_X_path_X                                   = "msg_verbose_zip_adding_file_path"
+	ID_VERBOSE_ZIP_INCLUDE_SOURCE_PATH_X_path_X                           = "msg_verbose_zip_include_source_path"
+	ID_VERBOSE_ZIP_INCLUDE_SOURCE_PATH_X_path_X_DESTINATION_PATH_X_dest_X = "msg_verbose_zip_include_source_path_destination_path"
+	ID_VERBOSE_INVALID_INCLUDE_ENTRY                                      = "msg_verbose_invalid_include_entry"
+	ID_VERBOSE_CREATING_ZIP_FILE_X_path_X                                 = "msg_verbose_creating_zip_file"
+	ID_VERBOSE_DELETING_FILE_X_path_X                                     = "msg_verbose_deleting_file"
+	ID_VERBOSE_LIST_OF_FILES_MATCHING_PATTERN                             = "msg_verbose_list_of_files_matching_pattern"
 )
 
 // DO NOT TRANSLATE
diff --git a/wski18n/i18n_resources.go b/wski18n/i18n_resources.go
index 72285a7..164bc68 100644
--- a/wski18n/i18n_resources.go
+++ b/wski18n/i18n_resources.go
@@ -92,12 +92,12 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
 
-var _wski18nResourcesEn_usAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x7c\x7b\x6f\x1b\xb7\x96\xf8\xff\xf9\x14\x07\xc5\x05\xd2\x02\xb6\xdc\xde\x1f\x7e\xc0\x22\xd8\x2c\xe0\x4d\xdc\x5e\xdf\x26\x71\xe0\x38\x2d\x8a\x24\x98\x50\x33\x47\x12\xaf\x67\xc8\xb9\x24\x47\x8a\x6a\xe8\xbb\x2f\xce\x21\x39\x0f\x59\xf3\x90\x92\x62\x37\xff\x44\x12\xc9\xf3\xe2\xe1\x79\x92\xfe\xf0\x04\xe0\xe1\x09\x00\xc0\x77\x32\xfb\xee\x19\x7c\x57\xd8\x65\x52\x1a\x5c\xc8\x2f\x09\x1a\xa3\xcd\x77\x67\x7e\xd4\x19\xa1\x6c\x2e\x9c\xd4\x8a\xa6\x5d\xf1\xd8\x13\x80\xdd\xd9\x00\x04\xa9\x16\xba\x07\xc0\x35\x0d\x8d\xad\xb7\x55\x9a\xa2\xb5\x3d\x20\xde\x85\xd1\x31\x28\x1b\x61\x94\x54\xcb\x1e\x28\xbf\x87\xd1\x5e\x28\x69\x91\x25\x19\xda\x34\xc9\xb5\x5a\x26\x06\x4b\x6d\x5c\x0f\xac\x5b\x1e\xb4\xa0\x15\x64\x58\xe6\x7a\x8b\x19\xa0\x72\xd2\x49\xb4\xf0\xbd\x9c\xe1\xec\x0c\xde\x8a\xf4\x5e\x2c\xd1\x9e\xc1\x65\x4a\xeb\xec\x19\xdc\x19\xb9\x5c\xa2\xb1\x67\x70\x5b\xe5\x34\x82\x2e\x9d\xfd\x00\xc2\xc2\x06\xf3\x9c\xfe\x37\x98\xa2\x72\xbc\x62\xcd\xd8\x2c\x48\x05\x6e\x85\x60\x4b\x4c\xe5\x42\x62\x06\x4a\x14\x68\x4b\x91\xe2\x6c\x32\x2f\x5a\xf7\x71\x72\xb7\x42\xb8\x29\x51\xfd\xbe\x92\xf6\x1e\x5e\x32\x33\x05\x91\x70\xa7\x75\xfe\x51\x7d\x54\x77\x1a\xe6\xb8\x94\x0a\x36\xda\xdc\x4b\xb5\x84\x8d\x74\x2b\xd8\xd8\x7b\xcf\xf8\x19\x98\xca\x13\xf8\xb4\xfe\xed\x29\xa4\xba\x28\x84\xca\x9e\x11\x80\x8f\xee\x6f\xcd\x74\x86\xb8\x92\x16\x36\x32\xcf\x83\xec\x5a\xf8\x85\xb5\xe8\x6c\x8b\x57\xa9\xa0\x10\x4a\x2e\xd0\xba\xd9\x56\x14\x39\x68\xd3\xfa\xa1\xc8\x3f\xaa\xeb\x05\xa4\x95\x31\x44\x72\x26\x0d\xa6\x4e\x9b\x2d\x64\x1a\xad\x72\xb0\x12\x6b\x04\xa1\xb6\xf5\x12\x58\xc8\x1c\xcf\x1a\x72\xa0\x34\x52\x39\x0b\x8e\x48\x5a\x61\x5e\x42\x81\xd6\x8a\x25\xce\x3c\xa1\x08\x85\xb6\x8e\xd9\xd1\x0a\x36\x62\x6b\x41\x2f\xa0\xb2\x2c\x87\x1a\x88\xd3\x91\x13\xa1\xb2\x0b\x6d\xa0\x52\x7d\x9c\x09\x83\x2c\x94\x8e\x48\x5a\x5f\xe0\xbc\x80\x52\xb8\xd5\x85\xd3\x17\x1d\xc6\xa7\xcd\x82\xf3\xac\x1e\xc8\xea\xbd\x3c\x00\x20\x52\x78\xf8\xd7\x89\x54\x8c\x4e\x1f\x24\xe7\xa3\xba\xac\x94\x5b\xd1\xb1\x49\x59\x1d\x9f\x7d\x54\x0d\x6c\x83\x22\xb3\x90\x1a\xcc\x68\x82\xc8\x2d\x2c\x8c\x2e\xe0\x6f\xff\xb8\x79\x7d\x75\x31\xdb\xd8\xfb\xd2\xe8\xd2\xc2\x7c\x0b\x19\x2e\x44\x95\xbb\x8f\xea\x66\x8d\x66\x63\xa4\xc3\xf8\x13\xa4\x5a\x2d\xe4\x92\x37\x9d\x8e\xea\x8b\x57\xd7\xcf\x3e\x2a\x80\x8e\x24\xcf\xc3\xa4\xff\x6c\x4d\xfe\xaf\x01\x01\xdc\x98\xa0\x9e\x5b\x10\x79\x0e\x6e\x65\x70\x00\xb8\x28\xe5\x8a\x34\xe8\x1f\x37\xef\xee\xe8\x6b\xe5\x56\xf0\xeb\xd5\x1f\x70\x7e\x5e\x9f\x62\x78\x73\xf9\xfa\xea\xdd\xdb\xcb\x17\x57\xbd\x58\x27\x9c\x73\xbb\xd2\xc6\x0d\x1b\xad\xb7\x46\xaf\x65\x86\x16\x04\xd8\xaa\x28\x84\x21\x29\xd3\x7c\xd2\xe9\x47\x9a\x3a\x47\x52\xf2\x68\xdd\x2e\xe2\x5e\x63\x06\x73\x61\x31\x23\x96\x23\x8d\xad\xbd\x85\x3f\x2e\x5f\xbf\x9a\x62\x97\x02\xbd\xfd\x86\xe9\x12\x9c\xd6\x39\x58\x74\x74\xbe\xf8\x6c\x06\xa9\x6e\x75\x65\x40\x97\xa8\x36\x4c\x6f\x19\xec\x6c\x38\x96\xa2\x7b\xd8\xa7\xd3\xb2\x46\x63\x09\x77\x9f\xf0\xa4\x72\x6c\xe7\xc2\x3c\x50\x55\x31\x47\x43\xb2\xab\x37\x7c\x32\x2e\xbb\x55\xe9\x30\xdf\x4e\x03\x4d\xf2\xcc\x36\x9b\x53\x33\x3b\x47\xb7\x41\x54\x90\xe6\x92\xc4\x2e\x54\x06\x16\xcd\x1a\xcd\x64\xa7\x30\x9d\x86\xd6\xf6\x12\x9e\xa8\x0a\xfc\x43\x47\x75\xfa\xb7\x82\xd6\xe9\x92\xe0\x8b\xbc\x0d\x8f\xb6\x28\x4e\x67\xd5\x21\xbb\xf0\x52\x2e\x16\xc8\x16\x3d\x5a\x5c\x53\x29\xf2\xdd\x4c\xce\xb3\xae\x11\xa2\x9f\x1e\xff\x32\xd1\x82\x0d\x4e\x6d\x5b\xaf\xd3\x61\x9c\x97\x46\xff\x0b\x53\x47\xe7\x1d\xde\xde\xde\xfc\xf3\xea\xc5\xdd\x64\x3d\x89\xa2\xee\xd9\xa7\xf7\xbd\x7e\x86\x8d\xa5\x57\x88\xa9\xfa\x30\x15\x97\xc1\x42\xaf\xd1\x3e\xc6\xb9\x59\xc9\x74\x05\x1b\x34\xd8\x04\x45\x4c\x07\x9d\x9a\x8e\x26\xec\xdb\x8b\x4e\x9c\x91\x61\x8e\x8e\x36\xfb\x30\x53\x1d\x60\xde\x9d\x9b\x4a\x3d\xfb\x3f\xe7\xde\x0e\x43\x3a\xa4\x0d\xf0\xbd\x56\xf9\x96\xe3\x2b\x0b\x0b\x6d\x5a\xe2\xe1\xe8\x8f\x15\xac\xd0\x19\xfe\x30\x59\x6f\xf0\xcb\x80\x1f\xb8\xe2\x41\x08\x94\x74\x84\x5b\x8b\x7c\xaa\xd2\x4c\x40\x64\x69\xbb\xc4\x12\xb3\x61\x8c\x64\x6d\x3a\x4a\xb2\xa8\x14\xc7\xcd\xde\x46\xf4\xc4\x63\xb4\x8a\x02\x50\x4f\xc7\x9e\x16\xf8\x1f\x7b\x84\xde\xda\x54\x3f\x0f\xb3\xf3\x23\x9c\xee\x22\x17\xcb\x44\x94\x32\x21\xf7\xde\xc3\xbf\xf7\x4f\x97\x6f\xaf\xe1\x33\xf9\xff\xcf\x13\x21\x0e\x3b\xa2\x16\xd0\xdf\xae\x6e\xdf\x5d\xdf\xbc\x99\x04\xb7\x72\xab\xe4\x1e\xfb\x0e\x37\x0d\x6b\x23\xff\xe4\x1f\xe0\xf3\xaf\x57\x7f\x4c\x01\x9a\xa2\x71\x09\xed\x4e\x0f\x54\x92\x2f\x59\x6f\x3a\xb2\x33\x9a\xcc\x5b\x39\x05\x30\x87\x62\x3d\x50\xdb\x41\xdd\xf7\x31\xd2\x93\x76\x3f\x34\x1c\x39\x2c\x5e\x2a\x79\xae\x37\x49\x80\xd1\x97\x7d\xf2\x24\xa8\x27\x8d\x43\x6d\x8e\xef\x90\x5c\xea\xa4\xa1\xf6\x83\x13\x40\x97\x06\xd7\x12\x37\x3d\x70\xed\x8a\x09\x8d\x40\x2f\x3a\x8e\xba\xcc\x85\x9a\x80\xe1\x1e\xb7\x93\xb7\xf4\x1e\xb7\x53\x09\xf7\x92\x0e\x86\x60\x50\xd0\xd1\x48\xd4\xe9\xb4\x23\xc7\x00\x85\x30\xf7\x98\x45\x53\x32\x49\x54\x0c\x27\xa1\x43\xdf\xc7\x4c\x40\xc5\x53\xc6\x21\x46\xeb\x30\xb2\xab\x1d\xe7\x34\x01\x6c\x9d\x08\xf4\xc0\x6d\xc6\x27\x33\x3d\x42\xa1\x8f\x0b\x72\xb4\x36\x4a\x7b\x02\x68\xeb\x8c\xec\x85\xec\xb7\xae\xb2\x48\xce\x6b\x21\x15\x66\x64\x95\x9d\x2c\xea\x70\x79\x02\x06\x67\xfa\x85\xc0\x63\xa0\x2b\x57\x56\x53\x88\xf5\xea\xb6\x46\x33\xd7\xb6\x0f\x64\x18\x3d\x16\x68\x29\x8c\x28\x7a\x05\x6c\x44\x81\x0e\x0d\xac\x45\x5e\x21\x7b\x6f\x32\xa6\xf0\xdb\xe5\xab\xf7\x57\x9f\xc9\xb9\x17\xe2\x48\x54\x43\xa7\xf1\xf3\xcf\xd7\xaf\xae\x3e\x53\x9a\xeb\x84\xe4\x00\xf9\x10\x05\xff\x7c\x77\xf3\x66\x1c\x35\x5b\xd5\xa4\x90\x96\x62\x71\xf6\x17\xfd\xee\x82\x1c\x31\xcd\x68\x72\x77\x20\x5b\x20\x2d\x28\x1d\xb3\xee\xca\x60\x36\xfb\x38\xb4\xef\x7b\x18\x7d\xa6\x3c\x80\x91\x7c\x1e\x27\xd3\x5f\x85\x67\xec\xb8\x11\xa6\x26\x37\x3f\x09\x55\x60\x65\xa8\x2a\xba\xcf\xcf\x87\x87\x87\x19\x7d\xde\xed\x3e\x9d\xf9\xc0\xe8\xe1\x61\x66\x75\x65\x52\xdc\xed\x26\xe1\xf4\x1b\x36\x86\x93\x0b\x10\x61\xaf\x2c\xba\xd3\x70\xd5\xe2\x19\xc3\xd6\x91\x23\xb1\x58\xff\x70\x3a\x9f\xa5\x5c\x6e\x12\xc1\x05\xe1\xc4\xe9\x7b\x54\xa3\x2c\xd3\x0a\xf0\x2b\x80\x57\x9c\xc6\x7c\xa5\x0a\x61\xec\x4a\xe4\x49\xae\x53\x91\xf7\xa6\x49\x61\x56\x2b\xb2\x0d\xa6\x30\x44\xbc\xbc\x3a\x1c\xcf\x89\x08\x15\x3a\xca\x0e\x4e\x46\x29\x95\x43\xa3\xd0\x81\x70\xc4\x6e\x65\xf2\x11\x5e\x9b\xb8\x21\x49\x85\x4a\x31\xcf\x7b\xbd\xf6\xcd\xaf\x33\x78\xe1\xe7\x34\x05\x23\xce\x83\x26\x22\x58\x08\xd9\x0f\xbd\x55\x90\xce\x64\x16\xce\x62\x51\xe6\xe8\x10\x6c\x45\x5b\xba\xa8\xf2\x7c\x3b\x83\xdb\x4a\xc1\xe7\xc7\x19\xd7\x67\x4e\x10\x38\x63\x25\xdb\xe8\xa4\xc8\xf3\x6d\x93\x9e\xfa\x4c\x64\x2a\xa5\xbe\x5a\x96\x58\x27\x5c\xd5\x17\x2d\x9e\x9f\x9f\x9f\x3f\x7f\xfe\xfc\xf9\xe1\xa2\xfa\x3b\x5e\x0a\x34\x81\x26\x4e\xc2\xca\xbd\x11\xcc\xa6\x88\x28\x8a\x26\x83\xd0\x50\xf1\xc2\x19\x56\xb2\xd3\xf7\xba\xbd\x76\x3a\x92\xc1\xfd\x7e\xdf\x0e\x59\x07\x77\x7c\x32\xbe\x31\xf9\x75\x50\x9e\x20\xc1\xd0\xeb\x48\xb8\x88\xc5\xde\x9a\xac\x5c\x22\x5c\x42\xf1\x56\x0f\xd2\x87\x87\x59\x5a\x64\xbb\x5d\x28\x7d\x3d\x3c\xcc\x68\xa1\xdb\x96\xb8\xdb\xb1\xa5\xa4\xb5\xbb\xdd\xa7\xd9\x6c\x10\x37\x07\xc9\xdb\x24\xea\xf3\x48\x1f\xed\xe1\x81\x42\xf6\x80\x80\x88\xdc\xed\x3e\xc1\x4a\x58\x98\x23\xaa\x0e\xc3\xf5\x09\x99\x8e\xbd\xbf\xf1\xf6\x32\x8e\xc3\x41\x02\x66\xb3\x81\x92\x65\x40\xd1\x54\x9f\xbf\x1d\x8b\x0d\xcc\x29\x4c\xc6\xd9\xfd\x6c\xbe\x6f\x66\x1c\x64\x74\x90\xcf\x0c\x4b\x54\x19\xaa\xf4\x18\x71\x36\x8b\x4e\xc7\xd3\x1c\x91\x5e\x99\xbe\x3c\x88\xe6\x6b\x14\xe7\x30\x15\x64\x18\x2a\xd3\x17\x97\xbd\xec\xd4\x9c\x0f\xb3\xfe\xbf\xe8\x23\x22\x3f\xc7\xe9\xc9\xd7\xed\xe0\x63\x33\xf7\x6d\xf6\x70\xe2\xc9\xe8\xa3\x64\x78\x1f\xdf\xef\x75\x0f\x4e\xd9\xc9\x21\xaa\x42\x85\xe0\x54\x9f\xc3\x14\x79\x0f\x50\x57\x20\x86\x68\x81\xac\x32\xb4\x93\xb1\xc6\xd9\xf2\x88\x7f\x9d\xbe\x45\x1e\x17\xba\x52\x59\x12\xe8\x0d\x96\xaa\x57\x01\x42\x55\xfd\xa0\x85\x0c\xa5\x7b\xbe\x80\x40\x74\xb5\x0a\xf7\xb1\xb9\xbe\x5f\xc4\x65\x27\xe5\x3f\x13\x04\x61\x99\x17\x6e\x8f\x4f\x0d\x0b\x42\x4d\x2d\x09\x6d\xa3\xbe\xce\x9b\x1f\xe5\x64\x02\x5a\xf5\x3e\x83\x5c\xc7\xc8\xce\xb8\x0f\xdb\x84\x5b\xf5\xb6\x11\x1d\xa6\x5e\x11\x90\x80\x68\xb5\x27\xda\x5d\x4d\x7f\x79\x20\x68\xbf\xf1\x7d\xb7\xb1\x9b\x16\x57\xb7\xb7\x37\xb7\xef\x7a\xe8\x7e\xbe\xff\x0f\xfc\x74\x78\x34\xf0\xfc\xf9\x80\xfb\x31\xa6\x7b\xd0\xee\x95\xde\xa8\x84\x22\x85\xf1\xa3\x4e\xb3\x48\x54\x61\xd5\x0c\x5a\xc5\x71\xee\x39\xd8\xaa\xf4\x25\xfa\x0b\x2e\x2b\xcf\xec\xd6\x3a\x2c\x60\x2e\x55\x26\xd5\xd2\x82\x36\xb0\x94\x6e\x55\xcd\x67\xa9\x2e\xea\xf6\xde\xb0\xbf\x34\x26\xfa\xcc\xd4\xa0\x70\x7d\x64\xf2\xc5\x22\xe0\x29\x1d\xb5\xe4\xeb\x25\x7c\x23\x29\xde\xc5\x78\x46\x83\x68\xcc\x6e\xc7\x7d\x01\x3f\x96\xea\xcc\x0f\xd0\x87\x91\x6c\xa6\x45\x92\x3f\x2b\x83\x24\x65\x8f\x4e\xca\x5f\x44\xd2\x02\x31\x4b\xa4\x5a\xeb\xfb\x3e\x82\x7e\x66\xb3\x45\xe6\xc2\x4f\xe3\x03\x49\xcb\x60\xb3\xc2\x56\xa7\xcc\xf9\x7b\x45\x61\xe8\xaf\xa1\xf6\x1e\xb7\x75\x0d\x85\xe2\x5d\xe1\xb4\x19\xaa\x0f\xd5\x73\xb8\xdc\xf0\x21\x0a\xf3\x13\xe9\x63\x80\x33\x8a\x33\x96\x52\x13\xa5\x9d\x37\x76\x3d\x08\x5f\xb7\x6b\xae\x6c\xab\x79\x36\xe5\xbb\x5c\xf4\x6c\x47\xd4\x63\x48\x39\x7a\x2f\xa4\x2d\x84\x4b\xfb\xc2\x77\x62\xb0\x56\x0f\x5a\x90\x31\x8a\x2c\xda\x53\xa9\xf6\x8b\xfb\x7e\x3c\xd0\xc0\xf7\x93\x98\x4c\x46\xc2\xdb\xca\xe6\x8d\x26\x15\x2d\x20\x9d\x5a\xb2\x1f\x8d\x6c\x0c\x33\x11\xf2\x7f\x52\x2f\x91\xcb\x3e\xb1\x5d\xfb\x51\xbe\x54\xe5\xb7\xa4\x2e\xdb\x12\xae\xf0\x99\x68\x39\x78\x23\x8b\x9b\x95\x44\xbb\xf0\x8d\x3a\x5a\xe3\x3f\x4e\x91\x73\x24\x71\x44\xd4\xb7\xc7\x10\xb4\x27\x57\x3e\x0a\x9e\xa2\xa7\x16\x7c\x95\xc7\x8b\x12\xbf\x38\x54\x36\x12\x8d\x5f\xd8\x87\x11\x3b\x5f\xc3\x8a\x4d\x96\xd8\x57\xc0\x6c\x8e\xf2\x12\xfd\x3d\x92\x60\x7b\x9b\x52\xf9\xa3\x8e\x28\xf9\x37\x99\xb6\x8e\xef\x64\x99\x7a\xd2\x13\xcf\x31\x9f\x9e\x1a\x5b\x0f\x7d\x1d\x86\x39\x2e\x24\x31\x36\x52\x16\x6a\x5b\xeb\x06\x19\x91\xd6\xb6\x8f\xca\x35\x14\x51\x6b\x12\x46\xd9\xa8\x4c\x7e\xbc\xe6\xfa\xc2\x56\x48\xa1\xdf\xdf\xbe\x62\x0a\xb8\xd4\xc5\x47\xe9\x43\x27\xc7\xfe\xe4\x2f\x07\x4d\x21\xa4\x10\xf9\x42\x9b\xa2\x57\x72\xaf\xe3\xf8\x10\x05\x33\xb8\x33\x5b\x10\x4b\x21\xd5\x58\x4a\x6f\x4c\xf2\x2f\xab\x55\x6d\x6c\xd3\x22\x1b\xe8\xdc\x72\x71\x5f\xaa\xb2\x72\x90\x09\x27\xe0\x75\x90\xc6\xd3\xb4\xc8\x9e\x92\xe9\x1d\xc6\x24\x4a\xd9\x54\xe0\xbd\xd2\x68\x93\x58\xfc\x77\x85\xaa\xb7\x44\xee\xef\xb3\x5e\xbc\x0b\xb3\xba\x87\xa5\x65\xdf\xbd\x3e\xef\x5d\xd6\xb8\x7c\x7b\xed\x17\x94\x92\x66\xa7\x42\xf9\x50\x64\x8e\x3e\x18\x68\x5f\x30\x6b\x94\xec\x22\x92\x74\x00\xe6\x0c\xde\xe6\x28\x2c\x42\x55\x66\xc2\xed\xdd\x0e\xf1\xce\x33\xcd\xab\x6c\x9f\x4e\x61\x41\xc0\x06\xe7\xfb\x18\x46\x77\x27\xc8\x69\x58\x41\x2f\x0f\xd8\x11\x12\x4d\x58\x35\x83\x6b\xe7\xb3\x2f\xed\x56\xec\x8b\xbb\x77\x1e\xea\x83\x77\xe6\xa5\xa3\x15\x86\xb6\x6b\x41\x50\xf0\x4b\x89\xe9\x94\x93\x14\x68\x8d\x5b\x1c\xed\x03\x19\xc6\x84\xb0\x7e\x25\xf5\x4c\x78\x63\x24\x08\xac\xae\x5c\xdb\x58\xcc\xe0\xf7\xc6\x08\x47\x53\x41\xcb\xce\x6a\x73\x22\x6d\x13\x2c\x8c\xb8\xb5\xc0\x4e\x14\x53\x42\xd9\x8a\xc3\x24\x93\x66\x92\x91\x3b\xc8\x16\xf1\x51\xcb\xbd\xd4\x52\xf9\x90\xca\xa7\x68\x0e\x5b\xb7\x8a\x9b\xe3\x7c\x46\x29\x60\xe4\x8a\x6f\xf5\xee\x59\xb8\x61\x36\x52\x41\x09\xbb\x58\x63\x92\xe9\xf4\x1e\xfb\xee\xde\xbf\x10\x8a\xa1\x8a\x35\xc2\x4b\x9e\x08\xb2\xe0\x00\x7c\x24\xb0\x94\x39\x26\x22\x37\x28\xb2\x6d\x82\x5f\xa4\xed\xbd\xdb\xf0\x33\x9d\x90\x30\x13\xfc\xcc\x11\xd8\x59\xbc\x9b\xd7\x64\x25\x12\xad\x57\x28\x4b\x91\x53\x2e\xe6\xd8\xd7\x1c\xb9\x51\x08\xa4\x87\x39\xee\xa7\xfd\xcd\xd7\xb8\x25\x6e\xa3\xa1\x46\xc6\x4d\x13\x2f\x6b\x9a\x1d\xbf\x79\xc3\xba\x92\x16\xee\xa5\xca\xe8\x80\x04\x5d\x0c\x4d\xc9\x47\x8e\x67\xcf\x52\x90\x7d\x69\x11\xc2\xa4\x1f\x20\x27\xdc\xc0\x7f\x64\x57\x58\x59\xb8\xa1\x4e\xb1\x5b\x24\x0a\x62\x5a\x83\xcc\x83\xc5\x52\x18\xfa\xc2\xd0\xfd\x05\xaf\x1e\xde\xa6\x29\x7f\x38\x64\x09\xb1\x7c\xac\x9e\x2b\xed\x25\x65\xd1\x1d\x87\xec\x58\x5b\x11\x90\xb5\xce\xfb\x08\xbe\x68\x7d\x93\x95\x58\x93\xa5\x62\x5d\xf2\x85\x74\x1b\x88\xe9\x7b\x1d\xd2\x76\x43\x11\x4c\xb0\x57\x51\xb5\xe3\xa5\x04\xb2\xf9\x2a\x1a\x23\x9f\xe8\x73\x28\x46\xfb\x17\xb2\xdb\x59\x7c\xae\x11\xee\xd4\x7a\x78\x96\x1d\x15\x29\x13\xbf\x29\xe0\x05\x1c\xb1\x4b\x05\x22\xea\x74\x84\x30\x72\xf8\xb5\x5a\xe4\x32\x25\x2b\x93\x84\xc4\x8d\x38\x34\xda\xda\x58\x09\xe9\x3b\xae\xad\xf3\x13\x53\x3e\x62\x3a\x7c\x0e\x3c\x47\x5e\x39\xf8\x2d\xaa\xdc\xc9\x32\xf7\x59\xa3\x3f\x3c\xf4\x29\x44\x24\x1e\x39\x9b\xaf\xe8\x7b\xf7\xca\x20\xae\xdd\xc5\x3d\x03\xe9\xfc\x89\x2a\xb5\xb5\x72\xee\x4f\x01\x0b\x24\x32\xe2\xb1\x36\xe2\x99\x53\x5c\x52\x6b\x3a\x13\xf1\xe8\x10\x06\x4e\x18\xcd\xa3\xa4\xe7\x08\x61\x9a\x2a\xc7\x13\x24\x49\xcb\x42\x76\x91\xe3\x21\x19\x36\xf4\x47\x7b\xbf\x17\x48\xf8\x47\x1f\xb5\x08\xba\x5b\x32\xf3\x6f\x7d\xbe\x85\x90\x99\xc1\x43\x12\x16\xd6\xea\x54\x32\xe8\xc3\x14\x5f\x44\xe2\xf6\x85\xcf\xcc\x9f\x24\x79\x61\x9a\x3b\x15\xdc\xcc\xee\xbd\x4b\x1e\x1a\x64\x90\x4b\x85\x20\xcc\xb2\xe2\xa4\x98\x44\x68\x96\xbb\x5d\x3b\x5e\x64\x38\x67\x50\x7a\x12\xe3\x33\x0b\x92\x07\x8f\x1c\x41\xd1\x3d\x6e\xbf\x19\x55\xf7\xb8\xbd\x60\x58\x50\x0a\x69\x1e\x91\xd7\x1d\x66\xfb\x8e\x5f\x44\x51\x52\xb0\x5b\x83\xbb\xc7\xed\x24\x1e\x42\x80\x35\x7e\xf5\xa7\x8f\x81\xef\x23\xca\x1f\xd8\x06\x07\x78\xfe\x5e\x90\x77\x5c\x75\x29\xe4\xcc\x17\x24\x5b\xe9\x65\x54\x8e\xfa\x81\x0b\xf8\xd5\x9c\x64\x34\x20\xc6\x6a\x0f\xf8\xef\x4a\x1a\xae\x6d\x95\x95\xb3\x93\xb4\xe4\x36\xac\xf1\xa9\x8c\x3f\x2d\x1d\xad\xb0\x80\x6b\x54\x20\x16\x0e\x0d\x88\xb2\xcc\xb9\x7f\xc2\x17\x1b\x4a\xed\xe1\x84\x5e\x2a\xaa\xf5\x0c\xd6\xc2\x48\x31\xcf\xb1\x51\x78\x8b\xae\x86\xd8\x9d\x12\x0f\xb0\xcf\xa2\x9a\x7b\x53\x87\x9e\xb7\xf8\xa7\x44\x26\x3c\xf8\xe1\xcd\x5e\xe8\x3c\xd7\x1b\x4f\x0d\xd1\xce\xf2\xf4\x1f\x77\xbb\xf1\xec\x6b\x29\x1c\x6e\xc4\x36\xa1\xa4\x87\x3b\xc6\x63\x89\xc5\xdb\x6b\xf8\xc5\xaf\xe1\x44\xa9\x29\x70\x89\x52\xd2\x0f\xb1\xc6\x74\x20\x5c\xe7\xa9\xf5\x15\xb1\x78\x63\x7f\x3f\x4a\x0a\x29\x87\x41\x42\xba\x0e\x08\xea\x4a\xf1\x1e\x8c\x89\x75\xa8\x52\x18\x8b\x66\xf0\xa5\x69\x53\x21\x31\xe8\x8c\x44\x36\x78\xa1\x30\x52\x6b\xe8\x61\x6c\xbf\x5f\xde\xbe\xb9\x7e\xf3\xcb\xf4\x4a\x7c\x5c\x70\x5c\x2d\x7e\x23\x8c\xaa\xdb\xfd\x44\x64\x5f\x52\x7e\x4b\x63\xa4\x11\x1f\x62\x9f\xff\x53\xd0\x5c\x16\xc0\x33\x5f\x1c\x21\x86\x3e\x0d\x25\x70\x01\x1f\xdf\x7b\x3a\xba\x1c\xd2\xbe\x26\xdd\x2a\x7f\x42\x86\x6e\x3c\x75\x64\xcc\x64\x43\x33\x2c\x0d\xa6\xe4\x59\x12\x83\x65\x2e\xd2\xde\xdc\xea\x6e\xe5\xf1\xe8\x3c\x0b\x85\x5e\xbe\x66\xe6\x43\xe7\xee\xfd\x06\x7e\xfb\x69\xb5\x56\x94\xf4\x37\x18\x6a\xcb\x5a\x59\x1f\x9a\x73\x87\x0a\x37\x1d\x70\xd6\xa1\x98\x48\x7b\x90\xc4\x29\x35\x6a\xbb\xd2\x55\x9e\x11\x79\x14\x29\xc3\x7b\xeb\x9b\xb5\xbe\x93\xe4\x8d\x3d\xcd\xe6\x4f\xe3\xb7\x34\x6a\x8a\x78\xfe\xc8\x56\x12\x5d\x1e\x03\x19\x97\xc7\xb5\x73\x3a\xaa\xfe\x54\x1f\x81\x92\x93\x63\xb1\x1e\xdc\xbc\x31\xa4\xbc\x3e\x6e\x68\xec\x0a\xc6\xc7\x70\xed\x57\x70\xe3\x84\xe5\xb2\x90\x2e\x91\x4b\xa5\x4d\x2f\x49\x51\xa5\x43\xb0\xce\x4b\x7c\xf2\x47\x9f\xf6\xeb\xe3\x64\xec\x3c\xb8\xa9\xd8\xd3\x95\x50\x4b\x24\x07\xd0\x43\xc0\xab\x1a\x63\x5d\x90\xb7\x91\xef\x7c\xeb\x1b\xc2\x35\x8c\x19\x5c\x13\x7a\xa9\x96\x53\x74\x81\x29\xb0\x49\xae\x97\x89\x95\x7f\xf6\x11\x90\xeb\xe5\x3b\xf9\x27\xd7\x7d\xfc\x82\x0e\xc7\x8d\x8a\x0a\xc5\x7e\x90\x62\xe8\xf8\x2a\xf0\x47\x4e\x5e\x7e\xfa\x71\x32\x29\x05\x16\xda\x6c\x87\xa8\xf1\x33\x4e\x25\xe8\xa7\xbf\xff\x07\x93\xf4\xff\x7f\xfa\xfb\x64\x9a\xc8\xf4\xeb\xaa\xaf\xa0\x1e\x46\x4f\x22\xe6\x47\x2f\x9f\xff\xf7\x23\xfd\x1b\xa7\x87\x7b\xa3\x49\x69\x74\x89\xc6\xc9\xde\x9c\x22\x5a\xc0\x96\xbd\xf2\x1d\x75\xef\xcd\x42\x4f\xdd\x37\x5a\x1b\x60\xb1\xf7\x7e\xd8\x26\x46\x93\x98\x69\x56\x38\xb2\x8c\xd2\x81\xae\x9c\x95\x19\x6f\xc4\x9d\x11\x6b\x69\x61\x5e\xc9\x3c\x1b\x6e\xcc\x32\x2b\xde\x1c\x18\x52\xdb\x49\xa6\xa0\xd6\xfe\x8e\x41\x50\x7b\x06\x3d\x48\x9b\xdb\xcd\x94\xfc\xf8\x5f\xa3\xb8\x1f\x1e\x66\x85\x54\xa1\xf9\x48\x5f\x44\x3a\xd2\xca\x60\x52\x63\xe8\xe0\x0f\x59\x9f\x99\x88\xed\xa1\x30\x8b\xc2\x87\xbd\x4e\xd1\x81\x6a\x72\x6f\x33\xe8\xa4\x0e\x10\x53\x1b\xfa\xcb\x5c\xb1\x18\x2c\xb9\x3d\x6a\x1d\x76\x4c\xcc\x5e\x2d\xae\x09\x5e\x73\x7e\x38\xa7\xb4\x5b\x85\x54\x79\x9c\xa4\x98\x02\x8f\x76\x4f\xef\x1e\x15\xb7\xda\x01\x43\x78\x5d\x80\x19\x28\x3d\xed\x0a\x00\x63\x6f\xdd\xbe\x61\xa1\x4c\x21\xe2\xe0\xdd\x94\xe0\x71\xf6\x83\xf0\x4d\x68\x51\xf9\x46\xef\xa1\x12\xdd\x04\x09\xb5\xde\x08\x25\x7a\x8d\xc6\xc8\x2c\xc3\xbe\x42\x13\x51\xd8\x7e\x32\xd4\xdc\x9e\x6a\x96\xc6\x58\xa1\x7d\x39\x66\xea\x46\x25\xd2\x26\x65\x35\xcf\x65\xdf\xb3\x6c\xbf\x2b\x3c\x37\x36\x5a\xfc\xab\x28\x0a\xed\x79\xe1\xa3\x24\xfe\x8c\xcc\x05\xdb\x96\x39\xc2\x5a\xfa\x7a\x02\x9d\xc3\x54\xb0\xa5\xf1\xd7\xe2\x31\x83\xf9\x16\x84\xda\x6a\x35\xf0\xca\x88\x69\x8d\x75\x41\x9c\x87\xb7\x9f\x23\x6e\xfc\x71\x59\x90\x3b\x1e\xdc\x77\x51\x19\xfd\x7f\x1e\x9e\x69\xee\xb7\x3c\xe8\x20\xf0\xdf\xd9\xc0\xf9\x99\x77\xee\xe1\x5b\x58\x30\x90\x79\x78\x4a\x5b\xad\x2d\x22\x77\xb0\x88\xd8\xd7\xf0\x20\x0d\x6b\x77\x89\x26\xf5\xaf\xc2\xdf\x07\xa9\x17\xcd\xe0\x85\x56\x6b\x32\xf7\x21\x25\x68\x50\x38\xdd\x01\x3f\xae\xb2\xfb\x5c\x8d\xb4\xea\x86\x8a\xa3\x0d\x6f\x71\xe0\x48\xee\xea\x8e\xd9\x3e\x7f\x6d\x44\x35\x87\x93\xfa\x6b\x35\x8f\xb1\x10\x62\xd0\x96\x5a\x59\x1c\xba\xf1\xb4\x47\x34\x97\xc0\xf6\x53\xdd\x30\x1e\x93\xda\x56\x92\x1c\xcb\x15\x75\x99\x6d\xe5\x5c\xe9\xff\x16\x8f\x47\xcd\x7e\x6d\x06\x2f\xc8\xc3\xf0\x15\x89\xf6\xef\xde\xa9\xb3\xcb\x09\x3f\x07\xa6\x19\x0a\xf9\x93\x86\xb2\x31\x8d\x8d\xfb\x8a\x6a\x2d\x8d\x56\x6c\x3b\x63\x95\xa2\xaf\xf9\x1c\xb2\xbd\xab\x66\x09\xfc\x16\x96\x74\x53\x94\xc3\xb8\x5f\x5e\xfd\xf7\xfb\x5f\x26\xa7\xcd\x3c\xfb\xb8\x9c\x39\x9b\x2f\x13\x8b\xc2\xa4\x2b\xe2\x2c\x1a\xdc\xba\xa7\xd6\xab\xb6\x61\x45\x6d\x70\xbb\x5d\xb8\xb8\x7d\x51\xbe\x3e\x30\x19\x09\xbd\x89\x94\x7d\xaf\xf4\xad\x3d\xd2\x89\xde\x88\x48\xab\xdd\xb5\xbf\xd5\x39\xf0\xa7\x51\x5e\x1e\xb8\x5a\x14\x24\xf2\x0c\x7e\x66\x0a\x9a\xbf\xc4\xc1\x15\x66\x02\x76\x2c\x01\xc3\x6f\x49\x8f\xa7\xa1\x7d\x71\x34\x5e\x74\x3e\xee\x7d\xe0\xde\xc3\xaf\xa3\xdf\x7c\x1d\x7e\xc9\xf7\xe4\xd3\x93\xff\x09\x00\x00\xff\xff\xf1\xc2\x73\x19\x1d\x4d\x00\x00")
+var _wski18nResourcesEn_usAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x3c\xfd\x6f\x1b\xb7\x92\xbf\xe7\xaf\x18\x14\x0f\x48\x0b\xd8\x72\xfb\x0e\x07\x1c\x8c\xcb\x01\xbe\xc4\xe9\xf3\x6b\x12\x1b\xb6\xd3\xa2\x97\x04\x1b\x6a\x77\x24\xf1\x79\x97\xdc\x92\x5c\x29\xaa\xa1\xff\xfd\x30\x43\x72\x77\x25\x6b\x3f\xa4\xa4\xb8\xcb\x2f\x91\xb4\xe4\x7c\x71\x38\xdf\xeb\x0f\xcf\x00\x1e\x9f\x01\x00\x7c\x27\xb3\xef\xce\xe1\xbb\xc2\xce\x93\xd2\xe0\x4c\x7e\x49\xd0\x18\x6d\xbe\x3b\xf1\x4f\x9d\x11\xca\xe6\xc2\x49\xad\x68\xd9\x25\x3f\x7b\x06\xb0\x39\xe9\x81\x20\xd5\x4c\x77\x00\xb8\xa2\x47\x43\xfb\x6d\x95\xa6\x68\x6d\x07\x88\xbb\xf0\x74\x08\xca\x4a\x18\x25\xd5\xbc\x03\xca\x6f\xe1\x69\x27\x94\xb4\xc8\x92\x0c\x6d\x9a\xe4\x5a\xcd\x13\x83\xa5\x36\xae\x03\xd6\x2d\x3f\xb4\xa0\x15\x64\x58\xe6\x7a\x8d\x19\xa0\x72\xd2\x49\xb4\xf0\xbd\x9c\xe0\xe4\x04\x6e\x44\xfa\x20\xe6\x68\x4f\xe0\x22\xa5\x7d\xf6\x04\xee\x8d\x9c\xcf\xd1\xd8\x13\xb8\xad\x72\x7a\x82\x2e\x9d\xfc\x00\xc2\xc2\x0a\xf3\x9c\xfe\x37\x98\xa2\x72\xbc\x63\xc9\xd8\x2c\x48\x05\x6e\x81\x60\x4b\x4c\xe5\x4c\x62\x06\x4a\x14\x68\x4b\x91\xe2\x64\x34\x2f\x5a\x77\x71\x72\xbf\x40\xb8\x2e\x51\xfd\xb6\x90\xf6\x01\x5e\x31\x33\x05\x91\x70\xaf\x75\xfe\x51\x7d\x54\xf7\x1a\xa6\x38\x97\x0a\x56\xda\x3c\x48\x35\x87\x95\x74\x0b\x58\xd9\x07\xcf\xf8\x09\x98\xca\x13\xf8\xbc\xfe\xed\x39\xa4\xba\x28\x84\xca\xce\x09\xc0\x47\xf7\xb7\x66\x39\x43\x5c\x48\x0b\x2b\x99\xe7\x41\x76\x2d\xfc\xc2\x5a\x74\xb6\xc5\xab\x54\x50\x08\x25\x67\x68\xdd\x64\x2d\x8a\x1c\xb4\x69\xfd\x50\xe4\x1f\xd5\xd5\x0c\xd2\xca\x18\x22\x39\x93\x06\x53\xa7\xcd\x1a\x32\x8d\x56\x39\x58\x88\x25\x82\x50\xeb\x7a\x0b\xcc\x64\x8e\x27\x0d\x39\x50\x1a\xa9\x9c\x05\x47\x24\x2d\x30\x2f\xa1\x40\x6b\xc5\x1c\x27\x9e\x50\x84\x42\x5b\xc7\xec\x68\x05\x2b\xb1\xb6\xa0\x67\x50\x59\x96\x43\x0d\xc4\xe9\xc8\x89\x50\xd9\x99\x36\x50\xa9\x2e\xce\x84\x41\x16\xca\x96\x48\x5a\x5f\xe0\xb4\x80\x52\xb8\xc5\x99\xd3\x67\x5b\x8c\x8f\x5b\x05\xa7\x59\xfd\x20\xab\xcf\x72\x0f\x80\x48\xe1\xfe\x5f\x47\x52\x31\xb8\xbc\x97\x9c\x8f\xea\xa2\x52\x6e\x41\xd7\x26\x65\x75\x3c\xff\xa8\x1a\xd8\x06\x45\x66\x21\x35\x98\xd1\x02\x91\x5b\x98\x19\x5d\xc0\xdf\xfe\x71\xfd\xf6\xf2\x6c\xb2\xb2\x0f\xa5\xd1\xa5\x85\xe9\x1a\x32\x9c\x89\x2a\x77\x1f\xd5\xf5\x12\xcd\xca\x48\x87\xf1\x27\x48\xb5\x9a\xc9\x39\x1f\x3a\x5d\xd5\x97\x6f\xae\xce\x3f\x2a\x80\x2d\x49\x9e\x86\x45\xff\xd9\x5a\xfc\x5f\x3d\x02\xb8\x36\x41\x3d\xd7\x20\xf2\x1c\xdc\xc2\x60\x0f\x70\x51\xca\x05\x69\xd0\x3f\xae\xef\xee\xe9\x6b\xe5\x16\xf0\xcb\xe5\xef\x70\x7a\x5a\xdf\x62\x78\x77\xf1\xf6\xf2\xee\xe6\xe2\xe5\x65\x27\xd6\x11\xf7\xdc\x2e\xb4\x71\xfd\x46\xeb\xc6\xe8\xa5\xcc\xd0\x82\x00\x5b\x15\x85\x30\x24\x65\x5a\x4f\x3a\xfd\x44\x53\xa7\x48\x4a\x1e\xad\xdb\x59\x3c\x6b\xcc\x60\x2a\x2c\x66\xc4\x72\xa4\xb1\x75\xb6\xf0\xfb\xc5\xdb\x37\x63\xec\x52\xa0\xb7\xdb\x30\x5d\x80\xd3\x3a\x07\x8b\x8e\xee\x17\xdf\xcd\x20\xd5\xb5\xae\x0c\xe8\x12\xd5\x8a\xe9\x2d\x83\x9d\x0d\xd7\x52\x6c\x5f\xf6\xf1\xb4\x2c\xd1\x58\xc2\xdd\x25\x3c\xa9\x1c\xdb\xb9\xb0\x0e\x54\x55\x4c\xd1\x90\xec\xea\x03\x1f\x8d\xcb\xae\x55\xda\xcf\xb7\xd3\x40\x8b\x3c\xb3\xcd\xe1\xd4\xcc\x4e\xd1\xad\x10\x15\xa4\xb9\x24\xb1\x0b\x95\x81\x45\xb3\x44\x33\xda\x29\x8c\xa7\xa1\x75\xbc\x84\x27\xaa\x02\xff\xb0\xa5\x3a\xdd\x47\x41\xfb\x74\x49\xf0\x45\xde\x86\x47\x47\x14\x97\xb3\xea\x90\x5d\x78\x25\x67\x33\x64\x8b\x1e\x2d\xae\xa9\x14\xf9\x6e\x26\xe7\x7c\xdb\x08\xd1\x4f\x4f\x7f\x19\x69\xc1\x7a\x97\xb6\xad\xd7\xf1\x30\x4e\x4b\xa3\xff\x85\xa9\xa3\xfb\x0e\x37\xb7\xd7\xff\xbc\x7c\x79\x3f\x5a\x4f\xa2\xa8\x3b\xce\xe9\x7d\xa7\x9f\x61\x63\xe9\x15\x62\xac\x3e\x8c\xc5\x65\xb0\xd0\x4b\xb4\x4f\x71\xae\x16\x32\x5d\xc0\x0a\x0d\x36\x41\x11\xd3\x41\xb7\x66\x4b\x13\x76\xed\xc5\x56\x9c\x91\x61\x8e\x8e\x0e\x7b\x3f\x53\x5b\xc0\xbc\x3b\x37\x95\x3a\xff\x7f\xe7\xde\xf6\x43\xda\xa7\x0d\xf0\xbd\x56\xf9\x9a\xe3\x2b\x0b\x33\x6d\x5a\xe2\xe1\xe8\x8f\x15\xac\xd0\x19\xfe\x30\x5a\x6f\xf0\x4b\x8f\x1f\xb8\xe4\x87\x10\x28\xd9\x12\x6e\x2d\xf2\xb1\x4a\x33\x02\x91\xa5\xe3\x12\x73\xcc\xfa\x31\x92\xb5\xd9\x52\x92\x59\xa5\x38\x6e\xf6\x36\xa2\x23\x1e\xa3\x5d\x14\x80\x7a\x3a\x76\xb4\xc0\xff\xd8\x21\xf4\xd6\xa1\xfa\x75\x98\x9d\x1e\xe0\x74\x67\xb9\x98\x27\xa2\x94\x09\xb9\xf7\x0e\xfe\xbd\x7f\xba\xb8\xb9\x82\xcf\xe4\xff\x3f\x8f\x84\xd8\xef\x88\x5a\x40\x7f\xbd\xbc\xbd\xbb\xba\x7e\x37\x0a\x6e\xe5\x16\xc9\x03\x76\x5d\x6e\x7a\xac\x8d\xfc\x93\x7f\x80\xcf\xbf\x5c\xfe\x3e\x06\x68\x8a\xc6\x25\x74\x3a\x1d\x50\x49\xbe\x64\xbd\xe9\xca\x4e\x68\x31\x1f\xe5\x18\xc0\x1c\x8a\x75\x40\x6d\x07\x75\xdf\xc7\x48\x4f\xda\xdd\xd0\x70\xe0\xb2\x78\xa9\xe4\xb9\x5e\x25\x01\x46\x57\xf6\xc9\x8b\xa0\x5e\x34\x0c\xb5\xb9\xbe\x7d\x72\xa9\x93\x86\xda\x0f\x8e\x00\x5d\x1a\x5c\x4a\x5c\x75\xc0\xb5\x0b\x26\x34\x02\x3d\xdb\x72\xd4\x65\x2e\xd4\x08\x0c\x0f\xb8\x1e\x7d\xa4\x0f\xb8\x1e\x4b\xb8\x97\x74\x30\x04\xbd\x82\x8e\x46\xa2\x4e\xa7\x1d\x39\x06\x28\x84\x79\xc0\x2c\x9a\x92\x51\xa2\x62\x38\x09\x5d\xfa\x2e\x66\x02\x2a\x5e\x32\x0c\x31\x5a\x87\x81\x53\xdd\x72\x4e\x23\xc0\xd6\x89\x40\x07\xdc\xe6\xf9\x68\xa6\x07\x28\xf4\x71\x41\x8e\xd6\x46\x69\x8f\x00\x6d\x9d\x91\x9d\x90\xfd\xd1\x55\x16\xc9\x79\xcd\xa4\xc2\x8c\xac\xb2\x93\x45\x1d\x2e\x8f\xc0\xe0\x4c\xb7\x10\xf8\x19\xe8\xca\x95\xd5\x18\x62\xbd\xba\x2d\xd1\x4c\xb5\xed\x02\x19\x9e\x1e\x0a\xb4\x14\x46\x14\x9d\x02\x36\xa2\x40\x87\x06\x96\x22\xaf\x90\xbd\x37\x19\x53\xf8\xf5\xe2\xcd\xfb\xcb\xcf\xe4\xdc\x0b\x71\x20\xaa\xbe\xdb\xf8\xf9\xf5\xd5\x9b\xcb\xcf\x94\xe6\x3a\x21\x39\x40\xde\x47\xc1\x3f\xef\xae\xdf\x0d\xa3\x66\xab\x9a\x14\xd2\x52\x2c\xce\xfe\xa2\xdb\x5d\x90\x23\xa6\x15\x4d\xee\x0e\x64\x0b\xa4\x05\xa5\x63\xd6\x5d\x19\xcc\x26\x1f\xfb\xce\x7d\x07\xa3\xcf\x94\x7b\x30\x92\xcf\xe3\x64\xfa\xab\xf0\x0c\x5d\x37\xc2\xd4\xe4\xe6\x47\xa1\x0a\xac\xf4\x55\x45\x77\xf9\xf9\xf0\xf8\x38\xa1\xcf\x9b\xcd\xa7\x13\x1f\x18\x3d\x3e\x4e\xac\xae\x4c\x8a\x9b\xcd\x28\x9c\xfe\xc0\x86\x70\x72\x01\x22\x9c\x95\x45\x77\x1c\xae\x5a\x3c\x43\xd8\xb6\xe4\x48\x2c\xd6\x3f\x1c\xcf\x67\x29\xe7\xab\x44\x70\x41\x38\x71\xfa\x01\xd5\x20\xcb\xb4\x03\xfc\x0e\xe0\x1d\xc7\x31\x5f\xa9\x42\x18\xbb\x10\x79\x92\xeb\x54\xe4\x9d\x69\x52\x58\xd5\x8a\x6c\x83\x29\x0c\x11\x2f\xef\x0e\xd7\x73\x24\x42\x85\x8e\xb2\x83\xa3\x51\x4a\xe5\xd0\x28\x74\x20\x1c\xb1\x5b\x99\x7c\x80\xd7\x26\x6e\x48\x52\xa1\x52\xcc\xf3\x4e\xaf\x7d\xfd\xcb\x04\x5e\xfa\x35\x4d\xc1\x88\xf3\xa0\x91\x08\x66\x42\x76\x43\x6f\x15\xa4\x33\x99\x85\xbb\x58\x94\x39\x3a\x04\x5b\xd1\x91\xce\xaa\x3c\x5f\x4f\xe0\xb6\x52\xf0\xf9\x69\xc6\xf5\x99\x13\x04\xce\x58\xc9\x36\x3a\x29\xf2\x7c\xdd\xa4\xa7\x3e\x13\x19\x4b\xa9\xaf\x96\x25\xd6\x09\x57\x75\x45\x8b\xa7\xa7\xa7\xa7\x2f\x5e\xbc\x78\xb1\xbf\xa8\x7e\xc7\x5b\x81\x16\xd0\xc2\x51\x58\xb9\x37\x82\xd9\x18\x11\x45\xd1\x64\x10\x1a\x2a\x5e\x38\xfd\x4a\x76\xfc\x59\xb7\xf7\x8e\x47\xd2\x7b\xde\xef\xdb\x21\x6b\xef\x89\x8f\xc6\x37\x24\xbf\x2d\x94\x47\x48\x30\xf4\x3a\x12\x2e\x62\xb1\xb7\x26\x2b\x97\x08\x97\x50\xbc\xd5\x81\xf4\xf1\x71\x92\x16\xd9\x66\x13\x4a\x5f\x8f\x8f\x13\xda\xe8\xd6\x25\x6e\x36\x6c\x29\x69\xef\x66\xf3\x69\x32\xe9\xc5\xcd\x41\xf2\x3a\x89\xfa\x3c\xd0\x47\x7b\x7c\xa4\x90\x3d\x20\x20\x22\x37\x9b\x4f\xb0\x10\x16\xa6\x88\x6a\x8b\xe1\xfa\x86\x8c\xc7\xde\xdd\x78\x7b\x15\x9f\xc3\x5e\x02\x26\x93\x9e\x92\x65\x40\xd1\x54\x9f\xbf\x1d\x8b\x0d\xcc\x31\x4c\xc6\xd5\xdd\x6c\xbe\x6f\x56\xec\x65\xb4\x97\xcf\x0c\x4b\x54\x19\xaa\xf4\x10\x71\x36\x9b\x8e\xc7\xd3\x5c\x91\x4e\x99\xbe\xda\x8b\xe6\x6b\x14\x67\x3f\x15\x64\x18\x2a\xd3\x15\x97\xbd\xda\xaa\x39\xef\x67\xfd\xff\xd0\x47\x44\x7e\x0e\xd3\x93\xaf\x3b\xc1\xa7\x66\xee\xdb\x9c\xe1\xc8\x9b\xd1\x45\x49\xff\x39\xbe\xdf\xe9\x1e\x1c\x73\x92\x7d\x54\x85\x0a\xc1\xb1\x3e\x87\x29\xf2\x1e\xa0\xae\x40\xf4\xd1\x02\x59\x65\xe8\x24\x63\x8d\xb3\xe5\x11\xff\x3a\x7d\x8b\x3c\xce\x74\xa5\xb2\x24\xd0\x1b\x2c\x55\xa7\x02\x84\xaa\xfa\x5e\x0b\x19\x4a\xf7\x3c\x80\x40\x74\xb5\x0a\xf7\xb1\xb9\xbe\x5b\xc4\x65\x27\xe5\x3f\x13\x04\x61\x99\x17\x6e\x8f\x8f\x0d\x0b\x42\x4d\x2d\x09\x6d\xa3\xae\xce\x9b\x7f\xca\xc9\x04\xb4\xea\x7d\x06\xb9\x8e\x91\x9d\x70\x1f\xb6\x09\xb7\xea\x63\x23\x3a\x4c\xbd\x23\x20\x01\xd1\x6a\x4f\xb4\xbb\x9a\x7e\x78\x20\x68\xbf\xf1\x7d\xb7\xa1\x49\x8b\xcb\xdb\xdb\xeb\xdb\xbb\x0e\xba\x5f\xec\xfe\x03\xbf\x1c\x9e\x3c\x78\xf1\xa2\xc7\xfd\x18\xb3\x7d\xd1\x1e\x94\x5e\xa9\x84\x22\x85\xe1\xab\x4e\xab\x48\x54\x61\xd7\x04\x5a\xc5\x71\xee\x39\xd8\xaa\xf4\x25\xfa\x33\x2e\x2b\x4f\xec\xda\x3a\x2c\x60\x2a\x55\x26\xd5\xdc\x82\x36\x30\x97\x6e\x51\x4d\x27\xa9\x2e\xea\xf6\x5e\xbf\xbf\x34\x26\xfa\xcc\xd4\xa0\x70\x5d\x64\xf2\x60\x11\xf0\x92\x2d\xb5\xe4\xf1\x12\x9e\x48\x8a\xb3\x18\xe7\xf4\x10\x8d\xd9\x6c\xb8\x2f\xe0\x9f\xa5\x3a\xf3\x0f\xe8\xc3\x40\x36\xd3\x22\xc9\xdf\x95\x5e\x92\xb2\x27\x37\xe5\x2f\x22\x69\x86\x98\x25\x52\x2d\xf5\x43\x17\x41\xaf\xd9\x6c\x91\xb9\xf0\xcb\xf8\x42\xd2\x36\x58\x2d\xb0\xd5\x29\x73\x7e\xae\x28\x3c\xfa\x6b\xa8\x7d\xc0\x75\x5d\x43\xa1\x78\x57\x38\x6d\xfa\xea\x43\xf5\x1a\x2e\x37\x7c\x88\xc2\xfc\x44\xfa\x18\xe0\x0c\xe2\x8c\xa5\xd4\x44\x69\xe7\x8d\x5d\x07\xc2\xb7\xed\x9a\x2b\xdb\x6a\x5e\x4d\xf9\x2e\x17\x3d\xdb\x11\xf5\x10\x52\x8e\xde\x0b\x69\x0b\xe1\xd2\xae\xf0\x9d\x18\xac\xd5\x83\x36\x64\x8c\x22\x8b\xf6\x54\xaa\xdd\xe2\xbe\x7f\x1e\x68\xe0\xf9\x24\x26\x93\x91\xf0\xb1\xb2\x79\xa3\x45\x45\x0b\xc8\x56\x2d\xd9\x3f\x8d\x6c\xf4\x33\x11\xf2\x7f\x52\x2f\x91\xcb\x2e\xb1\x5d\xf9\xa7\x3c\x54\xe5\x8f\xa4\x2e\xdb\x12\xae\xf0\x99\x68\xd9\x3b\x91\xc5\xcd\x4a\xa2\x5d\xf8\x46\x1d\xed\xf1\x1f\xc7\xc8\x39\x92\x38\x20\xea\xdb\x43\x08\xda\x91\x2b\x5f\x05\x4f\xd1\x73\x0b\xbe\xca\xe3\x45\x89\x5f\x1c\x2a\x1b\x89\xc6\x2f\xec\xc3\x88\x9d\xaf\x61\xc5\x26\x73\xec\x2a\x60\x36\x57\x79\x8e\x7e\x8e\x24\xd8\xde\xa6\x54\xfe\xa4\x23\x4a\xfe\x4d\xa6\xad\xeb\x3b\x5a\xa6\x9e\xf4\xc4\x73\xcc\xb7\xa7\xc6\xd6\x41\xdf\x16\xc3\x1c\x17\x92\x18\x1b\x29\x0b\xb5\xae\x75\x83\x8c\x48\xeb\xd8\x07\xe5\x1a\x8a\xa8\x35\x09\x83\x6c\x54\x26\x3f\x5c\x73\x7d\x61\x2b\xa4\xd0\xef\x6f\xdf\x30\x05\x5c\xea\xe2\xab\xf4\x61\x2b\xc7\xfe\xe4\x87\x83\xc6\x10\x52\x88\x7c\xa6\x4d\xd1\x29\xb9\xb7\xf1\x79\x1f\x05\x13\xb8\x37\x6b\x10\x73\x21\xd5\x50\x4a\x6f\x4c\xf2\x2f\xab\x55\x6d\x6c\xd3\x22\xeb\xe9\xdc\x72\x71\x5f\xaa\xb2\x72\x90\x09\x27\xe0\x6d\x90\xc6\xf3\xb4\xc8\x9e\x93\xe9\xed\xc7\x24\x4a\xd9\x54\xe0\xbd\xd2\x68\x93\x58\xfc\xa3\x42\xd5\x59\x22\xf7\xf3\xac\x67\x77\x61\xd5\xf6\x65\x69\xd9\x77\xaf\xcf\x3b\xc3\x1a\x17\x37\x57\x7e\x43\x29\x69\x75\x2a\x94\x0f\x45\xa6\xe8\x83\x81\xf6\x80\x59\xa3\x64\x67\x91\xa4\x3d\x30\x27\x70\x93\xa3\xb0\x08\x55\x99\x09\xb7\x33\x1d\xe2\x9d\x67\x9a\x57\xd9\x2e\x9d\xc2\x82\x80\x15\x4e\x77\x31\x0c\x9e\x4e\x90\x53\xbf\x82\x5e\xec\xb1\x23\x24\x9a\xb0\x6b\x02\x57\xce\x67\x5f\xda\x2d\xd8\x17\x6f\xcf\x3c\xd4\x17\xef\xc4\x4b\x47\x2b\x0c\x6d\xd7\x82\xa0\xe0\x97\x12\xd3\x31\x37\x29\xd0\x1a\x8f\x38\xda\x07\x32\x8c\x09\x61\xfd\x4a\xea\x99\xf0\xc6\x48\x10\x58\x5d\xb9\xb6\xb1\x98\xc0\x6f\x8d\x11\x8e\xa6\x82\xb6\x9d\xd4\xe6\x44\xda\x26\x58\x18\x70\x6b\x81\x9d\x28\xa6\x84\xb2\x15\x87\x49\x26\xcd\x28\x23\xb7\x97\x2d\xe2\xa3\x96\x7b\xa9\xa5\xf2\x21\x95\x4f\xd1\x1c\xb6\xa6\x8a\x9b\xeb\x7c\x42\x29\x60\xe4\x8a\xa7\x7a\x77\x2c\x5c\x3f\x1b\xa9\xa0\x84\x5d\x2c\x31\xc9\x74\xfa\x80\x5d\xb3\xf7\x2f\x85\x62\xa8\x62\x89\xf0\x8a\x17\x82\x2c\x38\x00\x1f\x08\x2c\x65\x8e\x89\xc8\x0d\x8a\x6c\x9d\xe0\x17\x69\x3b\x67\x1b\x5e\xd3\x0d\x09\x2b\xc1\xaf\x1c\x80\x9d\xc5\xd9\xbc\x26\x2b\x91\x68\xbd\x42\x59\x8a\x9c\x72\x31\xc5\xae\xe6\xc8\xb5\x42\x20\x3d\xcc\x71\x37\xed\x6f\xbe\xc6\x23\x71\x2b\x0d\x35\x32\x6e\x9a\x78\x59\xd3\xea\xf8\xcd\x1b\xd6\x85\xb4\xf0\x20\x55\x46\x17\x24\xe8\x62\x68\x4a\x3e\x71\x3c\x3b\x96\x82\xec\x4b\x8b\x10\x26\x7d\x0f\x39\x61\x02\xff\x89\x5d\x61\x65\xe1\x86\x3a\xc5\x6e\x91\x28\x88\x69\x0d\x32\x0f\x16\x4b\x61\xe8\x0b\x43\xf7\x03\x5e\x1d\xbc\x8d\x53\xfe\x70\xc9\x12\x62\xf9\x50\x3d\x57\xda\x4b\xca\xa2\x3b\x0c\xd9\xa1\xb6\x22\x20\x6b\xdd\xf7\x01\x7c\xd1\xfa\x26\x0b\xb1\x24\x4b\xc5\xba\xe4\x0b\xe9\x36\x10\xd3\xf5\x76\x48\xdb\x0d\x45\x30\xc1\x5e\x45\xd5\x8e\x43\x09\x64\xf3\x55\x34\x46\x3e\xd1\xe7\x50\x8c\xce\x2f\x64\xb7\x93\xf8\xba\x46\x98\xa9\xf5\xf0\x2c\x3b\x2a\x52\x26\x7e\xa7\x80\x37\x70\xc4\x2e\x15\x88\xa8\xd3\x11\xc2\xc0\xe5\xd7\x6a\x96\xcb\x94\xac\x4c\x12\x12\x37\xe2\xd0\x68\x6b\x63\x25\xa4\xeb\xba\xb6\xee\x4f\x4c\xf9\x88\xe9\xf0\x39\xf0\x1c\x79\xe5\xe0\xb7\xa8\x72\x27\xcb\xdc\x67\x8d\xfe\xf2\xd0\xa7\x10\x91\x78\xe4\x6c\xbe\xa2\xef\xdd\x29\x83\xb8\x76\x17\xf7\x04\xa4\xf3\x37\xaa\xd4\xd6\xca\xa9\xbf\x05\x2c\x90\xc8\x88\xc7\xda\x88\x67\x4a\x71\x49\xad\xe9\x4c\xc4\x93\x4b\x18\x38\x61\x34\x4f\x92\x9e\x03\x84\x69\xaa\x1c\x8f\x90\x24\x6d\x0b\xd9\x45\x8e\xfb\x64\xd8\xd0\x1f\xed\xfd\x4e\x20\xe1\x5f\xfa\xa8\x45\xb0\x7d\x24\x13\xff\xae\xcf\xb7\x10\x32\x33\xb8\x4f\xc2\xc2\x5a\x9d\x4a\x06\xbd\x9f\xe2\xb3\x48\xdc\xae\xf0\x99\xf9\xa3\x24\x2f\x4c\x33\x53\xc1\xcd\xec\xce\x59\xf2\xd0\x20\x83\x5c\x2a\x04\x61\xe6\x15\x27\xc5\x24\x42\x33\xdf\x6c\xda\xf1\x22\xc3\x39\x81\xd2\x93\x18\x5f\xb3\x20\x79\xf0\x93\x03\x28\x7a\xc0\xf5\x37\xa3\xea\x01\xd7\x67\x0c\x0b\x4a\x21\xcd\x13\xf2\xb6\x1f\xb3\x7d\xc7\x2f\xa2\x28\x29\xd8\xad\xc1\x3d\xe0\x7a\x14\x0f\x21\xc0\x1a\x1e\xfd\xe9\x62\xe0\xfb\x88\xf2\x07\xb6\xc1\x01\x9e\x9f\x0b\xf2\x8e\xab\x2e\x85\x9c\xf8\x82\x64\x2b\xbd\x8c\xca\x51\xbf\xe0\x02\x7e\x37\x27\x19\x0d\x88\xa1\xda\x03\xfe\x51\x49\xc3\xb5\xad\xb2\x72\x76\x94\x96\xdc\x86\x3d\x3e\x95\xf1\xb7\x65\x4b\x2b\x2c\xe0\x12\x15\x88\x99\x43\x03\xa2\x2c\x73\xee\x9f\xf0\x60\x43\xa9\x3d\x9c\xd0\x4b\x45\xb5\x9c\xc0\x52\x18\x29\xa6\x39\x36\x0a\x6f\xd1\xd5\x10\xb7\x97\xc4\x0b\xec\xb3\xa8\x66\x6e\x6a\xdf\xeb\x2d\xfe\x55\x22\x13\x5e\xf8\xe1\xc3\x9e\xe9\x3c\xd7\x2b\x4f\x0d\xd1\xce\xf2\xf4\x1f\x37\x9b\xe1\xec\x6b\x2e\x1c\xae\xc4\x3a\xa1\xa4\x87\x3b\xc6\x43\x89\xc5\xcd\x15\xfc\xec\xf7\x70\xa2\xd4\x14\xb8\x44\x29\xe9\x87\x58\x63\xda\x13\xae\xf3\xd2\x7a\x44\x2c\x4e\xec\xef\x46\x49\x21\xe5\x30\x48\x48\x97\x01\x41\x5d\x29\xde\x81\x31\xb2\x0e\x55\x0a\x63\xd1\xf4\xbe\x69\xda\x54\x48\x0c\x3a\x23\x91\x0d\x5e\x28\x8c\xd4\x1a\xba\x1f\xdb\x6f\x17\xb7\xef\xae\xde\xfd\x3c\xbe\x12\x1f\x37\x1c\x56\x8b\x5f\x09\xa3\xea\x76\x3f\x11\xd9\x95\x94\xdf\xd2\x33\xd2\x88\x0f\xb1\xcf\xff\x29\x68\x2e\x0b\xe0\xdc\x17\x47\x88\xa1\x4f\x7d\x09\x5c\xc0\xc7\x73\x4f\x07\x97\x43\xda\x63\xd2\xad\xf2\x27\x64\xe8\x86\x53\x47\xc6\x4c\x36\x34\xc3\xd2\x60\x4a\x9e\x25\x31\x58\xe6\x22\xed\xcc\xad\xee\x17\x1e\x8f\xce\xb3\x50\xe8\xe5\x31\x33\x1f\x3a\x6f\xcf\x37\xf0\xbb\x9f\x56\x6b\x45\x49\x7f\x83\xa1\xb6\xac\x95\xf5\xa1\x39\x77\xa8\x70\xb5\x05\xce\x3a\x14\x23\x69\x0f\x92\x38\xa6\x46\x6d\x17\xba\xca\x33\x22\x8f\x22\x65\x78\x6f\x7d\xb3\xd6\x77\x92\xbc\xb1\xa7\xd5\xfc\x69\x78\x4a\xa3\xa6\x88\xd7\x0f\x1c\x25\xd1\xe5\x31\x90\x71\x79\x5a\x3b\xa7\xab\xea\x6f\xf5\x01\x28\x39\x39\x16\xcb\xde\xc3\x1b\x42\xca\xfb\xe3\x81\xc6\xae\x60\x7c\x19\xae\xfd\x16\xdc\x30\x61\xb9\x2c\xa4\x4b\xe4\x5c\x69\xd3\x49\x52\x54\xe9\x10\xac\xf3\x16\x9f\xfc\xd1\xa7\xdd\xfa\x38\x19\x3b\x0f\x6e\x2c\xf6\x74\x21\xd4\x1c\xc9\x01\x74\x10\xf0\xa6\xc6\x58\x17\xe4\x6d\xe4\x3b\x5f\xfb\x86\x70\x0d\x63\x02\x57\x84\x5e\xaa\xf9\x18\x5d\x60\x0a\x6c\x92\xeb\x79\x62\xe5\x9f\x5d\x04\xe4\x7a\x7e\x27\xff\xe4\xba\x8f\xdf\xb0\xc5\x71\xa3\xa2\x42\xb1\x1f\xa4\x18\x3a\xbe\x15\xf8\x23\x27\x2f\x3f\xfd\x38\x9a\x94\x02\x0b\x6d\xd6\x7d\xd4\xf8\x15\xc7\x12\xf4\xd3\xdf\xff\x83\x49\xfa\xf7\x9f\xfe\x3e\x9a\x26\x32\xfd\xba\xea\x2a\xa8\x87\xa7\x47\x11\xf3\xa3\x97\xcf\xbf\xfd\x48\xff\x86\xe9\xe1\xde\x68\x52\x1a\x5d\xa2\x71\xb2\x33\xa7\x88\x16\xb0\x65\xaf\x7c\x47\xdd\x7b\xb3\xd0\x53\xf7\x8d\xd6\x06\x58\xec\xbd\xef\xb7\x89\xd1\x24\x66\x9a\x15\x8e\x2c\xa3\x74\xa0\x2b\x67\x65\xc6\x07\x71\x6f\xc4\x52\x5a\x98\x56\x32\xcf\xfa\x1b\xb3\xcc\x8a\x37\x07\x86\xd4\x76\x94\x29\xa8\xb5\x7f\xcb\x20\xa8\x1d\x83\x1e\xa4\xcd\xed\x66\x4a\x7e\xfc\xaf\x51\xdc\x8f\x8f\x93\x42\xaa\xd0\x7c\xa4\x2f\x22\x1d\x68\x65\x30\xa9\x31\x74\xf0\x97\xac\xcb\x4c\xc4\xf6\x50\x58\x45\xe1\xc3\x4e\xa7\x68\x4f\x35\xb9\xb3\x19\x74\x54\x07\x88\xa9\x0d\xfd\x65\xae\x58\xf4\x96\xdc\x9e\xb4\x0e\xb7\x4c\xcc\x4e\x2d\xae\x09\x5e\x73\x7e\x71\x4e\x69\xb7\x08\xa9\xf2\x30\x49\x31\x05\x1e\xec\x9e\xde\x3f\x29\x6e\xb5\x03\x86\xf0\x76\x01\x66\xa0\xf4\xb8\x11\x00\xc6\xde\x9a\xbe\x61\xa1\x8c\x21\x62\xef\x6c\x4a\xf0\x38\xbb\x41\xf8\x2a\xb4\xa8\x7c\xa3\x77\x5f\x89\x6e\x84\x84\x5a\xef\x08\x25\x7a\x89\xc6\xc8\x2c\xc3\xae\x42\x13\x51\xd8\x7e\x65\xa8\x99\x9e\x6a\xb6\xc6\x58\xa1\x3d\x1c\x33\xf6\xa0\x12\x69\x93\xb2\x9a\xe6\xb2\xeb\xb5\x6c\x7f\x2a\xbc\x36\x36\x5a\xfc\x5b\x51\x14\xda\xf3\xc6\x27\x49\xfc\x09\x99\x0b\xb6\x2d\x53\x84\xa5\xf4\xf5\x04\xba\x87\xa9\x60\x4b\xe3\xc7\xe2\x31\x83\xe9\x1a\x84\x5a\x6b\xd5\xf3\x96\x11\xd3\x1a\xeb\x82\x38\x0d\xef\x7e\x0e\xb8\xf1\xa7\x65\x41\xee\x78\x70\xdf\x45\x65\xf4\xff\x69\x78\x4d\x73\xb7\xe5\x41\x17\x81\xff\xce\x06\x4e\x4f\xbc\x73\x0f\xdf\xc2\x86\x9e\xcc\xc3\x53\xda\x6a\x6d\x11\xb9\xbd\x45\xc4\xae\x86\x07\x69\x58\xbb\x4b\x34\xaa\x7f\x15\xfe\x3e\x48\xbd\x69\x02\x2f\xb5\x5a\x92\xb9\x0f\x29\x41\x83\xc2\xe9\x2d\xf0\xc3\x2a\xbb\xcb\xd5\x40\xab\xae\xaf\x38\xda\xf0\x16\x1f\x1c\xc8\x5d\xdd\x31\xdb\xe5\xaf\x8d\xa8\xe6\x70\x54\x7f\xad\xe6\x31\x16\x42\x0c\xda\x52\x2b\x8b\x7d\x13\x4f\x3b\x44\x73\x09\x6c\x37\xd5\x0d\xcf\x63\x52\xdb\x4a\x92\x63\xb9\xa2\x2e\xb3\x2d\x9c\x2b\xfd\xdf\xe2\xf1\xa8\xd9\xaf\x4d\xe0\x25\x79\x18\x1e\x91\x68\xff\xee\x9d\x3a\xbb\x9c\xf0\x73\x60\x9a\xa1\x90\x3f\x69\x28\x1b\xd2\xd8\x78\xae\xa8\x96\xd2\x68\xc5\xb6\x33\x56\x29\xba\x9a\xcf\x21\xdb\xbb\x6c\xb6\xc0\xaf\x61\xcb\x76\x8a\xb2\x1f\xf7\xab\xcb\xff\x7e\xff\xf3\xe8\xb4\x99\x57\x1f\x96\x33\x67\xd3\x79\x62\x51\x98\x74\x41\x9c\x45\x83\x5b\xf7\xd4\x3a\xd5\x36\xec\xa8\x0d\xee\x76\x17\x2e\x1e\x5f\x94\xaf\x0f\x4c\x06\x42\x6f\x22\x65\xd7\x2b\x7d\x6b\x8f\x74\xa4\x37\x22\xd2\x6a\x77\xed\xa7\x3a\x7b\xfe\x34\xca\xab\x3d\xa3\x45\x41\x22\xe7\xf0\x9a\x29\x68\xfe\x12\x07\x57\x98\x09\xd8\xa1\x04\xf4\xbf\x4b\x7a\x38\x0d\xed\xc1\xd1\x38\xe8\x7c\xd8\xfb\x81\x3b\x2f\x7e\x1d\xfc\xce\xd7\x01\x6f\xf2\x85\x97\x43\x93\x3f\x65\x99\xe0\x17\x1e\x1f\xf0\x6d\xd5\x9e\x77\x3a\x2e\x79\x1d\x29\xed\x8d\x70\x8b\xf3\xb6\x48\xc6\xa2\x12\x59\x16\x5f\x22\xe9\xc3\x74\xc1\xcb\xb6\x6e\x82\xd3\xf0\x3f\xb2\x84\xd7\x43\x9a\xd6\xc6\x16\xe6\x22\xe2\x98\x50\x0f\xc2\xd7\x61\xd0\xeb\xce\x47\xcd\x47\xf3\xb7\x07\x63\x92\xa1\x75\x52\x31\xaa\xaf\x21\x81\xc3\x89\x57\x0d\xac\xd6\x8a\x16\x86\x91\xb4\x46\xef\x13\xe9\x45\xd5\x5d\xec\x8b\x89\x3f\x5c\x85\x31\x93\x4b\x5a\x4c\x0e\x44\xba\x56\x11\x96\x29\x09\xf0\xb8\x2d\x14\x97\x33\x6c\xf6\xb4\x28\x39\xba\x67\x27\xf4\xc1\xf3\xf9\x09\xc8\xc2\xf9\xcf\x27\x6d\xf6\xfa\xef\x4e\xe4\x23\x8e\xd7\xb2\xf0\x7b\xba\x09\x2f\xe3\x18\x2e\x49\x38\xea\xd1\xc1\x27\x9c\x4b\xeb\x12\x3d\x63\x44\x36\xe1\x11\x3c\x36\xfa\xc2\x39\x34\x5d\xd7\xd5\xdb\x0a\x1e\x6c\xad\x0b\xe9\xfe\xaf\x02\xf9\x06\x66\x80\x12\xcf\x9d\x27\x16\x6e\xbc\x73\x67\xb0\x51\x0e\xcf\x3e\x3d\xfb\xdf\x00\x00\x00\xff\xff\x44\x65\x23\x35\xe4\x50\x00\x00")
 
 func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
 	return bindataRead(
@@ -112,7 +112,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 19741, mode: os.FileMode(420), modTime: time.Unix(1537092250, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 20708, mode: os.FileMode(420), modTime: time.Unix(1539294171, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -132,7 +132,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -152,7 +152,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 101, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 101, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -172,7 +172,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -192,7 +192,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -212,7 +212,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -232,7 +232,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -252,7 +252,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -272,7 +272,7 @@
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1537087727, 0)}
+	info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -329,14 +329,14 @@
 
 // _bindata is a table, holding each asset generator, mapped to its name.
 var _bindata = map[string]func() (*asset, error){
-	"wski18n/resources/de_DE.all.json": wski18nResourcesDe_deAllJson,
-	"wski18n/resources/en_US.all.json": wski18nResourcesEn_usAllJson,
-	"wski18n/resources/es_ES.all.json": wski18nResourcesEs_esAllJson,
-	"wski18n/resources/fr_FR.all.json": wski18nResourcesFr_frAllJson,
-	"wski18n/resources/it_IT.all.json": wski18nResourcesIt_itAllJson,
-	"wski18n/resources/ja_JA.all.json": wski18nResourcesJa_jaAllJson,
-	"wski18n/resources/ko_KR.all.json": wski18nResourcesKo_krAllJson,
-	"wski18n/resources/pt_BR.all.json": wski18nResourcesPt_brAllJson,
+	"wski18n/resources/de_DE.all.json":   wski18nResourcesDe_deAllJson,
+	"wski18n/resources/en_US.all.json":   wski18nResourcesEn_usAllJson,
+	"wski18n/resources/es_ES.all.json":   wski18nResourcesEs_esAllJson,
+	"wski18n/resources/fr_FR.all.json":   wski18nResourcesFr_frAllJson,
+	"wski18n/resources/it_IT.all.json":   wski18nResourcesIt_itAllJson,
+	"wski18n/resources/ja_JA.all.json":   wski18nResourcesJa_jaAllJson,
+	"wski18n/resources/ko_KR.all.json":   wski18nResourcesKo_krAllJson,
+	"wski18n/resources/pt_BR.all.json":   wski18nResourcesPt_brAllJson,
 	"wski18n/resources/zh_Hans.all.json": wski18nResourcesZh_hansAllJson,
 	"wski18n/resources/zh_Hant.all.json": wski18nResourcesZh_hantAllJson,
 }
@@ -380,17 +380,18 @@
 	Func     func() (*asset, error)
 	Children map[string]*bintree
 }
+
 var _bintree = &bintree{nil, map[string]*bintree{
 	"wski18n": &bintree{nil, map[string]*bintree{
 		"resources": &bintree{nil, map[string]*bintree{
-			"de_DE.all.json": &bintree{wski18nResourcesDe_deAllJson, map[string]*bintree{}},
-			"en_US.all.json": &bintree{wski18nResourcesEn_usAllJson, map[string]*bintree{}},
-			"es_ES.all.json": &bintree{wski18nResourcesEs_esAllJson, map[string]*bintree{}},
-			"fr_FR.all.json": &bintree{wski18nResourcesFr_frAllJson, map[string]*bintree{}},
-			"it_IT.all.json": &bintree{wski18nResourcesIt_itAllJson, map[string]*bintree{}},
-			"ja_JA.all.json": &bintree{wski18nResourcesJa_jaAllJson, map[string]*bintree{}},
-			"ko_KR.all.json": &bintree{wski18nResourcesKo_krAllJson, map[string]*bintree{}},
-			"pt_BR.all.json": &bintree{wski18nResourcesPt_brAllJson, map[string]*bintree{}},
+			"de_DE.all.json":   &bintree{wski18nResourcesDe_deAllJson, map[string]*bintree{}},
+			"en_US.all.json":   &bintree{wski18nResourcesEn_usAllJson, map[string]*bintree{}},
+			"es_ES.all.json":   &bintree{wski18nResourcesEs_esAllJson, map[string]*bintree{}},
+			"fr_FR.all.json":   &bintree{wski18nResourcesFr_frAllJson, map[string]*bintree{}},
+			"it_IT.all.json":   &bintree{wski18nResourcesIt_itAllJson, map[string]*bintree{}},
+			"ja_JA.all.json":   &bintree{wski18nResourcesJa_jaAllJson, map[string]*bintree{}},
+			"ko_KR.all.json":   &bintree{wski18nResourcesKo_krAllJson, map[string]*bintree{}},
+			"pt_BR.all.json":   &bintree{wski18nResourcesPt_brAllJson, map[string]*bintree{}},
 			"zh_Hans.all.json": &bintree{wski18nResourcesZh_hansAllJson, map[string]*bintree{}},
 			"zh_Hant.all.json": &bintree{wski18nResourcesZh_hantAllJson, map[string]*bintree{}},
 		}},
@@ -443,4 +444,3 @@
 	cannonicalName := strings.Replace(name, "\\", "/", -1)
 	return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
 }
-
diff --git a/wski18n/resources/en_US.all.json b/wski18n/resources/en_US.all.json
index 06e4ed5..9e78b70 100644
--- a/wski18n/resources/en_US.all.json
+++ b/wski18n/resources/en_US.all.json
@@ -510,5 +510,33 @@
   {
     "id": "msg_config_missing_apigw_access_token",
     "translation": "The apigw access token is not configured.\n"
+  },
+  {
+    "id": "msg_verbose_zip_exclude_file_path",
+    "translation": "Excluding Path: [{{.path}}]\n"
+  },
+  {
+    "id": "msg_verbose_zip_adding_file_path",
+    "translation": "Adding [{{.path}}] to Zip File.\n"
+  },
+  {
+    "id": "msg_verbose_zip_include_source_path",
+    "translation": "For the Source Path: [{{.path}}]\n"
+  },
+  {
+    "id": "msg_verbose_zip_include_source_path_destination_path",
+    "translation": "For the Source Path: [{{.path}}] and Destination Path: [{{.destination}}]\n"
+  },
+  {
+    "id": "msg_verbose_invalid_include_entry",
+    "translation": "Ignoring Include Entry as it is invalid [{{.include}}]. Include entry can either have [Source] or [Source, Destination].\n"
+  },
+  {
+    "id": "msg_verbose_creating_zip_file",
+    "translation": "Creating the Zip File: [{{.path}}]\n"
+  },
+  {
+    "id": "msg_verbose_list_of_files_matching_pattern",
+    "translation": "Found the following files with matching Source File Path pattern.\n"
   }
 ]
