From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7002 invoked by alias); 15 Feb 2017 10:22:55 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40546 Received: (qmail 21978 invoked from network); 15 Feb 2017 10:22:55 -0000 X-Qmail-Scanner-Diagnostics: from new1-smtp.messagingengine.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(66.111.4.221):SA:0(-0.4/5.0):. Processed in 2.245512 secs); 15 Feb 2017 10:22:55 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: psprint2@fastmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at spf.messagingengine.com designates 66.111.4.221 as permitted sender) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=mesmtp; bh=HBv+vyq5dWUdFtTNu0mcWlmiQW s=; b=Y/BcKARJJHofEsQhRmiPM5NgD6Qcmck8dbazDNIUk1AgQcCNAF4MYfI6zw 9kUoctTzt9NB1L3USulFshvOylQnMZzg18Jk14tj/94FHRGt/vcfyFXLBTR/jO8+ FoZDUT0imjvoNYzwnF4VwLW54jmiVr5RtwTPT1JL5YoKGRqFY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=smtpout; bh=HB v+vyq5dWUdFtTNu0mcWlmiQWs=; b=EftIutm7/nOGskzuSX6N7ayDqoz7IseoB7 OclMB7hyXih0t2sv7R+dZEqmasW1MRPF4la1pBq16rwgze/aJ3qzWTqM2DGLkIao u9wgAfhKWzh1KyLqf4da2zKzxqeIKDj1NJiikYVm9OMLs57q12jwH3wan+0K+FDS uouShzQbM= X-ME-Sender: Message-Id: <1487154163.615323.881647656.040AB25F@webmail.messagingengine.com> From: Sebastian Gniazdowski To: zsh-workers@zsh.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_14871541636153230" X-Mailer: MessagingEngine.com Webmail Interface - ajax-7cfc9722 Subject: Re: [PATCH] db/gdbm rewrite Date: Wed, 15 Feb 2017 02:22:43 -0800 In-Reply-To: <1487074831.317363.880495280.04595B08@webmail.messagingengine.com> References: <1487074831.317363.880495280.04595B08@webmail.messagingengine.com> --_----------=_14871541636153230 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Changes: =E2=80=93=C2=A0data is (un)metafied =E2=80=93 compatibility with normal dat= abase usage =E2=80=93 new parameter "zgdbm_tied", array holding tied parameters' names =E2=80=93 new builtin "zgdmpath", returning ($REPLY) path to database file,= of given tied parameter =E2=80=93 new tests (Unicode, metafication, new parameter) =E2=80=93 updated documentation Original db_gdbm was a no-go because it sucked widget names into database: https://asciinema.org/a/12ffm5ltpj9udnmradtat17am Current db_gdbm is a no-go because GDBM doesn't always return \0 terminated strings.. Sorry for that, but the update solves this. I sent is as patch, plus the new file (as option, patch includes) Test/V11db_gdbm.ztst. --=20 Sebastian Gniazdowski psprint2@fastmail.com --_----------=_14871541636153230 Content-Disposition: attachment; filename="db_gdbm_rewrite2.diff" Content-Id: <1487154103.614916.4503538cf24306c063b7e4b3ee505015df54a966.0A95B0A3@content.messagingengine.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; name="db_gdbm_rewrite2.diff" ZGlmZiAtLWdpdCBhL0RvYy9ac2gvbW9kX2RiX2dkYm0ueW8gYi9Eb2MvWnNo L21vZF9kYl9nZGJtLnlvCmluZGV4IDkwOTc0MjkuLjY5OWU5YWIgMTAwNjQ0 Ci0tLSBhL0RvYy9ac2gvbW9kX2RiX2dkYm0ueW8KKysrIGIvRG9jL1pzaC9t b2RfZGJfZ2RibS55bwpAQCAtNDMsNiArNDMsMTcgQEAgbG9jYWwgc2NvcGUg KGZ1bmN0aW9uKSBlbmRzLiAgTm90ZSB0aGF0IGEgcmVhZG9ubHkgcGFyYW1l dGVyIG1heSBub3QgYmUKIGV4cGxpY2l0bHkgdW5zZXQsIHNvIHRoZSBvbmx5 IHdheSB0byB1bnNldCBhIGdsb2JhbCBwYXJhbWV0ZXIgY3JlYXRlZCB3aXRo CiBgdHQoenRpZSAtciknIGlzIHRvIHVzZSBgdHQoenVudGllIC11KScuCiAp CitmaW5kZXgoemdkYm1wYXRoKQorY2luZGV4KGRhdGFiYXNlIGZpbGUgcGF0 aCwgcmVhZGluZykKK2l0ZW0odHQoemdkYm1wYXRoKSB2YXIocGFyYW1ldGVy bmFtZSkpKAorUHV0IHBhdGggdG8gZGF0YWJhc2UgZmlsZSBhc3NpZ25lZCB0 byB2YXIocGFyYW1ldGVybmFtZSkgaW50byB0dChSRVBMWSkKK3NjYWxhci4K KykKK2ZpbmRleCh6Z2RibV90aWVkKQorY2luZGV4KGRhdGFiYXNlIHRpZWQg YXJyYXlzLCBlbnVtZXJhdGluZykKK2l0ZW0odHQoemdkYm1fdGllZCkpKAor QXJyYXkgaG9sZGluZyBuYW1lcyBvZiBhbGwgdGllZCBwYXJhbWV0ZXJzLgor KQogZW5kaXRlbSgpCiAKIFRoZSBmaWVsZHMgb2YgYW4gYXNzb2NpYXRpdmUg YXJyYXkgdGllZCB0byBHREJNIGFyZSBuZWl0aGVyIGNhY2hlZCBub3IKZGlm ZiAtLWdpdCBhL1NyYy9Nb2R1bGVzL2RiX2dkYm0uYyBiL1NyYy9Nb2R1bGVz L2RiX2dkYm0uYwppbmRleCAzMTBlMzI5Li4zZWVmNGM2IDEwMDY0NAotLS0g YS9TcmMvTW9kdWxlcy9kYl9nZGJtLmMKKysrIGIvU3JjL01vZHVsZXMvZGJf Z2RibS5jCkBAIC02LDYgKzYsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4 IENsaW50IEFkYW1zCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKKyAq IE1vZGlmaWNhdGlvbnMgY29weXJpZ2h0IChjKSAyMDE3IFNlYmFzdGlhbiBH bmlhemRvd3NraQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCiAgKiBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCB3aXRob3V0IHdyaXR0ZW4g YWdyZWVtZW50IGFuZCB3aXRob3V0CiAgKiBsaWNlbnNlIG9yIHJveWFsdHkg ZmVlcywgdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRo aXMKICAqIHNvZnR3YXJlIGFuZCB0byBkaXN0cmlidXRlIG1vZGlmaWVkIHZl cnNpb25zIG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueQpAQCAtMzEsNiArMzQs MTQgQEAKICNpbmNsdWRlICJkYl9nZGJtLm1kaCIKICNpbmNsdWRlICJkYl9n ZGJtLnBybyIKIAorI2lmbmRlZiBQTV9VUFRPREFURQorI2RlZmluZSBQTV9V UFRPREFURSAgICAgKDE8PDE5KSAvKiBQYXJhbWV0ZXIgaGFzIHVwLXRvLWRh dGUgZGF0YSAoZS5nLiBsb2FkZWQgZnJvbSBEQikgKi8KKyNlbmRpZgorCitz dGF0aWMgUGFyYW0gY3JlYXRlaGFzaCggY2hhciAqbmFtZSwgaW50IGZsYWdz ICk7CitzdGF0aWMgaW50IGFwcGVuZF90aWVkX25hbWUoIGNvbnN0IGNoYXIg Km5hbWUgKTsKK3N0YXRpYyBpbnQgcmVtb3ZlX3RpZWRfbmFtZSggY29uc3Qg Y2hhciAqbmFtZSApOworCiAvKgogICogTWFrZSBzdXJlIHdlIGhhdmUgYWxs IHRoZSBiaXRzIEknbSB1c2luZyBmb3IgbWVtb3J5IG1hcHBpbmcsIG90aGVy d2lzZQogICogSSBkb24ndCBrbm93IHdoYXQgSSdtIGRvaW5nLgpAQCAtNDEs OCArNTIsMzQgQEAKIAogc3RhdGljIGNoYXIgKmJhY2t0eXBlID0gImRiL2dk Ym0iOwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGdzdV9zY2FsYXIgZ2RibV9n c3UgPQoteyBnZGJtZ2V0Zm4sIGdkYm1zZXRmbiwgZ2RibXVuc2V0Zm4gfTsK Ky8qCisgKiBMb25nZXIgR1NVIHN0cnVjdHVyZSwgdG8gY2FycnkgR0RCTV9G SUxFIG9mIG93bmluZworICogZGF0YWJhc2UuIEV2ZXJ5IHBhcmFtZXRlciAo aGFzaCB2YWx1ZSkgcmVjZWl2ZXMgR1NVCisgKiBwb2ludGVyIGFuZCB0aHVz IGFsc28gcmVjZWl2ZXMgR0RCTV9GSUxFIC0gdGhpcyB3YXkKKyAqIHBhcmFt ZXRlcnMgY2FuIGFjY2VzcyBwcm9wZXIgZGF0YWJhc2UuCisgKgorICogTWFp biBIYXNoVGFibGUgcGFyYW1ldGVyIGhhcyB0aGUgc2FtZSBpbnN0YW5jZSBv ZgorICogdGhlIGN1c3RvbSBHU1Ugc3RydWN0IGluIHUuaGFzaC0+dG1wZGF0 YSBmaWVsZC4KKyAqIFdoZW4gZGF0YWJhc2UgaXMgY2xvc2VkLCBgZGJmYCBm aWVsZCBpcyBzZXQgdG8gTlVMTAorICogYW5kIGhhc2ggdmFsdWVzIGtub3cg dG8gbm90IGFjY2VzcyBkYXRhYmFzZSB3aGVuCisgKiBiZWluZyB1bnNldCAo dG90YWwgcHVyZ2UgYXQgenVudGllKS4KKyAqCisgKiBXaGVuIGRhdGFiYXNl IGNsb3NpbmcgaXMgZW5kZWQsIGN1c3RvbSBHU1Ugc3RydWN0CisgKiBpcyBm cmVlZC4gT25seSBuZXcgenRpZSBjcmVhdGVzIG5ldyBjdXN0b20gR1NVCisg KiBzdHJ1Y3QgaW5zdGFuY2UuCisgKi8KKworc3RydWN0IGdzdV9zY2FsYXJf ZXh0IHsKKyAgICBzdHJ1Y3QgZ3N1X3NjYWxhciBzdGQ7CisgICAgR0RCTV9G SUxFIGRiZjsKKyAgICBjaGFyICpkYmZpbGVfcGF0aDsKK307CisKKy8qIFNv dXJjZSBzdHJ1Y3R1cmUgLSB3aWxsIGJlIGNvcGllZCB0byBhbGxvY2F0ZWQg b25lLAorICogd2l0aCBgZGJmYCBmaWxsZWQuIGBkYmZgIGFsbG9jYXRpb24g PC0+IGdzdSBhbGxvY2F0aW9uLiAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBn c3Vfc2NhbGFyX2V4dCBnZGJtX2dzdV9leHQgPQoreyB7IGdkYm1nZXRmbiwg Z2RibXNldGZuLCBnZGJtdW5zZXRmbiB9LCAwLCAwIH07CisKIC8qKi8KIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZ3N1X2hhc2ggZ2RibV9oYXNoX2dzdSA9CiB7 IGhhc2hnZXRmbiwgZ2RibWhhc2hzZXRmbiwgZ2RibWhhc2h1bnNldGZuIH07 CkBAIC01MCw2ICs4NywxNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdzdV9o YXNoIGdkYm1faGFzaF9nc3UgPQogc3RhdGljIHN0cnVjdCBidWlsdGluIGJp bnRhYltdID0gewogICAgIEJVSUxUSU4oInp0aWUiLCAwLCBiaW5fenRpZSwg MSwgLTEsIDAsICJkOmY6ciIsIE5VTEwpLAogICAgIEJVSUxUSU4oInp1bnRp ZSIsIDAsIGJpbl96dW50aWUsIDEsIC0xLCAwLCAidSIsIE5VTEwpLAorICAg IEJVSUxUSU4oInpnZGJtcGF0aCIsIDAsIGJpbl96Z2RibXBhdGgsIDEsIC0x LCAwLCAiIiwgTlVMTCksCit9OworCisjZGVmaW5lIFJPQVJSUEFSQU1ERUYo bmFtZSwgdmFyKSBcCisgICAgeyBuYW1lLCBQTV9BUlJBWSB8IFBNX1JFQURP TkxZLCAodm9pZCAqKSB2YXIsIE5VTEwsICBOVUxMLCBOVUxMLCBOVUxMIH0K KworLyogSG9sZHMgbmFtZXMgb2YgYWxsIHRpZWQgcGFyYW1ldGVycyAqLwor Y2hhciAqKnpnZGJtX3RpZWQ7CisKK3N0YXRpYyBzdHJ1Y3QgcGFyYW1kZWYg cGF0YWJbXSA9IHsKKyAgICBST0FSUlBBUkFNREVGKCAiemdkYm1fdGllZCIs ICZ6Z2RibV90aWVkICksCiB9OwogCiAvKiovCkBAIC03Nyw4ICsxMjUsNyBA QCBiaW5fenRpZShjaGFyICpuYW0sIGNoYXIgKiphcmdzLCBPcHRpb25zIG9w cywgVU5VU0VEKGludCBmdW5jKSkKICAgICB9CiAKICAgICAvKiBIZXJlIHNo b3VsZCBiZSBhIGxvb2t1cCBvZiB0aGUgYmFja2VuZCB0eXBlIGFnYWluc3QK LSAgICAgKiBhIHJlZ2lzdHJ5LgotICAgICAqLworICAgICAqIGEgcmVnaXN0 cnksIGlmIGdlbmVyYW0gREIgbWVjaGFuaXNtIGlzIHRvIGJlIGFkZGVkICov CiAgICAgaWYgKHN0cmNtcChPUFRfQVJHKG9wcywgJ2QnKSwgYmFja3R5cGUp ICE9IDApIHsKICAgICAgICAgendhcm5uYW0obmFtLCAidW5zdXBwb3J0ZWQg YmFja2VuZCB0eXBlIGAlcyciLCBPUFRfQVJHKG9wcywgJ2QnKSk7CiAJcmV0 dXJuIDE7CkBAIC05Miw3ICsxMzksOCBAQCBiaW5fenRpZShjaGFyICpuYW0s IGNoYXIgKiphcmdzLCBPcHRpb25zIG9wcywgVU5VU0VEKGludCBmdW5jKSkK IAkvKgogCSAqIFVuc2V0IGFueSBleGlzdGluZyBwYXJhbWV0ZXIuICBOb3Rl IHRoZXJlJ3Mgbm8gaW1wbGljaXQKIAkgKiAibG9jYWwiIGhlcmUsIGJ1dCBp ZiB0aGUgZXhpc3RpbmcgcGFyYW1ldGVyIGlzIGxvY2FsCi0JICogdGhhdCB3 aWxsIGJlIHJlZmxlY3RlZCBpbiB0aGUgbmV3IG9uZS4KKwkgKiB0aGVuIG5l dyBwYXJhbWV0ZXIgd2lsbCBiZSBhbHNvIGxvY2FsIHdpdGhvdXQgZm9sbG93 aW5nCisgICAgICAgICAqIHVuc2V0LgogCSAqCiAJICogV2UgbmVlZCB0byBk byB0aGlzIGJlZm9yZSBhdHRlbXB0aW5nIHRvIG9wZW4gdGhlIERCCiAJICog aW4gY2FzZSB0aGlzIHZhcmlhYmxlIGlzIGFscmVhZHkgdGllZCB0byBhIERC LgpAQCAtMTA2LDE1ICsxNTQsMTUgQEAgYmluX3p0aWUoY2hhciAqbmFtLCBj aGFyICoqYXJncywgT3B0aW9ucyBvcHMsIFVOVVNFRChpbnQgZnVuYykpCiAg ICAgfQogCiAgICAgZGJmID0gZ2RibV9vcGVuKHJlc291cmNlX25hbWUsIDAs IHJlYWRfd3JpdGUsIDA2NjYsIDApOwotICAgIGlmKGRiZikKLQlhZGRtb2R1 bGVmZChnZGJtX2ZkZXNjKGRiZiksIEZEVF9JTlRFUk5BTCk7Ci0gICAgZWxz ZSB7CisgICAgaWYoZGJmKSB7CisJYWRkbW9kdWxlZmQoZ2RibV9mZGVzYyhk YmYpLCBGRFRfTU9EVUxFKTsKKyAgICAgICAgYXBwZW5kX3RpZWRfbmFtZShw bW5hbWUpOworICAgIH0gZWxzZSB7CiAJendhcm5uYW0obmFtLCAiZXJyb3Ig b3BlbmluZyBkYXRhYmFzZSBmaWxlICVzIiwgcmVzb3VyY2VfbmFtZSk7CiAJ cmV0dXJuIDE7CiAgICAgfQogCi0gICAgaWYgKCEodGllZF9wYXJhbSA9IGNy ZWF0ZXNwZWNpYWxoYXNoKHBtbmFtZSwgJmdldGdkYm1ub2RlLCAmc2Nhbmdk Ym1rZXlzLAotCQkJCQkgcG1mbGFncykpKSB7CisgICAgaWYgKCEodGllZF9w YXJhbSA9IGNyZWF0ZWhhc2gocG1uYW1lLCBwbWZsYWdzKSkpIHsKICAgICAg ICAgendhcm5uYW0obmFtLCAiY2Fubm90IGNyZWF0ZSB0aGUgcmVxdWVzdGVk IHBhcmFtZXRlciAlcyIsIHBtbmFtZSk7CiAJZmR0YWJsZVtnZGJtX2ZkZXNj KGRiZildID0gRkRUX1VOVVNFRDsKIAlnZGJtX2Nsb3NlKGRiZik7CkBAIC0x MjIsOCArMTcwLDIzIEBAIGJpbl96dGllKGNoYXIgKm5hbSwgY2hhciAqKmFy Z3MsIE9wdGlvbnMgb3BzLCBVTlVTRUQoaW50IGZ1bmMpKQogICAgIH0KIAog ICAgIHRpZWRfcGFyYW0tPmdzdS5oID0gJmdkYm1faGFzaF9nc3U7Ci0gICAg dGllZF9wYXJhbS0+dS5oYXNoLT50bXBkYXRhID0gKHZvaWQgKilkYmY7CiAK KyAgICAvKiBBbGxvY2F0ZSBwYXJhbWV0ZXIgc3ViLWdzdSwgZmlsbCBkYmYg ZmllbGQuIAorICAgICAqIGRiZiBhbGxvY2F0aW9uIGlzIDEgdG8gMSBhY2Nv bXBhbmllZCBieQorICAgICAqIGdzdV9zY2FsYXJfZXh0IGFsbG9jYXRpb24u ICovCisKKyAgICBzdHJ1Y3QgZ3N1X3NjYWxhcl9leHQgKmRiZl9jYXJyaWVy ID0gKHN0cnVjdCBnc3Vfc2NhbGFyX2V4dCAqKSB6YWxsb2Moc2l6ZW9mKHN0 cnVjdCBnc3Vfc2NhbGFyX2V4dCkpOworICAgIGRiZl9jYXJyaWVyLT5zdGQg PSBnZGJtX2dzdV9leHQuc3RkOworICAgIGRiZl9jYXJyaWVyLT5kYmYgPSBk YmY7CisgICAgdGllZF9wYXJhbS0+dS5oYXNoLT50bXBkYXRhID0gKHZvaWQg KilkYmZfY2FycmllcjsKKworICAgIC8qIEZpbGwgYWxzbyBmaWxlIHBhdGgg ZmllbGQgKi8KKyAgICBpZiAoKnJlc291cmNlX25hbWUgIT0gJy8nKSB7Cisg ICAgICAgIC8qIENvZGUgY29waWVkIGZyb20gY2hlY2tfYXV0b2xvYWQoKSAq LworICAgICAgICByZXNvdXJjZV9uYW1lID0gemh0cmljYXQobWV0YWZ5KHpn ZXRjd2QoKSwgLTEsIE1FVEFfSEVBUERVUCksICIvIiwgcmVzb3VyY2VfbmFt ZSk7CisgICAgICAgIHJlc291cmNlX25hbWUgPSB4c3ltbGluayhyZXNvdXJj ZV9uYW1lLCAxKTsKKyAgICB9CisgICAgZGJmX2NhcnJpZXItPmRiZmlsZV9w YXRoID0genRyZHVwKHJlc291cmNlX25hbWUpOwogICAgIHJldHVybiAwOwog fQogCkBAIC0xNjIsNiArMjI1LDUzIEBAIGJpbl96dW50aWUoY2hhciAqbmFt LCBjaGFyICoqYXJncywgT3B0aW9ucyBvcHMsIFVOVVNFRChpbnQgZnVuYykp CiB9CiAKIC8qKi8KK3N0YXRpYyBpbnQKK2Jpbl96Z2RibXBhdGgoY2hhciAq bmFtLCBjaGFyICoqYXJncywgT3B0aW9ucyBvcHMsIFVOVVNFRChpbnQgZnVu YykpCit7CisgICAgUGFyYW0gcG0sIHJlcGx5X3BtOworICAgIGNoYXIgKnBt bmFtZTsKKworICAgIHBtbmFtZSA9ICphcmdzOworCisgICAgaWYgKCFwbW5h bWUpIHsKKyAgICAgICAgendhcm5uYW0obmFtLCAicGFyYW1ldGVyIG5hbWUg KHdob3NlIHBhdGggaXMgdG8gYmUgd3JpdHRlbiB0byAkUkVQTFkpIGlzIHJl cXVpcmVkIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHBt ID0gKFBhcmFtKSBwYXJhbXRhYi0+Z2V0bm9kZShwYXJhbXRhYiwgcG1uYW1l KTsKKyAgICBpZighcG0pIHsKKyAgICAgICAgendhcm5uYW0obmFtLCAibm8g c3VjaCBwYXJhbWV0ZXI6ICVzIiwgcG1uYW1lKTsKKyAgICAgICAgcmV0dXJu IDE7CisgICAgfQorCisgICAgaWYgKHBtLT5nc3UuaCAhPSAmZ2RibV9oYXNo X2dzdSkgeworICAgICAgICB6d2Fybm5hbShuYW0sICJub3QgYSB0aWVkIGdk Ym0gcGFyYW1ldGVyOiAlcyIsIHBtbmFtZSk7CisgICAgICAgIHJldHVybiAx OworICAgIH0KKworICAgIC8qIFBhcmFub2lhLCBpdCAqd2lsbCogYmUgYWx3 YXlzIHNldCAqLworICAgIGlmICgoKHN0cnVjdCBnc3Vfc2NhbGFyX2V4dCAq KXBtLT51Lmhhc2gtPnRtcGRhdGEpLT5kYmZpbGVfcGF0aCkgeworICAgICAg ICBzZXRzcGFyYW0oIlJFUExZIiwgenRyZHVwKCgoc3RydWN0IGdzdV9zY2Fs YXJfZXh0ICopcG0tPnUuaGFzaC0+dG1wZGF0YSktPmRiZmlsZV9wYXRoKSk7 CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2V0c3BhcmFtKCJSRVBMWSIsIHp0 cmR1cCgiIikpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgor ICogVGhlIHBhcmFtIGlzIGFjdHVhbCBwYXJhbSBpbiBoYXNoIOKAk8KgYWx3 YXlzLCBiZWNhdXNlCisgKiBnZXRnZGJtbm9kZSBjcmVhdGVzIGV2ZXJ5IG5l dyBrZXkgc2Vlbi4gSG93ZXZlciwgaXQKKyAqIG1pZ2h0IGJlIG5vdCBQTV9V UFRPREFURSAtIHdoaWNoIG1lYW5zIHRoYXQgZGF0YWJhc2UKKyAqIHdhc24n dCB5ZXQgcXVlcmllZC4KKyAqCisgKiBJdCB3aWxsIGJlIGxlZnQgaW4gdGhp cyBzdGF0ZSBpZiBkYXRhYmFzZSBkb2Vzbid0CisgKiBjb250YWluIHN1Y2gg a2V5LiBUaGF0IG1pZ2h0IGJlIGEgZHJhd2JhY2ssIG1heWJlCisgKiBzZXR0 aW5nIHRvIGVtcHR5IHZhbHVlIGhhcyBzZW5zZSwgYXMgbm8gb3RoZXIgd3Jp dGVyCisgKiBjYW4gZXhpc3QuIFRoaXMgd291bGQgcmVtb3ZlIHN1YnRsZSBo Y2FsbG9jKDEpIGxlYWsuCisgKi8KKworLyoqLwogc3RhdGljIGNoYXIgKgog Z2RibWdldGZuKFBhcmFtIHBtKQogewpAQCAtMTY5LDE4ICsyNzksNTcgQEAg Z2RibWdldGZuKFBhcmFtIHBtKQogICAgIGludCByZXQ7CiAgICAgR0RCTV9G SUxFIGRiZjsKIAotICAgIGtleS5kcHRyID0gcG0tPm5vZGUubmFtOwotICAg IGtleS5kc2l6ZSA9IHN0cmxlbihrZXkuZHB0cik7CisgICAgLyogS2V5IGFs cmVhZHkgcmV0cmlldmVkPyBUaGVyZSBpcyBubyBzZW5zZSBvZiBhc2tpbmcg dGhlCisgICAgICogZGF0YWJhc2UgYWdhaW4sIGJlY2F1c2U6CisgICAgICog LSB0aGVyZSBjYW4gYmUgb25seSBtdWx0aXBsZSByZWFkZXJzCisgICAgICog LSBzbywgbm8gd3JpdGVyICsgcmVhZGVyIHVzZSBpcyBhbGxvd2VkCisgICAg ICoKKyAgICAgKiBUaHVzOgorICAgICAqIC0gaWYgd2UgYXJlIHdyaXRlcnMs IHdlIGZvciBzdXJlIGhhdmUgbmV3ZXN0IGNvcHkgb2YgZGF0YQorICAgICAq IC0gaWYgd2UgYXJlIHJlYWRlcnMsIHdlIGZvciBzdXJlIGhhdmUgbmV3ZXN0 IGNvcHkgb2YgZGF0YQorICAgICAqLworICAgIGlmICggcG0tPm5vZGUuZmxh Z3MgJiBQTV9VUFRPREFURSApIHsKKyAgICAgICAgcmV0dXJuIHBtLT51LnN0 ciA/IHBtLT51LnN0ciA6IChjaGFyICopIGhjYWxsb2MoMSk7CisgICAgfQor CisgICAgLyogVW5tZXRhZnkga2V5LiBHREJNIGZpdHMgbmljZSBpbnRvIHRo aXMKKyAgICAgKiBwcm9jZXNzLCBhcyBpdCB1c2VzIGxlbmd0aCBvZiBkYXRh ICovCisgICAgY2hhciAqdW1rZXkgPSB6dHJkdXAocG0tPm5vZGUubmFtKTsK KyAgICBpbnQgdW1sZW4gPSAwOworICAgIHVta2V5ID0gdW5tZXRhZnkodW1r ZXksJnVtbGVuKTsKKworICAgIGtleS5kcHRyID0gdW1rZXk7CisgICAga2V5 LmRzaXplID0gdW1sZW47CisKKyAgICBkYmYgPSAoKHN0cnVjdCBnc3Vfc2Nh bGFyX2V4dCAqKXBtLT5nc3UucyktPmRiZjsKKworICAgIGlmKChyZXQgPSBn ZGJtX2V4aXN0cyhkYmYsIGtleSkpKSB7CisgICAgICAgIC8qIFdlIGhhdmUg ZGF0YSDigJMgc3RvcmUgaXQsIHJldHVybiBpdCAqLworICAgICAgICBwbS0+ bm9kZS5mbGFncyB8PSBQTV9VUFRPREFURTsKIAotICAgIGRiZiA9IChHREJN X0ZJTEUpKHBtLT51Lmhhc2gtPnRtcGRhdGEpOwotICAgIHJldCA9IGdkYm1f ZXhpc3RzKGRiZiwga2V5KTsKLSAgICBpZihyZXQpIHsKICAgICAgICAgY29u dGVudCA9IGdkYm1fZmV0Y2goZGJmLCBrZXkpOwotICAgIH0gZWxzZSB7Ci0g ICAgICAgIGNvbnRlbnQuZHB0ciA9IGR1cHN0cmluZygiIik7CisKKyAgICAg ICAgLyogRW5zdXJlIHRoZXJlJ3Mgbm8gbGVhayAqLworICAgICAgICBpZiAo cG0tPnUuc3RyKSB7CisgICAgICAgICAgICB6c2ZyZWUocG0tPnUuc3RyKTsK KyAgICAgICAgfQorCisgICAgICAgIC8qIE1ldGFmeSByZXR1cm5lZCBkYXRh LiBBbGwgZml0cyAtIG1ldGFmeQorICAgICAgICAgKiBjYW4gb2J0YWluIGRh dGEgbGVuZ3RoIHRvIGF2b2lkIHVzaW5nIFwwICovCisgICAgICAgIHBtLT51 LnN0ciA9IG1ldGFmeShjb250ZW50LmRwdHIsIGNvbnRlbnQuZHNpemUsIE1F VEFfQUxMT0MpOworCisgICAgICAgIC8qIEZyZWUga2V5ICovCisgICAgICAg IHpzZnJlZSh1bWtleSk7CisKKyAgICAgICAgLyogQ2FuIHJldHVybiBwb2lu dGVyLCBjb3JyZWN0bHkgc2F2ZWQgaW5zaWRlIGhhc2ggKi8KKyAgICAgICAg cmV0dXJuIHBtLT51LnN0cjsKICAgICB9CiAKLSAgICByZXR1cm4gY29udGVu dC5kcHRyOworICAgIC8qIEZyZWUga2V5ICovCisgICAgenNmcmVlKHVta2V5 KTsKKworICAgIC8qIENhbiB0aGlzIGJlICIiID8gKi8KKyAgICByZXR1cm4g KGNoYXIgKikgaGNhbGxvYygxKTsKIH0KIAogLyoqLwpAQCAtMTkwLDQ3ICsz MzksOTQgQEAgZ2RibXNldGZuKFBhcmFtIHBtLCBjaGFyICp2YWwpCiAgICAg ZGF0dW0ga2V5LCBjb250ZW50OwogICAgIEdEQk1fRklMRSBkYmY7CiAKLSAg ICBrZXkuZHB0ciA9IHBtLT5ub2RlLm5hbTsKLSAgICBrZXkuZHNpemUgPSBz dHJsZW4oa2V5LmRwdHIpOwotICAgIGNvbnRlbnQuZHB0ciA9IHZhbDsKLSAg ICBjb250ZW50LmRzaXplID0gc3RybGVuKGNvbnRlbnQuZHB0cik7CisgICAg LyogU2V0IGlzIGRvbmUgb24gcGFyYW1ldGVyIGFuZCBvbiBkYXRhYmFzZS4K KyAgICAgKiBTZWUgdGhlIGFsbG93ZWQgd29ya2VycyAvIHJlYWRlcnMgY29t bWVudAorICAgICAqIGF0IGdkYm1nZXRmbigpICovCisKKyAgICAvKiBQYXJh bWV0ZXIgKi8KKyAgICBpZiAocG0tPnUuc3RyKSB7CisgICAgICAgIHpzZnJl ZShwbS0+dS5zdHIpOworICAgICAgICBwbS0+dS5zdHIgPSBOVUxMOworICAg ICAgICBwbS0+bm9kZS5mbGFncyAmPSB+KFBNX1VQVE9EQVRFKTsKKyAgICB9 CiAKLSAgICBkYmYgPSAoR0RCTV9GSUxFKShwbS0+dS5oYXNoLT50bXBkYXRh KTsKLSAgICAodm9pZClnZGJtX3N0b3JlKGRiZiwga2V5LCBjb250ZW50LCBH REJNX1JFUExBQ0UpOworICAgIGlmICh2YWwpIHsKKyAgICAgICAgcG0tPnUu c3RyID0genRyZHVwKHZhbCk7CisgICAgICAgIHBtLT5ub2RlLmZsYWdzIHw9 IFBNX1VQVE9EQVRFOworICAgIH0KKworICAgIC8qIERhdGFiYXNlICovCisg ICAgZGJmID0gKChzdHJ1Y3QgZ3N1X3NjYWxhcl9leHQgKilwbS0+Z3N1LnMp LT5kYmY7CisgICAgaWYgKGRiZikgeworICAgICAgICBjaGFyICp1bWtleSA9 IHp0cmR1cChwbS0+bm9kZS5uYW0pOworICAgICAgICBpbnQgdW1sZW4gPSAw OworICAgICAgICB1bWtleSA9IHVubWV0YWZ5KHVta2V5LCZ1bWxlbik7CisK KyAgICAgICAga2V5LmRwdHIgPSB1bWtleTsKKyAgICAgICAga2V5LmRzaXpl ID0gdW1sZW47CisKKyAgICAgICAgaWYgKHZhbCkgeworICAgICAgICAgICAg LyogVW5tZXRhZnkgKi8KKyAgICAgICAgICAgIGNoYXIgKnVtdmFsID0genRy ZHVwKHZhbCk7CisgICAgICAgICAgICB1bXZhbCA9IHVubWV0YWZ5KHVtdmFs LCZ1bWxlbik7CisKKyAgICAgICAgICAgIC8qIFN0b3JlICovCisgICAgICAg ICAgICBjb250ZW50LmRwdHIgPSB1bXZhbDsKKyAgICAgICAgICAgIGNvbnRl bnQuZHNpemUgPSB1bWxlbjsKKyAgICAgICAgICAgICh2b2lkKWdkYm1fc3Rv cmUoZGJmLCBrZXksIGNvbnRlbnQsIEdEQk1fUkVQTEFDRSk7CisKKyAgICAg ICAgICAgIC8qIEZyZWUgKi8KKyAgICAgICAgICAgIHpzZnJlZSh1bXZhbCk7 CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAodm9pZClnZGJtX2Rl bGV0ZShkYmYsIGtleSk7CisgICAgICAgIH0KKworICAgICAgICAvKiBGcmVl IGtleSAqLworICAgICAgICB6c2ZyZWUodW1rZXkpOworICAgIH0KIH0KIAog LyoqLwogc3RhdGljIHZvaWQKIGdkYm11bnNldGZuKFBhcmFtIHBtLCBVTlVT RUQoaW50IHVtKSkKIHsKLSAgICBkYXR1bSBrZXk7Ci0gICAgR0RCTV9GSUxF IGRiZjsKLQotICAgIGtleS5kcHRyID0gcG0tPm5vZGUubmFtOwotICAgIGtl eS5kc2l6ZSA9IHN0cmxlbihrZXkuZHB0cik7Ci0KLSAgICBkYmYgPSAoR0RC TV9GSUxFKShwbS0+dS5oYXNoLT50bXBkYXRhKTsKLSAgICAodm9pZClnZGJt X2RlbGV0ZShkYmYsIGtleSk7CisgICAgLyogU2V0IHdpdGggTlVMTCAqLwor ICAgIGdkYm1zZXRmbihwbSwgTlVMTCk7CiB9CiAKIC8qKi8KIHN0YXRpYyBI YXNoTm9kZQogZ2V0Z2RibW5vZGUoSGFzaFRhYmxlIGh0LCBjb25zdCBjaGFy ICpuYW1lKQogewotICAgIGludCBsZW47Ci0gICAgY2hhciAqbmFtZXU7Ci0g ICAgUGFyYW0gcG0gPSBOVUxMOwotCi0gICAgbmFtZXUgPSBkdXBzdHJpbmco bmFtZSk7Ci0gICAgdW5tZXRhZnkobmFtZXUsICZsZW4pOwotCi0gICAgcG0g PSAoUGFyYW0pIGhjYWxsb2Moc2l6ZW9mKHN0cnVjdCBwYXJhbSkpOwotICAg IHBtLT5ub2RlLm5hbSA9IG5hbWV1OwotICAgIHBtLT5ub2RlLmZsYWdzID0g UE1fU0NBTEFSOwotICAgIHBtLT5nc3UucyA9ICZnZGJtX2dzdTsKLSAgICBw bS0+dS5oYXNoID0gaHQ7CisgICAgSGFzaE5vZGUgaG4gPSBnZXRoYXNobm9k ZTIoIGh0LCBuYW1lICk7CisgICAgUGFyYW0gdmFsX3BtID0gKFBhcmFtKSBo bjsKKworICAgIC8qIEVudHJ5IGZvciBrZXkgZG9lc24ndCBleGlzdD8gQ3Jl YXRlIGl0IG5vdywKKyAgICAgKiBpdCB3aWxsIGJlIGludGVyZmFjaW5nIGJl dHdlZW4gdGhlIGRhdGFiYXNlCisgICAgICogYW5kIFpzaCAtIHRocm91Z2gg c3BlY2lhbCBnZGJtX2dzdS4gU28sIGFueQorICAgICAqIHNlZW4ga2V5IHJl c3VsdHMgaW4gbmV3IGludGVyZmFjaW5nIHBhcmFtZXRlci4KKyAgICAgKgor ICAgICAqIFByZXZpb3VzIGNvZGUgd2FzIHJldHVybmluZyBoZWFwIGFyZW5h IFBhcmFtCisgICAgICogdGhhdCB3YXNuJ3QgYWN0dWFsbHkgYWRkZWQgdG8g dGhlIGhhc2guIEl0IHdhcworICAgICAqIHBsYWlubHkgbmFtZSAvIGRhdGFi YXNlLWtleSBob2xkZXIuIEhlcmUgd2UKKyAgICAgKiBhZGQgdGhlIFBhcmFt IHRvIGl0cyBoYXNoLCBpdCBpcyBub3QgUE1fVVBUT0RBVEUuCisgICAgICog SXQgd2lsbCBiZSBsb2FkZWQgZnJvbSBkYXRhYmFzZSAqYW5kIGZpbGxlZCoK KyAgICAgKiBvciBsZWZ0IGluIHRoYXQgc3RhdGUgaWYgdGhlIGRhdGFiYXNl IGRvZXNuJ3QKKyAgICAgKiBjb250YWluIGl0LgorICAgICAqCisgICAgICog Tm8gaGVhcCBhcmVuYSBtZW1vcnkgaXMgdXNlZCwgbWVtb3J5IHVzYWdlIGlz CisgICAgICogbm93IGxpbWl0ZWQgLSBieSBudW1iZXIgb2YgZGlzdGluY3Qg a2V5cyBzZWVuLAorICAgICAqIG5vdCBieSBudW1iZXIgb2Yga2V5ICp1c2Vz Ki4KKyAgICAgKiAqLworCisgICAgaWYgKCAhIHZhbF9wbSApIHsKKyAgICAg ICAgdmFsX3BtID0gKFBhcmFtKSB6c2hjYWxsb2MoIHNpemVvZiAoKnZhbF9w bSkgKTsKKyAgICAgICAgdmFsX3BtLT5ub2RlLmZsYWdzID0gUE1fU0NBTEFS IHwgUE1fSEFTSEVMRU07IC8qIG5vIFBNX1VQVE9EQVRFICovCisgICAgICAg IHZhbF9wbS0+Z3N1LnMgPSAoR3N1U2NhbGFyKSBodC0+dG1wZGF0YTsKKyAg ICAgICAgaHQtPmFkZG5vZGUoIGh0LCB6dHJkdXAoIG5hbWUgKSwgdmFsX3Bt ICk7IC8vIHNldHMgcG0tPm5vZGUubmFtCisgICAgfQogCi0gICAgcmV0dXJu ICZwbS0+bm9kZTsKKyAgICByZXR1cm4gKEhhc2hOb2RlKSB2YWxfcG07CiB9 CiAKIC8qKi8KQEAgLTIzOSwyOSArNDM1LDMzIEBAIHNjYW5nZGJta2V5cyhI YXNoVGFibGUgaHQsIFNjYW5GdW5jIGZ1bmMsIGludCBmbGFncykKIHsKICAg ICBQYXJhbSBwbSA9IE5VTEw7CiAgICAgZGF0dW0ga2V5LCBjb250ZW50Owot ICAgIEdEQk1fRklMRSBkYmYgPSAoR0RCTV9GSUxFKShodC0+dG1wZGF0YSk7 Ci0KLSAgICBwbSA9IChQYXJhbSkgaGNhbGxvYyhzaXplb2Yoc3RydWN0IHBh cmFtKSk7Ci0KLSAgICBwbS0+bm9kZS5mbGFncyA9IFBNX1NDQUxBUjsKLSAg ICBwbS0+Z3N1LnMgPSAmbnVsbHNldHNjYWxhcl9nc3U7CisgICAgR0RCTV9G SUxFIGRiZiA9ICgoc3RydWN0IGdzdV9zY2FsYXJfZXh0ICopaHQtPnRtcGRh dGEpLT5kYmY7CiAKKyAgICAvKiBJdGVyYXRlIGtleXMgYWRkaW5nIHRoZW0g dG8gaGFzaCwgc28KKyAgICAgKiB3ZSBoYXZlIFBhcmFtIHRvIHVzZSBpbiBg ZnVuY2AgKi8KICAgICBrZXkgPSBnZGJtX2ZpcnN0a2V5KGRiZik7CiAKICAg ICB3aGlsZShrZXkuZHB0cikgewotCWNvbnRlbnQgPSBnZGJtX2ZldGNoKGRi Ziwga2V5KTsKLQotCXBtLT5ub2RlLm5hbSA9IGtleS5kcHRyOwotCXBtLT51 LnN0ciA9IGNvbnRlbnQuZHB0cjsKLQlwbS0+Z3N1LnMgPSAmbnVsbHNldHNj YWxhcl9nc3U7CisgICAgICAgIC8qIFRoaXMgcmV0dXJucyBkYXRhYmFzZS1p bnRlcmZhY2luZyBQYXJhbSwKKyAgICAgICAgICogaXQgd2lsbCByZXR1cm4g dS5zdHIgb3IgZmlyc3QgZmV0Y2ggZGF0YQorICAgICAgICAgKiBpZiBub3Qg UE1fVVBUT0RBVEUgKG5ld2x5IGNyZWF0ZWQpICovCisgICAgICAgIGNoYXIg KnprZXkgPSB6dHJkdXBwZngoa2V5LmRwdHIsIGtleS5kc2l6ZSk7CisgICAg ICAgIEhhc2hOb2RlIGhuID0gZ2V0Z2RibW5vZGUoaHQsIHprZXkpOworICAg ICAgICB6c2ZyZWUoIHprZXkgKTsKIAotCWZ1bmMoJnBtLT5ub2RlLCBmbGFn cyk7CisJZnVuYyhobiwgZmxhZ3MpOwogCisgICAgICAgIC8qIEl0ZXJhdGUg LSBubyBwcm9ibGVtIGFzIGludGVyZmFjaW5nIFBhcmFtCisgICAgICAgICAq IHdpbGwgZG8gYXQgbW9zdCBvbmx5IGZldGNoZXMsIG5vdCBzdG9yZXMgKi8K ICAgICAgICAga2V5ID0gZ2RibV9uZXh0a2V5KGRiZiwga2V5KTsKICAgICB9 CiAKIH0KIAorLyoKKyAqIFJlcGxhY2UgZGF0YWJhc2Ugd2l0aCBuZXcgaGFz aAorICovCisKIC8qKi8KIHN0YXRpYyB2b2lkCiBnZGJtaGFzaHNldGZuKFBh cmFtIHBtLCBIYXNoVGFibGUgaHQpCkBAIC0yNzQsNyArNDc0LDcgQEAgZ2Ri bWhhc2hzZXRmbihQYXJhbSBwbSwgSGFzaFRhYmxlIGh0KQogICAgIGlmICgh cG0tPnUuaGFzaCB8fCBwbS0+dS5oYXNoID09IGh0KQogCXJldHVybjsKIAot ICAgIGlmICghKGRiZiA9IChHREJNX0ZJTEUpKHBtLT51Lmhhc2gtPnRtcGRh dGEpKSkKKyAgICBpZiAoIShkYmYgPSAoKHN0cnVjdCBnc3Vfc2NhbGFyX2V4 dCAqKXBtLT51Lmhhc2gtPnRtcGRhdGEpLT5kYmYpKQogCXJldHVybjsKIAog ICAgIGtleSA9IGdkYm1fZmlyc3RrZXkoZGJmKTsKQEAgLTI5Miw2ICs0OTIs OSBAQCBnZGJtaGFzaHNldGZuKFBhcmFtIHBtLCBIYXNoVGFibGUgaHQpCiAg ICAgaWYgKCFodCkKIAlyZXR1cm47CiAKKyAgICAgLyogUHV0IG5ldyBzdHJp bmdzIGludG8gZGF0YWJhc2UsIHdhaXRpbmcKKyAgICAgICogZm9yIHRoZWly IGludGVyZmFjaW5nLVBhcmFtcyB0byBiZSBjcmVhdGVkICovCisKICAgICBm b3IgKGkgPSAwOyBpIDwgaHQtPmhzaXplOyBpKyspCiAJZm9yIChobiA9IGh0 LT5ub2Rlc1tpXTsgaG47IGhuID0gaG4tPm5leHQpIHsKIAkgICAgc3RydWN0 IHZhbHVlIHY7CkBAIC0zMDEsMTYgKzUwNCwyOSBAQCBnZGJtaGFzaHNldGZu KFBhcmFtIHBtLCBIYXNoVGFibGUgaHQpCiAJICAgIHYuYXJyID0gTlVMTDsK IAkgICAgdi5wbSA9IChQYXJhbSkgaG47CiAKLQkgICAga2V5LmRwdHIgPSB2 LnBtLT5ub2RlLm5hbTsKLQkgICAga2V5LmRzaXplID0gc3RybGVuKGtleS5k cHRyKTsKKyAgICAgICAgICAgIC8qIFVubWV0YWZ5IGtleSAqLworICAgICAg ICAgICAgY2hhciAqdW1rZXkgPSB6dHJkdXAodi5wbS0+bm9kZS5uYW0pOwor ICAgICAgICAgICAgaW50IHVtbGVuID0gMDsKKyAgICAgICAgICAgIHVta2V5 ID0gdW5tZXRhZnkodW1rZXksJnVtbGVuKTsKKworCSAgICBrZXkuZHB0ciA9 IHVta2V5OworCSAgICBrZXkuZHNpemUgPSB1bWxlbjsKIAogCSAgICBxdWV1 ZV9zaWduYWxzKCk7CiAKLQkgICAgY29udGVudC5kcHRyID0gZ2V0c3RydmFs dWUoJnYpOwotCSAgICBjb250ZW50LmRzaXplID0gc3RybGVuKGNvbnRlbnQu ZHB0cik7CisgICAgICAgICAgICAvKiBVbm1ldGFmeSAqLworICAgICAgICAg ICAgY2hhciAqdW12YWwgPSB6dHJkdXAoZ2V0c3RydmFsdWUoJnYpKTsKKyAg ICAgICAgICAgIHVtdmFsID0gdW5tZXRhZnkodW12YWwsJnVtbGVuKTsKIAor ICAgICAgICAgICAgLyogU3RvcmUgKi8KKwkgICAgY29udGVudC5kcHRyID0g dW12YWw7CisJICAgIGNvbnRlbnQuZHNpemUgPSB1bWxlbjsKIAkgICAgKHZv aWQpZ2RibV9zdG9yZShkYmYsIGtleSwgY29udGVudCwgR0RCTV9SRVBMQUNF KTsJCiAKKyAgICAgICAgICAgIC8qIEZyZWUgKi8KKyAgICAgICAgICAgIHpz ZnJlZSh1bXZhbCk7CisgICAgICAgICAgICB6c2ZyZWUodW1rZXkpOworCiAJ ICAgIHVucXVldWVfc2lnbmFscygpOwogCX0KIH0KQEAgLTMxOSwxNSArNTM1 LDE5IEBAIGdkYm1oYXNoc2V0Zm4oUGFyYW0gcG0sIEhhc2hUYWJsZSBodCkK IHN0YXRpYyB2b2lkCiBnZGJtdW50aWUoUGFyYW0gcG0pCiB7Ci0gICAgR0RC TV9GSUxFIGRiZiA9IChHREJNX0ZJTEUpKHBtLT51Lmhhc2gtPnRtcGRhdGEp OworICAgIEdEQk1fRklMRSBkYmYgPSAoKHN0cnVjdCBnc3Vfc2NhbGFyX2V4 dCAqKXBtLT51Lmhhc2gtPnRtcGRhdGEpLT5kYmY7CiAgICAgSGFzaFRhYmxl IGh0ID0gcG0tPnUuaGFzaDsKIAogICAgIGlmIChkYmYpIHsgLyogcGFyYW5v aWEgKi8KIAlmZHRhYmxlW2dkYm1fZmRlc2MoZGJmKV0gPSBGRFRfVU5VU0VE OwotCWdkYm1fY2xvc2UoZGJmKTsKLSAgICB9CisgICAgICAgIGdkYm1fY2xv c2UoZGJmKTsKIAotICAgIGh0LT50bXBkYXRhID0gTlVMTDsKKyAgICAgICAg LyogTGV0IGhhc2ggZmllbGRzIGtub3cgdGhlcmUncyBubyBiYWNrZW5kICov CisgICAgICAgICgoc3RydWN0IGdzdV9zY2FsYXJfZXh0ICopaHQtPnRtcGRh dGEpLT5kYmYgPSBOVUxMOworCisgICAgICAgIC8qIFJlbW92ZSBmcm9tIGxp c3Qgb2YgdGllZCBwYXJhbWV0ZXJzICovCisgICAgICAgIHJlbW92ZV90aWVk X25hbWUocG0tPm5vZGUubmFtKTsKKyAgICB9CiAKICAgICAvKiBmb3IgY29t cGxldGVuZXNzIC4uLiBjcmVhdGVzcGVjaWFsaGFzaCgpIHNob3VsZCBoYXZl IGFuIGludmVyc2UgKi8KICAgICBodC0+Z2V0bm9kZSA9IGh0LT5nZXRub2Rl MiA9IGdldGhhc2hub2RlMjsKQEAgLTM0Miw4ICs1NjIsMjAgQEAgc3RhdGlj IHZvaWQKIGdkYm1oYXNodW5zZXRmbihQYXJhbSBwbSwgVU5VU0VEKGludCBl eHApKQogewogICAgIGdkYm11bnRpZShwbSk7Ci0gICAgLyogaGFzaCB0YWJs ZSBpcyBub3cgbm9ybWFsLCBzbyBwcm9jZWVkIG5vcm1hbGx5Li4uICovCisK KyAgICAvKiBSZW1lbWJlciBjdXN0b20gR1NVIHN0cnVjdHVyZSBhc3NpZ25l ZCB0bworICAgICAqIHUuaGFzaC0+dG1wZGF0YSBiZWZvcmUgaGFzaCBnZXRz IGRlbGV0ZWQgKi8KKyAgICBzdHJ1Y3QgZ3N1X3NjYWxhcl9leHQgKiBnc3Vf ZXh0ID0gcG0tPnUuaGFzaC0+dG1wZGF0YTsKKworICAgIC8qIFVzZXMgbm9y bWFsIHVuc2V0dGVyLiBXaWxsIGRlbGV0ZSBhbGwgb3duZWQKKyAgICAgKiBw YXJhbWV0ZXJzIGFuZCBhbHNvIGhhc2h0YWJsZS4gKi8KICAgICBwbS0+Z3N1 LmgtPnNldGZuKHBtLCBOVUxMKTsKKworICAgIC8qIERvbid0IG5lZWQgY3Vz dG9tIEdTVSBzdHJ1Y3R1cmUgd2l0aCBpdHMKKyAgICAgKiBHREJNX0ZJTEUg cG9pbnRlciBhbnltb3JlICovCisgICAgenNmcmVlKCBnc3VfZXh0LT5kYmZp bGVfcGF0aCApOworICAgIHpmcmVlKCBnc3VfZXh0LCBzaXplb2Yoc3RydWN0 IGdzdV9zY2FsYXJfZXh0KSk7CisKICAgICBwbS0+bm9kZS5mbGFncyB8PSBQ TV9VTlNFVDsKIH0KIApAQCAtMzU1LDcgKzU4Nyw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZmVhdHVyZXMgbW9kdWxlX2ZlYXR1cmVzID0gewogICAgIGJpbnRhYiwg c2l6ZW9mKGJpbnRhYikvc2l6ZW9mKCpiaW50YWIpLAogICAgIE5VTEwsIDAs CiAgICAgTlVMTCwgMCwKLSAgICBOVUxMLCAwLAorICAgIHBhdGFiLCBzaXpl b2YocGF0YWIpL3NpemVvZigqcGF0YWIpLAogICAgIDAKIH07CiAKQEAgLTM4 NSw2ICs2MTcsNyBAQCBlbmFibGVzXyhNb2R1bGUgbSwgaW50ICoqZW5hYmxl cykKIGludAogYm9vdF8oVU5VU0VEKE1vZHVsZSBtKSkKIHsKKyAgICB6Z2Ri bV90aWVkID0genNoY2FsbG9jKCgxKSAqIHNpemVvZihjaGFyICopKTsKICAg ICByZXR1cm4gMDsKIH0KIApAQCAtMzkyLDYgKzYyNSw3IEBAIGJvb3RfKFVO VVNFRChNb2R1bGUgbSkpCiBpbnQKIGNsZWFudXBfKE1vZHVsZSBtKQogewor ICAgIC8qIFRoaXMgZnJlZXMgYHpnZGJtX3RpZWRgICovCiAgICAgcmV0dXJu IHNldGZlYXR1cmVlbmFibGVzKG0sICZtb2R1bGVfZmVhdHVyZXMsIE5VTEwp OwogfQogCkBAIC00MDEsMyArNjM1LDEwNyBAQCBmaW5pc2hfKFVOVVNFRChN b2R1bGUgbSkpCiB7CiAgICAgcmV0dXJuIDA7CiB9CisKKy8qKioqKioqKioq KioqKioqKioqKioKKyAqIFV0aWxpdHkgZnVuY3Rpb25zICoKKyAqKioqKioq KioqKioqKioqKioqKiovCisKK3N0YXRpYyBQYXJhbSBjcmVhdGVoYXNoKCBj aGFyICpuYW1lLCBpbnQgZmxhZ3MgKSB7CisgICAgUGFyYW0gcG07CisgICAg SGFzaFRhYmxlIGh0OworCisgICAgcG0gPSBjcmVhdGVwYXJhbShuYW1lLCBQ TV9TUEVDSUFMIHwgUE1fSEFTSEVEKTsKKyAgICBpZiAoIXBtKSB7CisgICAg ICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChwbS0+b2xkKQor CXBtLT5sZXZlbCA9IGxvY2FsbGV2ZWw7CisKKyAgICAvKiBUaGlzIGNyZWF0 ZXMgc3RhbmRhcmQgaGFzaC4gKi8KKyAgICBodCA9IHBtLT51Lmhhc2ggPSBu ZXdwYXJhbXRhYmxlKDMyLCBuYW1lKTsKKyAgICBpZiAoIXBtLT51Lmhhc2gp IHsKKyAgICAgICAgcGFyYW10YWItPnJlbW92ZW5vZGUocGFyYW10YWIsIG5h bWUpOworICAgICAgICBwYXJhbXRhYi0+ZnJlZW5vZGUoJnBtLT5ub2RlKTsK KyAgICAgICAgendhcm5uYW0obmFtZSwgIk91dCBvZiBtZW1vcnkgd2hlbiBh bGxvY2F0aW5nIGhhc2giKTsKKyAgICB9CisKKyAgICAvKiBUaGVzZSBwcm92 aWRlIHNwZWNpYWwgZmVhdHVyZXMgKi8KKyAgICBodC0+Z2V0bm9kZSA9IGh0 LT5nZXRub2RlMiA9IGdldGdkYm1ub2RlOworICAgIGh0LT5zY2FudGFiID0g c2NhbmdkYm1rZXlzOworCisgICAgcmV0dXJuIHBtOworfQorCisvKgorICog QWRkcyBwYXJhbWV0ZXIgbmFtZSB0byBgemdkYm1fdGllZGAKKyAqLworCitz dGF0aWMgaW50IGFwcGVuZF90aWVkX25hbWUoIGNvbnN0IGNoYXIgKm5hbWUg KSB7CisgICAgaW50IG9sZF9sZW4gPSBhcnJsZW4oemdkYm1fdGllZCk7Cisg ICAgY2hhciAqKm5ld196Z2RibV90aWVkID0genNoY2FsbG9jKCAob2xkX2xl bisyKSAqIHNpemVvZihjaGFyICopKTsKKworICAgIC8qIENvcHkgKi8KKyAg ICBjaGFyICoqcCA9IHpnZGJtX3RpZWQ7CisgICAgY2hhciAqKmRzdCA9IG5l d196Z2RibV90aWVkOworICAgIHdoaWxlICgqcCkgeworICAgICAgICAqZHN0 KysgPSAqcCsrOworICAgIH0KKworICAgIC8qIEFwcGVuZCBuZXcgb25lICov CisgICAgKmRzdCA9IHp0cmR1cChuYW1lKTsKKworICAgIC8qIFN1YnN0aXR1 dGUsIGZyZWUgb2xkIG9uZSAqLworICAgIHpmcmVlKHpnZGJtX3RpZWQsIHNp emVvZihjaGFyICopICogKG9sZF9sZW4gKyAxKSk7CisgICAgemdkYm1fdGll ZCA9IG5ld196Z2RibV90aWVkOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8q CisgKiBSZW1vdmVzIHBhcmFtZXRlciBuYW1lIGZyb20gYHpnZGJtX3RpZWRg CisgKi8KKworc3RhdGljIGludCByZW1vdmVfdGllZF9uYW1lKCBjb25zdCBj aGFyICpuYW1lICkgeworICAgIGludCBvbGRfbGVuID0gYXJybGVuKHpnZGJt X3RpZWQpOworCisgICAgLyogVHdvIHN0YWdlLCB0byBhbHdheXMgaGF2ZSBh cnJsZW4oKSA9PSB6ZnJlZS1zaXplIC0gMS4KKyAgICAgKiBDb3VsZCBkbyBh bGxvY2F0aW9uIGFuZCByZXZlcnQgd2hlbiBgbm90IGZvdW5kYCwgYnV0Cisg ICAgICogd2hhdCB3b3VsZCBiZSBiZXR0ZXIgYWJvdXQgdGhhdC4gKi8KKwor ICAgIC8qIEZpbmQgb25lIHRvIHJlbW92ZSAqLworICAgIGNoYXIgKipwID0g emdkYm1fdGllZDsKKyAgICB3aGlsZSAoKnApIHsKKyAgICAgICAgaWYgKDA9 PXN0cmNtcChuYW1lLCpwKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIH0KKyAgICAgICAgcCsrOworICAgIH0KKworICAgIC8qIENvcHkgeCsx IHRvIHggKi8KKyAgICB3aGlsZSAoKnApIHsKKyAgICAgICAgKnA9KihwKzEp OworICAgICAgICBwKys7CisgICAgfQorCisgICAgLyogU2Vjb25kIHN0YWdl LiBTaXplIGNoYW5nZWQ/IE9ubHkgb2xkX3NpemUtMQorICAgICAqIGNoYW5n ZSBpcyBwb3NzaWJsZSwgYnV0Li4gcGFyYW5vaWEgd2F5ICovCisgICAgaW50 IG5ld19sZW4gPSBhcnJsZW4oemdkYm1fdGllZCk7CisgICAgaWYgKG5ld19s ZW4gIT0gb2xkX2xlbikgeworICAgICAgICBjaGFyICoqbmV3X3pnZGJtX3Rp ZWQgPSB6c2hjYWxsb2MoKG5ld19sZW4rMSkgKiBzaXplb2YoY2hhciAqKSk7 CisKKyAgICAgICAgLyogQ29weSAqLworICAgICAgICBwID0gemdkYm1fdGll ZDsKKyAgICAgICAgY2hhciAqKmRzdCA9IG5ld196Z2RibV90aWVkOworICAg ICAgICB3aGlsZSAoKnApIHsKKyAgICAgICAgICAgICpkc3QrKyA9ICpwKys7 CisgICAgICAgIH0KKyAgICAgICAgKmRzdCA9IE5VTEw7CisKKyAgICAgICAg LyogU3Vic3RpdHV0ZSwgZnJlZSBvbGQgb25lICovCisgICAgICAgIHpmcmVl KHpnZGJtX3RpZWQsIHNpemVvZihjaGFyICopICogKG9sZF9sZW4gKyAxKSk7 CisgICAgICAgIHpnZGJtX3RpZWQgPSBuZXdfemdkYm1fdGllZDsKKyAgICB9 CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL1NyYy9Nb2R1bGVz L2RiX2dkYm0ubWRkIGIvU3JjL01vZHVsZXMvZGJfZ2RibS5tZGQKaW5kZXgg Y2U3OTI2Yi4uMjEwYzIyMSAxMDA2NDQKLS0tIGEvU3JjL01vZHVsZXMvZGJf Z2RibS5tZGQKKysrIGIvU3JjL01vZHVsZXMvZGJfZ2RibS5tZGQKQEAgLTcs NiArNyw2IEBAIGZpCiAnCiBsb2FkPW5vCiAKLWF1dG9mZWF0dXJlcz0iYjp6 dGllIGI6enVudGllIgorYXV0b2ZlYXR1cmVzPSJiOnp0aWUgYjp6dW50aWUg Yjp6Z2RibXBhdGggcDp6Z2RibV90aWVkIgogCiBvYmplY3RzPSJkYl9nZGJt Lm8iCmRpZmYgLS1naXQgYS9UZXN0L1YxMWRiX2dkYm0uenRzdCBiL1Rlc3Qv VjExZGJfZ2RibS56dHN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmExMDc2ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9UZXN0L1YxMWRi X2dkYm0uenRzdApAQCAtMCwwICsxLDI4NSBAQAorIyBUZXN0cyBmb3IgdGhl IHpzaC9wYXJhbS9wcml2YXRlIG1vZHVsZQorCislcHJlcAorCisgbW9kbmFt ZT0ienNoL2RiL2dkYm0iCisgZGJmaWxlPWRiLmdkYm0KKyBpZiAhIHptb2Rs b2FkICRtb2RuYW1lIDsgdGhlbgorICAgWlRTVF91bmltcGxlbWVudGVkPSJj YW4ndCBsb2FkICRtb2RuYW1lIG1vZHVsZSBmb3IgdGVzdGluZyIKKyBmaQor IHJtIC1mIGRiLmdkYm0KKworJXRlc3QKKworICh6bW9kbG9hZCAtdSAkbW9k bmFtZSAmJiB6bW9kbG9hZCAkbW9kbmFtZSkKKzA6dW5sb2FkIGFuZCByZWxv YWQgdGhlIG1vZHVsZSB3aXRob3V0IGNyYXNoaW5nCisKKyB6dGllIC1kIGRi L2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIHp1bnRpZSBkYmFzZQorMDpjcmVh dGUgdGhlIGRhdGFiYXNlCisKKyB6dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRi ZmlsZSBkYmFzZQorIHp1bnRpZSAtdSBkYmFzZQorMDpvcGVuIHRoZSBkYXRh YmFzZSByZWFkLW9ubHkKKworIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxl IGRiYXNlCisgZGJhc2VbdGVzdGtleV09dGVzdGRhdGEKKyB6dW50aWUgZGJh c2UKKyB6dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGVj aG8gJGRiYXNlW3Rlc3RrZXldCisgenVudGllIC11IGRiYXNlCiswOnN0b3Jl IGtleSBpbiBkYXRhYmFzZQorPnRlc3RkYXRhCisKKyB6dGllIC1kIGRiL2dk Ym0gLWYgJGRiZmlsZSBkYmFzZTIKKyB1bnNldCAnZGJhc2UyW3Rlc3RrZXld JworIHp1bnRpZSBkYmFzZTIKKyB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmls ZSBkYmFzZQorIGVjaG8gJGRiYXNlW3Rlc3RrZXldCisgenVudGllIGRiYXNl CiswOnJlbW92ZSBrZXkgZnJvbSBkYXRhYmFzZSAoZGlmZmVyZW50IHZhcmlh YmxlcykKKz4KKworIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNl CisgZGJhc2VbdGVzdGtleV09dGVzdGRhdGEKKyB6dW50aWUgZGJhc2UKKyB6 dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGVjaG8gJGRi YXNlW3Rlc3RrZXldCisgenVudGllIC11IGRiYXNlCisgenRpZSAtZCBkYi9n ZGJtIC1mICRkYmZpbGUgZGJhc2UKKyB1bnNldCAnZGJhc2VbdGVzdGtleV0n CisgenVudGllIGRiYXNlCisgenRpZSAtciAtZCBkYi9nZGJtIC1mICRkYmZp bGUgZGJhc2UKKyBlY2hvICRkYmFzZVt0ZXN0a2V5XQorIHp1bnRpZSAtdSBk YmFzZQorMDpzdG9yZSAmIHJlbW92ZSBrZXkgZnJvbSBkYXRhYmFzZSAodGhl IHNhbWUgdmFyaWFibGVzKQorPnRlc3RkYXRhCis+CisKKyB6dGllIC1kIGRi L2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGRiYXNlW3Rlc3RrZXldPXRlc3Rk YXRhCisgZGJhc2VbdGVzdGtleTJdPSRkYmFzZVt0ZXN0a2V5XQorIGRiYXNl W3Rlc3RrZXkzXT0kZGJhc2VbdGVzdGtleV14JGRiYXNlW3Rlc3RrZXkyXQor IHp1bnRpZSBkYmFzZQorIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRi YXNlCisgZWNobyAkZGJhc2VbdGVzdGtleV0KKyBlY2hvICRkYmFzZVt0ZXN0 a2V5Ml0KKyBlY2hvICRkYmFzZVt0ZXN0a2V5M10KKyB6dW50aWUgZGJhc2UK KzA6c3RvcmUgMiBrZXlzIGZldGNoaW5nIDFzdAorPnRlc3RkYXRhCis+dGVz dGRhdGEKKz50ZXN0ZGF0YXh0ZXN0ZGF0YQorCisgenRpZSAtZCBkYi9nZGJt IC1mICRkYmZpbGUgZGJhc2UKKyB2YWw9JGRiYXNlW3Rlc3RrZXkyXQorIHVu c2V0ICdkYmFzZVt0ZXN0a2V5Ml0nCisgZWNobyAkdmFsCisgenVudGllIGRi YXNlCiswOnVuc2V0IGtleSB0aGF0IHdhcyBmZXRjaGVkCis+dGVzdGRhdGEK KworIHp0aWUgLXIgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCisgcHJp bnQgLXJsIC0tICIkeyhrdilkYmFzZVtAXX0iCisgenVudGllIC11IGRiYXNl CiswOnNjYW4gcmVhZC1vbmx5IHRpZWQgaGFzaAorPnRlc3RrZXkKKz50ZXN0 ZGF0YQorPnRlc3RrZXkzCis+dGVzdGRhdGF4dGVzdGRhdGEKKworIHp0aWUg LWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCisgbG9jYWwgLWEgYXJyCisg YXJyPSggIiR7KGt2KWRiYXNlW0BdfSIgKQorIHByaW50IC1ybCAtLSAiJHth cnJbQF19IgorIHp1bnRpZSBkYmFzZQorMDpkaWZmZXJlbnQgc2NhbiwgYWxz byByZWFkLXdyaXRlIG1vZGUKKz50ZXN0a2V5Cis+dGVzdGRhdGEKKz50ZXN0 a2V5MworPnRlc3RkYXRheHRlc3RkYXRhCisKKyB6dGllIC1kIGRiL2dkYm0g LWYgJGRiZmlsZSBkYmFzZQorIGRiYXNlPSggYSBiIGMgZCApCisgenVudGll IGRiYXNlCisgenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKKyBw cmludCAtcmwgLS0gIiR7KGt2KWRiYXNlW0BdfSIKKyB6dW50aWUgZGJhc2UK KzA6cmVwbGFjZSBoYXNoIC8gZGF0YWJhc2UsIHNjYW4KKz5jCis+ZAorPmEK Kz5iCisKKyB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGxv Y2FsIC1hIGFycgorIGFycj0oICIke2RiYXNlW0BdfSIgKQorIHByaW50IC1y bCAtLSAiJHthcnJbQF19IgorIHp1bnRpZSBkYmFzZQorMDpzY2FuIHdpdGgg bm8gKGt2KQorPmQKKz5iCisKKyB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmls ZSBkYmFzZQorIHByaW50IC1ybCAtLSAiJHsoaylkYmFzZVtAXX0iCisgenVu dGllIGRiYXNlCiswOnNjYW4gd2l0aCBrZXlzIG9ubHkgKGspCis+YworPmEK KworIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCisgcHJpbnQg LXJsIC0tICIkeyh2KWRiYXNlW0BdfSIKKyB6dW50aWUgZGJhc2UKKzA6c2Nh biB3aXRoIGtleXMgb25seSBleHBsaWNpdCAodikKKz5kCis+YgorCisgcm0g LWYgJGRiZmlsZQorIHp0aWUgLXIgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRi YXNlIDI+L2Rldi9udWxsCisxOnJlYWQtb25seSBvcGVuIG5vbi1leGlzdGVu dCBkYXRhYmFzZQorCisgenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJh c2UKKyBkYmFzZSs9KCBhIGIgKQorIGVjaG8gJGRiYXNlW2FdCisgenVudGll IGRiYXNlCisgenRpZSAtciAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UK KyBlY2hvICRkYmFzZVthXQorIHByaW50IC1ybCAtLSAiJHsoa3YpZGJhc2Vb QF19IgorIHp1bnRpZSAtdSBkYmFzZQorIHp0aWUgLWQgZGIvZ2RibSAtZiAk ZGJmaWxlIGRiYXNlCisgZGJhc2UrPSggYyBkICkKKyBlY2hvICRkYmFzZVth XQorIGVjaG8gJGRiYXNlW2NdCisgcHJpbnQgLXJsIC0tICIkeyhrdilkYmFz ZVtAXX0iCisgenVudGllIGRiYXNlCisgenRpZSAtciAtZCBkYi9nZGJtIC1m ICRkYmZpbGUgZGJhc2UKKyBlY2hvICRkYmFzZVthXQorIGVjaG8gJGRiYXNl W2NdCisgcHJpbnQgLXJsIC0tICIkeyhrdilkYmFzZVtAXX0iCisgenVudGll IC11IGRiYXNlCiswOkFwcGVuZCB3aXRoICs9KCApLCBhbHNvIHdpdGggZXhp c3RpbmcgZGF0YSwgYWxzbyAoa3YpIHNjYW4KKz5iCis+YgorPmEKKz5iCis+ YgorPmQKKz5jCis+ZAorPmEKKz5iCis+YgorPmQKKz5jCis+ZAorPmEKKz5i CisKKyB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGVjaG8g JHsodClkYmFzZX0KKyB6dW50aWUgZGJhc2UKKzA6VHlwZSBvZiB0aWVkIHBh cmFtZXRlcgorPmFzc29jaWF0aW9uLXNwZWNpYWwKKworIHR5cGVzZXQgLWdh IGRiYXNlCisgenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKKyBl Y2hvICR7KHQpZGJhc2V9CisgenVudGllIGRiYXNlCiswOlR5cGUgb2YgdGll ZCBwYXJhbWV0ZXIsIHdpdGggcHJlY2VkaW5nIHVuc2V0Cis+YXNzb2NpYXRp b24tc3BlY2lhbAorCisgbG9jYWwgLWEgZGJhc2UKKyB6dGllIC1kIGRiL2dk Ym0gLWYgJGRiZmlsZSBkYmFzZQorIGVjaG8gJHsodClkYmFzZX0KKyB6dW50 aWUgZGJhc2UKKzA6VHlwZSBvZiB0aWVkIHBhcmFtZXRlciwgd2l0aCBsb2Nh bCBwYXJhbWV0ZXIgYWxyZWFkeSBleGlzdGluZworPmFzc29jaWF0aW9uLWxv Y2FsLXNwZWNpYWwKKworIGxvY2FsIC1hIGRiYXNlCisgZGJhc2U9KCBmcm9t YXJyYXkgKQorICgpIHsKKyAgICAgbG9jYWwgLWEgZGJhc2UKKyAgICAgenRp ZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKKyAgICAgZWNobyAkeyh0 KWRiYXNlfQorICAgICB6dW50aWUgZGJhc2UKKyB9CisgZWNobyAkZGJhc2Vb MV0KKyB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZTIKKyBlY2hv ICJDYW4gY29ubmVjdCwgc28gdW50aWUgaGFwcGVuZWQ6IiAkZGJhc2UyW2Fd CisgenVudGllIGRiYXNlMgorMDpUZXN0IG9mIGF1dG9tYXRpYyB1bnRpZSAo dXNlIG9mIGxvY2FsIHNjb3BlKSBhbmQgb2Ygc2NvcGluZworPmFzc29jaWF0 aW9uLWxvY2FsLXNwZWNpYWwKKz5mcm9tYXJyYXkKKz5DYW4gY29ubmVjdCwg c28gdW50aWUgaGFwcGVuZWQ6IGIKKworIGVjaG8gJHpnZGJtX3RpZWQgJHsj emdkYm1fdGllZH0KKyB6dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBk YmFzZQorIGVjaG8gJHpnZGJtX3RpZWQgJHsjemdkYm1fdGllZH0KKyB6dGll IC1kIGRiL2dkYm0gLWYgJHtkYmZpbGV9MiBkYmFzZTIKKyBlY2hvICR6Z2Ri bV90aWVkICR7I3pnZGJtX3RpZWR9CisgenVudGllIC11IGRiYXNlCisgZWNo byAkemdkYm1fdGllZCAkeyN6Z2RibV90aWVkfQorIHp1bnRpZSBkYmFzZTIK KyBlY2hvICR6Z2RibV90aWVkICR7I3pnZGJtX3RpZWR9CiswOnpnZGJtX3Rp ZWQgcGFyYW1ldGVyCis+MAorPmRiYXNlIDEKKz5kYmFzZSBkYmFzZTIgMgor PmRiYXNlMiAxCis+MAorCisgdW5zZXQgemdkYm1fdGllZCAyPi9kZXYvbnVs bAorMTp1bnNldCBvZiByZWFkLW9ubHkgemdkYm1fdGllZCBwYXJhbWV0ZXIK KworIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCisgZGJhc2Vb 5ryi5a2XXT3mvKLlrZcKKyBlY2hvICRkYmFzZVvmvKLlrZddCisgenVudGll IGRiYXNlCisgenRpZSAtciAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UK KyBlY2hvICRkYmFzZVvmvKLlrZddCisgenVudGllIC11IGRiYXNlCiswOlVu aWNvZGUgdGVzdAorPua8ouWtlworPua8ouWtlworCisga2V5PSJhYiIkJ1ww JyJlZiIKKyB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGRi YXNlWyRrZXldPXZhbHVlCisgZWNobyAkZGJhc2VbJGtleV0KKyB6dW50aWUg ZGJhc2UKKyB6dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQor IGVjaG8gJGRiYXNlWyRrZXldCisgenVudGllIC11IGRiYXNlCisgenRpZSAt ZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKKyBkYmFzZVska2V5XT0ka2V5 CisgenVudGllIGRiYXNlCisgenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUg ZGJhc2UKKyBbWyAiJGRiYXNlWyRrZXldIiA9ICIka2V5IiBdXSAmJiBlY2hv IGNvcnJlY3QKKyB6dW50aWUgZGJhc2UKKzA6TWV0YWZpY2F0aW9uIG9mICQn XDAnCis+dmFsdWUKKz52YWx1ZQorPmNvcnJlY3QKKworIHp0aWUgLWQgZGIv Z2RibSAtZiAkZGJmaWxlIGRiYXNlCisgZGJhc2U9KCDmvKLlrZcg5ryi5a2X ICkKKyBlY2hvICRkYmFzZVvmvKLlrZddCisgenVudGllIGRiYXNlCisgenRp ZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKKyBlY2hvICRkYmFzZVvm vKLlrZddCisgenVudGllIGRiYXNlCisga2V5PSJhYiIkJ1wwJyJlZiIKKyB6 dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQorIGRiYXNlKz0oICRr ZXkgJGtleSApCisgenVudGllIGRiYXNlCisgenRpZSAtciAtZCBkYi9nZGJt IC1mICRkYmZpbGUgZGJhc2UKKyBbWyAiJGRiYXNlWyRrZXldIiA9ICIka2V5 IiBdXSAmJiBlY2hvIGNvcnJlY3QKKyB6dW50aWUgLXUgZGJhc2UKKzA6VW5p Y29kZSAmIG1ldGFmaWNhdGlvbiB0ZXN0LCBkaWZmZXJlbnQgaGFzaCBhY2Nl c3MKKz7mvKLlrZcKKz7mvKLlrZcKKz5jb3JyZWN0CisKKyVjbGVhbgorCisg IHJtIC1mICR7ZGJmaWxlfSoK --_----------=_14871541636153230 Content-Disposition: attachment; filename="V11db_gdbm.ztst.txt" Content-Id: <1487154118.614951.70a09b1948aca2ed145ed3577b0d8a90312ecfca.2B2EAEEC@content.messagingengine.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; name="V11db_gdbm.ztst.txt" IyBUZXN0cyBmb3IgdGhlIHpzaC9wYXJhbS9wcml2YXRlIG1vZHVsZQoKJXBy ZXAKCiBtb2RuYW1lPSJ6c2gvZGIvZ2RibSIKIGRiZmlsZT1kYi5nZGJtCiBp ZiAhIHptb2Rsb2FkICRtb2RuYW1lIDsgdGhlbgogICBaVFNUX3VuaW1wbGVt ZW50ZWQ9ImNhbid0IGxvYWQgJG1vZG5hbWUgbW9kdWxlIGZvciB0ZXN0aW5n IgogZmkKIHJtIC1mIGRiLmdkYm0KCiV0ZXN0CgogKHptb2Rsb2FkIC11ICRt b2RuYW1lICYmIHptb2Rsb2FkICRtb2RuYW1lKQowOnVubG9hZCBhbmQgcmVs b2FkIHRoZSBtb2R1bGUgd2l0aG91dCBjcmFzaGluZwoKIHp0aWUgLWQgZGIv Z2RibSAtZiAkZGJmaWxlIGRiYXNlCiB6dW50aWUgZGJhc2UKMDpjcmVhdGUg dGhlIGRhdGFiYXNlCgogenRpZSAtciAtZCBkYi9nZGJtIC1mICRkYmZpbGUg ZGJhc2UKIHp1bnRpZSAtdSBkYmFzZQowOm9wZW4gdGhlIGRhdGFiYXNlIHJl YWQtb25seQoKIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCiBk YmFzZVt0ZXN0a2V5XT10ZXN0ZGF0YQogenVudGllIGRiYXNlCiB6dGllIC1y IC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQogZWNobyAkZGJhc2VbdGVz dGtleV0KIHp1bnRpZSAtdSBkYmFzZQowOnN0b3JlIGtleSBpbiBkYXRhYmFz ZQo+dGVzdGRhdGEKCiB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFz ZTIKIHVuc2V0ICdkYmFzZTJbdGVzdGtleV0nCiB6dW50aWUgZGJhc2UyCiB6 dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQogZWNobyAkZGJhc2Vb dGVzdGtleV0KIHp1bnRpZSBkYmFzZQowOnJlbW92ZSBrZXkgZnJvbSBkYXRh YmFzZSAoZGlmZmVyZW50IHZhcmlhYmxlcykKPgoKIHp0aWUgLWQgZGIvZ2Ri bSAtZiAkZGJmaWxlIGRiYXNlCiBkYmFzZVt0ZXN0a2V5XT10ZXN0ZGF0YQog enVudGllIGRiYXNlCiB6dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBk YmFzZQogZWNobyAkZGJhc2VbdGVzdGtleV0KIHp1bnRpZSAtdSBkYmFzZQog enRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIHVuc2V0ICdkYmFz ZVt0ZXN0a2V5XScKIHp1bnRpZSBkYmFzZQogenRpZSAtciAtZCBkYi9nZGJt IC1mICRkYmZpbGUgZGJhc2UKIGVjaG8gJGRiYXNlW3Rlc3RrZXldCiB6dW50 aWUgLXUgZGJhc2UKMDpzdG9yZSAmIHJlbW92ZSBrZXkgZnJvbSBkYXRhYmFz ZSAodGhlIHNhbWUgdmFyaWFibGVzKQo+dGVzdGRhdGEKPgoKIHp0aWUgLWQg ZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCiBkYmFzZVt0ZXN0a2V5XT10ZXN0 ZGF0YQogZGJhc2VbdGVzdGtleTJdPSRkYmFzZVt0ZXN0a2V5XQogZGJhc2Vb dGVzdGtleTNdPSRkYmFzZVt0ZXN0a2V5XXgkZGJhc2VbdGVzdGtleTJdCiB6 dW50aWUgZGJhc2UKIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNl CiBlY2hvICRkYmFzZVt0ZXN0a2V5XQogZWNobyAkZGJhc2VbdGVzdGtleTJd CiBlY2hvICRkYmFzZVt0ZXN0a2V5M10KIHp1bnRpZSBkYmFzZQowOnN0b3Jl IDIga2V5cyBmZXRjaGluZyAxc3QKPnRlc3RkYXRhCj50ZXN0ZGF0YQo+dGVz dGRhdGF4dGVzdGRhdGEKCiB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBk YmFzZQogdmFsPSRkYmFzZVt0ZXN0a2V5Ml0KIHVuc2V0ICdkYmFzZVt0ZXN0 a2V5Ml0nCiBlY2hvICR2YWwKIHp1bnRpZSBkYmFzZQowOnVuc2V0IGtleSB0 aGF0IHdhcyBmZXRjaGVkCj50ZXN0ZGF0YQoKIHp0aWUgLXIgLWQgZGIvZ2Ri bSAtZiAkZGJmaWxlIGRiYXNlCiBwcmludCAtcmwgLS0gIiR7KGt2KWRiYXNl W0BdfSIKIHp1bnRpZSAtdSBkYmFzZQowOnNjYW4gcmVhZC1vbmx5IHRpZWQg aGFzaAo+dGVzdGtleQo+dGVzdGRhdGEKPnRlc3RrZXkzCj50ZXN0ZGF0YXh0 ZXN0ZGF0YQoKIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCiBs b2NhbCAtYSBhcnIKIGFycj0oICIkeyhrdilkYmFzZVtAXX0iICkKIHByaW50 IC1ybCAtLSAiJHthcnJbQF19IgogenVudGllIGRiYXNlCjA6ZGlmZmVyZW50 IHNjYW4sIGFsc28gcmVhZC13cml0ZSBtb2RlCj50ZXN0a2V5Cj50ZXN0ZGF0 YQo+dGVzdGtleTMKPnRlc3RkYXRheHRlc3RkYXRhCgogenRpZSAtZCBkYi9n ZGJtIC1mICRkYmZpbGUgZGJhc2UKIGRiYXNlPSggYSBiIGMgZCApCiB6dW50 aWUgZGJhc2UKIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNlCiBw cmludCAtcmwgLS0gIiR7KGt2KWRiYXNlW0BdfSIKIHp1bnRpZSBkYmFzZQow OnJlcGxhY2UgaGFzaCAvIGRhdGFiYXNlLCBzY2FuCj5jCj5kCj5hCj5iCgog enRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIGxvY2FsIC1hIGFy cgogYXJyPSggIiR7ZGJhc2VbQF19IiApCiBwcmludCAtcmwgLS0gIiR7YXJy W0BdfSIKIHp1bnRpZSBkYmFzZQowOnNjYW4gd2l0aCBubyAoa3YpCj5kCj5i CgogenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIHByaW50IC1y bCAtLSAiJHsoaylkYmFzZVtAXX0iCiB6dW50aWUgZGJhc2UKMDpzY2FuIHdp dGgga2V5cyBvbmx5IChrKQo+Ywo+YQoKIHp0aWUgLWQgZGIvZ2RibSAtZiAk ZGJmaWxlIGRiYXNlCiBwcmludCAtcmwgLS0gIiR7KHYpZGJhc2VbQF19Igog enVudGllIGRiYXNlCjA6c2NhbiB3aXRoIGtleXMgb25seSBleHBsaWNpdCAo dikKPmQKPmIKCiBybSAtZiAkZGJmaWxlCiB6dGllIC1yIC1kIGRiL2dkYm0g LWYgJGRiZmlsZSBkYmFzZSAyPi9kZXYvbnVsbAoxOnJlYWQtb25seSBvcGVu IG5vbi1leGlzdGVudCBkYXRhYmFzZQoKIHp0aWUgLWQgZGIvZ2RibSAtZiAk ZGJmaWxlIGRiYXNlCiBkYmFzZSs9KCBhIGIgKQogZWNobyAkZGJhc2VbYV0K IHp1bnRpZSBkYmFzZQogenRpZSAtciAtZCBkYi9nZGJtIC1mICRkYmZpbGUg ZGJhc2UKIGVjaG8gJGRiYXNlW2FdCiBwcmludCAtcmwgLS0gIiR7KGt2KWRi YXNlW0BdfSIKIHp1bnRpZSAtdSBkYmFzZQogenRpZSAtZCBkYi9nZGJtIC1m ICRkYmZpbGUgZGJhc2UKIGRiYXNlKz0oIGMgZCApCiBlY2hvICRkYmFzZVth XQogZWNobyAkZGJhc2VbY10KIHByaW50IC1ybCAtLSAiJHsoa3YpZGJhc2Vb QF19IgogenVudGllIGRiYXNlCiB6dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRi ZmlsZSBkYmFzZQogZWNobyAkZGJhc2VbYV0KIGVjaG8gJGRiYXNlW2NdCiBw cmludCAtcmwgLS0gIiR7KGt2KWRiYXNlW0BdfSIKIHp1bnRpZSAtdSBkYmFz ZQowOkFwcGVuZCB3aXRoICs9KCApLCBhbHNvIHdpdGggZXhpc3RpbmcgZGF0 YSwgYWxzbyAoa3YpIHNjYW4KPmIKPmIKPmEKPmIKPmIKPmQKPmMKPmQKPmEK PmIKPmIKPmQKPmMKPmQKPmEKPmIKCiB6dGllIC1kIGRiL2dkYm0gLWYgJGRi ZmlsZSBkYmFzZQogZWNobyAkeyh0KWRiYXNlfQogenVudGllIGRiYXNlCjA6 VHlwZSBvZiB0aWVkIHBhcmFtZXRlcgo+YXNzb2NpYXRpb24tc3BlY2lhbAoK IHR5cGVzZXQgLWdhIGRiYXNlCiB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmls ZSBkYmFzZQogZWNobyAkeyh0KWRiYXNlfQogenVudGllIGRiYXNlCjA6VHlw ZSBvZiB0aWVkIHBhcmFtZXRlciwgd2l0aCBwcmVjZWRpbmcgdW5zZXQKPmFz c29jaWF0aW9uLXNwZWNpYWwKCiBsb2NhbCAtYSBkYmFzZQogenRpZSAtZCBk Yi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIGVjaG8gJHsodClkYmFzZX0KIHp1 bnRpZSBkYmFzZQowOlR5cGUgb2YgdGllZCBwYXJhbWV0ZXIsIHdpdGggbG9j YWwgcGFyYW1ldGVyIGFscmVhZHkgZXhpc3RpbmcKPmFzc29jaWF0aW9uLWxv Y2FsLXNwZWNpYWwKCiBsb2NhbCAtYSBkYmFzZQogZGJhc2U9KCBmcm9tYXJy YXkgKQogKCkgewogICAgIGxvY2FsIC1hIGRiYXNlCiAgICAgenRpZSAtZCBk Yi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKICAgICBlY2hvICR7KHQpZGJhc2V9 CiAgICAgenVudGllIGRiYXNlCiB9CiBlY2hvICRkYmFzZVsxXQogenRpZSAt ZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UyCiBlY2hvICJDYW4gY29ubmVj dCwgc28gdW50aWUgaGFwcGVuZWQ6IiAkZGJhc2UyW2FdCiB6dW50aWUgZGJh c2UyCjA6VGVzdCBvZiBhdXRvbWF0aWMgdW50aWUgKHVzZSBvZiBsb2NhbCBz Y29wZSkgYW5kIG9mIHNjb3BpbmcKPmFzc29jaWF0aW9uLWxvY2FsLXNwZWNp YWwKPmZyb21hcnJheQo+Q2FuIGNvbm5lY3QsIHNvIHVudGllIGhhcHBlbmVk OiBiCgogZWNobyAkemdkYm1fdGllZCAkeyN6Z2RibV90aWVkfQogenRpZSAt ciAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIGVjaG8gJHpnZGJtX3Rp ZWQgJHsjemdkYm1fdGllZH0KIHp0aWUgLWQgZGIvZ2RibSAtZiAke2RiZmls ZX0yIGRiYXNlMgogZWNobyAkemdkYm1fdGllZCAkeyN6Z2RibV90aWVkfQog enVudGllIC11IGRiYXNlCiBlY2hvICR6Z2RibV90aWVkICR7I3pnZGJtX3Rp ZWR9CiB6dW50aWUgZGJhc2UyCiBlY2hvICR6Z2RibV90aWVkICR7I3pnZGJt X3RpZWR9CjA6emdkYm1fdGllZCBwYXJhbWV0ZXIKPjAKPmRiYXNlIDEKPmRi YXNlIGRiYXNlMiAyCj5kYmFzZTIgMQo+MAoKIHVuc2V0IHpnZGJtX3RpZWQg Mj4vZGV2L251bGwKMTp1bnNldCBvZiByZWFkLW9ubHkgemdkYm1fdGllZCBw YXJhbWV0ZXIKCiB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQog ZGJhc2Vb5ryi5a2XXT3mvKLlrZcKIGVjaG8gJGRiYXNlW+a8ouWtl10KIHp1 bnRpZSBkYmFzZQogenRpZSAtciAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJh c2UKIGVjaG8gJGRiYXNlW+a8ouWtl10KIHp1bnRpZSAtdSBkYmFzZQowOlVu aWNvZGUgdGVzdAo+5ryi5a2XCj7mvKLlrZcKCiBrZXk9ImFiIiQnXDAnImVm IgogenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIGRiYXNlWyRr ZXldPXZhbHVlCiBlY2hvICRkYmFzZVska2V5XQogenVudGllIGRiYXNlCiB6 dGllIC1yIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQogZWNobyAkZGJh c2VbJGtleV0KIHp1bnRpZSAtdSBkYmFzZQogenRpZSAtZCBkYi9nZGJtIC1m ICRkYmZpbGUgZGJhc2UKIGRiYXNlWyRrZXldPSRrZXkKIHp1bnRpZSBkYmFz ZQogenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJhc2UKIFtbICIkZGJh c2VbJGtleV0iID0gIiRrZXkiIF1dICYmIGVjaG8gY29ycmVjdAogenVudGll IGRiYXNlCjA6TWV0YWZpY2F0aW9uIG9mICQnXDAnCj52YWx1ZQo+dmFsdWUK PmNvcnJlY3QKCiB6dGllIC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQog ZGJhc2U9KCDmvKLlrZcg5ryi5a2XICkKIGVjaG8gJGRiYXNlW+a8ouWtl10K IHp1bnRpZSBkYmFzZQogenRpZSAtZCBkYi9nZGJtIC1mICRkYmZpbGUgZGJh c2UKIGVjaG8gJGRiYXNlW+a8ouWtl10KIHp1bnRpZSBkYmFzZQoga2V5PSJh YiIkJ1wwJyJlZiIKIHp0aWUgLWQgZGIvZ2RibSAtZiAkZGJmaWxlIGRiYXNl CiBkYmFzZSs9KCAka2V5ICRrZXkgKQogenVudGllIGRiYXNlCiB6dGllIC1y IC1kIGRiL2dkYm0gLWYgJGRiZmlsZSBkYmFzZQogW1sgIiRkYmFzZVska2V5 XSIgPSAiJGtleSIgXV0gJiYgZWNobyBjb3JyZWN0CiB6dW50aWUgLXUgZGJh c2UKMDpVbmljb2RlICYgbWV0YWZpY2F0aW9uIHRlc3QsIGRpZmZlcmVudCBo YXNoIGFjY2Vzcwo+5ryi5a2XCj7mvKLlrZcKPmNvcnJlY3QKCiVjbGVhbgoK ICBybSAtZiAke2RiZmlsZX0qCg== --_----------=_14871541636153230--