<?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>124444</bug_id>
          
          <creation_ts>2013-11-15 17:00:02 -0800</creation_ts>
          <short_desc>Move IDBCursorBackend operations into their own files</short_desc>
          <delta_ts>2013-11-15 17:14:31 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951282</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 17:00:02 -0800</bug_when>
    <thetext>Move IDBCursorBackend operations into their own files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951283</commentid>
    <comment_count>1</comment_count>
      <attachid>217104</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 17:01:15 -0800</bug_when>
    <thetext>Created attachment 217104
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951286</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 17:03:18 -0800</bug_when>
    <thetext>Style bot will complain about IDBCursorBackendOperations.h and IDBCursorBackendOperations.cpp not having newlines at the end.  Fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951287</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 17:03:33 -0800</bug_when>
    <thetext>Attachment 217104 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCursorBackend.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCursorBackend.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;]&quot; exit_code: 1
Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h:102:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp:131:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Source/WebCore/CMakeLists.txt:792:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 3 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951289</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 17:04:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 217104 [details] did not pass style-queue:
&gt; Source/WebCore/CMakeLists.txt:792:  Line contains tab character.  [whitespace/tab] [5]

Fixed that, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951293</commentid>
    <comment_count>5</comment_count>
      <attachid>217104</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-15 17:09:34 -0800</bug_when>
    <thetext>Comment on attachment 217104
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=217104&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

Please use the license header from the original file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951298</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-11-15 17:14:31 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159373</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217104</attachid>
            <date>2013-11-15 17:01:15 -0800</date>
            <delta_ts>2013-11-15 17:09:33 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>25659</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTNiZDNkMy4uNmFkOGUwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTc4OSw2ICs3ODksNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCQW55LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kLmNwcAorCU1vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmNwcAogICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggODA0MWQ0ZS4uYWRkYzFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3
IEBACiAyMDEzLTExLTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAg
ICAgICBNb3ZlIElEQkN1cnNvckJhY2tlbmQgb3BlcmF0aW9ucyBpbnRvIHRoZWlyIG93biBmaWxl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDQ0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvckJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmQ6
OmN1cnNvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZDo6ZGVwcmVj
YXRlZEJhY2tpbmdTdG9yZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kOjpkZXByZWNhdGVkU2V0QmFja2luZ1N0b3JlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkN1cnNvckJhY2tlbmQ6OmRlcHJlY2F0ZWRTZXRTYXZlZEJhY2tpbmdTdG9yZUN1cnNvcik6
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9u
cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2FsbE9uRGVzdHJ1Y3Q6OkNhbGxPbkRl
c3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbGxPbkRlc3RydWN0Ojp+Q2FsbE9uRGVzdHJ1
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yQWR2YW5jZU9wZXJhdGlvbjo6cGVyZm9ybSk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3JJdGVyYXRpb25PcGVyYXRpb246OnBlcmZvcm0pOgor
ICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb246OnBlcmZv
cm0pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRp
b25zLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uOjpD
dXJzb3JJdGVyYXRpb25PcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yQWR2YW5j
ZU9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvckFkdmFuY2VPcGVy
YXRpb246OkN1cnNvckFkdmFuY2VPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29y
UHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
dXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbjo6Q3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25P
cGVyYXRpb24pOgorCisyMDEzLTExLTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKwogICAgICAgICBMZXQgSURCRGF0YWJhc2VCYWNrZW5kIGNyZWF0ZSBJREJUcmFuc2FjdGlv
bkJhY2tlbmQncyBkaXJlY3RseQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI0NDM4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ4
MGJlMTguLmZkNTMyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTgwMSwx
MCArMTgwMSwxMiBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVy
Q29ubmVjdGlvbkxldmVsREIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ2FsbGJhY2tzLmggXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3JCYWNrZW5kLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZC5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3Bl
cmF0aW9ucy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckJhY2tlbmRPcGVyYXRpb25zLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZC5jcHAKaW5kZXggMGUxZjVlNi4uZDNm
NDQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yQmFja2VuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKIAogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkN1cnNv
ckJhY2tlbmRPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVy
cm9yLmgiCkBAIC00MCw4MSArNDEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IENhbGxPbkRlc3RydWN0IHsKLXB1YmxpYzoKLSAgICBDYWxsT25EZXN0cnVjdChzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gY2FsbGJhY2spCi0gICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKLSAg
ICB7IH0KLQotICAgIH5DYWxsT25EZXN0cnVjdCgpCi0gICAgewotICAgICAgICBtX2NhbGxiYWNr
KCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2NhbGxi
YWNrOwotfTsKLQotY2xhc3MgSURCQ3Vyc29yQmFja2VuZDo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0
aW9uIDogcHVibGljIElEQk9wZXJhdGlvbiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCT3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJz
b3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1cnNvckl0ZXJhdGlv
bk9wZXJhdGlvbihjdXJzb3IsIGtleSwgY2FsbGJhY2tzKSk7Ci0gICAgfQotICAgIHZpcnR1YWwg
dm9pZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9W
RVJSSURFIEZJTkFMOwotcHJpdmF0ZToKLSAgICBDdXJzb3JJdGVyYXRpb25PcGVyYXRpb24oUGFz
c1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXks
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi0gICAgICAgIDogbV9jdXJzb3Io
Y3Vyc29yKQotICAgICAgICAsIG1fa2V5KGtleSkKLSAgICAgICAgLCBtX2NhbGxiYWNrcyhjYWxs
YmFja3MpCi0gICAgewotICAgIH0KLQotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBtX2N1
cnNvcjsKLSAgICBSZWZQdHI8SURCS2V5PiBtX2tleTsKLSAgICBSZWZQdHI8SURCQ2FsbGJhY2tz
PiBtX2NhbGxiYWNrczsKLX07Ci0KLWNsYXNzIElEQkN1cnNvckJhY2tlbmQ6OkN1cnNvckFkdmFu
Y2VPcGVyYXRpb24gOiBwdWJsaWMgSURCT3BlcmF0aW9uIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJREJPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmQ+IGN1cnNvciwgdW5zaWduZWQgbG9uZyBjb3VudCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcykKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3Vyc29yQWR2
YW5jZU9wZXJhdGlvbihjdXJzb3IsIGNvdW50LCBjYWxsYmFja3MpKTsKLSAgICB9Ci0gICAgdmly
dHVhbCB2b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFj
aykgT1ZFUlJJREUgRklOQUw7Ci1wcml2YXRlOgotICAgIEN1cnNvckFkdmFuY2VPcGVyYXRpb24o
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJzb3IsIHVuc2lnbmVkIGxvbmcgY291bnQs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi0gICAgICAgIDogbV9jdXJzb3Io
Y3Vyc29yKQotICAgICAgICAsIG1fY291bnQoY291bnQpCi0gICAgICAgICwgbV9jYWxsYmFja3Mo
Y2FsbGJhY2tzKQotICAgIHsKLSAgICB9Ci0KLSAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZD4g
bV9jdXJzb3I7Ci0gICAgdW5zaWduZWQgbG9uZyBtX2NvdW50OwotICAgIFJlZlB0cjxJREJDYWxs
YmFja3M+IG1fY2FsbGJhY2tzOwotfTsKLQotY2xhc3MgSURCQ3Vyc29yQmFja2VuZDo6Q3Vyc29y
UHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb24gOiBwdWJsaWMgSURCT3BlcmF0aW9uIHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmQ+IGN1cnNvciwgaW50IG51bWJlclRvRmV0Y2gsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEN1cnNvclByZWZldGNoSXRlcmF0aW9uT3BlcmF0aW9uKGN1cnNvciwgbnVtYmVyVG9GZXRj
aCwgY2FsbGJhY2tzKSk7Ci0gICAgfQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFIEZJTkFMOwotcHJpdmF0
ZToKLSAgICBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbihQYXNzUmVmUHRyPElEQkN1
cnNvckJhY2tlbmQ+IGN1cnNvciwgaW50IG51bWJlclRvRmV0Y2gsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCi0gICAgICAgIDogbV9jdXJzb3IoY3Vyc29yKQotICAgICAgICAs
IG1fbnVtYmVyVG9GZXRjaChudW1iZXJUb0ZldGNoKQotICAgICAgICAsIG1fY2FsbGJhY2tzKGNh
bGxiYWNrcykKLSAgICB7Ci0gICAgfQotCi0gICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+IG1f
Y3Vyc29yOwotICAgIGludCBtX251bWJlclRvRmV0Y2g7Ci0gICAgUmVmUHRyPElEQkNhbGxiYWNr
cz4gbV9jYWxsYmFja3M7Ci19OwotCiBJREJDdXJzb3JCYWNrZW5kOjpJREJDdXJzb3JCYWNrZW5k
KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlQ3Vyc29ySW50ZXJmYWNlPiBjdXJzb3IsIEluZGV4
ZWREQjo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBl
IHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmQqIHRyYW5zYWN0aW9uLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQpCiAgICAgOiBtX3Rhc2tUeXBlKHRhc2tUeXBlKQogICAgICwgbV9jdXJzb3JU
eXBlKGN1cnNvclR5cGUpCkBAIC0xNDcsMzQgKzczLDYgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5k
OjphZHZhbmNlKHVuc2lnbmVkIGxvbmcgY291bnQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnAKICAgICBtX3RyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soQ3Vyc29yQWR2YW5jZU9wZXJhdGlv
bjo6Y3JlYXRlKHRoaXMsIGNvdW50LCBjYWxsYmFja3MpKTsKIH0KIAotdm9pZCBJREJDdXJzb3JC
YWNrZW5kOjpDdXJzb3JBZHZhbmNlT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spCi17Ci0gICAgQ2FsbE9uRGVzdHJ1Y3QgY2FsbE9uRGVz
dHJ1Y3QoY29tcGxldGlvbkNhbGxiYWNrKTsKLQotICAgIExPRyhTdG9yYWdlQVBJLCAiQ3Vyc29y
QWR2YW5jZU9wZXJhdGlvbiIpOwotICAgIGlmICghbV9jdXJzb3ItPm1fY3Vyc29yIHx8ICFtX2N1
cnNvci0+bV9jdXJzb3ItPmFkdmFuY2UobV9jb3VudCkpIHsKLSAgICAgICAgbV9jdXJzb3ItPm1f
Y3Vyc29yID0gMDsKLSAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2FzdDxT
aGFyZWRCdWZmZXIqPigwKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2NhbGxi
YWNrcy0+b25TdWNjZXNzKG1fY3Vyc29yLT5rZXkoKSwgbV9jdXJzb3ItPnByaW1hcnlLZXkoKSwg
bV9jdXJzb3ItPnZhbHVlKCkpOwotfQotCi12b2lkIElEQkN1cnNvckJhY2tlbmQ6OkN1cnNvckl0
ZXJhdGlvbk9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKQotewotICAgIENhbGxPbkRlc3RydWN0IGNhbGxPbkRlc3RydWN0KGNvbXBsZXRp
b25DYWxsYmFjayk7Ci0KLSAgICBMT0coU3RvcmFnZUFQSSwgIkN1cnNvckl0ZXJhdGlvbk9wZXJh
dGlvbiIpOwotICAgIGlmICghbV9jdXJzb3ItPm1fY3Vyc29yIHx8ICFtX2N1cnNvci0+bV9jdXJz
b3ItPmNvbnRpbnVlRnVuY3Rpb24obV9rZXkuZ2V0KCkpKSB7Ci0gICAgICAgIG1fY3Vyc29yLT5t
X2N1cnNvciA9IDA7Ci0gICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nhc3Q8
U2hhcmVkQnVmZmVyKj4oMCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhtX2N1cnNvci0+a2V5KCksIG1fY3Vyc29yLT5wcmltYXJ5S2V5KCks
IG1fY3Vyc29yLT52YWx1ZSgpKTsKLX0KLQogdm9pZCBJREJDdXJzb3JCYWNrZW5kOjpkZWxldGVG
dW5jdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBFeGNlcHRpb25D
b2RlJikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkN1cnNvckJhY2tlbmQ6OmRlbGV0ZSIp
OwpAQCAtMTkwLDU3ICs4OCw2IEBAIHZvaWQgSURCQ3Vyc29yQmFja2VuZDo6cHJlZmV0Y2hDb250
aW51ZShpbnQgbnVtYmVyVG9GZXRjaCwgUGFzc1JlZlB0cjxJREJDYWxsYmFjCiAgICAgbV90cmFu
c2FjdGlvbi0+c2NoZWR1bGVUYXNrKG1fdGFza1R5cGUsIEN1cnNvclByZWZldGNoSXRlcmF0aW9u
T3BlcmF0aW9uOjpjcmVhdGUodGhpcywgbnVtYmVyVG9GZXRjaCwgY2FsbGJhY2tzKSk7CiB9CiAK
LXZvaWQgSURCQ3Vyc29yQmFja2VuZDo6Q3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb246
OnBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykKLXsKLSAg
ICBDYWxsT25EZXN0cnVjdCBjYWxsT25EZXN0cnVjdChjb21wbGV0aW9uQ2FsbGJhY2spOwotCi0g
ICAgTE9HKFN0b3JhZ2VBUEksICJDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbiIpOwot
Ci0gICAgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiBmb3VuZEtleXM7Ci0gICAgVmVjdG9yPFJlZlB0
cjxJREJLZXk+PiBmb3VuZFByaW1hcnlLZXlzOwotICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVm
ZmVyPj4gZm91bmRWYWx1ZXM7Ci0KLSAgICBpZiAobV9jdXJzb3ItPm1fY3Vyc29yKQotICAgICAg
ICBtX2N1cnNvci0+bV9zYXZlZEN1cnNvciA9IG1fY3Vyc29yLT5tX2N1cnNvci0+Y2xvbmUoKTsK
LQotICAgIGNvbnN0IHNpemVfdCBtYXhTaXplRXN0aW1hdGUgPSAxMCAqIDEwMjQgKiAxMDI0Owot
ICAgIHNpemVfdCBzaXplRXN0aW1hdGUgPSAwOwotCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBt
X251bWJlclRvRmV0Y2g7ICsraSkgewotICAgICAgICBpZiAoIW1fY3Vyc29yLT5tX2N1cnNvciB8
fCAhbV9jdXJzb3ItPm1fY3Vyc29yLT5jb250aW51ZUZ1bmN0aW9uKDApKSB7Ci0gICAgICAgICAg
ICBtX2N1cnNvci0+bV9jdXJzb3IgPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LQotICAgICAgICBmb3VuZEtleXMuYXBwZW5kKG1fY3Vyc29yLT5tX2N1cnNvci0+a2V5KCkpOwot
ICAgICAgICBmb3VuZFByaW1hcnlLZXlzLmFwcGVuZChtX2N1cnNvci0+bV9jdXJzb3ItPnByaW1h
cnlLZXkoKSk7Ci0KLSAgICAgICAgc3dpdGNoIChtX2N1cnNvci0+bV9jdXJzb3JUeXBlKSB7Ci0g
ICAgICAgIGNhc2UgSW5kZXhlZERCOjpDdXJzb3JLZXlPbmx5OgotICAgICAgICAgICAgZm91bmRW
YWx1ZXMuYXBwZW5kKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgSW5kZXhlZERCOjpDdXJzb3JLZXlBbmRWYWx1ZToKLSAgICAgICAgICAg
IHNpemVFc3RpbWF0ZSArPSBtX2N1cnNvci0+bV9jdXJzb3ItPnZhbHVlKCktPnNpemUoKTsKLSAg
ICAgICAgICAgIGZvdW5kVmFsdWVzLmFwcGVuZChtX2N1cnNvci0+bV9jdXJzb3ItPnZhbHVlKCkp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgICAgICBzaXplRXN0aW1hdGUgKz0gbV9j
dXJzb3ItPm1fY3Vyc29yLT5rZXkoKS0+c2l6ZUVzdGltYXRlKCk7Ci0gICAgICAgIHNpemVFc3Rp
bWF0ZSArPSBtX2N1cnNvci0+bV9jdXJzb3ItPnByaW1hcnlLZXkoKS0+c2l6ZUVzdGltYXRlKCk7
Ci0KLSAgICAgICAgaWYgKHNpemVFc3RpbWF0ZSA+IG1heFNpemVFc3RpbWF0ZSkKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmICghZm91bmRLZXlzLnNpemUoKSkgewotICAgICAg
ICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHN0YXRpY19jYXN0PFNoYXJlZEJ1ZmZlcio+KDApKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3NXaXRo
UHJlZmV0Y2goZm91bmRLZXlzLCBmb3VuZFByaW1hcnlLZXlzLCBmb3VuZFZhbHVlcyk7Ci19Ci0K
IHZvaWQgSURCQ3Vyc29yQmFja2VuZDo6cHJlZmV0Y2hSZXNldChpbnQgdXNlZFByZWZldGNoZXMs
IGludCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkN1cnNvckJhY2tlbmQ6OnByZWZldGNo
UmVzZXQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvckJhY2tlbmQuaAppbmRleCA1ZmU3MjQ1Li4yMGE3NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZC5oCkBAIC02NiwxMyAr
NjYsMTUgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbG9zZSgpOwogCisgICAgSW5kZXhlZERCOjpD
dXJzb3JUeXBlIGN1cnNvclR5cGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnNvclR5cGU7IH0KKwor
ICAgIElEQkJhY2tpbmdTdG9yZUN1cnNvckludGVyZmFjZSogZGVwcmVjYXRlZEJhY2tpbmdTdG9y
ZUN1cnNvcigpIHsgcmV0dXJuIG1fY3Vyc29yLmdldCgpOyB9CisgICAgdm9pZCBkZXByZWNhdGVk
U2V0QmFja2luZ1N0b3JlQ3Vyc29yKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlQ3Vyc29ySW50
ZXJmYWNlPiBjdXJzb3IpIHsgbV9jdXJzb3IgPSBjdXJzb3I7IH0KKyAgICB2b2lkIGRlcHJlY2F0
ZWRTZXRTYXZlZEJhY2tpbmdTdG9yZUN1cnNvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUN1
cnNvckludGVyZmFjZT4gY3Vyc29yKSB7IG1fc2F2ZWRDdXJzb3IgPSBjdXJzb3I7IH0KKwogcHJp
dmF0ZToKICAgICBJREJDdXJzb3JCYWNrZW5kKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlQ3Vy
c29ySW50ZXJmYWNlPiwgSW5kZXhlZERCOjpDdXJzb3JUeXBlLCBJREJEYXRhYmFzZUJhY2tlbmQ6
OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmQqLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQp
OwogCi0gICAgY2xhc3MgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uOwotICAgIGNsYXNzIEN1cnNv
ckFkdmFuY2VPcGVyYXRpb247Ci0gICAgY2xhc3MgQ3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25PcGVy
YXRpb247Ci0KICAgICBJREJEYXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlIG1fdGFza1R5cGU7CiAg
ICAgSW5kZXhlZERCOjpDdXJzb3JUeXBlIG1fY3Vyc29yVHlwZTsKICAgICBjb25zdCBSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kPiBtX2RhdGFiYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ODQ3OTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNr
ZW5kT3BlcmF0aW9ucy5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaCIKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhbGxPbkRlc3RydWN0IHsKK3B1YmxpYzoKKyAg
ICBDYWxsT25EZXN0cnVjdChzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spCisgICAgICAg
IDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICB7IH0KKworICAgIH5DYWxsT25EZXN0cnVjdCgp
CisgICAgeworICAgICAgICBtX2NhbGxiYWNrKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2NhbGxiYWNrOworfTsKKwordm9pZCBDdXJzb3JBZHZhbmNl
T3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJh
Y2spCit7CisgICAgQ2FsbE9uRGVzdHJ1Y3QgY2FsbE9uRGVzdHJ1Y3QoY29tcGxldGlvbkNhbGxi
YWNrKTsKKworICAgIExPRyhTdG9yYWdlQVBJLCAiQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbiIpOwor
ICAgIGlmICghbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNraW5nU3RvcmVDdXJzb3IoKSB8fCAhbV9j
dXJzb3ItPmRlcHJlY2F0ZWRCYWNraW5nU3RvcmVDdXJzb3IoKS0+YWR2YW5jZShtX2NvdW50KSkg
eworICAgICAgICBtX2N1cnNvci0+ZGVwcmVjYXRlZFNldEJhY2tpbmdTdG9yZUN1cnNvcigwKTsK
KyAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIq
PigwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKG1fY3Vyc29yLT5rZXkoKSwgbV9jdXJzb3ItPnByaW1hcnlLZXkoKSwgbV9jdXJzb3ItPnZh
bHVlKCkpOworfQorCit2b2lkIEN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKQoreworICAgIENhbGxPbkRlc3Ry
dWN0IGNhbGxPbkRlc3RydWN0KGNvbXBsZXRpb25DYWxsYmFjayk7CisKKyAgICBMT0coU3RvcmFn
ZUFQSSwgIkN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbiIpOworICAgIGlmICghbV9jdXJzb3ItPmRl
cHJlY2F0ZWRCYWNraW5nU3RvcmVDdXJzb3IoKSB8fCAhbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNr
aW5nU3RvcmVDdXJzb3IoKS0+Y29udGludWVGdW5jdGlvbihtX2tleS5nZXQoKSkpIHsKKyAgICAg
ICAgbV9jdXJzb3ItPmRlcHJlY2F0ZWRTZXRCYWNraW5nU3RvcmVDdXJzb3IoMCk7CisgICAgICAg
IG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhtX2N1
cnNvci0+a2V5KCksIG1fY3Vyc29yLT5wcmltYXJ5S2V5KCksIG1fY3Vyc29yLT52YWx1ZSgpKTsK
K30KKwordm9pZCBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKQoreworICAgIENhbGxPbkRlc3Ry
dWN0IGNhbGxPbkRlc3RydWN0KGNvbXBsZXRpb25DYWxsYmFjayk7CisKKyAgICBMT0coU3RvcmFn
ZUFQSSwgIkN1cnNvclByZWZldGNoSXRlcmF0aW9uT3BlcmF0aW9uIik7CisKKyAgICBWZWN0b3I8
UmVmUHRyPElEQktleT4+IGZvdW5kS2V5czsKKyAgICBWZWN0b3I8UmVmUHRyPElEQktleT4+IGZv
dW5kUHJpbWFyeUtleXM7CisgICAgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiBmb3VuZFZh
bHVlczsKKworICAgIGlmIChtX2N1cnNvci0+ZGVwcmVjYXRlZEJhY2tpbmdTdG9yZUN1cnNvcigp
KQorICAgICAgICBtX2N1cnNvci0+ZGVwcmVjYXRlZFNldFNhdmVkQmFja2luZ1N0b3JlQ3Vyc29y
KG1fY3Vyc29yLT5kZXByZWNhdGVkQmFja2luZ1N0b3JlQ3Vyc29yKCktPmNsb25lKCkpOworCisg
ICAgY29uc3Qgc2l6ZV90IG1heFNpemVFc3RpbWF0ZSA9IDEwICogMTAyNCAqIDEwMjQ7CisgICAg
c2l6ZV90IHNpemVFc3RpbWF0ZSA9IDA7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fbnVt
YmVyVG9GZXRjaDsgKytpKSB7CisgICAgICAgIGlmICghbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNr
aW5nU3RvcmVDdXJzb3IoKSB8fCAhbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNraW5nU3RvcmVDdXJz
b3IoKS0+Y29udGludWVGdW5jdGlvbigwKSkgeworICAgICAgICAgICAgbV9jdXJzb3ItPmRlcHJl
Y2F0ZWRTZXRCYWNraW5nU3RvcmVDdXJzb3IoMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorCisgICAgICAgIGZvdW5kS2V5cy5hcHBlbmQobV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNr
aW5nU3RvcmVDdXJzb3IoKS0+a2V5KCkpOworICAgICAgICBmb3VuZFByaW1hcnlLZXlzLmFwcGVu
ZChtX2N1cnNvci0+ZGVwcmVjYXRlZEJhY2tpbmdTdG9yZUN1cnNvcigpLT5wcmltYXJ5S2V5KCkp
OworCisgICAgICAgIHN3aXRjaCAobV9jdXJzb3ItPmN1cnNvclR5cGUoKSkgeworICAgICAgICBj
YXNlIEluZGV4ZWREQjo6Q3Vyc29yS2V5T25seToKKyAgICAgICAgICAgIGZvdW5kVmFsdWVzLmFw
cGVuZChTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEluZGV4ZWREQjo6Q3Vyc29yS2V5QW5kVmFsdWU6CisgICAgICAgICAgICBzaXplRXN0
aW1hdGUgKz0gbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNraW5nU3RvcmVDdXJzb3IoKS0+dmFsdWUo
KS0+c2l6ZSgpOworICAgICAgICAgICAgZm91bmRWYWx1ZXMuYXBwZW5kKG1fY3Vyc29yLT5kZXBy
ZWNhdGVkQmFja2luZ1N0b3JlQ3Vyc29yKCktPnZhbHVlKCkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgfQorICAgICAgICBzaXplRXN0aW1hdGUgKz0gbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNr
aW5nU3RvcmVDdXJzb3IoKS0+a2V5KCktPnNpemVFc3RpbWF0ZSgpOworICAgICAgICBzaXplRXN0
aW1hdGUgKz0gbV9jdXJzb3ItPmRlcHJlY2F0ZWRCYWNraW5nU3RvcmVDdXJzb3IoKS0+cHJpbWFy
eUtleSgpLT5zaXplRXN0aW1hdGUoKTsKKworICAgICAgICBpZiAoc2l6ZUVzdGltYXRlID4gbWF4
U2l6ZUVzdGltYXRlKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCFmb3Vu
ZEtleXMuc2l6ZSgpKSB7CisgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nh
c3Q8U2hhcmVkQnVmZmVyKj4oMCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9j
YWxsYmFja3MtPm9uU3VjY2Vzc1dpdGhQcmVmZXRjaChmb3VuZEtleXMsIGZvdW5kUHJpbWFyeUtl
eXMsIGZvdW5kVmFsdWVzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFRChJTkRFWEVEX0RBVEFCQVNFKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJh
Y2tlbmRPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE2OGYxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5oCkBAIC0wLDAgKzEsMTAyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBJREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9uc19oCisjZGVmaW5l
IElEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zX2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCisjaW5jbHVkZSAiSURCQ3Vyc29yQmFja2VuZC5oIgorI2luY2x1ZGUgIklEQk9wZXJh
dGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1cnNvckl0ZXJhdGlvbk9w
ZXJhdGlvbiA6IHB1YmxpYyBJREJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQk9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZD4g
Y3Vyc29yLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdXJzb3JJdGVy
YXRpb25PcGVyYXRpb24oY3Vyc29yLCBrZXksIGNhbGxiYWNrcykpOworICAgIH0KKyAgICB2aXJ0
dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNr
KSBPVkVSUklERSBGSU5BTDsKKworcHJpdmF0ZToKKyAgICBDdXJzb3JJdGVyYXRpb25PcGVyYXRp
b24oUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJzb3IsIFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCisgICAgICAgIDogbV9j
dXJzb3IoY3Vyc29yKQorICAgICAgICAsIG1fa2V5KGtleSkKKyAgICAgICAgLCBtX2NhbGxiYWNr
cyhjYWxsYmFja3MpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5k
PiBtX2N1cnNvcjsKKyAgICBSZWZQdHI8SURCS2V5PiBtX2tleTsKKyAgICBSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBtX2NhbGxiYWNrczsKK307CisKK2NsYXNzIEN1cnNvckFkdmFuY2VPcGVyYXRpb24g
OiBwdWJsaWMgSURCT3BlcmF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+IGN1cnNvciwg
dW5zaWduZWQgbG9uZyBjb3VudCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3Vyc29yQWR2YW5jZU9wZXJhdGlv
bihjdXJzb3IsIGNvdW50LCBjYWxsYmFja3MpKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIHBl
cmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREUg
RklOQUw7CisKK3ByaXZhdGU6CisgICAgQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbihQYXNzUmVmUHRy
PElEQkN1cnNvckJhY2tlbmQ+IGN1cnNvciwgdW5zaWduZWQgbG9uZyBjb3VudCwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICAgICAgOiBtX2N1cnNvcihjdXJzb3IpCisg
ICAgICAgICwgbV9jb3VudChjb3VudCkKKyAgICAgICAgLCBtX2NhbGxiYWNrcyhjYWxsYmFja3Mp
CisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBtX2N1cnNvcjsK
KyAgICB1bnNpZ25lZCBsb25nIG1fY291bnQ7CisgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9j
YWxsYmFja3M7Cit9OworCitjbGFzcyBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbiA6
IHB1YmxpYyBJREJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElE
Qk9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZD4gY3Vyc29yLCBp
bnQgbnVtYmVyVG9GZXRjaCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25P
cGVyYXRpb24oY3Vyc29yLCBudW1iZXJUb0ZldGNoLCBjYWxsYmFja3MpKTsKKyAgICB9CisgICAg
dmlydHVhbCB2b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxs
YmFjaykgT1ZFUlJJREUgRklOQUw7CisKK3ByaXZhdGU6CisgICAgQ3Vyc29yUHJlZmV0Y2hJdGVy
YXRpb25PcGVyYXRpb24oUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBjdXJzb3IsIGludCBu
dW1iZXJUb0ZldGNoLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQorICAgICAg
ICA6IG1fY3Vyc29yKGN1cnNvcikKKyAgICAgICAgLCBtX251bWJlclRvRmV0Y2gobnVtYmVyVG9G
ZXRjaCkKKyAgICAgICAgLCBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCisgICAgeworICAgIH0KKwor
ICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBtX2N1cnNvcjsKKyAgICBpbnQgbV9udW1iZXJU
b0ZldGNoOworICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisjZW5kaWYgLy8gSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnNfaApcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA3NTBhNDk3Li5mMDkyNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjQ5LDYgKzE2NDksOCBA
QAogCQk1MTAxODQ2QTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxODQ2ODBCMDg2MDJBMDA0
QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgKi87IH07CiAJCTUxMDE5NDQwMTgzNkQyMDgwMDkyNTUy
MyAvKiBJREJJbmRleFdyaXRlckxldmVsREIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTk0M0UxODM2RDIwODAwOTI1NTIzIC8qIElEQkluZGV4
V3JpdGVyTGV2ZWxEQi5jcHAgKi87IH07CiAJCTUxMDE5NDQxMTgzNkQyMDgwMDkyNTUyMyAvKiBJ
REJJbmRleFdyaXRlckxldmVsREIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMDE5NDNGMTgzNkQyMDgwMDkyNTUyMyAvKiBJREJJbmRleFdyaXRlckxl
dmVsREIuaCAqLzsgfTsKKwkJNTEwMTk0NDQxODM2RjdFNDAwOTI1NTIzIC8qIElEQkN1cnNvckJh
Y2tlbmRPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMDE5NDQyMTgzNkY3RTQwMDkyNTUyMyAvKiBJREJDdXJzb3JCYWNrZW5kT3Bl
cmF0aW9ucy5jcHAgKi87IH07CisJCTUxMDE5NDQ1MTgzNkY3RTUwMDkyNTUyMyAvKiBJREJDdXJz
b3JCYWNrZW5kT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwMTk0NDMxODM2RjdFNDAwOTI1NTIzIC8qIElEQkN1cnNvckJhY2tlbmRP
cGVyYXRpb25zLmggKi87IH07CiAJCTUxMDU5REREMTgyMEIxNzYwMERGRjlCMSAvKiBJREJUcmFu
c2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDU5REQ5MTgyMEIxNzYwMERGRjlCMSAvKiBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcCAqLzsgfTsKIAkJNTEwNTlEREUxODIwQjE3NjAwREZG
OUIxIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDU5RERBMTgyMEIxNzYwMERGRjlCMSAv
KiBJREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmggKi87IH07CiAJCTUxMEEzMjZGMTgz
MTg0MzEwMDNDNTMyNiAvKiBJREJTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBMzI2RTE4MzE4NDMxMDAzQzUzMjYgLyog
SURCU2VydmVyQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC04MzQ4LDYgKzgzNTAsOCBAQAogCQk1MTAxODQ2ODBCMDg2MDJBMDA0
QTgyNUYgLyogQ2FjaGVkUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDYWNoZWRQYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTk0
M0UxODM2RDIwODAwOTI1NTIzIC8qIElEQkluZGV4V3JpdGVyTGV2ZWxEQi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJJbmRleFdyaXRlckxldmVsREIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAxOTQzRjE4MzZEMjA4MDA5MjU1MjMgLyog
SURCSW5kZXhXcml0ZXJMZXZlbERCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElEQkluZGV4V3JpdGVyTGV2ZWxEQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTAxOTQ0MjE4MzZGN0U0MDA5MjU1MjMgLyogSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZE9w
ZXJhdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAxOTQ0MzE4MzZG
N0U0MDA5MjU1MjMgLyogSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNTlERDkxODIwQjE3NjAwREZGOUIxIC8qIElEQlRy
YW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDU5RERBMTgyMEIxNzYwMERGRjlCMSAvKiBJREJUcmFu
c2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwQTMyNkUxODMxODQzMTAwM0M1MzI2IC8qIElEQlNlcnZlckNvbm5lY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCU2VydmVyQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwMDAsNiArMTcwMDQsOCBAQAog
CQkJCTUxRDcxOTc3MTgxMTA2REYwMDE2REM1MSAvKiBJREJDdXJzb3IuaWRsICovLAogCQkJCTUx
NjczMEExMTgyRDhGQkIwMDNGQUY1QyAvKiBJREJDdXJzb3JCYWNrZW5kLmNwcCAqLywKIAkJCQk1
MTY3MzBBMjE4MkQ4RkJCMDAzRkFGNUMgLyogSURCQ3Vyc29yQmFja2VuZC5oICovLAorCQkJCTUx
MDE5NDQyMTgzNkY3RTQwMDkyNTUyMyAvKiBJREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAg
Ki8sCisJCQkJNTEwMTk0NDMxODM2RjdFNDAwOTI1NTIzIC8qIElEQkN1cnNvckJhY2tlbmRPcGVy
YXRpb25zLmggKi8sCiAJCQkJNTFENzE5NzkxODExMDZERjAwMTZEQzUxIC8qIElEQkN1cnNvcldp
dGhWYWx1ZS5jcHAgKi8sCiAJCQkJNTFENzE5N0ExODExMDZERjAwMTZEQzUxIC8qIElEQkN1cnNv
cldpdGhWYWx1ZS5oICovLAogCQkJCTUxRDcxOTdCMTgxMTA2REYwMDE2REM1MSAvKiBJREJDdXJz
b3JXaXRoVmFsdWUuaWRsICovLApAQCAtMjQxODEsNiArMjQxODcsNyBAQAogCQkJCUE4NEQ4MjdD
MTFEMzMzRUQwMDk3Mjk5MCAvKiBSYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDNDMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzQzNjhFODBDMjI2RTMyMDA1RUZCNUYgLyogUmVjdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTEwMTk0NDUxODM2RjdFNTAwOTI1NTIzIC8qIElEQkN1cnNvckJhY2tl
bmRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDQ1QTk1ODE3NUQ0MTRDMDBDMjFF
QzggLyogUmVjdGFuZ2xlU2hhcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MkVBM0JCMTU4NUNG
NTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTgzMUFFNEExNTQyMjVDOTAwRkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAq
LywKQEAgLTI3MjMyLDYgKzI3MjM5LDcgQEAKIAkJCQkxQThGNkJDNTBEQjU1Q0RDMDAxREI3OTQg
LyogTWFuaWZlc3RQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlERjcwOTlFNjQ5
MjAwNTZFNTgxIC8qIG1hcmt1cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzI4QzMxMzEyNjhF
NDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTEwMTk0NDQxODM2RjdFNDAwOTI1NTIzIC8qIElEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkZEMTA1OUMyMTEwMEQ5OTlERCAv
KiBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNjEw
NTlDMUVCMDBEOTk5REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywK
</data>
<flag name="review"
          id="240182"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>