You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2017/10/19 14:02:00 UTC

[GitHub] csantanapr closed pull request #110: Sync openwhisk

csantanapr closed pull request #110: Sync openwhisk
URL: https://github.com/apache/incubator-openwhisk-cli/pull/110
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
index 8348838f..ca7adaee 100644
--- a/Godeps/Godeps.json
+++ b/Godeps/Godeps.json
@@ -65,7 +65,7 @@
 		},
         {
             "ImportPath": "github.com/apache/incubator-openwhisk-client-go/whisk",
-            "Rev": "4a63a306d52f5dd54454e0ba38e0c7eb9cb2852b"
+            "Rev": "ad5aa3402b033edd8b30aec7f33434a253aa35ed"
         }
 	]
 }
diff --git a/commands/action.go b/commands/action.go
index b80bfb0e..75aa7c54 100644
--- a/commands/action.go
+++ b/commands/action.go
@@ -24,6 +24,7 @@ import (
     "path/filepath"
     "io"
     "strings"
+    "os"
 
     "github.com/apache/incubator-openwhisk-client-go/whisk"
     "github.com/apache/incubator-openwhisk-cli/wski18n"
@@ -33,13 +34,29 @@ import (
     "github.com/mattn/go-colorable"
 )
 
-const MEMORY_LIMIT      = 256
-const TIMEOUT_LIMIT     = 60000
-const LOGSIZE_LIMIT     = 10
-const ACTIVATION_ID     = "activationId"
-const WEB_EXPORT_ANNOT  = "web-export"
-const RAW_HTTP_ANNOT    = "raw-http"
-const FINAL_ANNOT       = "final"
+const (
+    MEMORY_LIMIT      = 256
+    TIMEOUT_LIMIT     = 60000
+    LOGSIZE_LIMIT     = 10
+    ACTIVATION_ID     = "activationId"
+    WEB_EXPORT_ANNOT  = "web-export"
+    RAW_HTTP_ANNOT    = "raw-http"
+    FINAL_ANNOT       = "final"
+    NODE_JS_EXT       = ".js"
+    PYTHON_EXT        = ".py"
+    JAVA_EXT          = ".jar"
+    SWIFT_EXT         = ".swift"
+    ZIP_EXT           = ".zip"
+    PHP_EXT           = ".php"
+    NODE_JS           = "nodejs"
+    PYTHON            = "python"
+    JAVA              = "java"
+    SWIFT             = "swift"
+    PHP               = "php"
+    DEFAULT           = "default"
+    BLACKBOX          = "blackbox"
+    SEQUENCE          = "sequence"
+)
 
 var actionCmd = &cobra.Command{
     Use:   "action",
@@ -243,6 +260,8 @@ var actionGetCmd = &cobra.Command{
             printActionGetWithURL(qualifiedName.GetEntity(), actionURL)
         } else if Flags.common.summary {
             printSummary(action)
+        } else if cmd.LocalFlags().Changed(SAVE_AS_FLAG) || cmd.LocalFlags().Changed(SAVE_FLAG) {
+            return saveCode(*action, Flags.action.saveAs)
         } else {
             if len(field) > 0 {
                 printActionGetWithField(qualifiedName.GetEntityName(), field, action)
@@ -399,7 +418,7 @@ func parseAction(cmd *cobra.Command, args []string, update bool) (*whisk.Action,
     } else if Flags.action.sequence {
         if len(args) == 2 {
             action.Exec = new(whisk.Exec)
-            action.Exec.Kind = "sequence"
+            action.Exec.Kind = SEQUENCE
             action.Exec.Components = csvToQualifiedActions(args[1])
         } else {
             return nil, noArtifactError()
@@ -445,8 +464,7 @@ func getExec(args []string, params ActionFlags) (*whisk.Exec, error) {
             return nil, err
         }
 
-        if ext == ".zip" || ext == ".jar" {
-            // Base64 encode the file
+        if ext == ZIP_EXT || ext == JAVA_EXT {
             code = base64.StdEncoding.EncodeToString([]byte(code))
         }
 
@@ -460,24 +478,24 @@ func getExec(args []string, params ActionFlags) (*whisk.Exec, error) {
     if len(kind) > 0 {
         exec.Kind = kind
     } else if len(docker) > 0 || isNative {
-        exec.Kind = "blackbox"
+        exec.Kind = BLACKBOX
         if isNative {
             exec.Image = "openwhisk/dockerskeleton"
         } else {
             exec.Image = docker
         }
-    } else if ext == ".swift" {
-        exec.Kind = "swift:default"
-    } else if ext == ".js" {
-        exec.Kind = "nodejs:default"
-    } else if ext == ".py" {
-        exec.Kind = "python:default"
-    } else if ext == ".jar" {
-        exec.Kind = "java:default"
-    } else if ext == ".php" {
-        exec.Kind = "php:default"
+    } else if ext == SWIFT_EXT {
+        exec.Kind = fmt.Sprintf("%s:%s", SWIFT, DEFAULT)
+    } else if ext == NODE_JS_EXT {
+        exec.Kind = fmt.Sprintf("%s:%s", NODE_JS, DEFAULT)
+    } else if ext == PYTHON_EXT {
+        exec.Kind = fmt.Sprintf("%s:%s", PYTHON, DEFAULT)
+    } else if ext == JAVA_EXT {
+        exec.Kind = fmt.Sprintf("%s:%s", JAVA, DEFAULT)
+    } else if ext == PHP_EXT {
+        exec.Kind = fmt.Sprintf("%s:%s", PHP, DEFAULT)
     } else {
-        if ext == ".zip" {
+        if ext == ZIP_EXT {
             return nil, zipKindError()
         } else {
             return nil, extensionError(ext)
@@ -496,6 +514,86 @@ func getExec(args []string, params ActionFlags) (*whisk.Exec, error) {
     return exec, nil
 }
 
+func getBinaryKindExtension(runtime string) (extension string) {
+    switch strings.ToLower(runtime) {
+    case JAVA:
+        extension = JAVA_EXT
+    default:
+        extension = ZIP_EXT
+    }
+
+    return extension
+}
+
+func getKindExtension(runtime string) (extension string) {
+    switch strings.ToLower(runtime) {
+    case NODE_JS:
+        extension = NODE_JS_EXT
+    case PYTHON:
+        extension = PYTHON_EXT
+    case SWIFT:
+        fallthrough
+    case PHP:
+        extension = fmt.Sprintf(".%s", runtime)
+    }
+
+    return extension
+}
+
+func saveCode(action whisk.Action, filename string) (err error) {
+    var code string
+    var runtime string
+    var exec whisk.Exec
+
+    exec = *action.Exec
+    runtime = strings.Split(exec.Kind, ":")[0]
+
+    if strings.ToLower(runtime) == BLACKBOX {
+        return cannotSaveImageError()
+    } else if strings.ToLower(runtime) == SEQUENCE {
+        return cannotSaveSequenceError()
+    }
+
+    if exec.Code != nil {
+        code = *exec.Code
+    }
+
+    if *exec.Binary {
+        decoded, _ := base64.StdEncoding.DecodeString(code)
+        code = string(decoded)
+
+        if len(filename) == 0 {
+            filename = action.Name + getBinaryKindExtension(runtime)
+        }
+    } else {
+        if len(filename) == 0 {
+            filename = action.Name + getKindExtension(runtime)
+        }
+    }
+
+    if exists, err := FileExists(filename); err != nil {
+        return err
+    } else if exists {
+        return fileExistsError(filename)
+    }
+
+    if err := writeFile(filename, code); err != nil {
+        return err
+    }
+
+    pwd, err := os.Getwd()
+    if err != nil {
+        whisk.Debug(whisk.DbgError, "os.Getwd() error: %s\n", err)
+        return err
+    }
+
+    savedPath := fmt.Sprintf("%s%s%s", pwd, string(os.PathSeparator), filename)
+
+    printSavedActionCodeSuccess(savedPath)
+
+    return nil
+}
+
 func webAction(webMode string, annotations whisk.KeyValueArr, entityName string, preserveAnnotations bool) (whisk.KeyValueArr, error){
     switch strings.ToLower(webMode) {
     case "yes":
@@ -770,6 +868,22 @@ func javaEntryError() (error) {
     return nonNestedError(errMsg)
 }
 
+func cannotSaveImageError() (error) {
+    return nonNestedError(wski18n.T("Cannot save Docker images"))
+}
+
+func cannotSaveSequenceError() (error) {
+    return nonNestedError(wski18n.T("Cannot save action sequences"))
+}
+
+func fileExistsError(file string) (error) {
+    errMsg := wski18n.T("The file '{{.file}}' already exists", map[string]interface{} {
+        "file": file,
+    })
+
+    return nonNestedError(errMsg)
+}
+
 func printActionCreated(entityName string) {
     fmt.Fprintf(
         color.Output,
@@ -877,6 +991,17 @@ func printActionDeleted(entityName string) {
             }))
 }
 
+func printSavedActionCodeSuccess(name string) {
+    fmt.Fprintf(
+        color.Output,
+        wski18n.T(
+            "{{.ok}} saved action code to {{.name}}\n",
+            map[string]interface{}{
+                "ok": color.GreenString("ok:"),
+                "name": boldString(name),
+            }))
+}
+
 // Check if the specified action is a web-action
 func isWebAction(client *whisk.Client, qname QualifiedName) (error) {
     var err error = nil
@@ -915,14 +1040,14 @@ func init() {
     actionCreateCmd.Flags().BoolVar(&Flags.action.sequence, "sequence", false, wski18n.T("treat ACTION as comma separated sequence of actions to invoke"))
     actionCreateCmd.Flags().StringVar(&Flags.action.kind, "kind", "", wski18n.T("the `KIND` of the action runtime (example: swift:default, nodejs:default)"))
     actionCreateCmd.Flags().StringVar(&Flags.action.main, "main", "", wski18n.T("the name of the action entry point (function or fully-qualified method name when applicable)"))
-    actionCreateCmd.Flags().IntVarP(&Flags.action.timeout, "timeout", "t", TIMEOUT_LIMIT, wski18n.T("the timeout `LIMIT` in milliseconds after which the action is terminated"))
-    actionCreateCmd.Flags().IntVarP(&Flags.action.memory, "memory", "m", MEMORY_LIMIT, wski18n.T("the maximum memory `LIMIT` in MB for the action"))
-    actionCreateCmd.Flags().IntVarP(&Flags.action.logsize, "logsize", "l", LOGSIZE_LIMIT, wski18n.T("the maximum log size `LIMIT` in MB for the action"))
+    actionCreateCmd.Flags().IntVarP(&Flags.action.timeout, TIMEOUT_FLAG, "t", TIMEOUT_LIMIT, wski18n.T("the timeout `LIMIT` in milliseconds after which the action is terminated"))
+    actionCreateCmd.Flags().IntVarP(&Flags.action.memory, MEMORY_FLAG, "m", MEMORY_LIMIT, wski18n.T("the maximum memory `LIMIT` in MB for the action"))
+    actionCreateCmd.Flags().IntVarP(&Flags.action.logsize, LOG_SIZE_FLAG, "l", LOGSIZE_LIMIT, wski18n.T("the maximum log size `LIMIT` in MB for the action"))
     actionCreateCmd.Flags().StringSliceVarP(&Flags.common.annotation, "annotation", "a", nil, wski18n.T("annotation values in `KEY VALUE` format"))
     actionCreateCmd.Flags().StringVarP(&Flags.common.annotFile, "annotation-file", "A", "", wski18n.T("`FILE` containing annotation values in JSON format"))
     actionCreateCmd.Flags().StringSliceVarP(&Flags.common.param, "param", "p", nil, wski18n.T("parameter values in `KEY VALUE` format"))
     actionCreateCmd.Flags().StringVarP(&Flags.common.paramFile, "param-file", "P", "", wski18n.T("`FILE` containing parameter values in JSON format"))
-    actionCreateCmd.Flags().StringVar(&Flags.action.web, "web", "", wski18n.T("treat ACTION as a web action, a raw HTTP web action, or as a standard action; yes | true = web action, raw = raw HTTP web action, no | false = standard action"))
+    actionCreateCmd.Flags().StringVar(&Flags.action.web, WEB_FLAG, "", wski18n.T("treat ACTION as a web action, a raw HTTP web action, or as a standard action; yes | true = web action, raw = raw HTTP web action, no | false = standard action"))
 
     actionUpdateCmd.Flags().BoolVar(&Flags.action.native, "native", false, wski18n.T("treat ACTION as native action (zip file provides a compatible executable to run)"))
     actionUpdateCmd.Flags().StringVar(&Flags.action.docker, "docker", "", wski18n.T("use provided docker image (a path on DockerHub) to run the action"))
@@ -930,14 +1055,14 @@ func init() {
     actionUpdateCmd.Flags().BoolVar(&Flags.action.sequence, "sequence", false, wski18n.T("treat ACTION as comma separated sequence of actions to invoke"))
     actionUpdateCmd.Flags().StringVar(&Flags.action.kind, "kind", "", wski18n.T("the `KIND` of the action runtime (example: swift:default, nodejs:default)"))
     actionUpdateCmd.Flags().StringVar(&Flags.action.main, "main", "", wski18n.T("the name of the action entry point (function or fully-qualified method name when applicable)"))
-    actionUpdateCmd.Flags().IntVarP(&Flags.action.timeout, "timeout", "t", TIMEOUT_LIMIT, wski18n.T("the timeout `LIMIT` in milliseconds after which the action is terminated"))
-    actionUpdateCmd.Flags().IntVarP(&Flags.action.memory, "memory", "m", MEMORY_LIMIT, wski18n.T("the maximum memory `LIMIT` in MB for the action"))
-    actionUpdateCmd.Flags().IntVarP(&Flags.action.logsize, "logsize", "l", LOGSIZE_LIMIT, wski18n.T("the maximum log size `LIMIT` in MB for the action"))
+    actionUpdateCmd.Flags().IntVarP(&Flags.action.timeout, TIMEOUT_FLAG, "t", TIMEOUT_LIMIT, wski18n.T("the timeout `LIMIT` in milliseconds after which the action is terminated"))
+    actionUpdateCmd.Flags().IntVarP(&Flags.action.memory, MEMORY_FLAG, "m", MEMORY_LIMIT, wski18n.T("the maximum memory `LIMIT` in MB for the action"))
+    actionUpdateCmd.Flags().IntVarP(&Flags.action.logsize, LOG_SIZE_FLAG, "l", LOGSIZE_LIMIT, wski18n.T("the maximum log size `LIMIT` in MB for the action"))
     actionUpdateCmd.Flags().StringSliceVarP(&Flags.common.annotation, "annotation", "a", []string{}, wski18n.T("annotation values in `KEY VALUE` format"))
     actionUpdateCmd.Flags().StringVarP(&Flags.common.annotFile, "annotation-file", "A", "", wski18n.T("`FILE` containing annotation values in JSON format"))
     actionUpdateCmd.Flags().StringSliceVarP(&Flags.common.param, "param", "p", []string{}, wski18n.T("parameter values in `KEY VALUE` format"))
     actionUpdateCmd.Flags().StringVarP(&Flags.common.paramFile, "param-file", "P", "", wski18n.T("`FILE` containing parameter values in JSON format"))
-    actionUpdateCmd.Flags().StringVar(&Flags.action.web, "web", "", wski18n.T("treat ACTION as a web action, a raw HTTP web action, or as a standard action; yes | true = web action, raw = raw HTTP web action, no | false = standard action"))
+    actionUpdateCmd.Flags().StringVar(&Flags.action.web, WEB_FLAG, "", wski18n.T("treat ACTION as a web action, a raw HTTP web action, or as a standard action; yes | true = web action, raw = raw HTTP web action, no | false = standard action"))
 
     actionInvokeCmd.Flags().StringSliceVarP(&Flags.common.param, "param", "p", []string{}, wski18n.T("parameter values in `KEY VALUE` format"))
     actionInvokeCmd.Flags().StringVarP(&Flags.common.paramFile, "param-file", "P", "", wski18n.T("`FILE` containing parameter values in JSON format"))
@@ -946,6 +1071,8 @@ func init() {
 
     actionGetCmd.Flags().BoolVarP(&Flags.common.summary, "summary", "s", false, wski18n.T("summarize action details; parameters with prefix \"*\" are bound, \"**\" are bound and finalized"))
     actionGetCmd.Flags().BoolVarP(&Flags.action.url, "url", "r", false, wski18n.T("get action url"))
+    actionGetCmd.Flags().StringVar(&Flags.action.saveAs, SAVE_AS_FLAG, "", wski18n.T("file to save action code to"))
+    actionGetCmd.Flags().BoolVarP(&Flags.action.save, SAVE_FLAG, "", false, wski18n.T("save action code to file corresponding with action name"))
 
     actionListCmd.Flags().IntVarP(&Flags.common.skip, "skip", "s", 0, wski18n.T("exclude the first `SKIP` number of actions from the result"))
     actionListCmd.Flags().IntVarP(&Flags.common.limit, "limit", "l", 30, wski18n.T("only return `LIMIT` number of actions from the collection"))
diff --git a/commands/flags.go b/commands/flags.go
index b30d04fa..8a06d055 100644
--- a/commands/flags.go
+++ b/commands/flags.go
@@ -25,10 +25,15 @@ import (
 // Flags //
 ///////////
 
-const MEMORY_FLAG   = "memory"
-const LOG_SIZE_FLAG = "logsize"
-const TIMEOUT_FLAG  = "timeout"
-const WEB_FLAG      = "web"
+const (
+    MEMORY_FLAG     = "memory"
+    LOG_SIZE_FLAG   = "logsize"
+    TIMEOUT_FLAG    = "timeout"
+    WEB_FLAG        = "web"
+    SAVE_FLAG       = "save"
+    SAVE_AS_FLAG    = "save-as"
+)
+
 
 var cliDebug = os.Getenv("WSK_CLI_DEBUG")  // Useful for tracing init() code
 
@@ -139,6 +144,8 @@ type ActionFlags struct {
     kind        string
     main        string
     url         bool
+    save        bool
+    saveAs     string
 }
 
 func IsVerbose() bool {
diff --git a/commands/sdk.go b/commands/sdk.go
index 3dbb1fe0..4f4eaaf8 100644
--- a/commands/sdk.go
+++ b/commands/sdk.go
@@ -253,6 +253,6 @@ func init() {
     sdkCmd.AddCommand(sdkInstallCmd)
 
     sdkMap = make(map[string]*sdkInfo)
-    sdkMap["docker"] = &sdkInfo{ UrlPath: "blackbox-0.1.0.tar.gz", FileName: "blackbox-0.1.0.tar.gz", isGzTar: true, Unpack: true, UnpackDir: "dockerSkeleton"}
+    sdkMap["docker"] = &sdkInfo{ UrlPath: "blackbox.tar.gz", FileName: "blackbox.tar.gz", isGzTar: true, Unpack: true, UnpackDir: "dockerSkeleton"}
     sdkMap["ios"] = &sdkInfo{ UrlPath: "OpenWhiskIOSStarterApp.zip", FileName: "OpenWhiskIOSStarterApp.zip", IsZip: true, Unpack: false}
 }
diff --git a/commands/util.go b/commands/util.go
index a4056ad1..e5ec6ee3 100644
--- a/commands/util.go
+++ b/commands/util.go
@@ -586,21 +586,37 @@ func printJsonNoColor(decoded interface{}, stream ...io.Writer) {
 }
 
 func unpackGzip(inpath string, outpath string) error {
-    // Make sure the target file does not exist
-    if _, err := os.Stat(outpath); err == nil {
-        whisk.Debug(whisk.DbgError, "os.Stat reports file '%s' exists\n", outpath)
+    var exists bool
+    var err error
+
+    exists, err = FileExists(outpath)
+
+    if err != nil {
+        return err
+    }
+
+    if exists {
         errStr := wski18n.T("The file '{{.name}}' already exists.  Delete it and retry.",
             map[string]interface{}{"name": outpath})
         werr := whisk.MakeWskError(errors.New(errStr), whisk.EXIT_CODE_ERR_GENERAL, whisk.DISPLAY_MSG, whisk.NO_DISPLAY_USAGE)
         return werr
     }
 
-    // Make sure the input file exists
-    if _, err := os.Stat(inpath); err != nil {
-        whisk.Debug(whisk.DbgError, "os.Stat reports file '%s' does not exist\n", inpath)
-        errStr := wski18n.T("The file '{{.name}}' does not exist.", map[string]interface{}{"name": inpath})
-        werr := whisk.MakeWskError(errors.New(errStr), whisk.EXIT_CODE_ERR_GENERAL, whisk.DISPLAY_MSG, whisk.NO_DISPLAY_USAGE)
-        return werr
+    exists, err = FileExists(inpath)
+
+    if err != nil {
+        return err
+    }
+
+    if !exists {
+        errMsg := wski18n.T("File '{{.name}}' is not a valid file or it does not exist",
+            map[string]interface{}{
+                "name": inpath,
+            })
+        whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg), err, whisk.EXIT_CODE_ERR_USAGE,
+            whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
+
+        return whiskErr
     }
 
     unGzFile, err := os.Create(outpath)
@@ -645,14 +661,22 @@ func unpackGzip(inpath string, outpath string) error {
 }
 
 func unpackZip(inpath string) error {
-    // Make sure the input file exists
-    if _, err := os.Stat(inpath); err != nil {
-        whisk.Debug(whisk.DbgError, "os.Stat reports file '%s' does not exist\n", inpath)
-        errStr := wski18n.T("The file '{{.name}}' does not exist.", map[string]interface{}{"name": inpath})
-        werr := whisk.MakeWskError(errors.New(errStr), whisk.EXIT_CODE_ERR_GENERAL, whisk.DISPLAY_MSG, whisk.NO_DISPLAY_USAGE)
-        return werr
+    exists, err := FileExists(inpath)
+
+    if err != nil {
+        return err
     }
 
+    if !exists {
+        errMsg := wski18n.T("File '{{.name}}' is not a valid file or it does not exist",
+            map[string]interface{}{
+                "name": inpath,
+            })
+        whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg), err, whisk.EXIT_CODE_ERR_USAGE,
+            whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
+
+        return whiskErr
+    }
     zipFileReader, err := zip.OpenReader(inpath)
     if err != nil {
         whisk.Debug(whisk.DbgError, "zip.OpenReader(%s) failed: %s\n", inpath, err)
@@ -712,13 +736,21 @@ func unpackZip(inpath string) error {
 }
 
 func unpackTar(inpath string) error {
+    exists, err := FileExists(inpath)
 
-    // Make sure the input file exists
-    if _, err := os.Stat(inpath); err != nil {
-        whisk.Debug(whisk.DbgError, "os.Stat reports file '%s' does not exist\n", inpath)
-        errStr := wski18n.T("The file '{{.name}}' does not exist.", map[string]interface{}{"name": inpath})
-        werr := whisk.MakeWskError(errors.New(errStr), whisk.EXIT_CODE_ERR_GENERAL, whisk.DISPLAY_MSG, whisk.NO_DISPLAY_USAGE)
-        return werr
+    if err != nil {
+        return err
+    }
+
+    if !exists {
+        errMsg := wski18n.T("File '{{.name}}' is not a valid file or it does not exist",
+            map[string]interface{}{
+                "name": inpath,
+            })
+        whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg), err, whisk.EXIT_CODE_ERR_USAGE,
+            whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
+
+        return whiskErr
     }
 
     tarFileReader, err := os.Open(inpath)
@@ -828,11 +860,17 @@ func getClientNamespace() (string) {
 }
 
 func ReadFile(filename string) (string, error) {
-    _, err := os.Stat(filename)
+    exists, err := FileExists(filename)
+
     if err != nil {
-        whisk.Debug(whisk.DbgError, "os.Stat(%s) error: %s\n", filename, err)
-        errMsg := wski18n.T("File '{{.name}}' is not a valid file or it does not exist: {{.err}}",
-                map[string]interface{}{"name": filename, "err": err})
+        return "", err
+    }
+
+    if !exists {
+        errMsg := wski18n.T("File '{{.name}}' is not a valid file or it does not exist",
+            map[string]interface{}{
+                "name": filename,
+            })
         whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg), err, whisk.EXIT_CODE_ERR_USAGE,
             whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
 
@@ -842,7 +880,7 @@ func ReadFile(filename string) (string, error) {
     file, err := ioutil.ReadFile(filename)
     if err != nil {
         whisk.Debug(whisk.DbgError, "os.ioutil.ReadFile(%s) error: %s\n", filename, err)
-        errMsg := wski18n.T("Unable to read '{{.name}}': {{.err}}",
+        errMsg := wski18n.T("Unable to read the file '{{.name}}': {{.err}}",
                 map[string]interface{}{"name": filename, "err": err})
         whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg), err, whisk.EXIT_CODE_ERR_GENERAL,
             whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
@@ -852,6 +890,51 @@ func ReadFile(filename string) (string, error) {
     return string(file), nil
 }
 
+func writeFile(filename string, content string) (error) {
+    file, err := os.Create(filename)
+
+    if err != nil {
+        whisk.Debug(whisk.DbgError, "os.Create(%s) error: %#v\n", filename, err)
+        errMsg := wski18n.T("Cannot create file '{{.name}}': {{.err}}",
+            map[string]interface{}{"name": filename, "err": err})
+        whiskErr := whisk.MakeWskError(errors.New(errMsg), whisk.EXIT_CODE_ERR_USAGE, whisk.DISPLAY_MSG,
+            whisk.DISPLAY_USAGE)
+        return whiskErr
+    }
+
+    defer file.Close()
+
+    if _, err = file.WriteString(content); err != nil {
+        whisk.Debug(whisk.DbgError, "File.WriteString(%s) error: %#v\n", content, err)
+        errMsg := wski18n.T("Cannot create file '{{.name}}': {{.err}}",
+            map[string]interface{}{"name": filename, "err": err})
+        whiskErr := whisk.MakeWskError(errors.New(errMsg), whisk.EXIT_CODE_ERR_USAGE, whisk.DISPLAY_MSG,
+            whisk.DISPLAY_USAGE)
+        return whiskErr
+    }
+
+    return nil
+}
+
+func FileExists(file string) (bool, error) {
+    _, err := os.Stat(file)
+
+    if err != nil {
+        if os.IsNotExist(err) == true {
+            return false, nil
+        } else {
+            whisk.Debug(whisk.DbgError, "os.Stat(%s) error: %#v\n", file, err)
+            errMsg := wski18n.T("Cannot access file '{{.name}}': {{.err}}",
+                map[string]interface{}{"name": file, "err": err})
+            whiskErr := whisk.MakeWskError(errors.New(errMsg), whisk.EXIT_CODE_ERR_USAGE,
+                whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
+            return true, whiskErr
+        }
+    }
+
+    return true, nil
+}
+
 func fieldExists(value interface{}, field string) (bool) {
     element := reflect.ValueOf(value).Elem()
 
diff --git a/tests/src/test/scala/system/basic/WskConsoleTests.scala b/tests/src/test/scala/system/basic/WskConsoleTests.scala
index 5252d0a7..83526d71 100644
--- a/tests/src/test/scala/system/basic/WskConsoleTests.scala
+++ b/tests/src/test/scala/system/basic/WskConsoleTests.scala
@@ -17,7 +17,6 @@
 
 package system.basic;
 
-import java.time.Clock
 import java.time.Instant
 
 import scala.concurrent.duration.Duration
@@ -47,11 +46,16 @@ class WskConsoleTests extends TestHelpers with WskTestHelpers {
   val wsk = new Wsk
   val guestNamespace = wskprops.namespace
 
+  /**
+   * Append the current timestamp in ms
+   */
+  def withTimestamp(text: String) = s"${text}-${System.currentTimeMillis}"
+
   behavior of "Wsk Activation Console"
 
   it should "show an activation log message for hello world" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
-    val packageName = "samples"
-    val actionName = "helloWorld"
+    val packageName = withTimestamp("samples")
+    val actionName = withTimestamp("helloWorld")
     val fullActionName = s"/$guestNamespace/$packageName/$actionName"
     assetHelper.withCleaner(wsk.pkg, packageName) { (pkg, _) =>
       pkg.create(packageName, shared = Some(true))
@@ -61,31 +65,51 @@ class WskConsoleTests extends TestHelpers with WskTestHelpers {
       action.create(fullActionName, Some(TestCLIUtils.getTestActionFilename("hello.js")))
     }
 
-    val duration = Some(30 seconds)
+    // Some contingency to make query more robust
+    // Account for time differences between controller and invoker
+    val start = Instant.now.minusSeconds(5)
     val payload = new String("from the console!".getBytes, "UTF-8")
     val run = wsk.action.invoke(fullActionName, Map("payload" -> payload.toJson))
-    withActivation(wsk.activation, run, totalWait = duration.get) { activation =>
-      val console = wsk.activation.console(10 seconds, since = duration)
-      console.stdout should include(payload)
+    withActivation(wsk.activation, run, totalWait = 30 seconds) { activation =>
+      val duration = Duration(Instant.now.minusMillis(start.toEpochMilli).toEpochMilli, MILLISECONDS)
+      val pollTime = 10 seconds
+      // since: poll for activations since specified number of seconds ago (relative)
+      val console = wsk.activation.console(pollTime, since = Some(duration))
+      withClue(
+        s"Poll for ${pollTime.toSeconds} seconds since ${duration.toSeconds} seconds did not return expected result:") {
+        console.stdout should include(payload)
+      }
     }
   }
 
   it should "show repeated activations" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
-    val name = "countdown"
+    val name = withTimestamp("countdown")
     assetHelper.withCleaner(wsk.action, name) { (action, _) =>
       action.create(name, Some(TestCLIUtils.getTestActionFilename("countdown.js")))
     }
 
-    val start = Instant.now(Clock.systemUTC())
-    val run = wsk.action.invoke(name, Map("n" -> 3.toJson))
+    val count = 3
+    // Some contingency to make query more robust
+    // Account for time differences between controller and invoker
+    val start = Instant.now.minusSeconds(5)
+    val run = wsk.action.invoke(name, Map("n" -> count.toJson))
     withActivation(wsk.activation, run) { activation =>
-      val activations = wsk.activation.pollFor(N = 4, Some(name), since = Some(start), retries = 80).length
-      withClue(s"expected activations:") {
-        activations should be(4)
+      // Time recorded by invoker, some contingency to make query more robust
+      val queryTime = activation.start.minusMillis(500)
+      // since: poll for activations since specified point in time (absolute)
+      val activations = wsk.activation.pollFor(N = 4, Some(name), since = Some(queryTime), retries = 80).length
+      withClue(
+        s"expected activations of action '${name}' since ${queryTime.toString} / initial activation ${activation.activationId}:") {
+        activations should be(count + 1)
+      }
+      val duration = Duration(Instant.now.minusMillis(start.toEpochMilli).toEpochMilli, MILLISECONDS)
+      val pollTime = 10 seconds
+      // since: poll for activations since specified number of seconds ago (relative)
+      val console = wsk.activation.console(pollTime, since = Some(duration))
+      withClue(
+        s"Poll for ${pollTime.toSeconds} seconds since ${duration.toSeconds} seconds did not return expected result:") {
+        console.stdout should include("Happy New Year")
       }
-      val duration = Duration(Instant.now(Clock.systemUTC()).toEpochMilli - start.toEpochMilli, MILLISECONDS)
-      val console = wsk.activation.console(10 seconds, since = Some(duration))
-      console.stdout should include("Happy New Year")
     }
   }
 
diff --git a/tests/src/test/scala/system/basic/WskSdkTests.scala b/tests/src/test/scala/system/basic/WskSdkTests.scala
index 3e7e3b2a..021e8cac 100644
--- a/tests/src/test/scala/system/basic/WskSdkTests.scala
+++ b/tests/src/test/scala/system/basic/WskSdkTests.scala
@@ -19,15 +19,12 @@ package system.basic
 
 import java.io.File
 
-import scala.collection.JavaConversions.asScalaBuffer
-
 import org.apache.commons.io.FileUtils
 import org.junit.runner.RunWith
 import org.scalatest.junit.JUnitRunner
 import common.TestHelpers
 import common.TestUtils.ERROR_EXIT
 import common.TestUtils.SUCCESS_EXIT
-import common.WhiskProperties
 import common.Wsk
 import common.WskProps
 import common.WskTestHelpers
@@ -78,12 +75,6 @@ class WskSdkTests extends TestHelpers with WskTestHelpers {
 
       val buildAndPushFile = new File(sdk, "buildAndPush.sh")
       buildAndPushFile.canExecute() should be(true)
-
-      // confirm there is no other divergence from the base dockerfile
-      val originalDockerfile = WhiskProperties.getFileRelativeToWhiskHome("sdk/docker/Dockerfile")
-      val originalLines = FileUtils.readLines(originalDockerfile)
-      lines.get(0) shouldBe originalLines.get(0)
-      lines.drop(2).mkString("\n") shouldBe originalLines.drop(2).mkString("\n")
     } finally {
       FileUtils.deleteDirectory(dir)
     }
diff --git a/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala b/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala
index ea23ce31..abac6c20 100644
--- a/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala
+++ b/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala
@@ -21,6 +21,7 @@ import java.time.Instant
 import java.net.URLEncoder
 import java.nio.charset.StandardCharsets
 import java.time.Clock
+import java.io.File
 
 import scala.language.postfixOps
 import scala.concurrent.duration.Duration
@@ -143,8 +144,9 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
   }
 
   it should "reject create with missing file" in {
-    wsk.action.create("missingFile", Some("notfound"), expectedExitCode = MISUSE_EXIT).stderr should include(
-      "not a valid file")
+    val name = "notfound"
+    wsk.action.create("missingFile", Some(name), expectedExitCode = MISUSE_EXIT).stderr should include(
+      s"File '$name' is not a valid file or it does not exist")
   }
 
   it should "reject action update when specified file is missing" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
@@ -812,6 +814,81 @@ class WskBasicUsageTests extends TestHelpers with WskTestHelpers {
     stdoutNoDescOrParams should include regex (s"(?i)action /${namespace}/${actNameNoDescOrParams}\\s*\\(parameters: none defined\\)")
   }
 
+  it should "save action code to file" in withAssetCleaner(wskprops) { (wp, assetHelper) =>
+    val name = "saveAction"
+    val seqName = "seqName"
+    val dockerName = "dockerName"
+    val containerName = s"bogus${Random.alphanumeric.take(16).mkString.toLowerCase}"
+    val saveName = s"save-as-$name.js"
+    val badSaveName = s"bad-directory${File.separator}$saveName"
+
+    // Test for successful --save
+    assetHelper.withCleaner(wsk.action, name) { (action, _) =>
+      action.create(name, defaultAction)
+    }
+
+    val saveMsg = wsk.action.get(name, save = Some(true)).stdout
+
+    saveMsg should include(s"saved action code to ")
+
+    val savePath = saveMsg.split("ok: saved action code to ")(1).trim()
+    val saveFile = new File(savePath);
+
+    try {
+      saveFile.exists shouldBe true
+
+      // Test for failure saving file when it already exist
+      wsk.action.get(name, save = Some(true), expectedExitCode = MISUSE_EXIT).stderr should include(
+        s"The file '$name.js' already exists")
+    } finally {
+      saveFile.delete()
+    }
+
+    // Test for successful --save-as
+    val saveAsMsg = wsk.action.get(name, saveAs = Some(saveName)).stdout
+
+    saveAsMsg should include(s"saved action code to ")
+
+    val saveAsPath = saveAsMsg.split("ok: saved action code to ")(1).trim()
+    val saveAsFile = new File(saveAsPath);
+
+    try {
+      saveAsFile.exists shouldBe true
+
+      // Test for failure saving file when it already exist
+      wsk.action.get(name, saveAs = Some(saveName), expectedExitCode = MISUSE_EXIT).stderr should include(
+        s"The file '$saveName' already exists")
+    } finally {
+      saveAsFile.delete()
+    }
+
+    // Test for failure when using an invalid filename
+    wsk.action.get(name, saveAs = Some(badSaveName), expectedExitCode = MISUSE_EXIT).stderr should include(
+      s"Cannot create file '$badSaveName'")
+
+    // Test for failure saving Docker images
+    assetHelper.withCleaner(wsk.action, dockerName) { (action, _) =>
+      action.create(dockerName, None, docker = Some(containerName))
+    }
+
+    wsk.action.get(dockerName, save = Some(true), expectedExitCode = MISUSE_EXIT).stderr should include(
+      "Cannot save Docker images")
+
+    wsk.action.get(dockerName, saveAs = Some(dockerName), expectedExitCode = MISUSE_EXIT).stderr should include(
+      "Cannot save Docker images")
+
+    // Tes for failure saving sequences
+    assetHelper.withCleaner(wsk.action, seqName) { (action, _) =>
+      action.create(seqName, Some(name), kind = Some("sequence"))
+    }
+
+    wsk.action.get(seqName, save = Some(true), expectedExitCode = MISUSE_EXIT).stderr should include(
+      "Cannot save action sequences")
+
+    wsk.action.get(seqName, saveAs = Some(seqName), expectedExitCode = MISUSE_EXIT).stderr should include(
+      "Cannot save action sequences")
+  }
+
   behavior of "Wsk packages"
 
   it should "create, and delete a package" in {
diff --git a/tests/src/test/scala/whisk/core/cli/test/WskEntitlementTests.scala b/tests/src/test/scala/whisk/core/cli/test/WskEntitlementTests.scala
index 27310aa3..9a96e4da 100644
--- a/tests/src/test/scala/whisk/core/cli/test/WskEntitlementTests.scala
+++ b/tests/src/test/scala/whisk/core/cli/test/WskEntitlementTests.scala
@@ -70,6 +70,7 @@ class WskEntitlementTests extends TestHelpers with WskTestHelpers with BeforeAnd
           rr.stderr should include("not authorized")
           rr
         }
+
         assetHelper.withCleaner(wsk.action, "unauthorized sequence", confirmDelete = false) { (action, name) =>
           val rr = action.create(
             name,
@@ -271,16 +272,17 @@ class WskEntitlementTests extends TestHelpers with WskTestHelpers with BeforeAnd
   it should "not allow invoke an action sequence with more than one component from package after entitlement change" in withAssetCleaner(
     guestWskProps) { (guestwp, assetHelper) =>
     val privateSamplePackage = samplePackage + "prv"
-    assetHelper.withCleaner(wsk.pkg, samplePackage) { (pkg, _) =>
-      pkg.create(samplePackage, parameters = Map("a" -> "A".toJson), shared = Some(true))(guestwp)
-      pkg.create(privateSamplePackage, parameters = Map("a" -> "A".toJson), shared = Some(true))(guestwp)
+    Seq(samplePackage, privateSamplePackage).foreach { n =>
+      assetHelper.withCleaner(wsk.pkg, n) { (pkg, _) =>
+        pkg.create(n, parameters = Map("a" -> "A".toJson), shared = Some(true))(guestwp)
+      }
     }
 
-    assetHelper.withCleaner(wsk.action, fullSampleActionName) {
+    Seq(fullSampleActionName, s"$privateSamplePackage/$sampleAction").foreach { a =>
       val file = Some(TestCLIUtils.getTestActionFilename("hello.js"))
-      (action, _) =>
-        action.create(fullSampleActionName, file)(guestwp)
-        action.create(s"$privateSamplePackage/$sampleAction", file)(guestwp)
+      assetHelper.withCleaner(wsk.action, a) { (action, _) =>
+        action.create(a, file)(guestwp)
+      }
     }
 
     withAssetCleaner(defaultWskProps) { (dwp, assetHelper) =>
diff --git a/wski18n/i18n_resources.go b/wski18n/i18n_resources.go
index 26f85a38..1bccb9fd 100644
--- a/wski18n/i18n_resources.go
+++ b/wski18n/i18n_resources.go
@@ -109,12 +109,12 @@ func wski18nResourcesDe_deAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 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\x7d\x4f\x73\xdb\x38\xd2\xf7\x7d\x3e\x45\x57\x2e\x76\xde\x92\x9d\xdd\xd3\x5b\x4f\x52\x73\xd0\x24\x9e\x8d\x37\x89\xed\x8a\x9d\xd9\x9d\xda\x6c\x8d\x20\x12\x92\xb0\xa6\x00\x0e\x00\x5a\x51\xb2\xfe\xee\x4f\x01\x20\x29\x52\xc2\x5f\x52\x4e\x9e\x53\x1c\xb1\xfb\xd7\x0d\xa0\x01\x34\x1a\x0d\xe0\x5f\x3f\x01\x7c\xfb\x09\x00\xe0\x19\xc9\x9f\xbd\x84\x67\xd3\xb2\x2c\x48\x86\x24\x61\x14\xf0\x17\x22\x71\x0e\x15\xc5\x5f\x4a\x9c\x49\x9c\x17\xdb\x67\x13\x43\x2c\x39\xa2\xa2\xd0\x64\x31\x5c\x3f\x01\x3c\x4e\xf6\x45\x7d\xac\x28\x9c\x7c\xfb\x76\x7e\x85\xd6\xf8\xf1\x11\xce\xce\x56\xb8\x28\x4f\x60\xc1\x38\x54\x02\x2d\xf1\xf9\x67\xea\x10\x17\xc3\x69\x15\x89\x39\x67\xfc\x25\x38\x60\x9b\xaf\x56\x56\xca\x24\x08\x2c\x1d\xac\xcd\x57\x2b\xeb\x75\x89\xe9\x3f\x56\x44\xdc\x43\x56\xb0\x2a\x87\x8c\xad\xcb\x4a\x12\xba\x54\x7f\xad\x11\xcd\xa1\x20\x14\x03\xa1\x12\xf3\x05\xca\xf0\xb9\x43\x48\x3a\x8e\x55\x9d\x07\xcc\xe7\x4c\x60\x60\x95\x2c\x2b\x57\x81\xf6\x88\xac\x40\x39\x9e\x57\x4b\x28\xf0\x03\x2e\xfc\x60\x16\x42\x2b\x20\xaa\xe4\x8a\x71\xf2\xd5\x18\xd2\xec\xdd\xc5\xef\x33\x07\xa2\x8d\xd2\x0a\xb9\xd1\xf5\x35\xbd\xb9\x84\xd9\xdb\xeb\xdb\x3b\x17\xde\x01\x59\x08\xec\xb7\x8b\x8f\xb7\x97\xd7\x57\x11\x78\x2d\xa5\x15\x72\xbe\x2d\x91\x10\x90\x61\x2e\xc9\x42\x75\x21\x0c\xd9\x0a\x67\xf7\x84\x2e\x1d\xd0\x3e\x0e\xab\x88\x4f\x14\xcd\x0b\x0c\x92\x01\xa1\x44\x12\x54\x90\xaf\x18\x04\xe6\x0f\x98\x43\xc6\x28\xc5\x99\x82\x7e\x09\xdf\xbe\x9d\x63\xce\x1f\x1f\x1d\x72\x93\x61\xac\xca\xdc\x20\x8e\xd6\x58\x62\x0e\x88\x2f\xab\x35\xa6\x52\xc0\xba\x12\x12\xe6\x18\x10\xdc\xe3\x2d\x3c\xa0\xa2\xc2\x50\x22\xc2\x35\x16\xe2\x4b\xe1\xd4\x69\x28\x9a\x55\xb5\x29\xa5\x4c\x1a\x83\x3a\x86\x6e\x83\xe1\xac\xca\xfd\x8a\x48\x81\x73\x55\xfb\x25\xe2\x02\xef\x20\x83\xed\x16\xc3\x69\xb7\x76\xc6\xef\x61\x43\xe4\x0a\x28\x5a\x63\x51\xa2\x0c\x0b\x97\xb9\xdb\x48\xad\xa0\x05\x11\x12\x30\x95\x44\x12\x2c\x80\x50\x90\x2b\x0c\x59\xc5\x39\xa6\x72\xc7\xec\x10\x13\xc9\x1c\xe8\x05\x6c\x2e\x51\xcd\xab\x01\xd9\x02\xd0\x03\x22\x85\xfe\xbe\xd3\x3f\xa1\x43\xa4\x23\x5a\x55\x5c\x62\x09\x92\x93\xe5\x12\x73\x31\x01\xa4\xfb\x93\xfa\x83\xe6\xc0\xab\x62\x57\x62\x8e\x97\x44\x48\xbe\xd5\x13\x1e\x0a\xd6\xda\x68\x58\xab\xb2\x6a\xfe\xa5\x7a\xfe\x3d\x01\x22\x40\x4d\x80\x48\x19\x34\xc9\xe1\xcf\x0a\x15\x64\x41\x70\xae\x31\x82\xf5\x38\x04\x29\xbd\x89\x5b\xb3\x51\xa5\x6b\xcb\x06\x8d\x70\xfd\xbf\xc7\xc7\x93\x71\xad\x9e\x2e\xc4\x5a\x90\x8b\x8e\x89\xb7\x7c\x9a\xa9\x83\xe2\xf4\x8e\x62\xb9\xdd\xfd\xd3\x66\xbc\xbe\x2e\x69\xa5\x0f\x8c\x29\x25\xca\xee\xd1\x32\x62\x44\x69\x09\xed\xf3\x27\xa1\xb9\x1a\xd8\xcc\x34\x20\x54\xbb\xa0\x86\xc5\x35\x81\xfa\x58\xac\x42\x2e\xa9\x31\xc7\xf2\x60\xba\xd1\x4d\xab\x7f\x8e\xb1\x9d\x74\x1c\xaf\x3a\xe8\x70\x86\xd1\x38\xbb\xdf\x53\x94\x4a\x45\xb3\xaa\xf6\x0b\xa1\xb9\x76\x48\x39\x36\x50\x0b\x3d\xfb\x04\x95\x08\xf3\x59\xc5\x7d\xfb\x76\xce\xee\x1f\x1f\x0d\x1b\xce\x61\x5e\xc3\xb4\x23\x8a\xb3\x93\xc4\x70\x5a\x45\x1a\x06\x35\x3e\xe2\x4d\xc0\xd0\xac\xa4\x81\x91\xab\xe6\xa9\xa9\xa1\x33\x36\x26\x8c\x4c\x51\x20\x51\x15\xda\x40\xa4\x57\xa8\x8d\xd3\x2a\xb2\x2a\x73\x5d\x4b\x7a\xe5\x28\xf4\x72\xa6\xe6\x9d\x00\xe3\xd0\x56\x62\x03\x48\x16\x40\x24\xe4\x0c\x9b\xa9\x42\x33\x39\x74\x3a\x0a\xb4\xc3\x8d\x35\x1c\xb5\x84\x48\x2b\x0f\x71\x79\x9b\xc4\x30\x0d\x69\x12\x1f\xa7\xd3\x11\xf1\x9b\x76\x97\x22\x60\xd1\x1d\xd2\x81\xe6\x1c\x46\xf0\x56\xdc\x92\xc9\x01\x95\xe6\xe2\x72\xac\x84\x0b\xbc\xeb\x70\xce\x55\x70\x8f\x28\x50\x6d\x7d\xea\x81\x35\x17\x05\xe2\xad\x3c\x83\x30\xc4\xea\x7c\x9c\x1e\xd7\xa3\x28\x42\xae\xc1\x21\x9d\x15\xee\x8a\xd5\x4e\xe4\xce\x0f\xcb\xb1\xd4\x11\xa9\x73\xd0\x11\xa4\x8d\xb8\x87\x92\xb3\x12\x73\xb9\x05\x81\x25\x9c\x9d\xb5\xb4\x27\x6a\x80\xc0\x54\x54\x1c\x6b\x0f\x4f\x7d\xd8\xcd\x8b\x44\x40\xc9\x71\x86\x73\x35\x73\x6c\x01\xc1\xe7\x67\x2f\x3e\x3f\x73\xe8\xfb\x03\x14\x49\x77\x8f\x9b\xba\x74\x78\xae\xa3\x3d\xe3\x24\x7c\xab\xfa\x1c\x2f\x38\x16\xad\x3f\xd8\xcc\xd8\x2e\x2b\x71\x92\x7b\xc7\xf3\x86\xcb\xa9\x65\xea\x50\x3f\x00\x30\xb8\xdc\xaa\x31\x71\x0e\xa2\xca\x32\x2c\xc4\xa2\x2a\x8a\xad\xb3\x43\x46\xb1\x7a\x7c\x9d\xd6\x39\x12\x2f\xbd\x8e\x4e\x97\xce\x33\xd3\x87\xe1\x0e\xe9\x3c\x83\x6e\x18\xee\x90\xce\x0a\x77\xb7\xda\x0d\x94\x6d\xab\x61\x24\x55\xc7\xab\x97\xa5\x64\x5d\x16\x58\xf5\x3b\x9c\x37\x8b\x66\x89\xb8\x9a\x9e\x72\x5c\x16\x6c\xab\x3e\x39\x94\x38\x16\xfa\x51\xac\x17\xf2\x4a\xf7\xd3\x5d\x8c\x1e\xde\xde\xdd\xdd\x80\x90\x48\x56\x02\x32\x96\x9b\xf5\xa2\xfa\xe3\x68\x16\x9e\x28\xd4\x1e\x20\xde\xad\x51\x74\xec\x4c\xaf\x71\x67\xef\x2e\x7e\x87\xdf\xa6\xef\x3f\x5d\xcc\x94\x12\x6b\xe4\x6a\x83\x58\x6e\xab\xe8\xd9\xaf\x97\xef\x2f\x66\x90\x31\xaa\xc6\x36\xe5\x4a\x5a\xe1\xfe\x7e\x7b\x7d\xe5\xd7\x62\x00\xd0\x9e\x42\x94\x49\x7c\x26\xd9\x59\x03\xcc\xb8\x50\xc0\x6f\xae\xe1\xea\xfa\x0e\xee\x3e\x4e\xaf\x6e\xdf\x4f\xef\x2e\xe0\xee\xed\x05\x9c\x6c\xb1\x38\x81\xe9\xd5\x1b\x38\xa1\xec\xe4\x1c\xe0\xee\xed\xf5\xed\x05\x4c\x3f\x5e\xc0\xaf\x97\xff\xbc\x78\x03\xaf\xdf\x5f\xc2\xf4\xe3\xdf\x3e\x7d\xb8\xb8\xba\x33\xf5\x70\xdb\x28\x6e\x0a\xde\x58\xed\x03\x11\x64\x4e\x0a\x22\xb7\x30\xbb\x7d\x7d\x7d\x73\x31\x7b\x05\x5b\x2c\xe0\x67\x10\x2b\xc4\x71\x3e\x01\xca\xe0\x67\x28\x39\x79\x40\xd2\xe5\x03\x0d\x04\xb3\xb6\x88\xa8\xd6\x6b\xc4\xc9\xd7\x5d\xc7\xca\xb1\x44\xa4\x10\xaf\xba\xab\x7b\x13\x43\xe0\x78\x41\xbe\xc0\xe7\x67\xff\xef\xf3\x33\x40\x1c\xc3\x9c\x55\x34\x77\xe8\x38\x1e\xd7\xaa\x2e\xa1\x59\x51\xe5\x18\xca\x6a\x5e\x90\xac\xd8\xd6\x25\x3d\x88\x67\x72\x2c\xaa\xc2\x65\x3c\x89\x20\xf6\x4d\xb0\x2f\x06\x43\xd1\x2d\x08\x17\x12\x66\xb7\xef\x2e\x6f\x66\x40\xab\xf5\x1c\xf3\xfe\x6c\xcd\xd9\x3a\xac\xd5\x18\x44\xab\x8a\x8c\x16\x5b\xe0\x58\x56\x9c\xc2\xec\xfd\xe5\x87\xcb\x3b\x3f\x56\xc6\x8a\xc2\xec\x3f\x38\x34\x1c\x01\x68\x55\xb0\xf1\xd6\x5c\x66\xde\x7c\x0e\x04\xc1\xcc\x36\x51\x4d\x4d\x22\x82\x61\x07\x0c\xf6\x9e\xa1\x16\x4c\x7e\x0d\x7b\x24\x01\x77\x51\xd1\xaa\x4a\x69\x5d\x54\x3d\x4a\x25\xf8\x83\x41\x00\x7f\x2c\xa2\x20\xca\xd5\xcd\x30\xd7\x7b\xac\x36\x9f\x79\xa9\x7d\x66\x45\x71\x62\xe4\xd5\xbe\x32\xde\x18\x51\xee\xad\xe4\x23\x0b\x89\x29\xc8\x3d\xde\xfa\x45\xdc\xe3\xed\xc8\x62\x8c\x13\xe1\x2d\x84\xb1\x40\x54\xc9\x95\x5f\x82\xa2\x18\x5a\x8a\xe3\xc8\x88\xb0\xea\xe9\xcd\x25\xac\x98\x90\x86\xe9\x95\xc6\xe8\xff\x66\x42\xa0\x25\x51\xbf\xd4\x1b\x14\xc4\x04\x4c\x13\xed\xff\x48\xa2\x22\xda\xa6\x45\xd5\xdd\x8e\x29\x5e\x03\x19\x59\xef\x3e\xfe\x48\xf1\x0f\x98\x0b\xe5\xce\xec\x10\xea\x5f\x92\x94\xf0\xa3\xd8\xf7\x70\x2b\xb9\x52\x73\x61\xa6\x17\x10\x95\xc0\x7c\x17\xce\x5b\xa1\x07\x6c\xf7\x50\x5f\x69\x11\x4d\x12\x45\xe4\x0a\xef\x49\x44\xd9\x23\x19\x56\xaf\xba\x59\x35\x58\x76\xa0\x0a\x9c\x87\x77\x6e\xc6\xa2\x46\x98\xc2\xae\x06\x76\x4d\x18\x19\x3d\x8a\x00\x18\x34\x6b\x9d\x8a\xe7\xa3\x27\xae\x3e\x86\x7d\xa9\x4b\x23\xe6\xe0\x3d\xa2\x40\x79\x0c\xf5\xa8\x79\x38\x02\x22\x7a\x26\xd6\x58\x69\xf3\x6a\xcb\x12\x3b\x4b\xa6\xc9\xe8\x71\xc4\xce\x61\x91\x22\x6c\x1c\x49\x1d\x40\x73\x25\xda\xbc\xe1\x49\x19\xf1\x93\x4a\x73\xc8\x95\x38\xba\xc7\x97\xe9\x90\xcb\x2a\xca\xcc\x8a\x39\x5e\xa0\xaa\x68\x26\x45\xb6\x50\xc6\x59\xff\xa6\x00\x49\x51\xc0\x1c\xab\x01\x37\x77\x97\x74\x08\x92\x5b\xa5\x26\x46\xb3\x07\x28\x57\x48\x42\x86\x68\xa4\x3a\x09\x28\xee\x5d\x19\xff\x88\xb2\x0c\x8e\x27\x9d\xfe\xe8\x0a\xe6\x75\x28\x7c\x10\xf7\xd8\xa5\x45\x87\xc0\x93\x46\xa7\x3a\x93\x37\x7b\x4e\x13\x04\xf2\xf0\x94\xfd\x06\x53\xf0\x34\x51\x00\xa8\xb6\xce\x20\x56\x43\xe7\x81\x0b\xe5\xe3\xec\x53\x79\xa0\x5e\xbf\x8f\xd3\xac\x4b\xe7\x98\x46\xee\x29\xdb\xb8\x40\x9a\xaf\x81\x3a\x9a\x57\xa4\x70\x05\x4d\xf6\xa9\x62\xa0\xea\x15\x78\x1c\x62\x43\x1c\xb7\xb5\xb1\x63\x23\xd4\x04\xd1\xd2\x52\x1c\x23\x61\x22\xb2\x58\xdd\xdd\xe4\x90\x2e\xaa\xd2\x62\x2d\xb5\x4f\x6d\xd7\xb4\x28\xc2\xc1\x87\x3d\x22\x8f\x8e\xb3\xab\xe9\x87\x8b\xdb\x9b\xe9\xeb\x0b\x7f\x5a\x6c\x97\x2e\xd0\x9c\x05\xd3\x09\xae\x3b\xf9\xb0\x20\x85\xf1\x58\xd5\x1f\xe9\x5b\x53\xc9\x80\x01\x05\x39\x46\x79\xd7\xa3\x3a\x82\x8a\x03\x20\x03\x4a\x22\xbd\xd5\x03\x19\xa3\x0b\xb2\xac\xb8\x31\xb8\x1d\x7a\x82\x6e\xf1\x48\xde\xcc\x25\xed\x76\xa0\x3c\xe7\x0a\xec\xa4\x5d\x60\xc6\x27\x2b\x45\x00\x58\x15\xf8\xc7\x5e\xfc\xcc\x54\xec\x86\x93\x3a\x1d\xa3\xe2\x61\x7f\x3a\x0d\x23\x10\x01\xd4\x19\x98\xc1\xb0\x9f\xa1\xb2\x47\x73\x4d\xdb\x28\x0a\x57\x74\xb6\x43\x11\x30\x94\x0e\xe9\xc0\xad\xdf\x30\x82\xd7\xc9\x34\xec\x26\x31\x35\x61\xb5\xe8\x64\xb3\x6f\x1c\x12\x11\xaa\xb3\x1e\x49\x28\x53\xa3\x43\x3b\x34\x4f\x23\x0c\xe1\xcf\xd2\x30\xfc\xc9\xf5\xe6\xe6\x73\x7a\xa0\x9a\xd2\xec\xd9\x79\x9c\xd0\x2e\x55\x44\x7e\xd0\x88\xaa\x0b\xb0\x47\x08\xaf\x37\x20\xd9\x62\xac\x1a\x51\x40\xde\x76\xec\x37\x83\x5a\x2e\x7c\xfb\x76\x6e\x60\x23\x5a\x33\xc4\xed\xcb\x67\xa4\x78\xe3\xeb\x0f\xfb\x54\x71\x59\x8c\x23\xea\x33\x8c\x10\x95\xbf\x98\xd8\x1f\x9c\x6c\xb1\x99\x8b\x8a\xb1\x9f\x5b\xa8\xa1\xc6\xe5\x2c\xa6\x80\x86\x82\x48\x06\x7d\x44\xc3\x84\x11\xa2\xb2\x18\x13\x1b\xc6\xc9\xe6\x1d\xa7\x02\x03\x54\xd8\xb7\x93\x9c\xe0\x87\x51\xd5\x15\x83\x11\xcc\x5e\x4c\xac\x2c\x2b\x8b\x2f\x6f\xd1\x37\x11\x76\x28\xe2\x32\x16\xc7\x4c\x83\x41\x84\xa8\x5c\xc5\xd4\x49\xd0\xc5\xe6\xcf\x52\xf4\x79\x6e\x7b\x44\x69\x51\xfd\x83\x4d\x1f\x67\x09\x92\x20\xd2\x73\x02\xcd\xe9\xa0\x27\x4a\x08\x8c\x07\xff\xa1\xd9\x2f\xda\x28\x8e\x92\xfa\x32\x04\xc9\x15\x5f\x60\x6b\x24\x49\x86\x8a\x62\xdb\x73\xb8\xd1\x42\xe2\x7a\x96\x50\xf3\x06\x71\x26\x42\x25\x20\x44\xa8\xd0\xf3\x5e\xe7\x78\xc1\x38\x36\x9d\x2a\x41\x89\x10\x46\x20\x03\x48\xb3\xd5\x69\x3a\xc1\xb4\x9e\x1e\x71\x60\x7d\xa6\x4c\x56\xe4\xf7\xc1\x15\x5a\x43\xe7\x48\xfd\x11\x52\x8d\x06\xb7\x6f\xde\x01\xe2\x92\x2c\x50\x26\x5d\x6a\xda\x69\xe3\x61\x27\xb0\xd1\xa1\x66\xb3\x4e\x7e\x7d\xfd\xe1\xe6\xfa\x4a\x19\x77\x9d\x59\x86\x54\xbd\xb2\xec\x1e\xf3\x09\x10\x56\x1f\x03\x9c\x23\xb1\x52\xcd\x91\xa2\x52\x8a\x9c\xeb\xdb\x3d\x39\xce\x04\x4c\x25\x22\x63\xeb\x92\x51\x4c\x65\x2f\xcd\x79\x4d\x84\x20\x74\x79\x0e\xd7\x14\x77\x48\x4e\x7b\x85\x61\xbc\x95\xf1\xbc\x3d\x6b\x2b\x4a\x9c\xe9\x43\x84\x9e\xd4\xcc\xa7\x95\x1b\x5c\x84\x50\xcc\x95\x53\x35\x74\xe9\xe1\x65\xb7\x1f\x9b\x43\x62\xf5\x87\x2a\x8d\xea\x61\x8c\xfe\xb1\x16\xae\xe3\xe6\xaa\x76\x14\x35\xa8\xc2\x9d\xed\x58\x40\x64\x9c\x94\x12\x4e\x5b\xa1\xcf\xcd\xcc\xa3\x6d\x65\x97\xc2\xda\x1c\xcf\xcd\x09\xc7\x99\x64\x7c\x7b\xfe\x99\xde\xb5\x71\x82\xde\xc5\x05\x1d\x70\xb6\x80\x8d\xb8\x6f\x3e\x8b\x09\x08\x56\xf1\xcc\x24\x79\x28\x45\xe0\x50\x11\x42\x25\x83\x2d\xab\x4c\x53\x00\xa6\x0f\x84\x33\xaa\x9a\xd1\x35\xf9\x79\x1a\xfe\x44\x27\xa2\xd6\x3f\xf7\x27\xd5\x73\xf8\x4d\x9b\x7c\xfb\xf9\xa0\x53\xc5\xf4\xa9\xef\x23\xdb\x59\xec\x36\x9e\xd8\x38\x0d\xa8\xe0\x18\xe5\x5b\xb3\x8a\x10\xe7\x00\x6f\x8c\x2f\x46\xa4\x39\x28\x8c\x25\xdf\xba\xee\xa5\x18\x01\xe8\x54\xb0\x5f\x07\xba\xaa\x6a\xd3\x4a\x3a\x57\x38\x08\xca\xa9\x94\xa9\x67\x10\xf7\xaa\x28\x8c\x9a\xed\xbc\x4d\xc7\xe6\x91\x74\xd8\xbc\x47\xbd\x11\xa0\x56\x45\xdf\xb0\x0d\x2d\x18\xca\x71\x0e\xbb\x0b\x43\xc8\xf5\x2d\x08\x89\xb8\x3e\x73\x5a\x96\xe7\xf0\x89\x7e\x25\x65\xbf\xc1\x68\x0e\xac\xc4\xb4\x09\x3d\xff\x07\x67\x3a\x0f\xe4\x9f\x19\xcb\x3d\x39\x5b\x4f\x26\x2e\x76\x71\xa6\x40\x2b\x5e\x94\x48\xae\x14\xee\xed\x9b\x77\x43\x96\x67\x5e\x14\xab\x2a\xb7\xe6\xea\x8b\x45\x7b\xbd\x82\xc0\xd4\xc4\xed\x0f\x3a\x70\x8c\x4e\x83\xe1\xec\x27\xc8\x39\x67\x1d\x3f\x4e\xd9\xfc\x7e\x0f\x0d\x6a\x94\x86\xe1\x53\x83\x95\x5b\x85\x50\x5f\x16\xc2\xb1\x28\x19\x15\xd8\x8c\xd8\x0a\x32\x56\x95\x04\x1c\x77\x1f\x6e\xba\xcf\x51\x87\xbf\x31\xa8\x9e\x9a\xab\xe8\xdf\xbe\x92\xb2\x54\x85\x1e\xd8\x7c\x71\x08\x5e\x15\x24\xe2\x7c\x94\x06\x11\x00\x21\x2f\xbc\xbe\xbe\x22\xec\x86\x37\x84\x56\xc0\x05\xe1\xb8\x21\x01\xfc\xe0\x3e\xad\x63\x21\x0c\x0c\x47\x3d\x8e\x61\x7e\x5c\x04\x84\x37\xfc\x51\xb3\xe2\x1c\x5e\xf4\xef\x7a\x78\xb1\x8b\x09\xeb\x4a\x22\xb9\x42\x24\x79\x44\x6c\x64\x18\x66\x28\xd0\x5c\xa3\x86\x63\xcd\x0d\xe1\x0f\x0d\x01\x34\x7b\x8e\x67\x67\xf5\x61\x8b\xd6\x53\xeb\xa4\xed\xf2\xe5\x03\x2a\x74\x7e\xa7\x21\xee\x2c\x83\x8c\x06\x8c\x6b\x05\x02\xfb\x9a\xc7\x91\x11\x17\x9d\x1f\x67\xad\x51\x20\x51\x31\xfa\x06\x22\x3d\x4c\x6f\xe3\x8c\x8d\xd4\xd7\xbc\xfd\xb8\x7a\x03\x38\x2e\x5e\x8f\xe8\x00\xf4\xb8\xc0\xfd\xb8\x36\x8b\x02\x89\x0a\xdf\xa7\xb7\x99\x8f\xd3\x19\xc4\xf7\x0f\x14\x5d\x8a\x88\x7d\xbe\x71\x75\x17\x46\x08\x86\xf1\xd3\x2b\xcd\xc5\xe5\x0b\xe6\xfb\xeb\x6c\x8f\x28\x2e\xa4\x3f\xae\xe6\xa2\x40\xa2\x02\xfb\xe9\x15\xe8\xe3\xf4\x87\xf7\x03\x2e\xc7\x21\x5d\x7a\x7c\xbd\x61\x7d\xaa\x10\x7b\x12\x7e\x40\x7d\x42\x1f\xd8\x7d\xbf\x11\xd5\xdf\xed\x11\x5f\xac\xe6\x2c\x7d\x60\xce\xa4\x29\x61\x9c\xb7\x27\x1e\xf4\xc7\xfa\x60\x41\x93\x39\x14\xb1\x76\xff\x4e\xc2\x7f\xa8\x6f\xd1\x14\xe9\x28\x3b\x0c\x03\xc1\xac\x2d\xdf\x60\xe9\xea\x9b\x4d\x5f\xdf\x5d\x5e\x5f\xfd\x71\x35\xfd\xe0\x4c\xed\xf3\x30\x04\x62\xf7\x0d\xe7\xb1\x4f\xef\x0e\xc5\xb5\x1f\xf8\x6c\xaf\xec\x1a\x70\xf0\x3c\x92\x39\xf2\xdc\xb9\x0d\x6d\xc8\xb1\xf3\x10\x8e\xfd\x80\xd5\xc1\x55\x96\x3a\x46\x0b\x02\x2b\x38\xa9\x8c\x4b\x2d\x6d\x9b\x8f\x7f\x56\x4c\x5f\x67\xb0\x50\x03\xd3\xb6\x91\x0e\xe6\x08\x91\x6b\x41\x7d\x5c\x19\xce\x48\x40\xeb\x62\xcf\x8c\x73\xfd\xf8\x38\x4b\x39\xde\x97\x04\x31\x50\x09\xdd\x1e\x47\xd0\x64\x1f\xc7\x71\xa6\xd9\x7b\x72\xdf\x7b\x14\x5f\x8f\x2b\xae\x1e\x69\x3e\xc6\xc7\xa2\xfb\x9e\x71\x52\xd4\x79\x9f\x35\x26\x38\x66\x42\x24\xa3\xe3\x63\x61\x18\x8f\x32\xac\xc4\xba\x4f\x8e\xd1\x24\x16\x23\x78\xce\x6c\x90\x0e\x09\x00\x21\x4f\xa9\xc4\x54\xf4\x2f\x10\xd1\x61\xa4\x3a\x8e\x95\xe2\x13\x45\x23\xc5\xad\x98\xfb\x51\xbe\x9c\x70\x05\xb9\x59\xa9\x92\xb6\xa0\xe3\x96\xd3\x23\x24\x44\xd4\x2a\x28\x04\x9c\xf7\xb3\xc9\x8f\x57\x86\x23\x88\x88\x6b\x87\x27\xd2\x7f\x1c\x7a\x44\xef\x96\x88\x8f\xed\xdc\x01\x08\x8f\x12\x1c\xa3\x7c\xa4\x12\x91\x10\x47\xe8\x4c\x4d\xc8\xf8\xe9\x3a\x93\x5f\xc2\x48\x3b\x3c\x8a\xfa\x03\xd1\x83\xc3\xfb\x20\x03\x48\x00\x88\x52\xa0\x37\x69\x1f\x5c\x0c\xd5\x4a\x90\xdb\x12\x3b\x17\xf9\xe3\x30\x03\x5b\x0e\xf5\x3d\xd9\xc1\x1d\x87\x86\xce\x17\xf3\x36\x37\xc0\x22\xdf\x05\x35\x36\xca\x40\x45\xd6\xd7\xb9\x9b\x75\x6f\x93\x48\x11\x7f\x2f\xfc\x00\xa0\xb8\x5e\xd1\x59\x89\x0f\xb6\x7d\x2f\x46\x54\x54\xb9\x46\x48\x0f\x2a\x5b\x18\x63\x63\xca\x86\xb5\x17\xf4\xa5\x0d\xde\xc8\x90\x72\x2a\x72\x5c\x38\x19\xa5\x3e\xfd\xe0\xe2\x8b\x0a\x1a\x27\x37\x89\x87\xd1\x91\x10\xa7\xe3\x44\xde\x8e\xd6\xa7\x89\x8b\x7a\x8d\xb2\xe8\x18\x0c\x6f\xf5\x19\x80\x63\xee\xea\x0d\x41\x74\xc6\xe8\xbd\xb5\xdd\x21\x88\x88\xd0\x27\x9b\xa3\x95\xc9\x9e\xb1\xea\xd3\xd2\xa7\x61\x37\x14\x9f\x6c\xc0\x0e\x26\x5f\xf8\xde\xab\x68\x9f\x26\x2e\x78\x3f\xca\x78\x63\x30\xa2\x42\xf7\xc9\x55\xe7\x61\xf4\x07\xee\xeb\x09\x19\x08\xed\x3e\x62\xa1\x46\xce\xe6\x4b\x1d\x21\x32\x39\x8a\xa1\xd7\x02\xc6\xe3\xa6\x6f\x0c\x34\x80\x4f\xb4\x2f\x90\x02\x6f\x55\xfe\x35\xab\x8a\x5c\x4f\x36\x0b\x42\x73\x38\x59\x23\x42\x4f\x60\x8d\xe5\x8a\xe9\xb2\x77\xa0\x1c\xfa\xa5\x20\x44\x0f\x1c\x23\x76\xf6\xd2\x0d\xfc\xd7\xfd\xd0\xd3\xde\xd3\x25\xda\xd5\x64\xfc\x70\x6a\x0e\x6a\x76\x0c\xe4\x98\x53\xeb\x43\x0f\x34\x39\x59\xad\x42\xad\x05\x11\x55\x59\x32\xde\xe9\xde\xbc\xa2\x92\xac\x5d\x7d\x30\x0d\xc3\xed\x89\xd7\x9b\xf3\x35\xbd\xbe\xec\x11\xc1\xf9\x57\x52\xb6\x69\xed\xc0\xf1\x9f\x15\xe1\x58\xd4\xd9\xdb\x3a\xdf\x4c\x27\x1d\x1b\x9e\x7b\x65\xad\xf8\x4b\x59\x90\x8c\x48\xe7\x73\x78\x4f\x24\xcc\x5a\xb0\xbf\xa3\x07\xd4\xf6\xe8\x1a\x10\xce\xce\xd6\xba\xd3\xb3\x06\xd9\x5c\xcd\x59\x15\xc5\xf6\xac\xff\xa6\x8e\xde\x27\x5c\x61\xd0\xf4\x59\x81\x84\x6b\xc5\x73\x7c\x39\x8e\x7d\x27\x8c\x24\x98\xed\x23\x40\x02\x28\x92\xe4\xa1\xad\x91\xd3\x36\xb2\x58\x72\xf6\x40\x72\x2c\x00\xe9\x64\x68\x24\x89\xb2\x4f\xfc\x05\x67\x95\x6c\x4d\xb5\xa2\xcf\x9d\xbb\x55\x47\x16\x63\x5f\x22\x88\x16\x21\x6f\xf2\x7c\xc9\x1a\x2d\x31\x9c\xaa\xe9\x41\xae\x80\x51\x78\xa3\x7f\x7f\x5b\xcd\x9f\xd7\x60\x1d\x13\x70\x2d\x10\x46\xe3\x46\xd5\x7d\x7b\xdd\xbc\x9a\x33\x0e\x16\x23\x91\x35\x1b\x00\x89\x52\x64\x6f\xfb\x07\x04\xfe\xb3\xc2\x34\xc3\xdd\xc9\xac\xf5\xb4\x23\xf5\x4a\xc3\xb4\xab\xb9\xc2\x30\x7b\x77\x79\xf5\x66\xd6\x58\x77\x7f\x24\x82\x53\xfc\x05\xad\xcb\x02\xbf\x04\xb1\x21\x0b\xf9\xb2\xbe\xf8\x69\x02\x94\xe5\xf8\x3f\xa2\xf9\xbf\xd3\x48\x8f\x86\xef\x54\xbf\xdb\x35\x6b\x70\x4c\x25\xdf\x42\xc9\x08\x95\x70\xba\xa8\xa8\xf9\x95\xf1\x83\x6e\x5d\xcf\xd6\x1a\x62\xb3\xc2\x14\x90\x79\x05\x74\x5e\x60\x5f\x89\x9e\x4c\xa4\xc7\xef\x3f\xce\xfe\xfa\x30\x2c\x67\xdd\xab\x26\x64\x95\x6c\xef\x23\x26\x14\xd6\xa4\x28\x88\xc0\x19\xa3\xb9\xa8\xcf\xe2\x6d\x56\x24\x5b\x75\x2b\x8b\x08\x90\x98\xaf\x09\x55\x66\xeb\xa9\xe7\xa3\xc0\x3b\x95\x5f\xa3\x2f\x64\x5d\xad\x61\x8d\xd7\x8c\x6f\xbb\x42\x3e\xfc\xa2\x1d\xcb\xe0\x20\x96\x8a\x12\x54\xa5\x60\x4b\x10\xe4\x2b\x1e\xab\x4c\x1c\x8e\xfd\x58\x55\xc1\xf4\x43\x9c\xfe\xa1\x68\x9f\x2a\x06\xea\x15\x88\x15\xdb\x80\xbe\xc7\x5a\x69\xf0\x60\xce\xae\x98\x4b\xb4\xe1\xb4\xa2\x05\x16\x62\x77\xcb\x1c\x6a\x6e\xa2\x71\xf5\xc4\xa3\xc1\x5b\x95\x8f\xb8\x10\xbc\x5d\x84\x1c\xeb\x86\x71\x17\xa0\x55\x41\xff\x7d\xe0\x07\x50\x23\xef\x17\xf7\xe1\x05\x92\x63\xea\x5e\x99\x98\xc3\x32\x51\x3f\xf4\x7e\xd1\x19\x13\x0b\x42\xf5\xb3\xad\xe1\xdc\x99\x27\x12\x1b\x11\x73\x37\x96\x17\x17\x77\x6f\x68\x3d\x01\x81\x20\xe2\x01\xd9\xa0\xc3\xfa\x03\x0f\xe8\x0f\x8c\x0d\xd4\xaa\x3e\x65\x7c\x20\x45\x84\x37\x34\x68\x80\x02\xe1\xc1\x9a\x28\x72\xa5\x6f\xa8\x07\xac\xf0\x0f\x18\x93\x04\xea\xd2\x93\x7c\x58\x70\xc1\x03\xe1\xf4\x5b\xfa\x83\xb0\x6a\x89\x13\x67\xc4\xf6\x44\x1f\xc4\x6d\x2e\xfb\x01\x24\x15\xbe\x72\x01\x1e\x1f\x9f\x3b\x63\x6d\x47\x16\x12\x15\x3f\xad\xe5\xc5\x86\xaa\x9d\x6c\xee\x9c\x71\x65\xc9\x6c\x29\xea\x05\x47\x94\x0d\xba\x79\x22\x2c\x44\x33\x2e\xea\x38\xe0\x20\xdb\xf4\x23\x0c\x53\x61\xb0\xb5\xc6\x62\x45\xa8\xd5\x31\xaa\xc1\x75\x13\xc2\x18\xaa\xc6\xe0\xfa\x89\x47\xb3\x67\xd9\xb1\xa2\xd0\x91\x62\x42\x2b\x56\x89\xc2\x3c\xb7\xac\x7c\xce\x35\x16\x62\xf7\x0a\x49\x7d\xdc\x57\xb9\x15\x15\xa5\xbb\x15\xb3\x6b\x1e\x1b\x8f\x6b\x55\xf7\x46\xc1\x06\xd7\x1b\xfb\x54\xf6\x34\x14\xaa\x16\x1c\xaf\x25\x2f\xce\x32\x7d\x55\xe0\x17\xe2\x4c\xee\xb3\xd3\x3a\x35\xd4\xa7\x0b\xfb\x0d\xa2\xcc\xd8\x39\xba\xf8\x79\xac\x62\x3e\xd3\x69\xc7\xfc\x4e\xf6\xc6\x44\xd5\xf4\xee\x71\x36\x8e\xd7\x9e\x6f\xdb\xd1\x4e\x4d\xcf\x6d\xc4\xb7\x49\x73\x45\xb4\xeb\xb1\xbb\x73\x6a\x93\x71\xc6\x38\xf6\xad\xf7\x70\x4c\xe7\xde\x05\x3a\xd0\xc1\x3f\x80\xdb\x39\xe5\xb5\x87\xd9\xae\x08\x35\x7f\x7d\x7f\xf8\x1a\x7d\x51\x53\x5f\xd0\xaf\xfc\x8e\x0a\x38\xf6\xc2\x4d\xa5\x2e\xaa\x7a\xef\xaa\x6e\xfd\x1c\x9b\xfb\x32\x7c\x3b\xe4\x61\x4e\xab\xc8\xba\xb4\xdd\xb2\x99\x43\xb9\x64\x8d\x85\x44\xeb\x52\x00\x46\xbc\x20\x58\x2d\xa4\x11\x85\xd9\xa7\x9b\xbb\xeb\xd9\x2b\x58\x63\x24\x2a\x6e\xb6\xcd\x7a\x21\x0a\x41\x68\x86\xe1\x6e\x35\x81\xbf\xfc\x75\x02\x7f\x47\x14\xfe\xfa\x3f\xff\xff\x2f\x0e\xb5\xbf\x97\xf4\xa1\x45\x2f\x90\x6c\x45\xdf\x5e\x5e\xbd\xbe\xf8\x9e\x25\x3f\x86\xf0\x88\x95\x6a\x6b\x29\x71\x17\x31\x59\x58\x5c\xb5\xab\x6f\x69\x30\xd1\xe4\x02\x89\x88\xa5\x85\x9f\xc7\x5e\x16\xc9\x49\xb9\xab\x35\xbd\x76\x15\x92\x63\xb4\xee\x5e\xff\xed\x2a\x55\x1c\xb3\x43\x30\x2b\xa1\xac\xe7\x24\x13\x97\x9b\xdd\x5e\xbc\xbe\xbe\x7a\x73\x3b\x83\xba\x55\x9c\x62\x23\x58\x1d\x42\x11\x97\x2d\x6b\x7f\x26\x14\x87\x20\x80\x96\xae\xbb\x6c\x86\x20\x0d\x51\xe9\xc3\xe5\xd5\xa7\xbb\x8b\xdb\x19\xac\x09\xad\x24\x1e\xa1\x92\x15\x69\x88\x4a\x6f\xaf\x3f\x7d\xbc\x9d\xc1\x8a\x55\x7c\x84\x3a\x07\x28\x43\x54\x79\x33\xfd\xfd\x76\x06\x39\xda\x8e\x50\x64\x0f\x23\x70\x02\x48\x2f\x16\x9b\xe3\x26\x27\xed\x79\x1c\x04\xf7\x78\xfb\xc2\x9c\x5b\x2f\x11\x71\x9d\x44\x4d\xc7\x71\x9e\x20\xd9\x9d\x64\x6a\xb3\x16\x75\x08\x2a\xe5\x28\x4f\x3c\x86\xfb\x2c\xcf\xee\x1d\xcf\xe1\x7a\x24\x80\xd8\x9b\xa7\xdd\x72\xd6\xbb\x24\x6a\x18\xca\x58\x8e\x77\x9b\xce\x0a\xab\xde\xbf\xcd\x9d\xde\x62\x1a\x48\x8c\x22\x44\xa4\x4a\xed\x71\xa4\x8a\x80\xe9\x9e\xc6\x44\x00\xd3\xbe\x0b\x2a\x06\xc8\xf7\xc3\xf9\x94\xab\xe7\xb7\xcb\x37\x09\x35\xe0\xe0\xb1\x8b\x69\x5f\x29\x6d\x9b\xaa\x7e\xe8\xb8\x79\x2a\x3c\xa2\xb9\x93\x30\x62\xd4\x88\x29\xab\x87\xc3\x21\x42\x5f\xdc\x18\x8f\xef\x20\xf7\x80\x4f\xda\x43\xa3\x3a\x05\xba\xdb\x05\xa2\xaa\x31\x05\xc3\xa1\x46\xc3\x1c\x5f\x4c\x37\x47\xaa\x08\x50\x6d\xb2\x2d\x18\xca\xa3\xba\x4b\x3a\x90\xab\xa3\x34\x14\x9d\x50\x33\x31\x8e\x9b\x5e\x46\x99\xbc\xa7\x66\x38\xf4\x74\x9e\x44\x1c\xab\x3a\xcd\x55\x2c\x0d\xd9\xa9\x78\x7e\xae\xc6\xdc\xa6\x70\xc1\xb7\x29\x3c\x8c\xb1\x02\xf5\x20\x8f\xf8\x52\x3c\x3e\x0e\x96\xed\xc1\x70\x2c\xed\x51\xe6\x4e\x69\x6a\xbe\xda\x83\xd5\x12\x0a\x8c\x9c\xf9\xec\xed\x67\x2b\x33\x65\xb0\x66\x5c\xbf\x83\xe5\xf2\xad\x7b\x24\xf6\xfd\x19\xb6\x37\x5b\x86\xba\x8d\x87\xc1\xe5\x7c\xb9\x5f\x3c\xf0\x3d\x74\xb0\xdb\x39\x0b\x1d\x0e\x77\x00\xd4\x49\x1c\xce\x8c\x60\xf3\xd5\x39\x05\x35\xe7\x82\x1b\xaf\xaa\xcd\x1b\xea\x7b\x5d\x9e\x09\x29\x16\xc1\xe9\x17\xb5\x0f\xcd\xd5\xb9\x7b\xf1\xce\x50\x88\xd3\x55\xea\x96\x6f\x5f\x67\xcf\xd8\xe1\xe1\xf1\x76\xdb\x05\xc1\x85\x4e\xca\x94\xb8\x5b\x1d\x2e\x49\x41\xb6\x01\xbb\x28\x13\xc8\x89\x28\x0b\xb4\x35\xb7\xac\x29\x60\x7d\x6c\x0c\x17\xc3\xb7\x58\x42\x98\xc9\xc9\xf2\xc7\x51\x32\x05\x31\xa8\x62\xe3\x80\x1c\x51\xc7\x64\xc8\xa0\x92\xfd\x6b\xe9\xc7\x6b\x98\x86\x17\x54\xef\xe0\x66\x9d\xf1\x1a\x26\x43\xfa\x86\x81\x12\xc9\xd5\x04\x10\x6d\x5e\xef\x9b\x9b\xcb\x23\x10\x4d\x77\xef\x86\x03\x86\x14\x6c\x10\x1a\xc8\x54\x7d\x02\xfc\x16\xf1\xf6\x9c\xea\xda\x89\xd8\x95\x23\x38\x4a\x27\xc3\x0c\xd7\xc5\x55\x0f\xb1\xdc\x71\xa7\x17\xa7\x37\x97\xe9\xc7\x15\xfb\x4c\x51\xe7\x13\x55\x53\x7d\xfb\x76\x6e\x2e\x9c\x05\xf3\xb6\xf5\xfc\xf1\xb1\x8d\xc9\xf4\xcf\xbc\x28\x73\xaf\x8a\xfa\x7a\xda\xe8\xa3\x8c\xe3\x64\x8c\x29\xc6\x91\x35\x8e\x54\xee\xe0\x48\x6b\x49\x8e\x71\x30\x36\x80\x12\x3e\xf9\x3b\xbd\xb9\x8c\x39\xf6\xab\xc8\x62\x8f\x9a\xba\x21\x1d\xc4\x71\x07\x42\xd3\xac\xdf\xca\x14\x75\x14\xf4\x29\xad\xff\x38\x32\x9c\xf9\x25\xee\x9a\x6f\xbe\x46\xa4\x24\x28\xdd\x86\x9f\x56\x72\x73\x7b\x4f\x16\x52\x8f\xee\x7d\x9a\xb8\x93\x85\x69\xc6\x62\x65\x8a\x3a\x3b\x58\x37\xe4\x1c\x09\x1c\x69\x02\x3e\xce\x28\x91\x3b\xbb\xd1\xbb\xb3\xc3\xa4\x07\x40\x12\x15\xe9\x18\xf0\x31\x54\x0a\xc0\xb9\x53\x2a\xa7\x37\x97\xde\x5c\x4a\xfd\x3d\x3e\xaf\x51\x35\x51\x11\x73\x2c\x2e\x96\xdb\x79\x0a\xcd\x14\xf7\xc0\x47\x68\x7c\xa6\x73\xa8\x1f\x57\xd8\x5d\xab\xfb\xb2\xa9\x25\xe1\xf5\x7f\x46\x02\xdb\x9d\xc3\x9b\xcb\x6e\x3e\x80\x7e\x32\x77\x06\xa7\xcd\xd3\xe1\xed\x0b\xba\xae\xfc\xee\x78\x7e\xef\xb2\x7d\xf6\xcb\xf4\xf6\xe2\x8f\x9b\xe9\xdd\xdb\x99\xaa\xf9\xdd\x69\x81\xe9\xcd\xa5\xfe\xd9\x84\xfd\x0a\x7d\x7c\x2a\xb0\x90\x4f\xc3\xf2\xf6\x0e\x65\x63\x41\x9b\xaf\x89\x5c\x40\x15\x2f\x4c\x37\x60\x25\x36\x0f\xd9\x9a\xff\x9a\xa9\xc1\xdf\xa7\x22\x78\x7d\x2e\xbf\xea\x69\xc6\x6f\xef\x05\x4d\xa1\x1b\xc1\x54\x74\x4d\x65\xec\x7c\xfc\x56\x1e\xac\xd1\x16\x50\x21\x58\x42\x74\xe3\xe9\xc4\x3a\xfb\x5c\xf3\x9e\x42\x1d\x53\x59\x92\x3a\xb5\xe5\xe4\x85\x33\x40\x12\x64\x8b\x72\xfd\xc4\x06\x99\xeb\x28\x63\x9e\x17\x88\x64\xb6\x67\xb5\xf5\x6e\x46\xea\x72\x8e\xb8\x60\x29\x02\xc6\x11\xdb\xef\xbf\xcc\x6c\x5e\x26\x46\x66\x5c\x6a\xdf\x23\x72\x07\xf4\xe3\xb8\x3d\xf5\xa0\xea\xef\x08\xf5\x90\x00\x63\x55\xe6\xb6\xcb\xd7\xb9\x06\xf1\xb4\x7e\xcd\x49\x77\x85\x1b\xbd\x90\x27\x74\xc1\x26\xda\xd2\xcd\x3b\x4e\x3b\x91\xb8\xc8\x85\x6b\x78\x3d\xa2\x80\x70\x01\x1a\x2c\xd3\x1d\xcc\x16\x7e\x9d\x20\x56\x34\x06\x53\x20\xb1\x82\xd3\x17\x51\xfa\x26\xe1\x39\x67\xa7\xfe\xd9\x73\xed\x55\x37\x1e\x44\xdf\x9b\xf0\xcc\x50\xf1\x18\x29\x6a\xa8\x9f\x75\x10\x46\x8d\xc8\x25\x31\x36\x93\xa6\x85\x1d\xc2\x37\xa6\x6b\xea\x0c\x51\xb3\xd3\xd4\x7d\xfe\x0b\x18\xcd\x5c\x73\x63\x24\xb3\xdd\x46\xea\x23\xd7\xa8\xdf\x4d\x94\x89\x35\x5f\xf6\xc7\x7d\xd3\xca\x09\x71\x2c\xd7\x50\xf1\x7d\x64\xc7\xef\xcf\xfd\xc8\xba\xf8\x81\x0a\xd9\x6f\xe7\xd0\x29\x24\x50\x09\xdc\x7f\x3c\xa2\xb9\xff\xd2\x9c\x52\x75\x95\x26\x96\xdb\x99\xad\xec\xcc\x90\x9b\x7a\x0e\xbc\xfd\x86\xf9\xdc\xc1\xa6\x3f\x39\xbb\xff\x15\x72\xde\x1a\xd1\x7e\xb6\x3b\x0c\x1f\xdf\xbb\xbc\x81\x8f\xef\xed\x2c\xbf\x34\x4d\xe5\x60\xdc\x7d\xb7\x27\xaa\xbb\x39\x6f\x9c\x4c\x75\xe0\xdb\x24\xe3\x76\x32\x70\x81\x2d\x00\xa3\x6c\xe5\x5b\xd2\xc7\xb0\xda\x93\xa7\x79\x8e\x79\xbb\xb6\x82\xf9\xb6\x17\xda\x36\x29\xda\x0b\x56\x14\x6c\x83\x73\xf5\x55\xd9\xf0\x99\x2a\xf8\x0b\x8e\x0b\xf3\xc7\x83\xbb\x41\x8f\x84\xee\x30\xc1\x8f\xf8\xcf\x0a\xeb\x64\xcf\x0c\x97\xfa\xae\xe8\x79\x25\x95\xab\x9a\x61\x33\x33\x9b\xa4\x77\xfd\x7a\x20\xce\x61\x8b\x9d\xf9\x04\x43\x90\xbc\xab\x96\xe0\xb5\x5b\x46\x82\x49\x6d\x37\xb2\x57\xb5\xf7\xb5\xc5\xfa\xa6\x1c\x22\x56\x4a\x8f\xa3\xdf\xf7\x35\x5c\x70\xd4\xfd\x0d\x08\x36\x78\x5e\xb7\xf2\x04\x10\x70\xb4\x81\xb7\x77\x77\x37\xbd\x9f\x19\x37\xa4\x42\x22\x9a\x23\xde\x04\xef\xcd\xd9\xfa\xff\x82\xe4\x15\x86\x9f\x7b\x1c\x0a\xe6\x67\x3b\x18\x65\xf0\x5f\x58\xa0\x42\x28\x9e\x3d\xc4\xc8\x0b\x22\xfe\x8f\x29\x1d\x35\x17\xee\x0f\xd6\x67\x67\x0a\x7f\x51\xa0\x65\xf3\x72\x24\xa1\x65\xa5\x0f\x7d\x88\xfa\xb0\xa7\x7e\xc3\x60\x02\x27\x4a\x55\xf5\x2f\x47\x1b\xf5\x8f\x56\xe3\x64\xd2\x3c\x29\x14\x3b\xf7\x3d\xa1\x02\x9e\x09\xc7\x7e\x5b\xd2\xae\x6a\xcf\xe1\x52\x08\x35\x95\x6d\xc4\x7d\x33\xd8\xd4\xb1\xeb\xcf\xcf\x76\x31\xe0\x67\xb5\xba\x5a\x13\xbd\xbb\xc3\xe8\x03\xe6\xb2\x7b\x3d\x82\x64\x7d\x64\xef\x5c\xf7\x23\xf5\xf2\xda\x4b\x6f\x9d\x77\x0e\x77\x2b\x0c\x5f\xce\x58\x89\xe9\x46\x3f\xdf\xa8\x6c\xef\x2b\xea\xbe\x7e\x1b\x68\xfe\x74\x3c\x87\x7a\x12\x73\x8a\x0a\xc0\x6a\x15\x78\x0e\x1f\xea\xc5\x94\x71\x44\x1a\x14\xe3\x14\xf5\x97\xaa\xcd\x5b\x80\x4e\x3d\x47\x03\x27\x29\x8c\x4a\x92\xb3\xcc\x07\x9c\xa8\x68\x04\xa0\x55\xc1\x86\xbf\x0d\xe0\x5c\x36\x99\x27\xd6\xd2\x2e\xcc\x4d\xd3\xbc\xcd\x04\x61\xa5\x73\xe5\x74\x14\x68\xaf\xd2\x36\x13\x3a\x96\xd6\xe3\xb0\x63\xd5\xde\xcd\xb6\xc7\xae\xf5\x23\x09\x89\x2e\x48\x3d\xcc\x3c\x61\x29\x86\x4a\x88\x2e\x42\xc5\x8b\xa7\xd4\x7f\x10\x7c\xe0\x42\x0c\xcf\x5e\xcb\x1e\xd1\xd3\x6f\x42\x37\x1b\x8f\xfe\xc3\x5d\xfb\x54\x4f\xb9\x21\x39\x72\x3b\xea\xb6\x3e\xf8\xbf\x9b\x35\x77\x4f\xca\xde\xfd\x7e\x73\x71\x0e\x37\x4c\x08\x7d\xe1\x5b\xe7\xa5\xc5\x95\x5c\x17\x13\x58\x49\x59\x4e\xe0\x3f\x42\xb9\x6d\x12\x7f\x91\x13\x10\x0f\xae\x17\xd4\x8f\x2f\xc7\xee\x0a\x55\x72\xc5\x38\xf9\x6a\x0c\xec\x1e\x6f\x0f\x5f\xbd\x82\xd3\xb3\x33\x54\xf5\xe3\xff\xce\x0d\xa4\xa1\x70\xde\x58\x55\xb3\x67\xc7\x2a\xa9\xdc\xc0\x99\x2a\xff\x6c\x02\x98\xc8\x15\xe6\xba\x9c\xca\xe1\xdb\xa2\x75\x11\x08\x3c\x25\x00\x45\xed\x17\xfc\x3e\xfd\xf0\xde\x12\xfe\x4e\xde\x3a\x08\xe3\x84\xd2\x90\x6a\xdf\x4e\x15\x4e\x3f\x6c\xac\x10\x53\x32\x92\x02\xfc\xfe\x5c\x56\x7d\x4e\x51\xdf\x90\xaf\x59\xd4\x1f\xc1\x9c\x73\x07\x93\x2b\x58\x8a\xa9\x24\x72\xab\x17\xfb\x93\xae\x83\x3c\xd1\x5b\x0d\x6d\x72\x31\xa1\x42\x62\x94\xeb\xc3\xd2\xbb\x74\xfe\x66\x15\xd1\xfe\x60\x3a\x4b\x7d\x9d\x9c\x89\x1a\xd4\x27\xdb\xd6\x48\xbe\x84\x17\xed\x46\xa7\x67\x6f\xec\x87\x69\xe4\x1c\x67\x9b\xb5\x00\x77\x75\x83\x3d\xa2\xd0\x76\xbb\xe9\x24\x73\x24\x56\x6d\x26\x53\x1d\xb8\xa8\x27\xa3\xc8\x8d\xf7\x48\x1c\x7b\x22\x3c\x27\x54\x0a\x27\xb3\x09\x4f\xe9\xab\x44\x65\xce\x2a\xe7\x53\x6a\x89\x28\xf6\x64\x7e\xc6\xa5\x5a\xb5\xd7\x77\x3b\x97\x2b\x34\xc7\x92\x64\xa8\x28\xb6\x30\xdf\x76\xed\xe1\x55\x7d\x25\x5a\x7b\xcd\xa0\x9e\x72\xdb\xfb\x92\xd6\x44\xbe\x10\xf7\xa4\xac\x0f\xfa\xe3\xbc\xe1\xd5\xd7\xab\xb9\x4e\x0b\x7c\x27\xe9\x43\x8a\x6e\x62\x73\x6c\x01\xff\x6a\x37\xeb\xe1\xbf\x7a\x83\x5e\x99\xed\xbf\x27\xed\x5e\xfd\x44\xe9\xa0\xe7\xe6\x3f\x7e\xbb\xf8\xf8\xcb\x0f\xa8\xa7\x1f\xa3\xaa\xaa\xd4\x7f\xff\xf4\xbf\x01\x00\x00\xff\xff\xe6\xe6\x81\xb5\x37\xc7\x00\x00")
+var _wski18nResourcesEn_usAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x5d\x4f\x73\xdb\x38\xb2\xbf\xcf\xa7\xe8\xca\xc5\xce\x2b\xd9\xd9\x3d\xbd\x7a\x49\xcd\x41\x13\x7b\x36\xde\x49\x6c\x57\xec\xcc\xee\xd4\x66\x6b\x04\x91\x90\x85\x35\x05\x70\x00\xd0\xb2\x92\xf1\x77\x7f\x05\x80\xa4\x48\x09\x7f\x49\x39\xd9\x53\x1c\xb1\xfb\xd7\x0d\xa0\x01\x34\x1a\x0d\xe0\x5f\x3f\x00\x7c\xfd\x01\x00\xe0\x05\xc9\x5f\xbc\x86\x17\xd3\xb2\x2c\x48\x86\x24\x61\x14\xf0\x23\x91\x38\x87\x8a\xe2\xc7\x12\x67\x12\xe7\xc5\xe6\xc5\xc4\x10\x4b\x8e\xa8\x28\x34\x59\x0c\xd7\x0f\x00\x4f\x93\x5d\x51\x1f\x2b\x0a\x47\x5f\xbf\x9e\x5e\xa2\x15\x7e\x7a\x82\x93\x93\x25\x2e\xca\x23\x58\x30\x0e\x95\x40\x77\xf8\xf4\x33\x75\x88\x8b\xe1\xb4\x8a\xc4\x9c\x33\xfe\x1a\x1c\xb0\xcd\x57\x2b\x2b\x65\x12\x04\x96\x0e\xd6\xe6\xab\x95\xf5\xaa\xc4\xf4\x1f\x4b\x22\xee\x21\x2b\x58\x95\x43\xc6\x56\x65\x25\x09\xbd\x53\x7f\xad\x10\xcd\xa1\x20\x14\x03\xa1\x12\xf3\x05\xca\xf0\xa9\x43\x48\x3a\x8e\x55\x9d\x07\xcc\xe7\x4c\x60\x60\x95\x2c\x2b\x57\x81\x76\x88\xac\x40\x39\x9e\x57\x77\x50\xe0\x07\x5c\xf8\xc1\x2c\x84\x56\x40\x54\xc9\x25\xe3\xe4\x8b\x31\xa4\xd9\x2f\xe7\xbf\xcd\x1c\x88\x36\x4a\x2b\xe4\x5a\xd7\xd7\xf4\xfa\x02\x66\xef\xae\x6e\x6e\x5d\x78\x7b\x64\x21\xb0\x5f\xcf\x3f\xde\x5c\x5c\x5d\x46\xe0\xb5\x94\x56\xc8\xf9\xa6\x44\x42\x40\x86\xb9\x24\x0b\xd5\x85\x30\x64\x4b\x9c\xdd\x13\x7a\xe7\x80\xf6\x71\x58\x45\x7c\xa2\x68\x5e\x60\x90\x0c\x08\x25\x92\xa0\x82\x7c\xc1\x20\x30\x7f\xc0\x1c\x32\x46\x29\xce\x14\xf4\x6b\xf8\xfa\xf5\x14\x73\xfe\xf4\xe4\x90\x9b\x0c\x63\x55\xe6\x1a\x71\xb4\xc2\x12\x73\x40\xfc\xae\x5a\x61\x2a\x05\xac\x2a\x21\x61\x8e\x01\xc1\x3d\xde\xc0\x03\x2a\x2a\x0c\x25\x22\x5c\x63\x21\x7e\x27\x9c\x3a\x0d\x45\xb3\xaa\x36\xa5\x94\x49\x63\x50\x87\xd0\x6d\x30\x9c\x55\xb9\x9f\x11\x29\x70\xae\x6a\xbf\x44\x5c\xe0\x2d\x64\xb0\xdd\x62\x38\xed\xd6\xce\xf8\x3d\xac\x89\x5c\x02\x45\x2b\x2c\x4a\x94\x61\xe1\x32\x77\x1b\xa9\x15\xb4\x20\x42\x02\xa6\x92\x48\x82\x05\x10\x0a\x72\x89\x21\xab\x38\xc7\x54\x6e\x99\x1d\x62\x22\x99\x03\xbd\x80\xcd\x25\xaa\x79\x35\x20\x5b\x00\x7a\x40\xa4\xd0\xdf\xb7\xfa\x27\x74\x88\x74\x44\xab\x8a\x77\x58\x82\xe4\xe4\xee\x0e\x73\x31\x01\xa4\xfb\x93\xfa\x83\xe6\xc0\xab\x62\x5b\x62\x8e\xef\x88\x90\x7c\xa3\x27\x3c\x14\xac\xb5\xd1\xb0\x56\x65\xd5\xfc\x4b\xf5\xfc\x7b\x04\x44\x80\x9a\x00\x91\x32\x68\x92\xc3\x1f\x15\x2a\xc8\x82\xe0\x5c\x63\x04\xeb\x71\x08\x52\x7a\x13\xb7\x66\xa3\x4a\xd7\x96\x0d\x1a\xe1\xfa\x7f\x4f\x4f\x47\xe3\x5a\x3d\x5d\x88\xb5\x20\xe7\x1d\x13\x6f\xf9\x34\x53\x07\xc5\xe9\x1d\xc5\x72\xbb\xfb\xa7\xcd\x78\x7d\x5d\xd2\x4a\x1f\x18\x53\x4a\x94\xdd\xa3\xbb\x88\x11\xa5\x25\xb4\xcf\x9f\x84\xe6\x6a\x60\x33\xd3\x80\x50\xed\x82\x1a\x16\xd7\x04\xea\x63\xb1\x0a\xb9\xa0\xc6\x1c\xcb\xbd\xe9\x46\x37\xad\xfe\x39\xc6\x76\xd2\x71\xbc\xea\xa0\xfd\x19\x46\xe3\x6c\x7f\x4f\x51\x2a\x15\xcd\xaa\xda\x4f\x84\xe6\xda\x21\xe5\xd8\x40\x2d\xf4\xec\x13\x54\x22\xcc\x67\x15\xf7\xf5\xeb\x29\xbb\x7f\x7a\x32\x6c\x38\x87\x79\x0d\xd3\x8e\x28\xce\x4e\x12\xc3\x69\x15\x69\x18\xd4\xf8\x88\xd7\x01\x43\xb3\x92\x06\x46\xae\x9a\xa7\xa6\x86\xce\xd8\x98\x30\x32\x45\x81\x44\x55\x68\x03\x91\x5e\xa1\x36\x4e\xab\xc8\xaa\xcc\x75\x2d\xe9\x95\xa3\xd0\xcb\x99\x9a\x77\x02\x8c\x43\x5b\x89\x0d\x20\x59\x00\x91\x90\x33\x6c\xa6\x0a\xcd\xe4\xd0\xe9\x20\xd0\x0e\x37\xd6\x70\xd4\x12\x22\xad\x3c\xc4\xe5\x6d\x12\xc3\x34\xa4\x49\x7c\x9c\x4e\x47\xc4\x6f\xda\x5d\x8a\x80\x45\x77\x48\x07\x9a\x73\x18\xc1\x5b\x71\x77\x4c\x0e\xa8\x34\x17\x97\x63\x25\x5c\xe0\x6d\x87\x73\xae\x82\x7b\x44\x81\x6a\xeb\x53\x0f\xac\xb9\x28\x10\x6f\xe5\x19\x84\x21\x56\xe7\xe3\xf4\xb8\x1e\x45\x11\x72\x0d\xf6\xe9\xac\x70\x97\xac\x76\x22\xb7\x7e\x58\x8e\xa5\x8e\x48\x9d\x82\x8e\x20\xad\xc5\x3d\x94\x9c\x95\x98\xcb\x0d\x08\x2c\xe1\xe4\xa4\xa5\x3d\x52\x03\x04\xa6\xa2\xe2\x58\x7b\x78\xea\xc3\x76\x5e\x24\x02\x4a\x8e\x33\x9c\xab\x99\x63\x03\x08\x3e\xbf\x78\xf5\xf9\x85\x43\xdf\xef\xa0\x48\xba\x7b\xdc\xd4\xa5\xc3\x73\x1d\xed\x19\x27\xe1\x5b\xd5\xe7\x78\xc1\xb1\x68\xfd\xc1\x66\xc6\x76\x59\x89\x93\xdc\x3b\x9e\x37\x5c\x4e\x2d\x53\x87\xfa\x01\x80\xc1\xe5\x56\x8d\x89\x73\x10\x55\x96\x61\x21\x16\x55\x51\x6c\x9c\x1d\x32\x8a\xd5\xe3\xeb\xb4\xce\x91\x78\xed\x75\x74\xba\x74\x9e\x99\x3e\x0c\xb7\x4f\xe7\x19\x74\xc3\x70\xfb\x74\x56\xb8\xdb\xe5\x76\xa0\x6c\x5b\x0d\x23\xa9\x3a\x5e\xbd\x2c\x25\xab\xb2\xc0\xaa\xdf\xe1\xbc\x59\x34\x4b\xc4\xd5\xf4\x94\xe3\xb2\x60\x1b\xf5\xc9\xa1\xc4\xa1\xd0\x0f\x62\xbd\x90\x57\xba\x9f\x6e\x63\xf4\xf0\xee\xf6\xf6\x1a\x84\x44\xb2\x12\x90\xb1\xdc\xac\x17\xd5\x1f\x07\xb3\xf0\x44\xa1\xf6\x00\xf1\x76\x8d\xa2\x63\x67\x7a\x8d\x3b\xfb\xe5\xfc\x37\xf8\x75\xfa\xfe\xd3\xf9\x4c\x29\xb1\x42\xae\x36\x88\xe5\xb6\x8a\x9e\xfd\x7c\xf1\xfe\x7c\x06\x19\xa3\x6a\x6c\x53\xae\xa4\x15\xee\xef\x37\x57\x97\x7e\x2d\x06\x00\xed\x28\x44\x99\xc4\x27\x92\x9d\x34\xc0\x8c\x0b\x05\x7c\x76\x05\x97\x57\xb7\x70\xfb\x71\x7a\x79\xf3\x7e\x7a\x7b\x0e\xb7\xef\xce\xe1\x68\x83\xc5\x11\x4c\x2f\xcf\xe0\x88\xb2\xa3\x53\x80\xdb\x77\x57\x37\xe7\x30\xfd\x78\x0e\x3f\x5f\xfc\xf3\xfc\x0c\xde\xbe\xbf\x80\xe9\xc7\xbf\x7d\xfa\x70\x7e\x79\x6b\xea\xe1\xa6\x51\xdc\x14\xbc\xb1\xda\x07\x22\xc8\x9c\x14\x44\x6e\x60\x76\xf3\xf6\xea\xfa\x7c\xf6\x06\x36\x58\xc0\x8f\x20\x96\x88\xe3\x7c\x02\x94\xc1\x8f\x50\x72\xf2\x80\xa4\xcb\x07\x1a\x08\x66\x6d\x11\x51\xad\x56\x88\x93\x2f\xdb\x8e\x95\x63\x89\x48\x21\xde\x74\x57\xf7\x26\x86\xc0\xf1\x82\x3c\xc2\xe7\x17\xff\xf3\xf9\x05\x20\x8e\x61\xce\x2a\x9a\x3b\x74\x1c\x8f\x6b\x55\x97\xd0\xac\xa8\x72\x0c\x65\x35\x2f\x48\x56\x6c\xea\x92\xee\xc5\x33\x39\x16\x55\xe1\x32\x9e\x44\x10\xfb\x26\xd8\xa3\xc1\x50\x74\x0b\xc2\x85\x84\xd9\xcd\x2f\x17\xd7\x33\xa0\xd5\x6a\x8e\x79\x7f\xb6\xe6\x6c\x15\xd6\x6a\x0c\xa2\x55\x45\x46\x8b\x0d\x70\x2c\x2b\x4e\x61\xf6\xfe\xe2\xc3\xc5\xad\x1f\x2b\x63\x45\x61\xf6\x1f\x1c\x1a\x8e\x00\xb4\x2a\xd8\x78\x6b\x2e\x33\x6f\x3e\x07\x82\x60\x66\x9b\xa8\xa6\x26\x11\xc1\xb0\x3d\x06\x7b\xcf\x50\x0b\x26\xbf\x86\x3d\x92\x80\xbb\xa8\x68\x55\xa5\xb4\x2e\xaa\x1e\xa5\x12\xfc\xc1\x20\x80\x3f\x16\x51\x10\xe5\xea\x66\x98\xeb\x3d\x56\x9b\xcf\x7c\xa7\x7d\x66\x45\x71\x64\xe4\xd5\xbe\x32\x5e\x1b\x51\xee\xad\xe4\x03\x0b\x89\x29\xc8\x3d\xde\xf8\x45\xdc\xe3\xcd\xc8\x62\x8c\x13\xe1\x2d\x84\xb1\x40\x54\xc9\xa5\x5f\x82\xa2\x18\x5a\x8a\xc3\xc8\x88\xb0\xea\xe9\xf5\x05\x2c\x99\x90\x86\xe9\x8d\xc6\xe8\xff\x66\x42\xa0\x25\x51\xbf\xd4\x1b\x14\xc4\x04\x4c\x13\xed\xff\x40\xa2\x22\xda\xa6\x45\xd5\xdd\x8e\x29\x5e\x03\x19\x59\xef\x3e\xfe\x48\xf1\x0f\x98\x0b\xe5\xce\x6c\x11\xea\x5f\x92\x94\xf0\xa3\xd8\xf7\x70\x2b\xb9\x54\x73\x61\xa6\x17\x10\x95\xc0\x7c\x1b\xce\x5b\xa2\x07\x6c\xf7\x50\xdf\x68\x11\x4d\x12\x45\xe4\x0a\xef\x59\x44\xd9\x23\x19\x56\xaf\xba\x59\x35\x58\x76\xa0\x0a\x9c\x87\x77\x6e\xc6\xa2\x46\x98\xc2\xb6\x06\xb6\x4d\x18\x19\x3d\x8a\x00\x18\x34\x6b\x1d\x8b\x97\xa3\x27\xae\x3e\x86\x7d\xa9\x4b\x23\xe6\xe0\x1d\xa2\x40\x79\x0c\xf5\xa8\x79\x38\x02\x22\x7a\x26\xd6\x58\x69\xf3\x6a\xcb\x12\x3b\x4b\xa6\xc9\xe8\x71\xc4\xce\x61\x91\x22\x6c\x1c\x49\x1d\x40\x73\x25\xda\xbc\xe1\x49\x19\xf1\x93\x4a\xb3\xcf\x95\x38\xba\xc7\x97\x69\x9f\xcb\x2a\xca\xcc\x8a\x39\x5e\xa0\xaa\x68\x26\x45\xb6\x50\xc6\x59\xff\xa6\x00\x49\x51\xc0\x1c\xab\x01\x37\x77\x97\x74\x08\x92\x5b\xa5\x26\x46\xb3\x03\x28\x97\x48\x42\x86\x68\xa4\x3a\x09\x28\xee\x5d\x19\xff\x88\x72\x17\x1c\x4f\x3a\xfd\xd1\x15\xcc\xeb\x50\xf8\x20\xee\xb1\x4b\x8b\x0e\x81\x27\x8d\x4e\x75\x26\x6f\xf6\x9c\x26\x08\xe4\xe1\x29\xfb\x0d\xa6\xe0\x69\xa2\x00\x50\x6d\x9d\x41\xac\x86\xce\x03\x17\xca\xc7\xd9\xa5\xf2\x40\xbd\x7d\x1f\xa7\x59\x97\xce\x31\x8d\xdc\x53\xb6\x76\x81\x34\x5f\x03\x75\x34\xaf\x48\xe1\x0a\x9a\xec\x52\xc5\x40\xd5\x2b\xf0\x38\xc4\x86\x38\x6e\x6b\x63\xcb\x46\xa8\x09\xa2\xa5\xa5\x38\x46\xc2\x44\x64\xb1\xba\xbb\xc9\x3e\x5d\x54\xa5\xc5\x5a\x6a\x9f\xda\xae\x69\x51\x84\x83\x0f\x3b\x44\x1e\x1d\x67\x97\xd3\x0f\xe7\x37\xd7\xd3\xb7\xe7\xfe\xb4\xd8\x2e\x5d\xa0\x39\x0b\xa6\x13\x5c\xb7\xf2\x61\x41\x0a\xe3\xb1\xaa\x3f\xd2\xb7\xa6\x92\x01\x03\x0a\x72\x8c\xf2\xae\x47\x75\x00\x15\x07\x40\x06\x94\x44\x7a\xab\x07\x32\x46\x17\xe4\xae\xe2\xc6\xe0\xb6\xe8\x09\xba\xc5\x23\x79\x33\x97\xb4\xdb\x81\xf2\x9c\x2b\xb0\xa3\x76\x81\x19\x9f\xac\x14\x01\x60\x55\xe0\x1f\x3b\xf1\x33\x53\xb1\x6b\x4e\xea\x74\x8c\x8a\x87\xfd\xe9\x34\x8c\x40\x04\x50\x67\x60\x06\xc3\x7e\x86\xca\x1e\xcd\x35\x6d\xa3\x28\x5c\xd1\xd9\x0e\x45\xc0\x50\x3a\xa4\x03\xb7\x7e\xc3\x08\x5e\x27\xd3\xb0\x9b\xc4\xd4\x84\xd5\xa2\x93\xcd\xbe\x71\x48\x44\xa8\xce\x7a\x24\xa1\x4c\x8d\x0e\xed\xd0\x3c\x8d\x30\x84\x3f\x4b\xc3\xf0\x27\xd7\x9b\x9b\xcf\xe9\x81\x6a\x4a\xb3\x67\xe7\x71\x42\xbb\x54\x11\xf9\x41\x23\xaa\x2e\xc0\x1e\x21\xbc\xde\x80\x64\x8b\xb1\x6a\x44\x01\x79\xdb\xb1\xdf\x0c\x6a\xb9\xf0\xf5\xeb\xa9\x81\x8d\x68\xcd\x10\xb7\x2f\x9f\x91\xe2\xb5\xaf\x3f\xec\x52\xc5\x65\x31\x8e\xa8\xcf\x30\x42\x54\xfe\x62\x62\x7f\x70\xb2\xc5\x66\x2e\x2a\xc6\x7e\x6e\xa1\x86\x1a\x97\xb3\x98\x02\x1a\x0a\x22\x19\xf4\x11\x0d\x13\x46\x88\xca\x62\x4c\x6c\x18\x27\x9b\x77\x9c\x0a\x0c\x50\x61\xdf\x4e\x72\x82\x1f\x46\x55\x57\x0c\x46\x30\x7b\x31\xb1\xb2\xac\x2c\xbe\xbc\x45\xdf\x44\xd8\xa1\x88\xcb\x58\x1c\x33\x0d\x06\x11\xa2\x72\x15\x53\x27\x41\x17\x9b\x3f\x4b\xd1\xe7\xb9\xed\x10\xa5\x45\xf5\xf7\x36\x7d\x9c\x25\x48\x82\x48\xcf\x09\x34\xa7\x83\x9e\x29\x21\x30\x1e\xfc\xbb\x66\xbf\x68\xa3\x38\x48\xea\xcb\x10\x24\x57\x7c\x81\xad\x90\x24\x19\x2a\x8a\x4d\xcf\xe1\x46\x0b\x89\xeb\x59\x42\xcd\x1b\xc4\x99\x08\x95\x80\x10\xa1\x42\xcf\x7b\x9d\xe3\x05\xe3\xd8\x74\xaa\x04\x25\x42\x18\x81\x0c\x20\xcd\x56\xa7\xe9\x04\xd3\x7a\x7a\xc4\x81\xf5\x99\x32\x59\x91\xdf\x07\x57\x68\x0d\x9d\x23\xf5\x47\x48\x35\x1a\xdc\x9c\xfd\x02\x88\x4b\xb2\x40\x99\x74\xa9\x69\xa7\x8d\x87\x9d\xc0\x5a\x87\x9a\xcd\x3a\xf9\xed\xd5\x87\xeb\xab\x4b\x65\xdc\x75\x66\x19\x52\xf5\xca\xb2\x7b\xcc\x27\x40\x58\x7d\x0c\x70\x8e\xc4\x52\x35\x47\x8a\x4a\x29\x72\xae\x6e\x76\xe4\x38\x13\x30\x95\x88\x8c\xad\x4a\x46\x31\x95\xbd\x34\xe7\x15\x11\x82\xd0\xbb\x53\xb8\xa2\xb8\x43\x72\xdc\x2b\x0c\xe3\xad\x8c\x97\xed\x59\x5b\x51\xe2\x4c\x1f\x22\xf4\xa4\x66\x3e\xaf\xdc\xe0\x22\x84\x62\xae\x9c\xaa\xa1\x4b\x0f\x2f\xbb\xfd\xd8\x1c\x12\xcb\xdf\x55\x69\x54\x0f\x63\xf4\xf7\x95\x70\x1d\x37\x57\xb5\xa3\xa8\x41\x15\xee\x64\xcb\x02\x22\xe3\xa4\x94\x70\xdc\x0a\x7d\x69\x66\x1e\x6d\x2b\xdb\x14\xd6\xe6\x78\x6e\x4e\x38\xce\x24\xe3\x9b\xd3\xcf\xf4\xb6\x8d\x13\xf4\x2e\x2e\xe8\x80\xb3\x05\xac\xc5\x7d\xf3\x59\x4c\x40\xb0\x8a\x67\x26\xc9\x43\x29\x02\xfb\x8a\x10\x2a\x19\x6c\x58\x65\x9a\x02\x30\x7d\x20\x9c\x51\xd5\x8c\xae\xc9\xcf\xd3\xf0\x47\x3a\x11\xb5\xfe\xb9\x3f\xa9\x9e\xc2\xaf\xda\xe4\xdb\xcf\x7b\x9d\x2a\xa6\x4f\x7d\x1b\xd9\xce\x62\xb7\xf1\xc4\xc6\x69\x40\x05\xc7\x28\xdf\x98\x55\x84\x38\x05\x38\x33\xbe\x18\x91\xe6\xa0\x30\x96\x7c\xe3\xba\x97\x62\x04\xa0\x53\xc1\x7e\x1d\xe8\xaa\xaa\x4d\x2b\xe9\x5c\xe1\x20\x28\xa7\x52\xa6\x9e\x41\xdc\xab\xa2\x30\x6a\xb6\xf3\xd6\x1d\x9b\x47\xd2\x61\xf3\x1e\xf5\x46\x80\x5a\x15\x3d\x63\x6b\x5a\x30\x94\xe3\x1c\xb6\x17\x86\x90\xab\x1b\x10\x12\x71\x7d\xe6\xb4\x2c\x4f\xe1\x13\xfd\x42\xca\x7e\x83\xd1\x1c\x58\x89\x69\x13\x7a\xfe\x0f\xce\x74\x1e\xc8\x3f\x33\x96\x7b\x72\xb6\x9e\x4d\x5c\xec\xe2\x4c\x81\x56\xbc\x28\x91\x5c\x2a\xdc\x9b\xb3\x5f\x86\x2c\xcf\xbc\x28\x56\x55\x6e\xcc\xd5\x17\x8b\xf6\x7a\x05\x81\xa9\x89\xdb\xef\x75\xe0\x18\x9d\x06\xc3\xd9\x4f\x90\x73\xce\x3a\x7e\x9c\xb2\xf9\xdd\x1e\x1a\xd4\x28\x0d\xc3\xa7\x06\x2b\x37\x0a\xa1\xbe\x2c\x84\x63\x51\x32\x2a\xb0\x19\xb1\x15\x64\xac\x2a\x09\x38\xee\x3e\xdc\x74\x9f\x83\x0e\x7f\x63\x50\x3d\x35\x57\xd1\xbf\x7d\x21\x65\xa9\x0a\x3d\xb0\xf9\xe2\x10\xbc\x2a\x48\xc4\xf9\x28\x0d\x22\x00\x42\x5e\x78\x7d\x7d\x45\xd8\x0d\x6f\x08\xad\x80\x0b\xc2\x71\x43\x02\xf8\xc1\x7d\x5a\xc7\x42\x18\x18\x8e\x7a\x1c\xc3\xfc\xb8\x08\x08\x6f\xf8\xa3\x66\xc5\x39\xbc\xea\xdf\xf5\xf0\x6a\x1b\x13\xd6\x95\x44\x72\x85\x48\xf2\x88\xd8\xc8\x30\xcc\x50\xa0\xb9\x46\x0d\xc7\x9a\x1b\xc2\xef\x1a\x02\x68\xf6\x1c\x4f\x4e\xea\xc3\x16\xad\xa7\xd6\x49\xdb\xe5\x77\x0f\xa8\xd0\xf9\x9d\x86\xb8\xb3\x0c\x32\x1a\x30\xae\x15\x08\xec\x6b\x1e\x46\x46\x5c\x74\x7e\x9c\xb5\x46\x81\x44\xc5\xe8\x1b\x88\xf4\x30\xbd\x8d\x33\x36\x52\x5f\xf3\xf6\xe3\xea\x0d\xe0\xb8\x78\x3d\xa2\x03\xd0\xe3\x02\xf7\xe3\xda\x2c\x0a\x24\x2a\x7c\x9f\xde\x66\x3e\x4e\x67\x10\xdf\x3f\x50\x74\x29\x22\xf6\xf9\xc6\xd5\x5d\x18\x21\x18\xc6\x4f\xaf\x34\x17\x97\x2f\x98\xef\xaf\xb3\x1d\xa2\xb8\x90\xfe\xb8\x9a\x8b\x02\x89\x0a\xec\xa7\x57\xa0\x8f\xd3\x1f\xde\x0f\xb8\x1c\xfb\x74\xe9\xf1\xf5\x86\xf5\xb9\x42\xec\x49\xf8\x01\xf5\x09\x7d\x60\xf7\xfd\x46\x54\x7f\xb7\x47\x7c\xb1\x9a\xb3\xf4\x81\x39\x93\xa6\x84\x71\xde\x9e\x78\xd0\x1f\xeb\x83\x05\x4d\xe6\x50\xc4\xda\xfd\x1b\x09\xff\xae\xbe\x45\x53\xa4\x83\xec\x30\x0c\x04\xb3\xb6\x7c\x83\xa5\xab\x6f\x36\x7d\x7b\x7b\x71\x75\xf9\xfb\xe5\xf4\x83\x33\xb5\xcf\xc3\x10\x88\xdd\x37\x9c\x87\x3e\xbd\x3b\x14\xd7\x7e\xe0\xb3\xbd\xb2\x6b\xc0\xc1\xf3\x48\xe6\xc8\x73\xe7\x36\xb4\x21\xc7\xce\x43\x38\xf6\x03\x56\x7b\x57\x59\xea\x18\x2d\x08\xac\xe0\xa4\x32\x2e\xb5\xb4\x6d\x3e\xfe\x51\x31\x7d\x9d\xc1\x42\x0d\x4c\x9b\x46\x3a\x98\x23\x44\xae\x05\xf5\x61\x65\x38\x23\x01\xad\x8b\x3d\x33\xce\xf5\xd3\xd3\x2c\xe5\x78\x5f\x12\xc4\x40\x25\x74\x7b\x1c\x40\x93\x5d\x1c\xc7\x99\x66\xef\xc9\x7d\xef\x51\x7c\x3d\xae\xb8\x7a\xa4\xf9\x68\x65\xfc\x79\x37\x6c\xbc\x73\x01\xa4\x0e\x19\x30\x1e\xed\x8d\x0f\xc7\x8b\x09\xa3\x99\x60\xca\xe8\x48\x5a\x18\xc6\xa3\x0c\x2b\xb1\xee\xbd\x63\x34\x89\xc5\x08\x9e\x48\x1b\xa4\x43\x02\x40\xc8\xa7\x2a\x31\x15\xfd\xab\x46\x74\xc0\xa9\x8e\x78\xa5\x78\x4f\xd1\x48\x71\x6b\xeb\x7e\x3c\x30\x27\x5c\x41\xae\x97\xaa\xa4\x2d\xe8\xb8\x85\xf7\x08\x09\x11\xb5\x0a\x0a\x01\xe7\xfd\xbc\xf3\xc3\x95\xe1\x00\x22\xe2\xda\xe1\x99\xf4\x1f\x87\x1e\xd1\xbb\x25\xe2\x63\x3b\x77\x00\xc2\xa3\x04\xc7\x28\x1f\xa9\x44\x24\xc4\x01\x3a\x53\x13\x5c\x7e\xbe\xce\xe4\x97\x30\xd2\x0e\x0f\xa2\xfe\x40\xf4\xe0\xf0\x3e\xc8\x00\x12\x00\xa2\x14\xe8\x0e\xca\xfb\x57\x48\xb5\x12\xe4\xa6\xc4\xce\x70\xc0\x38\xcc\xc0\xe6\x44\x7d\xa3\x76\x70\x6f\xa2\xa1\xf3\x45\xc7\xcd\x5d\xb1\xc8\x77\x95\x8d\x8d\x32\x50\x91\xf5\xc5\xef\x66\x85\xdc\xa4\x5c\xc4\xdf\x20\x3f\x00\x28\xae\x57\x74\xd6\xec\x83\x6d\xdf\x8b\x11\x15\x7f\xae\x11\xd2\xc3\xcf\x16\xc6\xd8\xe8\xb3\x61\xed\x85\x87\x69\x83\x37\x32\xf8\x9c\x8a\x1c\x17\x78\x46\xa9\x8f\x44\xb8\xf8\xa2\xc2\xcb\xc9\x4d\xe2\x61\x74\xa4\xce\xe9\x88\x92\xb7\xa3\xf5\x69\xe2\xe2\x63\xa3\x2c\x3a\x06\xc3\x5b\x7d\x06\xe0\x90\xfb\x7f\x43\x10\x9d\xd1\x7c\x6f\x6d\x77\x08\x22\x62\xf9\xc9\xe6\x68\x65\xb2\xe7\xb6\xfa\xb4\xf4\x69\xd8\x0d\xda\x27\x1b\xb0\x83\xc9\x17\xe8\xf7\x2a\xda\xa7\x89\x0b\xf3\x8f\x32\xde\x18\x8c\xa8\x20\x7f\x72\xd5\x79\x18\xfd\x21\xfe\x7a\x42\x06\x42\xbb\xcf\x5d\xa8\x91\xb3\xf9\x52\xc7\x92\x4c\x36\x63\xe8\x5d\x81\xf1\xb8\xe9\x5b\x08\x0d\xe0\x33\xed\x20\xa4\xc0\x5b\x95\x7f\xcb\xaa\x22\xd7\x93\xcd\x82\xd0\x1c\x8e\x56\x88\xd0\x23\x58\x61\xb9\x64\xba\xec\x1d\x28\x87\x7e\x29\x08\xd1\x03\xc7\x88\x3d\xc0\x74\x03\xb7\x9c\xec\x1e\xe1\x54\xc7\x60\x58\xd5\xb0\x46\xc5\x44\x55\x96\x8c\x77\x7a\x0f\xaf\xa8\x24\x2b\x97\x89\xa7\x61\xb8\x1d\xdd\x7a\x97\xbc\xa6\xd7\xb7\x2e\x22\x38\xfd\x42\xca\x36\xbf\x1c\x38\xfe\xa3\x22\x1c\x8b\x3a\x8d\x5a\x27\x7e\xe9\xec\x5f\xc3\x73\xaf\x8c\x01\x3f\x96\x05\xc9\x88\x74\xbe\x4b\xf7\x4c\xc2\xac\x05\xfb\x3b\x7a\x40\x6d\x87\xa9\x01\xe1\xe4\x64\xa5\xfb\x14\x6b\x90\x4d\xd3\x55\x45\xb1\x39\xe9\x3f\x6e\xa3\x37\xec\x96\x18\x34\x7d\x56\x20\xe1\x5a\x50\x1c\x5e\x8e\x63\x03\x08\x23\x09\x66\x1f\x07\x90\x00\x8a\x24\x79\x68\x6b\xe4\xb8\x0d\xdc\x95\x9c\x3d\x90\x1c\x0b\x40\x3a\x2b\x19\x49\xa2\x0c\x15\x3f\xe2\xac\x92\xad\xcd\x56\xf4\xa5\x73\xdb\xe8\xc0\x62\xec\x1e\xb8\x68\x11\xf2\x26\xe1\x96\xac\xd0\x1d\x86\x63\x35\xfa\xca\x25\x30\x0a\x67\xfa\xf7\x77\xd5\xfc\x65\x0d\xd6\x31\x01\x97\xff\x3d\x1a\x37\xaa\xee\xdb\x7b\xdf\xd5\x90\xbc\xe7\xeb\x47\xd6\x6c\x00\x24\x4a\x91\x9d\x7d\x18\x10\xf8\x8f\x0a\xd3\x0c\x77\xe7\x8a\xd6\x91\x8d\xd4\x2b\x0d\xd3\xae\xe6\x12\xc3\xec\x97\x8b\xcb\xb3\x59\x63\xdd\xfd\x91\x08\x8e\xf1\x23\x5a\x95\x05\x7e\x0d\x62\x4d\x16\xf2\x75\x7d\x03\xd3\x04\x28\xcb\xf1\x7f\x44\xf3\x7f\xa7\x91\x1e\x0c\xdf\xa9\x7e\xb7\x6b\xd6\xe0\x98\x4a\xbe\x81\x92\x11\x2a\xe1\x78\x51\x51\xf3\x2b\xe3\x7b\xdd\xba\x9e\x0c\x35\xc4\x7a\x89\x29\x20\xf3\x1c\xe7\xbc\xc0\xbe\x12\x3d\x9b\x48\x8f\x5b\x7d\x98\x8d\xee\x61\x58\xce\xba\x57\x4d\xc8\x2a\xd9\x5e\x0c\x4c\x28\xac\x48\x51\x10\x81\x33\x46\x73\x51\x1f\x8a\x5b\x2f\x49\xb6\xec\x56\x16\x11\x20\x31\x5f\x11\xaa\xcc\xd6\x53\xcf\x07\x81\x77\x2a\xbf\x42\x8f\x64\x55\xad\x60\x85\x57\x8c\x6f\xba\x42\x3e\xfc\xa4\xfd\xb6\xe0\x20\x96\x8a\x12\x54\xa5\x60\x77\x20\xc8\x17\x3c\x56\x99\x38\x1c\xfb\xf9\xa6\x82\xe9\x17\x31\xfd\x43\xd1\x2e\x55\x0c\xd4\x1b\x10\x4b\xb6\x06\x7d\xa1\xb4\xd2\xe0\xc1\x1c\x22\x31\xb7\x59\xc3\x71\x45\x0b\x2c\xc4\xf6\xba\x37\xd4\x5c\x09\xe3\xea\x89\x07\x83\xb7\x2a\x1f\x71\x33\x77\xeb\xe3\x1f\xea\xaa\x6f\x17\xa0\x55\x41\xff\xc5\xdc\x7b\x50\x23\x2f\xfa\xf6\xe1\x05\xb2\x54\xea\x5e\x99\x98\x4c\x32\x51\x3f\xf4\x7e\xd1\xa9\x0b\x0b\x42\xf5\xfb\xa9\xe1\x24\x96\x67\x12\x1b\x11\xd2\x36\x96\x17\x17\xd6\x6e\x68\x3d\xeb\xed\x20\xe2\x1e\xd9\xa0\x53\xf3\x03\x4f\xca\x0f\x5c\x7a\xd7\xaa\x3e\xe7\xf2\x3b\x45\x84\x37\xf2\x66\x80\x02\xd1\xb7\x9a\x28\x72\x21\x6d\xa8\x07\x2c\xa0\xf7\x18\x93\x04\xea\xd2\x93\x7c\xd8\xda\xdd\x03\xe1\xf4\x5b\xfa\x83\xb0\x6a\x89\x23\x67\x40\xf4\x48\x9f\x88\x6d\x6e\xdd\x01\x24\x15\xbe\x72\x01\x9e\x9e\x5e\x3a\x43\x59\x07\x16\x12\x15\x9e\xac\xe5\xc5\x46\x82\x9d\x6c\xee\xe4\x6d\x65\xc9\xec\x4e\xd4\x0b\x8e\x28\x1b\x74\xf3\x44\x58\x88\x66\x5c\xd4\x61\xb6\x41\xb6\xe9\x47\x18\xa6\xc2\x60\x6b\x8d\xc5\x8a\x50\xab\x63\x54\x83\xeb\x26\x84\x31\x54\x8d\xc1\xf5\x13\x8f\x66\x4f\x77\x63\x45\xa1\x03\xb1\x84\x56\xac\x12\x85\x79\xf7\x58\xf9\x9c\x2b\x2c\xc4\xf6\x39\x90\xfa\xdc\xad\x72\x2b\x2a\x4a\xb7\x2b\x66\xd7\x3c\x36\x1e\xd7\xaa\xee\xb5\x82\x0d\xae\x37\x76\xa9\xec\x59\x1e\x54\x2d\x38\xde\x4a\x5e\x9c\x64\xfa\xce\xbe\x47\x22\x5d\xb9\x98\x76\x5a\xa7\x86\xfa\x98\x5f\xbf\x41\x94\x19\x3b\x47\x17\x3f\x8f\x55\xcc\x67\x3a\xed\x98\xdf\xd1\xce\x98\xa8\x9a\xde\x3d\xce\xc6\xf1\xda\x13\x5f\x3b\xda\xa9\xe9\xb9\xdd\x45\x6d\xf2\x4d\x11\xed\x7a\xec\xee\xe4\xd6\x64\x9c\x31\x8e\x7d\xeb\x3d\x1c\xd2\xb9\x77\x81\x0e\x74\xf0\xf7\xe0\xb6\x4e\x79\xed\x61\xb6\x2b\x42\xcd\x5f\x5f\xe4\xbd\x42\x8f\x6a\xea\x0b\xfa\x95\xdf\x50\x01\xc7\x56\xb3\xa9\xd4\x45\x55\x6f\x0d\xd5\xad\x9f\x63\x73\x71\x85\x6f\x03\x3a\xcc\x69\x15\x59\x97\xb6\x5b\x36\x73\x3a\x96\xac\xb0\x90\x68\x55\x0a\xc0\x88\x17\x04\xab\x85\x34\xa2\x30\xfb\x74\x7d\x7b\x35\x7b\x03\x2b\x8c\x44\xc5\xcd\xae\x54\x2f\x44\x21\x08\xcd\x30\xdc\x2e\x27\xf0\x97\xbf\x4e\xe0\xef\x88\xc2\x5f\xff\xef\x7f\xff\xe2\x50\xfb\x5b\x49\x1f\x5a\xf4\x02\xc9\x56\xf4\xcd\xc5\xe5\xdb\xf3\x6f\x59\xf2\x43\x08\x8f\x58\xa9\xb6\x96\x12\x77\x23\x92\x85\xc5\x55\xbb\xfa\xba\x04\x13\x4d\x2e\x90\x88\x58\x5a\xf8\x79\xec\x65\x91\x9c\x94\xdb\x5a\xd3\x6b\x57\x21\x39\x46\xab\xee\x3d\xdc\xae\x52\xc5\x31\x3b\x04\xb3\x12\xca\x7a\x4e\x32\x71\xb9\xd9\xcd\xf9\xdb\xab\xcb\xb3\x9b\x19\xd4\xad\xe2\x14\x1b\xc1\xea\x10\x8a\xb8\x6c\x59\xfb\x33\xa1\xd8\x07\x01\x74\xe7\xba\x54\x66\x08\xd2\x10\x95\x3e\x5c\x5c\x7e\xba\x3d\xbf\x99\xc1\x8a\xd0\x4a\xe2\x11\x2a\x59\x91\x86\xa8\xf4\xee\xea\xd3\xc7\x9b\x19\x2c\x59\xc5\x47\xa8\xb3\x87\x32\x44\x95\xb3\xe9\x6f\x37\x33\xc8\xd1\x66\x84\x22\x3b\x18\x81\xa3\x38\x7a\xb1\xd8\x9c\xfb\x38\x6a\x0f\xc6\x20\xb8\xc7\x9b\x57\xe6\x00\x79\x89\x88\xeb\x48\x68\x3a\x8e\xf3\x34\xcb\xf6\x48\x51\x9b\x14\xa8\x43\x50\x29\x67\x6a\xe2\x31\xdc\x87\x6a\xb6\x0f\x6a\x0e\xd7\x23\x01\xc4\xde\x3c\xed\x96\xb3\xde\x25\x51\xc3\x50\xc6\x72\xbc\xdd\x74\x56\x58\xf5\xfe\x6d\xee\xf4\x16\xd3\x40\x62\x14\x21\x22\x55\x6a\x8f\x23\x55\x04\x4c\x77\x34\x26\x02\x98\xf6\x5d\x50\x31\x40\xbe\x1f\xce\xa7\x5c\x3d\xbf\x5d\x9c\x25\xd4\x80\x83\xc7\x2e\xa6\x7d\x2e\xb4\x6d\xaa\xfa\xc5\xe1\xe6\xcd\xee\x88\xe6\x4e\xc2\x88\x51\x23\xa6\xac\x1e\x0e\x87\x08\x7d\x83\x62\x3c\xbe\x83\xdc\x03\x3e\x69\x4f\x6f\xea\x0c\xe3\x6e\x17\x88\xaa\xc6\x14\x0c\x87\x1a\x0d\x73\x7c\x31\xdd\x1c\xa9\x22\x40\xb5\xc9\xa6\x60\x28\x8f\xea\x2e\xe9\x40\xae\x8e\xd2\x50\x74\x42\xcd\xc4\x38\x6e\x7a\x19\x65\x0e\xd1\x35\xc3\xa1\xa7\xf3\x24\xe2\x58\xd5\x69\xee\x44\x69\xc8\x8e\xc5\xcb\x53\x35\xe6\x36\x85\x0b\x3e\x12\xe1\x61\x8c\x15\xa8\x07\x79\xc4\xef\xc4\xd3\xd3\x60\xd9\x1e\x0c\xc7\xd2\x1e\x65\xee\x94\xa6\xe6\xab\x3d\x58\x2d\xa1\xc0\xc8\x99\x2e\xde\x7e\xb6\x32\x53\x06\x2b\xc6\xf5\x83\x54\x2e\xdf\xba\x47\x62\xdf\x9f\x61\x3b\xb3\x65\xa8\xdb\x78\x18\x5c\xce\x97\xfb\xe9\x01\xdf\x8b\x03\xdb\x9d\xb3\xd0\x29\x6d\x07\x40\x9d\xc4\xe1\x4c\xb8\x35\x5f\x9d\x53\x50\x73\x40\xb7\xf1\xaa\xda\xbc\xa1\xbe\xd7\xe5\x99\x90\x62\x11\x9c\x7e\x51\xfb\xe2\x5b\x9d\xbb\x17\xef\x0c\x85\x38\x5d\xa5\x6e\xf9\x76\x75\xf6\x8c\x1d\x1e\x1e\x6f\xb7\x5d\x10\x5c\xe8\xe3\x84\x12\x77\xab\xc3\x25\x29\xc8\x36\x60\x17\x65\x02\x39\x11\x65\x81\x36\xe6\xba\x33\x05\xac\x4f\x65\xe1\x62\xf8\x16\x4b\x08\x33\x39\x17\xfd\x30\x4a\xa6\x20\x06\x55\x6c\x1c\x90\x03\xea\x98\x0c\x19\x54\xb2\x7f\x3f\xfc\x78\x0d\xd3\xf0\x82\xea\xed\x5d\x71\x33\x5e\xc3\x64\x48\xdf\x30\x50\x22\xb9\x9c\x00\xa2\xcd\x33\x7a\x73\x73\x8b\x03\xa2\xe9\xee\xdd\x70\xc0\x90\x82\x0d\x42\x03\x99\xaa\x4f\x80\xdf\x22\xde\x9e\x53\x5d\x3b\x11\xdb\x72\x04\x47\xe9\x64\x98\xe1\xba\xb8\xea\x21\x96\x3b\xee\x70\xe0\xf4\xfa\x22\xfd\x34\x60\x9f\x29\xea\xf8\x9f\x6a\xaa\xaf\x5f\x4f\xcd\xcd\xaf\x60\x1e\x99\x9e\x3f\x3d\xb5\x31\x99\xfe\x91\x12\x65\xee\x55\x51\xdf\x13\x1b\x7d\x52\x70\x9c\x8c\x31\xc5\x38\xb0\xc6\x91\xca\xed\x9d\x18\x2d\xc9\x21\xce\x9d\x06\x50\xc2\x07\x6b\xa7\xd7\x17\x31\xa7\x6a\x15\x59\xec\x49\x4e\x37\xa4\x83\x38\xee\xbc\x65\x9a\xf5\x5b\x99\xa2\x4e\x5a\x3e\xa7\xf5\x1f\x46\x86\x33\xbf\xc4\x5d\xf3\xcd\xd7\x88\x94\x04\xa5\xdb\xf0\xc3\x40\x6e\x6e\xef\xc1\x3d\xea\xd1\xbd\x4f\x13\x77\x70\x2f\xcd\x58\xac\x4c\x51\x47\xf3\xea\x86\x9c\x23\x81\x23\x4d\xc0\xc7\x19\x25\x72\x6b\x37\x7a\x77\x76\x98\xf4\x00\x48\xa2\x22\x1d\x03\x3e\x84\x4a\x01\x38\x77\x4a\xe5\xf4\xfa\xc2\x9b\x4b\xa9\xbf\xc7\xe7\x35\xaa\x26\x52\x7c\xc3\x52\x16\x2d\xdc\xce\x53\x68\xa6\xb8\x7b\x3e\x42\xe3\x33\x9d\x42\xfd\xca\xc1\xf6\x7e\xdb\xd7\x4d\x2d\x09\xaf\xff\x33\x12\xd8\xee\x1c\x5e\x5f\x74\xf3\x01\xf4\xdb\xb5\x33\x38\x6e\xde\xf0\x6e\x9f\xb2\x75\xe5\x77\xc7\xf3\x7b\x97\xed\xb3\x9f\xa6\x37\xe7\xbf\x5f\x4f\x6f\xdf\xcd\x54\xcd\x6f\x4f\x0b\x4c\xaf\x2f\xf4\xcf\x26\xec\x57\xe8\xe3\x53\x81\x85\x7c\x1a\x96\xb7\x77\x28\x1b\x0b\xda\x7c\x4d\xe4\x02\xaa\x78\x61\xba\x01\x2b\xb1\x79\x51\xd6\xfc\xd7\x4c\x0d\xfe\x3e\x15\xc1\xeb\x73\xf9\x55\x4f\x33\x7e\x7b\x2f\x68\x0a\xdd\x08\xa6\xa2\x6b\x2a\x63\xeb\xe3\xb7\xf2\x60\x85\x36\x80\x0a\xc1\x12\xa2\x1b\xcf\x27\xd6\xd9\xe7\x9a\x87\x0d\xea\x98\xca\x1d\xa9\x53\x5b\x8e\x5e\x39\x03\x24\x41\xb6\x28\xd7\x4f\xac\x91\xb9\x17\x32\xe6\x9e\xff\x48\x66\x7b\x56\x5b\xef\xe2\xa1\x2e\xe7\x88\xfb\x8b\x22\x60\x1c\xb1\xfd\xfe\x13\xc9\xe6\x89\x60\x64\xc6\xa5\xf6\x61\x20\x77\x40\x3f\x8e\xdb\x53\x0f\xaa\xfe\x0e\x50\x0f\x09\x30\x56\x65\x6e\xba\x7c\x9d\xfb\x08\x8f\xeb\x67\x95\x74\x57\xb8\xd6\x0b\x79\x42\x17\x6c\xa2\x2d\xdd\x3c\xa8\xb4\x15\x89\x8b\x5c\xb8\x86\xd7\x03\x0a\x08\x17\xa0\xc1\x32\xdd\xc1\x6c\xe1\xd7\x09\x62\x45\x63\x30\x05\x12\x4b\x38\x7e\x15\xa5\x6f\x12\x9e\x73\x76\xea\xdf\xe7\xa2\xbd\xea\xc6\x83\xe8\x7b\x13\x9e\x19\x2a\x1e\x23\x45\x0d\xf5\xb3\x0e\xc2\xa8\x11\xb9\x24\xc6\x66\xd2\xb4\xb0\x43\xf8\xc6\x74\x4d\x9d\x21\x6a\x76\x9a\xba\xef\x70\x01\xa3\x99\x6b\x6e\x8c\x64\xb6\xdb\x48\x7d\xe4\x1a\xf5\xbb\x89\x32\xb1\xe6\xcb\xee\xb8\x6f\x5a\x39\x21\x8e\xe5\x1a\x2a\xbe\x8d\xec\xf8\xfd\xb9\xef\x59\x17\xdf\x51\x21\xfb\xe5\x17\x3a\x85\x04\x2a\x81\xfb\xaf\x38\x34\xd7\x4b\x9a\x53\xaa\xae\xd2\xc4\x72\x3b\xb3\x95\x9d\x19\x72\x53\xcf\x81\xb7\x5f\x31\x9f\x3b\xd8\xf4\x27\x67\xf7\xbf\x44\xce\x5b\x23\xda\xcf\x76\x87\xe1\xe3\x7b\x97\x37\xf0\xf1\xbd\x9d\xe5\xa7\xa6\xa9\x1c\x8c\xdb\xef\xf6\x44\x75\x37\xe7\xb5\x93\xa9\x0e\x7c\x9b\x64\xdc\x4e\x06\x2e\xb0\x05\x60\x94\x2d\x7d\x4b\xfa\x18\x56\x7b\xf2\x34\xcf\x31\x6f\xd7\x56\x30\xdf\xf4\x42\xdb\x26\x45\x7b\xc1\x8a\x82\xad\x71\xae\xbe\x2a\x1b\x3e\x51\x05\x7f\xc5\x71\x61\xfe\x78\x70\x37\xe8\x81\xd0\x1d\x26\xf8\x11\xff\x51\x61\x9d\xec\x99\xe1\x52\x5f\xda\x3c\xaf\xa4\x72\x55\x33\x6c\x66\x66\x93\xf4\xae\x9f\xf1\xc3\x39\x6c\xb0\x33\x9f\x60\x08\x92\x77\xd5\x12\xbc\xd5\xca\x48\x30\xa9\xed\x46\xf6\xb2\xf6\xbe\x36\x58\x5f\x44\x43\xc4\x52\xe9\x71\xf0\xeb\xb4\x86\x0b\x8e\xba\xbf\x01\xc1\x1a\xcf\xeb\x56\x9e\x00\x02\x8e\xd6\xf0\xee\xf6\xf6\xba\xf7\x33\xe3\x86\x54\x48\x44\x73\xc4\x9b\xe0\xbd\x39\x5b\xff\x27\x48\x5e\x61\xf8\xb1\xc7\xa1\x60\x7e\xb4\x83\x51\x06\x7f\xc2\x02\x15\x42\xf1\xec\x20\x46\x5e\x10\xf1\x5f\xa6\x74\xd4\x5c\xb8\x3b\x58\x9f\x9c\x28\xfc\x45\x81\xee\x9a\x27\x1c\x09\x2d\x2b\x7d\xe8\x43\xd4\x87\x3d\xf5\x63\x02\x13\x38\x52\xaa\xaa\x7f\x39\x5a\xab\x7f\xb4\x1a\x47\x93\xe6\x6d\x9f\xd8\xb9\xef\x19\x15\xf0\x4c\x38\xf6\xab\xb7\xb7\x55\x7b\x0a\x17\x42\xa8\xa9\x6c\x2d\xee\x9b\xc1\xa6\x8e\x5d\x7f\x7e\xb1\x8d\x01\xbf\xa8\xd5\xd5\x9a\xe8\xdd\x1d\x46\x1f\x30\x97\xdd\xeb\x11\x24\xeb\x23\x7b\xe7\xba\xef\xa9\x97\xd7\x5e\x7a\xeb\xbc\x53\xb8\x5d\x62\x78\x3c\x61\x25\xa6\x6b\xfd\x8e\xa2\xb2\xbd\x2f\xa8\xfb\x0c\x6d\xa0\xf9\xd3\xf1\x1c\xea\x49\xcc\x29\x2a\x00\xab\x55\xe0\x29\x7c\xa8\x17\x53\xc6\x11\x69\x50\x8c\x53\xd4\x5f\xaa\x36\x8f\xf2\x39\xf5\x1c\x0d\x9c\xa4\x30\x2a\x49\xce\x32\x1f\x70\xa2\xa2\x11\x80\x56\x05\x1b\xfe\x36\x80\x73\xd1\x64\x9e\x58\x4b\xbb\x30\x17\x39\xf3\x36\x13\x84\x95\xce\x95\xd3\x41\xa0\xbd\x4a\xdb\x4c\xe8\x50\x5a\x8f\xc3\x8e\x55\x7b\x3b\xdb\x1e\xba\xd6\x0f\x24\x24\xba\x20\xf5\x30\xf3\x8c\xa5\x18\x2a\x21\xba\x08\x15\x2f\x9e\x53\xff\x41\xf0\x81\x0b\x31\x3c\x7b\x2d\x3b\x44\xcf\xbf\x09\xdd\x6c\x3c\xfa\x0f\x77\xed\x52\x3d\xe7\x86\xe4\xc8\xed\xa8\x9b\xfa\xe0\xff\x76\xd6\xdc\xbe\xed\x7a\xfb\xdb\xf5\xf9\x29\x5c\x33\x21\xf4\x85\x6f\x9d\x27\x0f\x97\x72\x55\x4c\x60\x29\x65\x39\x81\xff\x08\xe5\xb6\x49\xfc\x28\x27\x20\x1e\x5c\x4f\x99\x1f\x5e\x8e\xdd\x15\xaa\xe4\x92\x71\xf2\xc5\x18\xd8\x3d\xde\xec\x3f\x3f\x05\xc7\x27\x27\xa8\xea\xc7\xff\x9d\x1b\x48\x43\xe1\xbc\xb1\xaa\x66\xcf\x8e\x55\x52\xb9\x81\x33\x55\xfe\xd9\x04\x30\x91\x4b\xcc\x75\x39\x95\xc3\xb7\x41\xab\x22\x10\x78\x4a\x00\x8a\xda\x2f\xf8\x6d\xfa\xe1\xbd\x25\xfc\x9d\xbc\x75\x10\xc6\x09\xa5\x21\xd5\xbe\x9d\x2a\x9c\x7e\x61\x58\x21\xa6\x64\x24\x05\xf8\xfd\xb9\xac\xfa\x9c\xa2\xbe\x80\x5e\xb3\xa8\x3f\x82\x39\xe7\x0e\x26\x57\xb0\x14\x53\x49\xe4\x46\x2f\xf6\x27\x5d\x07\x79\xa2\xb7\x1a\xda\xe4\x62\x42\x85\xc4\x28\xd7\x87\xa5\xb7\xe9\xfc\xcd\x2a\xa2\xfd\xc1\x74\x96\xfa\x3a\x39\x13\x35\xa8\x4f\xb6\xad\x90\x7c\x0d\xaf\xda\x8d\x4e\xcf\xde\xd8\x77\xd3\xc8\x39\xce\x36\x6b\x01\xee\xea\x06\x3b\x44\xa1\xed\x76\xd3\x49\xe6\x48\x2c\xdb\x4c\xa6\x3a\x70\x51\x4f\x46\x91\x1b\xef\x91\x38\xf6\x44\x78\x4e\xa8\x14\x4e\x66\x13\x9e\xd2\x57\x89\xca\x9c\x55\xce\x37\xcd\x12\x51\xec\xc9\xfc\x8c\x4b\xb5\x6a\xaf\xaf\x4e\x2e\x97\x68\x8e\x25\xc9\x50\x51\x6c\x60\xbe\xe9\xda\xc3\x9b\xfa\x4a\xb4\xf6\x9a\x41\x3d\xe5\xb6\xf7\x25\xad\x88\x7c\x25\xee\x49\x59\x1f\xf4\xc7\x79\xc3\xab\xaf\x57\x73\x9d\x16\xf8\x46\xd2\x87\x14\xdd\xc4\xe6\xd8\x02\xfe\xd5\x6e\xd6\xc3\x9f\x7a\x83\x5e\x99\xed\xbf\x27\xed\x5e\xfd\x44\xe9\xa0\xe7\xe6\xdf\x7f\x3d\xff\xf8\xd3\x77\xa8\xa7\xef\xa3\xea\x7f\xbd\x69\xa3\x87\xce\x4b\x19\x79\xfd\xc2\x77\x81\x21\x63\xdc\x78\x1d\x7a\x7f\xaf\xf3\x32\x88\xb6\x34\x57\x13\x0c\x44\xb3\xaa\x66\xde\x36\x61\x60\x01\x75\x88\xf7\x71\x38\xd3\x56\xf6\x5e\xa5\xe9\x3f\x87\xef\x49\x52\x09\x71\x7a\x83\xbb\x4a\xc7\x7c\xb7\xae\xe2\x6f\x93\x0f\xb2\xfb\xb6\x7a\x74\xfd\x9c\x75\xee\x01\x76\x95\xd2\x4d\x1f\x84\xaf\x55\x6b\xae\xc9\x8d\x91\xb0\xc7\xe2\x13\xb2\xfb\xa6\x50\x6c\xc2\x40\x34\xbb\x12\xfe\xc3\xbf\x7f\xf8\xff\x00\x00\x00\xff\xff\xe1\x75\x4d\x49\x7b\xca\x00\x00")
 
 func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
     return bindataRead(
@@ -129,7 +129,7 @@ func wski18nResourcesEn_usAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 50999, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 51835, mode: os.FileMode(420), modTime: time.Unix(1508369296, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -149,7 +149,7 @@ func wski18nResourcesEs_esAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -169,7 +169,7 @@ func wski18nResourcesFr_frAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 101, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size: 101, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -189,7 +189,7 @@ func wski18nResourcesIt_itAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -209,7 +209,7 @@ func wski18nResourcesJa_jaAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -229,7 +229,7 @@ func wski18nResourcesKo_krAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -249,7 +249,7 @@ func wski18nResourcesPt_brAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -269,7 +269,7 @@ func wski18nResourcesZh_hansAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
@@ -289,7 +289,7 @@ func wski18nResourcesZh_hantAllJson() (*asset, error) {
         return nil, err
     }
 
-    info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1506363546, 0)}
+    info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json", size: 0, mode: os.FileMode(420), modTime: time.Unix(1508369189, 0)}
     a := &asset{bytes: bytes, info: info}
     return a, nil
 }
diff --git a/wski18n/resources/en_US.all.json b/wski18n/resources/en_US.all.json
index 32368300..acc6e2c0 100644
--- a/wski18n/resources/en_US.all.json
+++ b/wski18n/resources/en_US.all.json
@@ -732,8 +732,8 @@
     "translation": "shared"
   },
   {
-    "id": "The file '{{.name}}' does not exist.",
-    "translation": "The file '{{.name}}' does not exist."
+    "id": "File '{{.name}}' is not a valid file or it does not exist",
+    "translation": "File '{{.name}}' is not a valid file or it does not exist"
   },
   {
     "id": "Error creating unGzip file '{{.name}}': {{.err}}",
@@ -876,12 +876,8 @@
     "translation": "Unable to get action '{{.name}}': {{.err}}"
   },
   {
-    "id": "File '{{.name}}' is not a valid file or it does not exist: {{.err}}",
-    "translation": "File '{{.name}}' is not a valid file or it does not exist: {{.err}}"
-  },
-  {
-    "id": "Unable to read '{{.name}}': {{.err}}",
-    "translation": "Unable to read '{{.name}}': {{.err}}"
+    "id": "Unable to read the file '{{.name}}': {{.err}}",
+    "translation": "Unable to read the file '{{.name}}': {{.err}}"
   },
   {
     "id": "'{{.name}}' is not a supported action runtime",
@@ -1526,4 +1522,37 @@
   {
     "id": "sorts a list alphabetically by order of [BASE_PATH | API_NAME], API_PATH, then API_VERB; only applicable within the limit/skip returned entity block",
     "translation": "sorts a list alphabetically by order of [BASE_PATH | API_NAME], API_PATH, then API_VERB; only applicable within the limit/skip returned entity block"
-  }]
+  },
+  {
+    "id": "prints bash command completion script to stdout",
+    "translation": "prints bash command completion script to stdout"
+  },
+  {
+    "id": "save action code to file corresponding with action name",
+    "translation": "save action code to file corresponding with action name"
+  },
+  {
+    "id": "file to save action code to",
+    "translation": "file to save action code to"
+  },
+  {
+    "id": "The file '{{.file}}' already exists",
+    "translation": "The file '{{.file}}' already exists"
+  },
+  {
+    "id": "{{.ok}} saved action code to {{.name}}\n",
+    "translation": "{{.ok}} saved action code to {{.name}}\n"
+  },
+  {
+    "id": "Cannot save Docker images",
+    "translation": "Cannot save Docker images"
+  },
+  {
+    "id": "Cannot save action sequences",
+    "translation": "Cannot save action sequences"
+  },
+  {
+    "id": "Cannot create file '{{.name}}': {{.err}}",
+    "translation": "Cannot create file '{{.name}}': {{.err}}"
+  }
+]


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services