<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>73708</bug_id>
          
          <creation_ts>2011-12-02 14:53:41 -0800</creation_ts>
          <short_desc>Update platform/iphone to platform/ios</short_desc>
          <delta_ts>2011-12-02 15:36:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>514195</commentid>
    <comment_count>0</comment_count>
      <attachid>117700</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-02 14:53:41 -0800</bug_when>
    <thetext>Created attachment 117700
Patch

Patch by Benjamin Poulain &lt;bpoulain@apple.com&gt; on 2011-12-02
Reviewed by NOBODY (OOPS!).

The platform is now best known as iOS, update the platform layer accordingly.

* Configurations/WebCore.xcconfig:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* platform/cocoa/KeyEventCocoa.mm:
* platform/ios/KeyEventCodesIOS.h: Renamed from Source/WebCore/platform/iphone/KeyEventCodesIPhone.h.
* platform/ios/KeyEventIOS.mm: Renamed from Source/WebCore/platform/iphone/KeyEventIPhone.mm.
(WebCore::keyIdentifierForKeyEvent):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
(WebCore::PlatformKeyboardEvent::currentCapsLockState):
(WebCore::PlatformKeyboardEvent::getCurrentModifierState):
---
 9 files changed, 286 insertions(+), 254 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514197</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-02 14:56:14 -0800</bug_when>
    <thetext>Attachment 117700 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Traceback (most recent call last):
  File &quot;Tools/Scripts/check-webkit-style&quot;, line 42, in &lt;module&gt;
    from webkitpy.style.main import CheckWebKitStyle
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/style/main.py&quot;, line 27, in &lt;module&gt;
    import webkitpy.style.checker as checker
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/style/checker.py&quot;, line 40, in &lt;module&gt;
    from checkers.changelog import ChangeLogChecker
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/style/checkers/changelog.py&quot;, line 30, in &lt;module&gt;
    from webkitpy.common.checkout.changelog import parse_bug_id_from_changelog
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/common/checkout/__init__.py&quot;, line 3, in &lt;module&gt;
    from .checkout import Checkout
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/common/checkout/checkout.py&quot;, line 32, in &lt;module&gt;
    from webkitpy.common.checkout.changelog import ChangeLog, parse_bug_id_from_changelog
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/common/checkout/changelog.py&quot;, line 36, in &lt;module&gt;
    from webkitpy.common.config.committers import CommitterList
  File &quot;/mnt/git/webkit-style-queue/Tools/Scripts/webkitpy/common/config/committers.py&quot;, line 135
    Contributor(&quot;Pierre Rossi&quot;, &quot;pierre.rossi@gmail.com&quot;, &quot;elproxy&quot;),
              ^
SyntaxError: invalid syntax


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514231</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-02 15:36:21 -0800</bug_when>
    <thetext>Committed r101867: &lt;http://trac.webkit.org/changeset/101867&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117700</attachid>
            <date>2011-12-02 14:53:41 -0800</date>
            <delta_ts>2011-12-02 15:10:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>20111202145340.patch</filename>
            <type>text/plain</type>
            <size>33284</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIyODhiMmUxNWM0ZDFl
MDgzNzQzNDFiZGE5ZGNhODA5N2QzMjA0Mi4uYTQxM2NkMTg5MTZmNTY3ZDBkNjcxZGQ4NWE0M2Vl
MGRlOTA4N2Y4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTEyLTAyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBwbGF0
Zm9ybS9pcGhvbmUgdG8gcGxhdGZvcm0vaW9zCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIHBsYXRmb3JtIGlzIG5vdyBiZXN0IGtub3duIGFzIGlP
UywgdXBkYXRlIHRoZSBwbGF0Zm9ybSBsYXllciBhY2NvcmRpbmdseS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9L
ZXlFdmVudENvZGVzSU9TLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
cGhvbmUvS2V5RXZlbnRDb2Rlc0lQaG9uZS5oLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9LZXlF
dmVudElPUy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lwaG9uZS9L
ZXlFdmVudElQaG9uZS5tbS4KKyAgICAgICAgKFdlYkNvcmU6OmtleUlkZW50aWZpZXJGb3JLZXlF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmRpc2FtYmlndWF0ZUtleURvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUpOgorCiAyMDExLTEy
LTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAxODMzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggZWM0ZjZkODgxNjUyN2M5NzAwOTEw
NjkwNDA3YTQzMmYyN2JhYzgzNS4uMjdmYmRlZGIyMjM5ZGUwYzc5MjU4ZTM3ZmFkNjc0MmI4YjU0
OWRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29u
ZmlnCkBAIC04Myw2ICs4Myw3IEBAIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX1NWR19ET01f
T0JKQ19CSU5ESU5HU19FTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTID0KIEVYQ0xVREVEX1NP
VVJDRV9GSUxFX05BTUVTID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU18kKFJFQUxfUExB
VEZPUk1fTkFNRSkpICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfU1ZHX0RPTV9PQkpDX0JJ
TkRJTkdTKTsKIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9zID0gKi50aWZmICpD
dXJzb3IucG5nIGxvY2FsaXplZFN0cmluZ3MuanM7CiBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1F
U19pcGhvbmVzaW11bGF0b3IgPSAkKEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9z
KTsKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX21hY29zeCA9ICpJT1MuaCAqSU9TLmNwcCAq
SU9TLm1tCiAKIFNRTElURTNfTElCUkFSWSA9ICQoU1FMSVRFM19MSUJSQVJZXyQoUkVBTF9QTEFU
Rk9STV9OQU1FKSk7CiBTUUxJVEUzX0xJQlJBUllfaXBob25lb3MgPSBzcWxpdGUzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDQxNGQyZTI5NDgwNzM4YjUxMzdiYjgzZDU0NWNmMjllZjkwMjRhNTIuLmNj
NmU4MTM4ZjIxNzdhZGNlZTQ1MmExOGI5M2JmOTI2NTdjZTA1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTQwNzYsOCArNDA3Niw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaW1hZ2Ut
ZW5jb2RlcnMvc2tpYS9XRUJQSW1hZ2VFbmNvZGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9XRUJQSW1hZ2VFbmNvZGVyLmgnLAotICAgICAgICAgICAg
J3BsYXRmb3JtL2lwaG9uZS9LZXlFdmVudENvZGVzSVBob25lLmgnLAotICAgICAgICAgICAgJ3Bs
YXRmb3JtL2lwaG9uZS9LZXlFdmVudElQaG9uZS5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0v
aW9zL0tleUV2ZW50Q29kZXNJT1MuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vaW9zL0tleUV2
ZW50SU9TLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvQXV0b2RyYWluZWRQb29sLm1t
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvQmxvY2tFeGNlcHRpb25zLm1tJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiM2IyMWRhODM0MjMz
MTY4NDI5M2JlNzdjMTYwNjY2MjcwMDgzMWRlLi4zZjE4M2RiZDk4NmM0YWU1ZjQ4NTBmYWJiMGEz
ZmY1NDQ5NDRmNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02NzUsNiArNjc1LDggQEAKIAkJMjRGNTRFQUQxMDFGRTkxNDAw
MEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGlj
YXRpb25DYWNoZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9Owog
CQkyNTQyRjREQTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjU0MkY0RDgxMTY2
QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJMjU0MkY0
REIxMTY2QzI1QTAwRTg5QTg2IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNTQyRjREOTExNjZDMjVBMDBFODlB
ODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZl
bnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLzsgfTsK
KwkJMjY1NTQxM0ExNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY1NTQxMzgxNDg5ODExQzAwMERG
QzVEIC8qIEtleUV2ZW50SU9TLm1tICovOyB9OwogCQkyNkU5OEExMDEzMEE5RkNBMDA4RUI3QjIg
LyogVGV4dENvZGVjQVNDSUlGYXN0UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjZFOThBMEYxMzBBOUZDQTAwOEVCN0IyIC8qIFRleHRDb2RlY0FT
Q0lJRmFzdFBhdGguaCAqLzsgfTsKIAkJMjkxN0I1NjExNDczNDk2QzAwNTJDOUQwIC8qIExheWVy
Rmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjkxN0I1NUUxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIu
Y3BwICovOyB9OwogCQkyOTE3QjU2MjE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVk
dWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkx
N0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzQyMyw4ICszNDI1LDYg
QEAKIAkJQTU3MzJCMEIxMzZBMTYxRDAwNUM4RDdDIC8qIERhdGVDb21wb25lbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTczMkIwOTEzNkExNjFE
MDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLzsgfTsKIAkJQTU3MzJCMEQxMzZBMTZDNDAw
NUM4RDdDIC8qIExvY2FsaXplZERhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1NzMyQjBDMTM2QTE2QzQwMDVDOEQ3QyAvKiBMb2NhbGl6ZWREYXRl
LmggKi87IH07CiAJCUE1NzMyQjBGMTM2QTE3MTUwMDVDOEQ3QyAvKiBMb2NhbGl6ZWREYXRlTm9u
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTcz
MkIwRTEzNkExNzE1MDA1QzhEN0MgLyogTG9jYWxpemVkRGF0ZU5vbmUuY3BwICovOyB9OwotCQlB
NTlFM0MxRTExNTgwRjUxMDA3MjkyOEUgLyogS2V5RXZlbnRDb2Rlc0lQaG9uZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5RTNDMUMxMTU4MEY1MTAw
NzI5MjhFIC8qIEtleUV2ZW50Q29kZXNJUGhvbmUuaCAqLzsgfTsKLQkJQTU5RTNDMUYxMTU4MEY1
MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50
SVBob25lLm1tICovOyB9OwogCQlBNUFCQjc4NzEzQjkwNEJDMDBGMTk3RTMgLyogTGluZUJyZWFr
SXRlcmF0b3JQb29sSUNVLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNUFCQjc4NjEzQjkwNEJDMDBGMTk3RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQb29s
SUNVLmggKi87IH07CiAJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVBRkIzNEQx
MTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgKi87IH07CiAJCUE1QUZCMzUwMTE1MTUx
QTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1QUZCMzRFMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuaCAq
LzsgfTsKQEAgLTc3NzQsNiArNzc3NCw4IEBACiAJCTI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAv
KiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NTQyRjREODExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNTQyRjREOTExNjZDMjVBMDBFODlBODYg
LyogVXNlckdlc3R1cmVJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVXNlckdlc3R1cmVJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBwYXRoID0gaW9zL0tl
eUV2ZW50Q29kZXNJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjY1NTQxMzgx
NDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gS2V5RXZlbnRJT1MubW07IHBhdGggPSBpb3MvS2V5RXZlbnRJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RTk4QTBGMTMwQTlGQ0EwMDhFQjdC
MiAvKiBUZXh0Q29kZWNBU0NJSUZhc3RQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHRDb2RlY0FTQ0lJRmFzdFBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkxN0I1NUUxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGF5ZXJGbHVzaFNjaGVkdWxl
ci5jcHA7IHBhdGggPSBjYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hl
ZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGF5ZXJGbHVzaFNjaGVk
dWxlci5oOyBwYXRoID0gY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTA2MzEsOCArMTA2MzMsNiBAQAogCQlBNTczMkIwOTEzNkExNjFEMDA1
QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGF0ZUNvbXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU3MzJC
MEMxMzZBMTZDNDAwNUM4RDdDIC8qIExvY2FsaXplZERhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTczMkIwRTEzNkExNzE1MDA1QzhEN0MgLyogTG9jYWxpemVkRGF0ZU5vbmUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxpemVkRGF0ZU5vbmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTlFM0MxQzExNTgwRjUxMDA3MjkyOEUg
LyogS2V5RXZlbnRDb2Rlc0lQaG9uZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBLZXlFdmVudENvZGVzSVBob25lLmg7IHBhdGggPSBpcGhvbmUvS2V5RXZlbnRDb2Rlc0lQaG9u
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTlFM0MxRDExNTgwRjUxMDA3Mjky
OEUgLyogS2V5RXZlbnRJUGhvbmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBLZXlFdmVudElQaG9uZS5tbTsgcGF0aCA9IGlwaG9uZS9LZXlFdmVudElQaG9uZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVBQkI3ODYxM0I5MDRCQzAwRjE5N0Uz
IC8qIExpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTVBRkIzNEQxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGVwUmFuZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZXBSYW5nZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc1OTgsMTMgKzE3NTk4LDEzIEBACiAJCQluYW1lID0g
cGFyc2VyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQTU5RTNDMUIxMTU4
MEYzNDAwNzI5MjhFIC8qIGlwaG9uZSAqLyA9IHsKKwkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5MjhF
IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
QTU5RTNDMUMxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50Q29kZXNJUGhvbmUuaCAqLywKLQkJ
CQlBNTlFM0MxRDExNTgwRjUxMDA3MjkyOEUgLyogS2V5RXZlbnRJUGhvbmUubW0gKi8sCisJCQkJ
MjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLywKKwkJCQky
NjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8sCiAJCQkpOwotCQkJ
bmFtZSA9IGlwaG9uZTsKKwkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OwogCQlBNUM5NzRDRTExNDg1RkRBMDA2NkYyQUIgLyogY29jb2EgKi8gPSB7CkBAIC0y
MDA2MSw3ICsyMDA2MSw3IEBACiAJCQkJMUFFNDJGNjcwQUE0QjhDQjAwQzg2MTJEIC8qIGNmICov
LAogCQkJCUE1Qzk3NENFMTE0ODVGREEwMDY2RjJBQiAvKiBjb2NvYSAqLywKIAkJCQlCMkEwMTU5
MTBBRjZDRDUzMDA2QkNFMEUgLyogZ3JhcGhpY3MgKi8sCi0JCQkJQTU5RTNDMUIxMTU4MEYzNDAw
NzI5MjhFIC8qIGlwaG9uZSAqLywKKwkJCQlBNTlFM0MxQjExNTgwRjM0MDA3MjkyOEUgLyogaW9z
ICovLAogCQkJCThDQURGMkEyMTM1QzdCMzYwMDlFRjQzRiAvKiBsZXZlbGRiICovLAogCQkJCTY1
ODJBMTQ4MDk5OTlENkMwMEJFRUI2RCAvKiBtYWMgKi8sCiAJCQkJNTlDNzdGMTAxMDU0NTkxQzAw
NTA2MTA0IC8qIG1vY2sgKi8sCkBAIC0yMzYwNCw3ICsyMzYwNCw2IEBACiAJCQkJQkNFRkUxRUIw
RENBNUY2NDAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODUwMzFCNDQwQTQ0RUZDNzAwRjk5MkUwIC8qIEtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1MTNCM0Q3MTE0QjE2NjYwMDFDNDI5QiAvKiBLZXlFdmVudENvY29hLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBNTlFM0MxRTExNTgwRjUxMDA3MjkyOEUgLyogS2V5RXZlbnRDb2Rlc0lQ
aG9uZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtl
eWZyYW1lQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQkExMTBFODIzRTQ3MDBC
MjU5NjUgLyogS2V5ZnJhbWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjFENDZGODExQUVD
OUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3NDUsNiArMjQ3
NDQsNyBAQAogCQkJCTUwMzhCRjJCMTQ3NTBGMTkwMDk1RTBEMSAvKiBGaWx0ZXJPcGVyYXRpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTNGQUQzOTE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJH
TENvbXByZXNzZWRUZXh0dXJlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFFOEYxNDczM0ZE
QjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkyNjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yNjY5NCw3ICsyNjY5NCw2IEBACiAJCQkJQkNFRkUxRTUwRENBNUYzMzAwNzM5
MjE5IC8qIEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAz
MUI0MzBBNDRFRkM3MDBGOTkyRTAgLyogS2V5Ym9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNTEzQjNEODExNEIxNjZBMDAxQzQyOUIgLyogS2V5RXZlbnRDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCUE1OUUzQzFGMTE1ODBGNTEwMDcyOTI4RSAvKiBLZXlFdmVudElQaG9uZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTkzNUM0NzcwMDlBQzRENzMwMEE2QUFCNCAvKiBLZXlFdmVu
dE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNkZFMTE5MEU2RTFEQTcwMEJGNjA4OCAvKiBL
ZXlmcmFtZUFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQkExMDBFODIzRTQ3
MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc2MTksNiAr
Mjc2MTgsNyBAQAogCQkJCTUwMzhCRjJBMTQ3NTBGMTkwMDk1RTBEMSAvKiBGaWx0ZXJPcGVyYXRp
b25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFM0ZBRDM4MTQ3MzNGNDAwMEU0MjMwNiAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFM0ZBRThF
MTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkyNjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tl
eUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENv
Y29hLm1tCmluZGV4IGEyYjVjOWMzYzQ1NmFkMTA0M2IyMTViMDFjNDA2NGI2NGUxOGUyOTAuLjI3
YjA0YWVjZWJlZjhmMDgzZTRiOGIyZTg1ZTJjOTg2OWRmNjE2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpAQCAtMzIsNyArMzIsNyBAQAog
I2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKLSNpbXBvcnQg
IktleUV2ZW50Q29kZXNJUGhvbmUuaCIKKyNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIKICNl
bmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0tleUV2ZW50Q29kZXNJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9LZXlFdmVudENvZGVzSU9TLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZjZTgwYTg5YTY2NDAxNGI1NGEz
Yjc0NDIyMDY2YWFlZDZkMzUzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9LZXlFdmVudENvZGVzSU9TLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgS2V5RXZlbnRDb2Rlc0lPU19o
CisjZGVmaW5lIEtleUV2ZW50Q29kZXNJT1NfaAorCisvLyBVbmljb2RlcyB3ZSByZXNlcnZlIGZv
ciBmdW5jdGlvbiBrZXlzIG9uIHRoZSBrZXlib2FyZCwKKy8vIE9wZW5TdGVwIHJlc2VydmVzIHRo
ZSByYW5nZSAweEY3MDAtMHhGOEZGIGZvciB0aGlzIHB1cnBvc2UuCisvLyBUaGUgYXZhaWxhYmls
aXR5IG9mIHZhcmlvdXMga2V5cyB3aWxsIGJlIHN5c3RlbSBkZXBlbmRlbnQuCisKK2VudW0gewor
ICAgIE5TVXBBcnJvd0Z1bmN0aW9uS2V5ICAgICAgPSAweEY3MDAsCisgICAgTlNEb3duQXJyb3dG
dW5jdGlvbktleSAgICA9IDB4RjcwMSwKKyAgICBOU0xlZnRBcnJvd0Z1bmN0aW9uS2V5ICAgID0g
MHhGNzAyLAorICAgIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5ICAgPSAweEY3MDMsCisgICAgTlNG
MUZ1bmN0aW9uS2V5ICAgICAgICAgICA9IDB4RjcwNCwKKyAgICBOU0YyRnVuY3Rpb25LZXkgICAg
ICAgICAgID0gMHhGNzA1LAorICAgIE5TRjNGdW5jdGlvbktleSAgICAgICAgICAgPSAweEY3MDYs
CisgICAgTlNGNEZ1bmN0aW9uS2V5ICAgICAgICAgICA9IDB4RjcwNywKKyAgICBOU0Y1RnVuY3Rp
b25LZXkgICAgICAgICAgID0gMHhGNzA4LAorICAgIE5TRjZGdW5jdGlvbktleSAgICAgICAgICAg
PSAweEY3MDksCisgICAgTlNGN0Z1bmN0aW9uS2V5ICAgICAgICAgICA9IDB4RjcwQSwKKyAgICBO
U0Y4RnVuY3Rpb25LZXkgICAgICAgICAgID0gMHhGNzBCLAorICAgIE5TRjlGdW5jdGlvbktleSAg
ICAgICAgICAgPSAweEY3MEMsCisgICAgTlNGMTBGdW5jdGlvbktleSAgICAgICAgICA9IDB4Rjcw
RCwKKyAgICBOU0YxMUZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzBFLAorICAgIE5TRjEyRnVu
Y3Rpb25LZXkgICAgICAgICAgPSAweEY3MEYsCisgICAgTlNGMTNGdW5jdGlvbktleSAgICAgICAg
ICA9IDB4RjcxMCwKKyAgICBOU0YxNEZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzExLAorICAg
IE5TRjE1RnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MTIsCisgICAgTlNGMTZGdW5jdGlvbktl
eSAgICAgICAgICA9IDB4RjcxMywKKyAgICBOU0YxN0Z1bmN0aW9uS2V5ICAgICAgICAgID0gMHhG
NzE0LAorICAgIE5TRjE4RnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MTUsCisgICAgTlNGMTlG
dW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxNiwKKyAgICBOU0YyMEZ1bmN0aW9uS2V5ICAgICAg
ICAgID0gMHhGNzE3LAorICAgIE5TRjIxRnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MTgsCisg
ICAgTlNGMjJGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxOSwKKyAgICBOU0YyM0Z1bmN0aW9u
S2V5ICAgICAgICAgID0gMHhGNzFBLAorICAgIE5TRjI0RnVuY3Rpb25LZXkgICAgICAgICAgPSAw
eEY3MUIsCisgICAgTlNGMjVGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxQywKKyAgICBOU0Yy
NkZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzFELAorICAgIE5TRjI3RnVuY3Rpb25LZXkgICAg
ICAgICAgPSAweEY3MUUsCisgICAgTlNGMjhGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxRiwK
KyAgICBOU0YyOUZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzIwLAorICAgIE5TRjMwRnVuY3Rp
b25LZXkgICAgICAgICAgPSAweEY3MjEsCisgICAgTlNGMzFGdW5jdGlvbktleSAgICAgICAgICA9
IDB4RjcyMiwKKyAgICBOU0YzMkZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzIzLAorICAgIE5T
RjMzRnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MjQsCisgICAgTlNGMzRGdW5jdGlvbktleSAg
ICAgICAgICA9IDB4RjcyNSwKKyAgICBOU0YzNUZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzI2
LAorICAgIE5TSW5zZXJ0RnVuY3Rpb25LZXkgICAgICAgPSAweEY3MjcsCisgICAgTlNEZWxldGVG
dW5jdGlvbktleSAgICAgICA9IDB4RjcyOCwKKyAgICBOU0hvbWVGdW5jdGlvbktleSAgICAgICAg
ID0gMHhGNzI5LAorICAgIE5TQmVnaW5GdW5jdGlvbktleSAgICAgICAgPSAweEY3MkEsCisgICAg
TlNFbmRGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcyQiwKKyAgICBOU1BhZ2VVcEZ1bmN0aW9u
S2V5ICAgICAgID0gMHhGNzJDLAorICAgIE5TUGFnZURvd25GdW5jdGlvbktleSAgICAgPSAweEY3
MkQsCisgICAgTlNQcmludFNjcmVlbkZ1bmN0aW9uS2V5ICA9IDB4RjcyRSwKKyAgICBOU1Njcm9s
bExvY2tGdW5jdGlvbktleSAgID0gMHhGNzJGLAorICAgIE5TUGF1c2VGdW5jdGlvbktleSAgICAg
ICAgPSAweEY3MzAsCisgICAgTlNTeXNSZXFGdW5jdGlvbktleSAgICAgICA9IDB4RjczMSwKKyAg
ICBOU0JyZWFrRnVuY3Rpb25LZXkgICAgICAgID0gMHhGNzMyLAorICAgIE5TUmVzZXRGdW5jdGlv
bktleSAgICAgICAgPSAweEY3MzMsCisgICAgTlNTdG9wRnVuY3Rpb25LZXkgICAgICAgICA9IDB4
RjczNCwKKyAgICBOU01lbnVGdW5jdGlvbktleSAgICAgICAgID0gMHhGNzM1LAorICAgIE5TVXNl
ckZ1bmN0aW9uS2V5ICAgICAgICAgPSAweEY3MzYsCisgICAgTlNTeXN0ZW1GdW5jdGlvbktleSAg
ICAgICA9IDB4RjczNywKKyAgICBOU1ByaW50RnVuY3Rpb25LZXkgICAgICAgID0gMHhGNzM4LAor
ICAgIE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXkgICAgPSAweEY3MzksCisgICAgTlNDbGVhckRpc3Bs
YXlGdW5jdGlvbktleSA9IDB4RjczQSwKKyAgICBOU0luc2VydExpbmVGdW5jdGlvbktleSAgID0g
MHhGNzNCLAorICAgIE5TRGVsZXRlTGluZUZ1bmN0aW9uS2V5ICAgPSAweEY3M0MsCisgICAgTlNJ
bnNlcnRDaGFyRnVuY3Rpb25LZXkgICA9IDB4RjczRCwKKyAgICBOU0RlbGV0ZUNoYXJGdW5jdGlv
bktleSAgID0gMHhGNzNFLAorICAgIE5TUHJldkZ1bmN0aW9uS2V5ICAgICAgICAgPSAweEY3M0Ys
CisgICAgTlNOZXh0RnVuY3Rpb25LZXkgICAgICAgICA9IDB4Rjc0MCwKKyAgICBOU1NlbGVjdEZ1
bmN0aW9uS2V5ICAgICAgID0gMHhGNzQxLAorICAgIE5TRXhlY3V0ZUZ1bmN0aW9uS2V5ICAgICAg
PSAweEY3NDIsCisgICAgTlNVbmRvRnVuY3Rpb25LZXkgICAgICAgICA9IDB4Rjc0MywKKyAgICBO
U1JlZG9GdW5jdGlvbktleSAgICAgICAgID0gMHhGNzQ0LAorICAgIE5TRmluZEZ1bmN0aW9uS2V5
ICAgICAgICAgPSAweEY3NDUsCisgICAgTlNIZWxwRnVuY3Rpb25LZXkgICAgICAgICA9IDB4Rjc0
NiwKKyAgICBOU01vZGVTd2l0Y2hGdW5jdGlvbktleSAgID0gMHhGNzQ3Cit9OworCitlbnVtIHsK
KyAgICBOU1BhcmFncmFwaFNlcGFyYXRvckNoYXJhY3RlciA9IDB4MjAyOSwKKyAgICBOU0xpbmVT
ZXBhcmF0b3JDaGFyYWN0ZXIgPSAweDIwMjgsCisgICAgTlNUYWJDaGFyYWN0ZXIgPSAweDAwMDks
CisgICAgTlNGb3JtRmVlZENoYXJhY3RlciA9IDB4MDAwYywKKyAgICBOU05ld2xpbmVDaGFyYWN0
ZXIgPSAweDAwMGEsCisgICAgTlNDYXJyaWFnZVJldHVybkNoYXJhY3RlciA9IDB4MDAwZCwKKyAg
ICBOU0VudGVyQ2hhcmFjdGVyID0gMHgwMDAzLAorICAgIE5TQmFja3NwYWNlQ2hhcmFjdGVyID0g
MHgwMDA4LAorICAgIE5TQmFja1RhYkNoYXJhY3RlciA9IDB4MDAxOSwKKyAgICBOU0RlbGV0ZUNo
YXJhY3RlciA9IDB4MDA3ZgorfTsKKworI2VuZGlmIC8vIEtleUV2ZW50Q29kZXNJT1NfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkODI1
NmJjN2U0NWEyZDdiMGNmZjY3ZTY4NDRkM2UwOWJkOTI3M2YKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KQEAgLTAsMCArMSwxMzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpZiBQTEFURk9STShJ
T1MpCisKKyNpbXBvcnQgIktleUV2ZW50Q29jb2EuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNp
bXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1wb3J0ICJXZWJFdmVudC5oIgorCit1c2luZyBu
YW1lc3BhY2UgV1RGOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBTdHJpbmcga2V5
SWRlbnRpZmllckZvcktleUV2ZW50KFdlYkV2ZW50ICpldmVudCkKK3sKKyAgICBOU1N0cmluZyAq
cyA9IGV2ZW50LmNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczsKKyAgICBpZiAoW3MgbGVuZ3Ro
XSAhPSAxKSB7CisgICAgICAgIExPRyhFdmVudHMsICJyZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG51
bWJlciBvZiBjaGFyYWN0ZXJzIGluIGtleSBldmVudDogJXUiLCBbcyBsZW5ndGhdKTsKKyAgICAg
ICAgcmV0dXJuICJVbmlkZW50aWZpZWQiOworICAgIH0KKworICAgIHVuaWNoYXIgYyA9IENGU3Ry
aW5nR2V0Q2hhcmFjdGVyQXRJbmRleCgoQ0ZTdHJpbmdSZWYpcywgMCk7CisgICAgcmV0dXJuIGtl
eUlkZW50aWZpZXJGb3JDaGFyQ29kZShjKTsKK30KKworUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQorICAgIDogbV90eXBlKGV2ZW50
LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6S2V5VXAgOiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OktleURvd24pCisgICAgLCBtX3RleHQoZXZlbnQuY2hhcmFj
dGVycykKKyAgICAsIG1fdW5tb2RpZmllZFRleHQoZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9k
aWZpZXJzKQorICAgICwgbV9rZXlJZGVudGlmaWVyKGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChl
dmVudCkpCisgICAgLCBtX2F1dG9SZXBlYXQoZXZlbnQuaXNLZXlSZXBlYXRpbmcpCisgICAgLCBt
X3dpbmRvd3NWaXJ0dWFsS2V5Q29kZShldmVudC5rZXlDb2RlKQorICAgICwgbV9pc0tleXBhZChm
YWxzZSkgLy8gaVBob25lIGRvZXMgbm90IGRpc3Rpbmd1aXNoIHRoZSBudW1wYWQgPHJkYXI6Ly9w
cm9ibGVtLzcxOTA4MzU+CisgICAgLCBtX3NoaWZ0S2V5KGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBX
ZWJFdmVudEZsYWdNYXNrU2hpZnQpCisgICAgLCBtX2N0cmxLZXkoZXZlbnQubW9kaWZpZXJGbGFn
cyAmIFdlYkV2ZW50RmxhZ01hc2tDb250cm9sKQorICAgICwgbV9hbHRLZXkoZXZlbnQubW9kaWZp
ZXJGbGFncyAmIFdlYkV2ZW50RmxhZ01hc2tBbHRlcm5hdGUpCisgICAgLCBtX21ldGFLZXkoZXZl
bnQubW9kaWZpZXJGbGFncyAmIFdlYkV2ZW50RmxhZ01hc2tDb21tYW5kKQorICAgICwgbV9FdmVu
dChldmVudCkKK3sKKyAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBXZWJFdmVudEtleURvd24gfHwg
ZXZlbnQudHlwZSA9PSBXZWJFdmVudEtleVVwKTsKKworICAgIC8vIEFsd2F5cyB1c2UgMTMgZm9y
IEVudGVyL1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQg
Y2hhcmFjdGVyIGZvciBFbnRlci4KKyAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0g
J1xyJykgeworICAgICAgICBtX3RleHQgPSAiXHIiOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0
ID0gIlxyIjsKKyAgICB9CisKKyAgICAvLyBUaGUgYWRqdXN0bWVudHMgYmVsb3cgYXJlIG9ubHkg
bmVlZGVkIGluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgbW9kZSwgYnV0IHdlIGNhbm5vdCB0ZWxs
IHdoYXQgbW9kZSB3ZSBhcmUgaW4gZnJvbSBoZXJlLgorCisgICAgLy8gVHVybiAweDdGIGludG8g
OCwgYmVjYXVzZSBiYWNrc3BhY2UgbmVlZHMgdG8gYWx3YXlzIGJlIDguCisgICAgaWYgKG1fdGV4
dCA9PSAiXHg3RiIpCisgICAgICAgIG1fdGV4dCA9ICJceDgiOworICAgIGlmIChtX3VubW9kaWZp
ZWRUZXh0ID09ICJceDdGIikKKyAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDgiOworICAg
IC8vIEFsd2F5cyB1c2UgOSBmb3IgdGFiIC0tIHdlIGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdz
IGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIHNoaWZ0LXRhYi4KKyAgICBpZiAobV93aW5kb3dzVmly
dHVhbEtleUNvZGUgPT0gOSkgeworICAgICAgICBtX3RleHQgPSAiXHg5IjsKKyAgICAgICAgbV91
bm1vZGlmaWVkVGV4dCA9ICJceDkiOworICAgIH0KK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRD
b21wYXRpYmlsaXR5TW9kZSkKK3sKKyAgICAvLyBDYW4gb25seSBjaGFuZ2UgdHlwZSBmcm9tIEtl
eURvd24gdG8gUmF3S2V5RG93biBvciBDaGFyLCBhcyB3ZSBsYWNrIGluZm9ybWF0aW9uIGZvciBv
dGhlciBjb252ZXJzaW9ucy4KKyAgICBBU1NFUlQobV90eXBlID09IEtleURvd24pOworICAgIEFT
U0VSVCh0eXBlID09IFJhd0tleURvd24gfHwgdHlwZSA9PSBDaGFyKTsKKyAgICBtX3R5cGUgPSB0
eXBlOworICAgIGlmIChiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAodHlwZSA9PSBSYXdLZXlEb3duKSB7CisgICAgICAgIG1fdGV4dCA9IFN0cmlu
ZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7CisgICAgICAgIG1fd2luZG93c1Zp
cnR1YWxLZXlDb2RlID0gMDsKKyAgICAgICAgaWYgKG1fdGV4dC5sZW5ndGgoKSA9PSAxICYmICht
X3RleHRbMFVdID49IDB4RjcwMCAmJiBtX3RleHRbMFVdIDw9IDB4RjdGRikpIHsKKyAgICAgICAg
ICAgIC8vIEFjY29yZGluZyB0byBOU0V2ZW50cy5oLCBPcGVuU3RlcCByZXNlcnZlcyB0aGUgcmFu
Z2UgMHhGNzAwLTB4RjhGRiBmb3IgZnVuY3Rpb24ga2V5cy4gSG93ZXZlciwgc29tZSBhY3R1YWwg
cHJpdmF0ZSB1c2UgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gaGFwcGVuIHRvIGJlIGluIHRo
aXMgcmFuZ2UsIGUuZy4gdGhlIEFwcGxlIGxvZ28gKE9wdGlvbitTaGlmdCtLKS4KKyAgICAgICAg
ICAgIC8vIDB4RjdGRiBpcyBhbiBhcmJpdHJhcnkgY3V0LW9mZi4KKyAgICAgICAgICAgIG1fdGV4
dCA9IFN0cmluZygpOworICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOwor
ICAgICAgICB9CisgICAgfQorfQorCitib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVu
dENhcHNMb2NrU3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVy
U3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYg
bWV0YUtleSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHNoaWZ0S2V5ID0gZmFsc2U7
CisgICAgY3RybEtleSA9IGZhbHNlOworICAgIGFsdEtleSA9IGZhbHNlOworICAgIG1ldGFLZXkg
PSBmYWxzZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaXBob25lL0tleUV2ZW50Q29kZXNJUGhvbmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lwaG9uZS9LZXlFdmVudENvZGVzSVBob25lLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MGQ3MDg5Y2Q3MGNjODVjNjc3ZmNmMzU3NDc1Zjcx
NWFmZDhiZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaXBob25lL0tleUV2ZW50Q29kZXNJUGhvbmUuaAorKysg
L2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIEtleUV2ZW50Q29kZXNJUGhvbmVfaAotI2RlZmluZSBLZXlFdmVu
dENvZGVzSVBob25lX2gKLQotLy8gVW5pY29kZXMgd2UgcmVzZXJ2ZSBmb3IgZnVuY3Rpb24ga2V5
cyBvbiB0aGUga2V5Ym9hcmQsCi0vLyBPcGVuU3RlcCByZXNlcnZlcyB0aGUgcmFuZ2UgMHhGNzAw
LTB4RjhGRiBmb3IgdGhpcyBwdXJwb3NlLgotLy8gVGhlIGF2YWlsYWJpbGl0eSBvZiB2YXJpb3Vz
IGtleXMgd2lsbCBiZSBzeXN0ZW0gZGVwZW5kZW50LgotCi1lbnVtIHsKLSAgICBOU1VwQXJyb3dG
dW5jdGlvbktleSAgICAgID0gMHhGNzAwLAotICAgIE5TRG93bkFycm93RnVuY3Rpb25LZXkgICAg
PSAweEY3MDEsCi0gICAgTlNMZWZ0QXJyb3dGdW5jdGlvbktleSAgICA9IDB4RjcwMiwKLSAgICBO
U1JpZ2h0QXJyb3dGdW5jdGlvbktleSAgID0gMHhGNzAzLAotICAgIE5TRjFGdW5jdGlvbktleSAg
ICAgICAgICAgPSAweEY3MDQsCi0gICAgTlNGMkZ1bmN0aW9uS2V5ICAgICAgICAgICA9IDB4Rjcw
NSwKLSAgICBOU0YzRnVuY3Rpb25LZXkgICAgICAgICAgID0gMHhGNzA2LAotICAgIE5TRjRGdW5j
dGlvbktleSAgICAgICAgICAgPSAweEY3MDcsCi0gICAgTlNGNUZ1bmN0aW9uS2V5ICAgICAgICAg
ICA9IDB4RjcwOCwKLSAgICBOU0Y2RnVuY3Rpb25LZXkgICAgICAgICAgID0gMHhGNzA5LAotICAg
IE5TRjdGdW5jdGlvbktleSAgICAgICAgICAgPSAweEY3MEEsCi0gICAgTlNGOEZ1bmN0aW9uS2V5
ICAgICAgICAgICA9IDB4RjcwQiwKLSAgICBOU0Y5RnVuY3Rpb25LZXkgICAgICAgICAgID0gMHhG
NzBDLAotICAgIE5TRjEwRnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MEQsCi0gICAgTlNGMTFG
dW5jdGlvbktleSAgICAgICAgICA9IDB4RjcwRSwKLSAgICBOU0YxMkZ1bmN0aW9uS2V5ICAgICAg
ICAgID0gMHhGNzBGLAotICAgIE5TRjEzRnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MTAsCi0g
ICAgTlNGMTRGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxMSwKLSAgICBOU0YxNUZ1bmN0aW9u
S2V5ICAgICAgICAgID0gMHhGNzEyLAotICAgIE5TRjE2RnVuY3Rpb25LZXkgICAgICAgICAgPSAw
eEY3MTMsCi0gICAgTlNGMTdGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxNCwKLSAgICBOU0Yx
OEZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzE1LAotICAgIE5TRjE5RnVuY3Rpb25LZXkgICAg
ICAgICAgPSAweEY3MTYsCi0gICAgTlNGMjBGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcxNywK
LSAgICBOU0YyMUZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzE4LAotICAgIE5TRjIyRnVuY3Rp
b25LZXkgICAgICAgICAgPSAweEY3MTksCi0gICAgTlNGMjNGdW5jdGlvbktleSAgICAgICAgICA9
IDB4RjcxQSwKLSAgICBOU0YyNEZ1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzFCLAotICAgIE5T
RjI1RnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MUMsCi0gICAgTlNGMjZGdW5jdGlvbktleSAg
ICAgICAgICA9IDB4RjcxRCwKLSAgICBOU0YyN0Z1bmN0aW9uS2V5ICAgICAgICAgID0gMHhGNzFF
LAotICAgIE5TRjI4RnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MUYsCi0gICAgTlNGMjlGdW5j
dGlvbktleSAgICAgICAgICA9IDB4RjcyMCwKLSAgICBOU0YzMEZ1bmN0aW9uS2V5ICAgICAgICAg
ID0gMHhGNzIxLAotICAgIE5TRjMxRnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3MjIsCi0gICAg
TlNGMzJGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcyMywKLSAgICBOU0YzM0Z1bmN0aW9uS2V5
ICAgICAgICAgID0gMHhGNzI0LAotICAgIE5TRjM0RnVuY3Rpb25LZXkgICAgICAgICAgPSAweEY3
MjUsCi0gICAgTlNGMzVGdW5jdGlvbktleSAgICAgICAgICA9IDB4RjcyNiwKLSAgICBOU0luc2Vy
dEZ1bmN0aW9uS2V5ICAgICAgID0gMHhGNzI3LAotICAgIE5TRGVsZXRlRnVuY3Rpb25LZXkgICAg
ICAgPSAweEY3MjgsCi0gICAgTlNIb21lRnVuY3Rpb25LZXkgICAgICAgICA9IDB4RjcyOSwKLSAg
ICBOU0JlZ2luRnVuY3Rpb25LZXkgICAgICAgID0gMHhGNzJBLAotICAgIE5TRW5kRnVuY3Rpb25L
ZXkgICAgICAgICAgPSAweEY3MkIsCi0gICAgTlNQYWdlVXBGdW5jdGlvbktleSAgICAgICA9IDB4
RjcyQywKLSAgICBOU1BhZ2VEb3duRnVuY3Rpb25LZXkgICAgID0gMHhGNzJELAotICAgIE5TUHJp
bnRTY3JlZW5GdW5jdGlvbktleSAgPSAweEY3MkUsCi0gICAgTlNTY3JvbGxMb2NrRnVuY3Rpb25L
ZXkgICA9IDB4RjcyRiwKLSAgICBOU1BhdXNlRnVuY3Rpb25LZXkgICAgICAgID0gMHhGNzMwLAot
ICAgIE5TU3lzUmVxRnVuY3Rpb25LZXkgICAgICAgPSAweEY3MzEsCi0gICAgTlNCcmVha0Z1bmN0
aW9uS2V5ICAgICAgICA9IDB4RjczMiwKLSAgICBOU1Jlc2V0RnVuY3Rpb25LZXkgICAgICAgID0g
MHhGNzMzLAotICAgIE5TU3RvcEZ1bmN0aW9uS2V5ICAgICAgICAgPSAweEY3MzQsCi0gICAgTlNN
ZW51RnVuY3Rpb25LZXkgICAgICAgICA9IDB4RjczNSwKLSAgICBOU1VzZXJGdW5jdGlvbktleSAg
ICAgICAgID0gMHhGNzM2LAotICAgIE5TU3lzdGVtRnVuY3Rpb25LZXkgICAgICAgPSAweEY3Mzcs
Ci0gICAgTlNQcmludEZ1bmN0aW9uS2V5ICAgICAgICA9IDB4RjczOCwKLSAgICBOU0NsZWFyTGlu
ZUZ1bmN0aW9uS2V5ICAgID0gMHhGNzM5LAotICAgIE5TQ2xlYXJEaXNwbGF5RnVuY3Rpb25LZXkg
PSAweEY3M0EsCi0gICAgTlNJbnNlcnRMaW5lRnVuY3Rpb25LZXkgICA9IDB4RjczQiwKLSAgICBO
U0RlbGV0ZUxpbmVGdW5jdGlvbktleSAgID0gMHhGNzNDLAotICAgIE5TSW5zZXJ0Q2hhckZ1bmN0
aW9uS2V5ICAgPSAweEY3M0QsCi0gICAgTlNEZWxldGVDaGFyRnVuY3Rpb25LZXkgICA9IDB4Rjcz
RSwKLSAgICBOU1ByZXZGdW5jdGlvbktleSAgICAgICAgID0gMHhGNzNGLAotICAgIE5TTmV4dEZ1
bmN0aW9uS2V5ICAgICAgICAgPSAweEY3NDAsCi0gICAgTlNTZWxlY3RGdW5jdGlvbktleSAgICAg
ICA9IDB4Rjc0MSwKLSAgICBOU0V4ZWN1dGVGdW5jdGlvbktleSAgICAgID0gMHhGNzQyLAotICAg
IE5TVW5kb0Z1bmN0aW9uS2V5ICAgICAgICAgPSAweEY3NDMsCi0gICAgTlNSZWRvRnVuY3Rpb25L
ZXkgICAgICAgICA9IDB4Rjc0NCwKLSAgICBOU0ZpbmRGdW5jdGlvbktleSAgICAgICAgID0gMHhG
NzQ1LAotICAgIE5TSGVscEZ1bmN0aW9uS2V5ICAgICAgICAgPSAweEY3NDYsCi0gICAgTlNNb2Rl
U3dpdGNoRnVuY3Rpb25LZXkgICA9IDB4Rjc0NwotfTsKLQotZW51bSB7Ci0gICAgTlNQYXJhZ3Jh
cGhTZXBhcmF0b3JDaGFyYWN0ZXIgPSAweDIwMjksCi0gICAgTlNMaW5lU2VwYXJhdG9yQ2hhcmFj
dGVyID0gMHgyMDI4LAotICAgIE5TVGFiQ2hhcmFjdGVyID0gMHgwMDA5LAotICAgIE5TRm9ybUZl
ZWRDaGFyYWN0ZXIgPSAweDAwMGMsCi0gICAgTlNOZXdsaW5lQ2hhcmFjdGVyID0gMHgwMDBhLAot
ICAgIE5TQ2FycmlhZ2VSZXR1cm5DaGFyYWN0ZXIgPSAweDAwMGQsCi0gICAgTlNFbnRlckNoYXJh
Y3RlciA9IDB4MDAwMywKLSAgICBOU0JhY2tzcGFjZUNoYXJhY3RlciA9IDB4MDAwOCwKLSAgICBO
U0JhY2tUYWJDaGFyYWN0ZXIgPSAweDAwMTksCi0gICAgTlNEZWxldGVDaGFyYWN0ZXIgPSAweDAw
N2YKLX07Ci0KLSNlbmRpZiAvLyBLZXlFdmVudENvZGVzSVBob25lX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lwaG9uZS9LZXlFdmVudElQaG9uZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lwaG9uZS9LZXlFdmVudElQaG9uZS5tbQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2UwMjFiNTRkYmExNGFmMmQ1ZTM0MmE5ZjYyNDY0ZDExNjc3Y2JhMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pcGhvbmUvS2V5RXZlbnRJUGhvbmUubW0KKysrIC9kZXYvbnVsbApAQCAt
MSwxMTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lt
cG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLQotI2lm
IFBMQVRGT1JNKElPUykKLQotI2ltcG9ydCAiS2V5RXZlbnRDb2NvYS5oIgotI2ltcG9ydCAiTG9n
Z2luZy5oIgotI2ltcG9ydCAiV2ViRXZlbnQuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdURjsKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlF
dmVudChXZWJFdmVudCAqZXZlbnQpCi17Ci0gICAgTlNTdHJpbmcgKnMgPSBldmVudC5jaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnM7Ci0gICAgaWYgKFtzIGxlbmd0aF0gIT0gMSkgewotICAgICAg
ICBMT0coRXZlbnRzLCAicmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBudW1iZXIgb2YgY2hhcmFjdGVy
cyBpbiBrZXkgZXZlbnQ6ICV1IiwgW3MgbGVuZ3RoXSk7Ci0gICAgICAgIHJldHVybiAiVW5pZGVu
dGlmaWVkIjsKLSAgICB9Ci0KLSAgICB1bmljaGFyIGMgPSBDRlN0cmluZ0dldENoYXJhY3RlckF0
SW5kZXgoKENGU3RyaW5nUmVmKXMsIDApOwotICAgIHJldHVybiBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUoYyk7Ci19Ci0KLVBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50KFdlYkV2ZW50ICpldmVudCkKLSAgICA6IG1fdHlwZShldmVudC50eXBlID09IFdlYkV2ZW50
S2V5VXAgPyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OktleVVwIDogUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpLZXlEb3duKQotICAgICwgbV90ZXh0KGV2ZW50LmNoYXJhY3RlcnMpCi0gICAgLCBtX3Vu
bW9kaWZpZWRUZXh0KGV2ZW50LmNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycykKLSAgICAsIG1f
a2V5SWRlbnRpZmllcihrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoZXZlbnQpKQotICAgICwgbV9h
dXRvUmVwZWF0KGV2ZW50LmlzS2V5UmVwZWF0aW5nKQotICAgICwgbV93aW5kb3dzVmlydHVhbEtl
eUNvZGUoZXZlbnQua2V5Q29kZSkKLSAgICAsIG1faXNLZXlwYWQoZmFsc2UpIC8vIGlQaG9uZSBk
b2VzIG5vdCBkaXN0aW5ndWlzaCB0aGUgbnVtcGFkIDxyZGFyOi8vcHJvYmxlbS83MTkwODM1Pgot
ICAgICwgbV9zaGlmdEtleShldmVudC5tb2RpZmllckZsYWdzICYgV2ViRXZlbnRGbGFnTWFza1No
aWZ0KQotICAgICwgbV9jdHJsS2V5KGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBXZWJFdmVudEZsYWdN
YXNrQ29udHJvbCkKLSAgICAsIG1fYWx0S2V5KGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBXZWJFdmVu
dEZsYWdNYXNrQWx0ZXJuYXRlKQotICAgICwgbV9tZXRhS2V5KGV2ZW50Lm1vZGlmaWVyRmxhZ3Mg
JiBXZWJFdmVudEZsYWdNYXNrQ29tbWFuZCkKLSAgICAsIG1fRXZlbnQoZXZlbnQpCi17Ci0gICAg
QVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlEb3duIHx8IGV2ZW50LnR5cGUgPT0gV2Vi
RXZlbnRLZXlVcCk7Ci0KLSAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0g
d2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50
ZXIuCi0gICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID09ICdccicpIHsKLSAgICAgICAg
bV90ZXh0ID0gIlxyIjsKLSAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJcciI7Ci0gICAgfQot
Ci0gICAgLy8gVGhlIGFkanVzdG1lbnRzIGJlbG93IGFyZSBvbmx5IG5lZWRlZCBpbiBiYWNrd2Fy
ZCBjb21wYXRpYmlsaXR5IG1vZGUsIGJ1dCB3ZSBjYW5ub3QgdGVsbCB3aGF0IG1vZGUgd2UgYXJl
IGluIGZyb20gaGVyZS4KLQotICAgIC8vIFR1cm4gMHg3RiBpbnRvIDgsIGJlY2F1c2UgYmFja3Nw
YWNlIG5lZWRzIHRvIGFsd2F5cyBiZSA4LgotICAgIGlmIChtX3RleHQgPT0gIlx4N0YiKQotICAg
ICAgICBtX3RleHQgPSAiXHg4IjsKLSAgICBpZiAobV91bm1vZGlmaWVkVGV4dCA9PSAiXHg3RiIp
Ci0gICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHg4IjsKLSAgICAvLyBBbHdheXMgdXNlIDkg
Zm9yIHRhYiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFj
dGVyIGZvciBzaGlmdC10YWIuCi0gICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID09IDkp
IHsKLSAgICAgICAgbV90ZXh0ID0gIlx4OSI7Ci0gICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAi
XHg5IjsKLSAgICB9Ci19Ci0KLXZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3Vh
dGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUp
Ci17Ci0gICAgLy8gQ2FuIG9ubHkgY2hhbmdlIHR5cGUgZnJvbSBLZXlEb3duIHRvIFJhd0tleURv
d24gb3IgQ2hhciwgYXMgd2UgbGFjayBpbmZvcm1hdGlvbiBmb3Igb3RoZXIgY29udmVyc2lvbnMu
Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKLSAgICBBU1NFUlQodHlwZSA9PSBSYXdL
ZXlEb3duIHx8IHR5cGUgPT0gQ2hhcik7Ci0gICAgbV90eXBlID0gdHlwZTsKLSAgICBpZiAoYmFj
a3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHR5cGUg
PT0gUmF3S2V5RG93bikgewotICAgICAgICBtX3RleHQgPSBTdHJpbmcoKTsKLSAgICAgICAgbV91
bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fa2V5SWRl
bnRpZmllciA9IFN0cmluZygpOwotICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IDA7
Ci0gICAgICAgIGlmIChtX3RleHQubGVuZ3RoKCkgPT0gMSAmJiAobV90ZXh0WzBVXSA+PSAweEY3
MDAgJiYgbV90ZXh0WzBVXSA8PSAweEY3RkYpKSB7Ci0gICAgICAgICAgICAvLyBBY2NvcmRpbmcg
dG8gTlNFdmVudHMuaCwgT3BlblN0ZXAgcmVzZXJ2ZXMgdGhlIHJhbmdlIDB4RjcwMC0weEY4RkYg
Zm9yIGZ1bmN0aW9uIGtleXMuIEhvd2V2ZXIsIHNvbWUgYWN0dWFsIHByaXZhdGUgdXNlIGNoYXJh
Y3RlcnMKLSAgICAgICAgICAgIC8vIGhhcHBlbiB0byBiZSBpbiB0aGlzIHJhbmdlLCBlLmcuIHRo
ZSBBcHBsZSBsb2dvIChPcHRpb24rU2hpZnQrSykuCi0gICAgICAgICAgICAvLyAweEY3RkYgaXMg
YW4gYXJiaXRyYXJ5IGN1dC1vZmYuCi0gICAgICAgICAgICBtX3RleHQgPSBTdHJpbmcoKTsKLSAg
ICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKLSAgICAgICAgfQotICAgIH0K
LX0KLQotYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkK
LXsKLSAgICByZXR1cm4gMDsKLX0KLQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQo=
</data>
<flag name="review"
          id="117227"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>