<?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>94154</bug_id>
          
          <creation_ts>2012-08-15 15:19:09 -0700</creation_ts>
          <short_desc>[chromium] Replace destRect with destOffset in texture upload</short_desc>
          <delta_ts>2012-08-16 16:43:49 -0700</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="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jamesr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>696421</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-08-15 15:19:09 -0700</bug_when>
    <thetext>[chromium] Replace destRect with destOffset in texture upload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696425</commentid>
    <comment_count>1</comment_count>
      <attachid>158649</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-08-15 15:24:06 -0700</bug_when>
    <thetext>Created attachment 158649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696430</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-08-15 15:26:15 -0700</bug_when>
    <thetext>This is just a small cleanup for a problem that I encountered while writing the software texture upload implementation.  I realized the GL implementation doesn&apos;t properly support destRect either, so we should just remove it from the interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696439</commentid>
    <comment_count>3</comment_count>
      <attachid>158649</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-15 15:35:32 -0700</bug_when>
    <thetext>Comment on attachment 158649
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        &quot;IntRect destRect&quot; by &quot;IntPoint destOffset&quot;.

According to the WebCore geometry system, offsets should be represented by IntSize, not IntPoint.  Mind search-replacing the type before landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696449</commentid>
    <comment_count>4</comment_count>
      <attachid>158649</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-15 15:51:36 -0700</bug_when>
    <thetext>Comment on attachment 158649
Patch

Attachment 158649 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13504733</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696493</commentid>
    <comment_count>5</comment_count>
      <attachid>158649</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-15 16:35:52 -0700</bug_when>
    <thetext>Comment on attachment 158649
Patch

Attachment 158649 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13517141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696519</commentid>
    <comment_count>6</comment_count>
      <attachid>158663</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-08-15 16:59:00 -0700</bug_when>
    <thetext>Created attachment 158663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696520</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-08-15 16:59:47 -0700</bug_when>
    <thetext>Done, although I&apos;d suggest changing the policy during the transition to gfx:: types, since I don&apos;t think it makes any sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697668</commentid>
    <comment_count>8</comment_count>
      <attachid>158663</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 16:43:45 -0700</bug_when>
    <thetext>Comment on attachment 158663
Patch

Clearing flags on attachment: 158663

Committed r125827: &lt;http://trac.webkit.org/changeset/125827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697669</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 16:43:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158649</attachid>
            <date>2012-08-15 15:24:06 -0700</date>
            <delta_ts>2012-08-15 16:58:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94154-20120815152332.patch</filename>
            <type>text/plain</type>
            <size>45495</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRjZjQwMWM2NDRiNGE1
OWU1NGY0YzE4MmJlZWE3OTlkZDE4ZWYwOC4uYmMzYTU3ZjZjOTczMTNlYjA4MmI0ZDIzYjM5MTdi
YzYzMzM2OWZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA4LTE1ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJl
cGxhY2UgZGVzdFJlY3Qgd2l0aCBkZXN0T2Zmc2V0IGluIHRleHR1cmUgdXBsb2FkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDE1NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHksIHRleHR1
cmUgdXBsb2FkIGNvZGUgaW1wbGljaXRseSBhc3N1bWVkIHRoYXQgc291cmNlUmVjdCBhbmQKKyAg
ICAgICAgZGVzdFJlY3QgaGF2ZSB0aGUgc2FtZSBzaXplLiBUaGUgYmVoYXZpb3IgaXMgdW5kZWZp
bmVkIGlmIHRoZXkgYXJlCisgICAgICAgIGRpZmZlcmVudCwgc2luY2UgdGhleSBhcmUgdXNlZCBp
bnRlcmNoYW5nZWFibHkgYW5kIHRoZXJlJ3Mgbm8gc3VwcG9ydAorICAgICAgICBmb3Igc2NhbGlu
ZyBmcm9tIG9uZSByZWN0IHRvIHRoZSBvdGhlci4gVGhpcyBwYXRjaCBlbmZvcmNlcyB0aGF0Cisg
ICAgICAgIGNvbnN0cmFpbnQgYXQgdGhlIGludGVyZmFjZSBsZXZlbCBieSByZXBsYWNpbmcgYWxs
IGluc3RhbmNlcyBvZgorICAgICAgICAiSW50UmVjdCBkZXN0UmVjdCIgYnkgIkludFBvaW50IGRl
c3RPZmZzZXQiLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAobm8tb3AgcmVmYWN0b3JpbmcpLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1cGRhdGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmg6CisgICAgICAgIChUZXh0dXJlKToKKyAgICAgICAgKEJpdG1hcENhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Jp
dG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Qml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6
dXBkYXRlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFw
U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAoVGV4dHVyZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
QnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6dXBkYXRl
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaDoKKyAgICAgICAgKFRleHR1cmUpOgorICAgICAgICAoRnJhbWVCdWZmZXJTa1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VMYXllclRleHR1cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVTdWJJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclRleHR1cmVTdWJJbWFnZTo6dXBsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVN1YkltYWdlOjp1cGxvYWRXaXRoVGV4U3ViSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUZXh0dXJlU3ViSW1hZ2U6OnVwbG9hZFdpdGhNYXBU
ZXhTdWJJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJU
ZXh0dXJlU3ViSW1hZ2UuaDoKKyAgICAgICAgKExheWVyVGV4dHVyZVN1YkltYWdlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmg6Cisg
ICAgICAgIChUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
Y3JvbGxiYXJMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhckxh
eWVyQ2hyb21pdW06OnVwZGF0ZVBhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RleHR1cmVVcGxvYWRlci5oOgorICAgICAgICAoUGFyYW1ldGVycyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRocm90dGxlZFRleHR1cmVVcGxvYWRlcjo6dXBsb2FkVGV4
dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
VGlsZVRleHR1cmVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNV
cERpc3BsYXlMYXllckltcGw6OndpbGxEcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVkVGV4dHVyZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1ByaW9yaXRpemVkVGV4dHVyZTo6dXBsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVkVGV4dHVyZS5oOgorICAgICAgICAoQ0NQcmlv
cml0aXplZFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVzb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Jlc291cmNlUHJv
dmlkZXI6OnVwbG9hZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZXNvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChDQ1Jlc291cmNlUHJvdmlkZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVySW1wbDo6Y29weVBsYW5lRGF0YSk6CisK
IDIwMTItMDgtMTUgIElhaW4gTWVycmljayAgPGh1c2t5QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZWZhY3RvcmluZzogbW92ZSBFdmVudEhhbmRsZXI6OnRhcmdldE5vZGUgaW50byBIaXRUZXN0
UmVzdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDlhNTI5NTJmNjk1YTIxODNkNmQ0
MDQyYmJhNWIyNzMxYWY2MjNjMWEuLmRkYTMxYjlhMTc0Mzc1ZjU2YjU4MzgxMmNlM2U4ZmY1NTA5
ODQ0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTIt
MDgtMTUgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtj
aHJvbWl1bV0gUmVwbGFjZSBkZXN0UmVjdCB3aXRoIGRlc3RPZmZzZXQgaW4gdGV4dHVyZSB1cGxv
YWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTU0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlv
dXNseSwgdGV4dHVyZSB1cGxvYWQgY29kZSBpbXBsaWNpdGx5IGFzc3VtZWQgdGhhdCBzb3VyY2VS
ZWN0IGFuZAorICAgICAgICBkZXN0UmVjdCBoYXZlIHRoZSBzYW1lIHNpemUuIFRoZSBiZWhhdmlv
ciBpcyB1bmRlZmluZWQgaWYgdGhleSBhcmUKKyAgICAgICAgZGlmZmVyZW50LCBzaW5jZSB0aGV5
IGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSBhbmQgdGhlcmUncyBubyBzdXBwb3J0CisgICAgICAg
IGZvciBzY2FsaW5nIGZyb20gb25lIHJlY3QgdG8gdGhlIG90aGVyLiBUaGlzIHBhdGNoIGVuZm9y
Y2VzIHRoYXQKKyAgICAgICAgY29uc3RyYWludCBhdCB0aGUgaW50ZXJmYWNlIGxldmVsIGJ5IHJl
cGxhY2luZyBhbGwgaW5zdGFuY2VzIG9mCisgICAgICAgICJJbnRSZWN0IGRlc3RSZWN0IiBieSAi
SW50UG9pbnQgZGVzdE9mZnNldCIuCisKKyAgICAgICAgKiB0ZXN0cy9DQ1Jlc291cmNlUHJvdmlk
ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy9D
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvQ0NUaWxl
ZExheWVyVGVzdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6RmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0ZVJlY3QpOgorICAgICAgICAqIHRlc3RzL0NDVGls
ZWRMYXllclRlc3RDb21tb24uaDoKKyAgICAgICAgKFRleHR1cmUpOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OkZha2VUZXh0dXJlVXBsb2FkZXI6OnVwbG9hZFRleHR1cmUpOgorCiAyMDEyLTA4LTE1
ICBJYWluIE1lcnJpY2sgIDxodXNreUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVmYWN0b3Jp
bmc6IG1vdmUgRXZlbnRIYW5kbGVyOjp0YXJnZXROb2RlIGludG8gSGl0VGVzdFJlc3VsdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFw
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRl
eCBjOTJjZTA2MWQ0N2YxNzg3ZDY1YzA2YzVhZGM4YzFjYjUwMmY0ZjEwLi5mZjU3YTg4YTA4YWJj
YjliMDY3YWNmMTY3NzYxMWNiZTU3NmRiMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRt
YXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNDYsOSArNDYsOSBAQCBCaXRtYXBD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp+VGV4dHVyZSgpCiB7CiB9CiAKLXZv
aWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6dXBkYXRlUmVjdChD
Q1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIGNvbnN0IEludFJlY3QmIHNvdXJj
ZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQordm9pZCBCaXRtYXBDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQm
IGRlc3RPZmZzZXQpCiB7Ci0gICAgdGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlVGV4dHVyZVJlY3Qo
cmVzb3VyY2VQcm92aWRlciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0UmVjdCk7CisgICAg
dGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlVGV4dHVyZVJlY3QocmVzb3VyY2VQcm92aWRlciwgdGV4
dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0T2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyPiBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVy
OjpjcmVhdGUoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gcGFpbnRlcikKQEAgLTg4
LDEyICs4OCwxMiBAQCB2b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBh
cmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdAogICAgIHBhaW50Q29udGVudHMo
bV9jYW52YXMuZ2V0KCksIGNvbnRlbnRSZWN0LCBjb250ZW50c1dpZHRoU2NhbGUsIGNvbnRlbnRz
SGVpZ2h0U2NhbGUsIHJlc3VsdGluZ09wYXF1ZVJlY3QsIHN0YXRzKTsKIH0KIAotdm9pZCBCaXRt
YXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdChDQ1Jlc291cmNl
UHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiB0ZXh0dXJl
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3Zv
aWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QoQ0NS
ZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSog
dGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RP
ZmZzZXQpCiB7CiAgICAgY29uc3QgU2tCaXRtYXAmIGJpdG1hcCA9IG1fY2FudmFzLT5nZXREZXZp
Y2UoKS0+YWNjZXNzQml0bWFwKGZhbHNlKTsKICAgICBiaXRtYXAubG9ja1BpeGVscygpOwogCi0g
ICAgdGV4dHVyZS0+dXBsb2FkKHJlc291cmNlUHJvdmlkZXIsIHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QqPihiaXRtYXAuZ2V0UGl4ZWxzKCkpLCBjb250ZW50UmVjdCgpLCBzb3VyY2VSZWN0LCBk
ZXN0UmVjdCk7CisgICAgdGV4dHVyZS0+dXBsb2FkKHJlc291cmNlUHJvdmlkZXIsIHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihiaXRtYXAuZ2V0UGl4ZWxzKCkpLCBjb250ZW50UmVjdCgpLCBz
b3VyY2VSZWN0LCBkZXN0T2Zmc2V0KTsKICAgICBiaXRtYXAudW5sb2NrUGl4ZWxzKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Jp
dG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRl
eCA4NDUwZTFmMzVjMTQ2MzcwMGFlYzFkNmY3NjU4NjEyZmZhMWUzMTAxLi5jMDFmNDE0M2Y4ZDc4
MTMxYTAyMDBmYzYzNGE4NDhiMWI0NDE4YTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFw
Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgVGV4dHVyZShCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKiwgUGFzc093blB0
cjxDQ1ByaW9yaXRpemVkVGV4dHVyZT4pOwogICAgICAgICB2aXJ0dWFsIH5UZXh0dXJlKCk7CiAK
LSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpIE9WRVJSSURF
OworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdE9mZnNldCkgT1ZF
UlJJREU7CiAKICAgICBwcml2YXRlOgogICAgICAgICBCaXRtYXBDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyKiB0ZXh0dXJlVXBkYXRlcigpIHsgcmV0dXJuIG1fdGV4dHVyZVVwZGF0ZXI7IH0KQEAg
LTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc093blB0cjxMYXllclRleHR1
cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKENDUHJpb3JpdGl6ZWRUZXh0dXJlTWFu
YWdlciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRU
ZXhlbEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJ
bnRTaXplJiB0aWxlU2l6ZSwgZmxvYXQgY29udGVudHNXaWR0aFNjYWxlLCBmbG9hdCBjb250ZW50
c0hlaWdodFNjYWxlLCBJbnRSZWN0JiByZXN1bHRpbmdPcGFxdWVSZWN0LCBDQ1JlbmRlcmluZ1N0
YXRzJikgT1ZFUlJJREU7Ci0gICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChDQ1Jlc291cmNlUHJv
dmlkZXIqLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEND
UmVzb3VyY2VQcm92aWRlciosIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RPZmZzZXQpOwogCiAgICAgdmlydHVhbCB2
b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRleCBk
ZTAxMDg2YTgyNjE3NjlhNDY2OWJiNmNiYjI5NDYwMzExMWZhZTEyLi4zN2QxNTA5ZjQxYjQ3N2Mz
ZWNjMWZlMDkwMWE1YjFjNTIwMjUxZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNTcsMTAg
KzU3LDEwIEBAIHZvaWQgQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
VGV4dHVyZTo6cHJlcGFyZVJlY3QoY29uc3QgSW50UmVjCiAgICAgc3RhdHMudG90YWxQYWludFRp
bWVJblNlY29uZHMgKz0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBwYWludEJlZ2lu
VGltZTsKIH0KIAotdm9pZCBCaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVy
OjpUZXh0dXJlOjp1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRl
ciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCit2
b2lkIEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVw
ZGF0ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdE9mZnNldCkKIHsKICAgICBtX2Jp
dG1hcC5sb2NrUGl4ZWxzKCk7Ci0gICAgdGV4dHVyZSgpLT51cGxvYWQocmVzb3VyY2VQcm92aWRl
ciwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fYml0bWFwLmdldFBpeGVscygpKSwgZGVzdFJlY3Qs
IGRlc3RSZWN0LCBkZXN0UmVjdCk7CisgICAgdGV4dHVyZSgpLT51cGxvYWQocmVzb3VyY2VQcm92
aWRlciwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fYml0bWFwLmdldFBpeGVscygpKSwgc291cmNl
UmVjdCwgc291cmNlUmVjdCwgZGVzdE9mZnNldCk7CiAgICAgbV9iaXRtYXAudW5sb2NrUGl4ZWxz
KCk7CiAgICAgbV9iaXRtYXAucmVzZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRleCA3MGJkZDVm
OTBlODBmZjg4NGEyYWFhNmVmMWI2OGFlYzhlYWRlMmE3Li5kZjI3ZGVmMTRiZTljZjdkMWJlYzhm
Njg3MzMyNzEzMDBmZTAzNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFw
U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC00Miw3ICs0Miw3IEBAIHB1
YmxpYzoKICAgICAgICAgVGV4dHVyZShCaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyKiwgUGFzc093blB0cjxDQ1ByaW9yaXRpemVkVGV4dHVyZT4pOwogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlUmVjdChjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBDQ1JlbmRl
cmluZ1N0YXRzJikgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KEND
UmVzb3VyY2VQcm92aWRlciosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJl
Y3QmIGRlc3RSZWN0KSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3Qo
Q0NSZXNvdXJjZVByb3ZpZGVyKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UG9pbnQmIGRlc3RPZmZzZXQpIE9WRVJSSURFOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQml0
bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIoKSB7
IHJldHVybiBtX3RleHR1cmVVcGRhdGVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApp
bmRleCBhMGU4NTdlOWQ0YmM1ZWE3OTI0OTI5NWY5MDYxYmY0YWRkZjI1MzQ3Li4yYmU0ODRiZWYx
ODg2MTRjMWJiZTdkMTU2ODkwYzM5MzE4MmNlZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5jcHAKQEAgLTY3LDEzICs2NywxMyBAQCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6On5UZXh0dXJlKCkKIHsKIH0KIAotdm9pZCBGcmFtZUJ1
ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0ZVJl
Y3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3ZvaWQgRnJhbWVCdWZmZXJTa1Bp
Y3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1cGRhdGVSZWN0KENDUmVz
b3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVj
dCwgY29uc3QgSW50UG9pbnQmIGRlc3RPZmZzZXQpCiB7CiAgICAgV2ViR3JhcGhpY3NDb250ZXh0
M0QqIHNoYXJlZENvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBXZWJTaGFyZWRH
cmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZENvbnRleHQoKSA6IFdlYlNoYXJlZEdy
YXBoaWNzQ29udGV4dDNEOjptYWluVGhyZWFkQ29udGV4dCgpOwogICAgIEdyQ29udGV4dCogc2hh
cmVkR3JDb250ZXh0ID0gQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpID8gV2ViU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0Q6OmNvbXBvc2l0b3JUaHJlYWRHckNvbnRleHQoKSA6IFdlYlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEOjptYWluVGhyZWFkR3JDb250ZXh0KCk7CiAgICAgaWYgKCFzaGFyZWRDb250
ZXh0IHx8ICFzaGFyZWRHckNvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICB0ZXh0dXJlVXBk
YXRlcigpLT51cGRhdGVUZXh0dXJlUmVjdChzaGFyZWRDb250ZXh0LCBzaGFyZWRHckNvbnRleHQs
IHJlc291cmNlUHJvdmlkZXIsIHRleHR1cmUoKSwgc291cmNlUmVjdCwgZGVzdFJlY3QpOworICAg
IHRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZVRleHR1cmVSZWN0KHNoYXJlZENvbnRleHQsIHNoYXJl
ZEdyQ29udGV4dCwgcmVzb3VyY2VQcm92aWRlciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0
T2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI+IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6Y3JlYXRlKFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IHBhaW50ZXIpCkBA
IC0xMDEsNyArMTAxLDcgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0
IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXAKICAgICByZXR1cm4gTGF5
ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQTsKIH0KIAotdm9pZCBGcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVS
ZWN0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwg
Q0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9yaXRpemVkVGV4dHVy
ZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVz
dFJlY3QpCit2b2lkIEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6dXBkYXRlVGV4dHVyZVJlY3QoV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIEdyQ29u
dGV4dCogZ3JDb250ZXh0LCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIEND
UHJpb3JpdGl6ZWRUZXh0dXJlKiB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBj
b25zdCBJbnRQb2ludCYgZGVzdE9mZnNldCkKIHsKICAgICAvLyBNYWtlIHN1cmUgZ2FuZXNoIHVz
ZXMgdGhlIGNvcnJlY3QgR0wgY29udGV4dC4KICAgICBjb250ZXh0LT5tYWtlQ29udGV4dEN1cnJl
bnQoKTsKQEAgLTExNiwxMiArMTE2LDEyIEBAIHZvaWQgRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdChXZWJHcmFwaGljCiAgICAg
Ly8gbmVlZCB0byBkbyBhIHktZmxpcC4KICAgICBjYW52YXMtPnRyYW5zbGF0ZSgwLjAsIHRleHR1
cmUtPnNpemUoKS5oZWlnaHQoKSk7CiAgICAgY2FudmFzLT5zY2FsZSgxLjAsIC0xLjApOwotICAg
IC8vIE9ubHkgdGhlIHJlZ2lvbiBjb3JyZXNwb25kaW5nIHRvIGRlc3RSZWN0IG9uIHRoZSB0ZXh0
dXJlIG11c3QgYmUgdXBkYXRlZC4KLSAgICBjYW52YXMtPmNsaXBSZWN0KFNrUmVjdDo6TWFrZVhZ
V0goZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCksIGRlc3RSZWN0LndpZHRoKCksIGRlc3RSZWN0
LmhlaWdodCgpKSk7CisgICAgLy8gQ2xpcCB0byB0aGUgZGVzdGluYXRpb24gb24gdGhlIHRleHR1
cmUgdGhhdCBtdXN0IGJlIHVwZGF0ZWQuCisgICAgY2FudmFzLT5jbGlwUmVjdChTa1JlY3Q6Ok1h
a2VYWVdIKGRlc3RPZmZzZXQueCgpLCBkZXN0T2Zmc2V0LnkoKSwgc291cmNlUmVjdC53aWR0aCgp
LCBzb3VyY2VSZWN0LmhlaWdodCgpKSk7CiAgICAgLy8gVHJhbnNsYXRlIHRoZSBvcmlnaW4gb2Yg
Y29udGVudFJlY3QgdG8gdGhhdCBvZiBkZXN0UmVjdC4KICAgICAvLyBOb3RlIHRoYXQgZGVzdFJl
Y3QgaXMgZGVmaW5lZCByZWxhdGl2ZSB0byBzb3VyY2VSZWN0LgotICAgIGNhbnZhcy0+dHJhbnNs
YXRlKGNvbnRlbnRSZWN0KCkueCgpIC0gc291cmNlUmVjdC54KCkgKyBkZXN0UmVjdC54KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgY29udGVudFJlY3QoKS55KCkgLSBzb3VyY2VSZWN0LnkoKSAr
IGRlc3RSZWN0LnkoKSk7CisgICAgY2FudmFzLT50cmFuc2xhdGUoY29udGVudFJlY3QoKS54KCkg
LSBzb3VyY2VSZWN0LngoKSArIGRlc3RPZmZzZXQueCgpLAorICAgICAgICAgICAgICAgICAgICAg
IGNvbnRlbnRSZWN0KCkueSgpIC0gc291cmNlUmVjdC55KCkgKyBkZXN0T2Zmc2V0LnkoKSk7CiAg
ICAgZHJhd1BpY3R1cmUoY2FudmFzLmdldCgpKTsKIAogICAgIC8vIEZsdXNoIGdhbmVzaCBjb250
ZXh0IHNvIHRoYXQgYWxsIHRoZSByZW5kZXJlZCBzdHVmZiBhcHBlYXJzIG9uIHRoZSB0ZXh0dXJl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
RnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRleCA2NGQ1ZWVjMzgxNmRkNDQ4MTg0MGE5MDY4
YmRhMWYxNmQ5MmIzOWJlLi4zYmYxODEyNDFjNGZhNjE0NzQ3YWQ2NmUzMjdmMTVjYTc0OWUyMWJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
cmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIFRleHR1cmUoRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyKiwgUGFzc093blB0cjxDQ1ByaW9yaXRpemVkVGV4dHVyZT4pOwogICAgICAgICB2aXJ0dWFs
IH5UZXh0dXJlKCk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3QoQ0NSZXNvdXJj
ZVByb3ZpZGVyKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVz
dFJlY3QpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChDQ1Jlc291
cmNlUHJvdmlkZXIqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYg
ZGVzdE9mZnNldCkgT1ZFUlJJREU7CiAKICAgICBwcml2YXRlOgogICAgICAgICBGcmFtZUJ1ZmZl
clNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIqIHRleHR1cmVVcGRhdGVyKCkgeyBy
ZXR1cm4gbV90ZXh0dXJlVXBkYXRlcjsgfQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZT4gY3JlYXRl
VGV4dHVyZShDQ1ByaW9yaXRpemVkVGV4dHVyZU1hbmFnZXIqKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVy
ZUZvcm1hdCkgT1ZFUlJJREU7Ci0gICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChXZWJLaXQ6Oldl
YkdyYXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0KiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgQ0NQ
cmlvcml0aXplZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRS
ZWN0JiBkZXN0UmVjdCk7CisgICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChXZWJLaXQ6OldlYkdy
YXBoaWNzQ29udGV4dDNEKiwgR3JDb250ZXh0KiwgQ0NSZXNvdXJjZVByb3ZpZGVyKiwgQ0NQcmlv
cml0aXplZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2lu
dCYgZGVzdE9mZnNldCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRnJhbWVCdWZmZXJTa1Bp
Y3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hy
b21pdW0+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IDUwNzNkMWNjOGEx
NjU1N2Q3NDNhMTY3OWQwYWMwODFmYWU0YmE4MmEuLjRkMTRmNWQyNzE2YWFkNGZkMTY5ZDc4MDY1
ODhiOGM1NjQyMWI5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcApAQCAtNTAs
OSArNTAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpIE9WRVJS
SURFCisgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciog
cmVzb3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9p
bnQmIGRlc3RPZmZzZXQpIE9WRVJSSURFCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRleHR1cmVV
cGRhdGVyKCktPnVwZGF0ZVRleHR1cmVSZWN0KHJlc291cmNlUHJvdmlkZXIsIHRleHR1cmUoKSwg
c291cmNlUmVjdCwgZGVzdFJlY3QpOworICAgICAgICAgICAgdGV4dHVyZVVwZGF0ZXIoKS0+dXBk
YXRlVGV4dHVyZVJlY3QocmVzb3VyY2VQcm92aWRlciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBk
ZXN0T2Zmc2V0KTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKQEAgLTc5LDcgKzc5LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhl
bEZvcm1hdFJHQkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRCR1JB
OwogICAgIH0KIAotICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVy
KiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSogdGV4dHVyZSwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCisgICAgdm9pZCB1
cGRhdGVUZXh0dXJlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIEND
UHJpb3JpdGl6ZWRUZXh0dXJlKiB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBj
b25zdCBJbnRQb2ludCYgZGVzdE9mZnNldCkKICAgICB7CiAgICAgICAgIC8vIFNvdXJjZSByZWN0
IHNob3VsZCBuZXZlciBnbyBvdXRzaWRlIHRoZSBpbWFnZSBwaXhlbHMsIGV2ZW4gaWYgdGhpcwog
ICAgICAgICAvLyBpcyByZXF1ZXN0ZWQgYmVjYXVzZSB0aGUgdGV4dHVyZSBleHRlbmRzIG91dHNp
ZGUgdGhlIGltYWdlLgpAQCAtODcsMTIgKzg3LDExIEBAIHB1YmxpYzoKICAgICAgICAgSW50UmVj
dCBpbWFnZVJlY3QgPSBJbnRSZWN0KDAsIDAsIG1fYml0bWFwLndpZHRoKCksIG1fYml0bWFwLmhl
aWdodCgpKTsKICAgICAgICAgY2xpcHBlZFNvdXJjZVJlY3QuaW50ZXJzZWN0KGltYWdlUmVjdCk7
CiAKLSAgICAgICAgSW50UmVjdCBjbGlwcGVkRGVzdFJlY3QgPSBkZXN0UmVjdDsKLSAgICAgICAg
Y2xpcHBlZERlc3RSZWN0Lm1vdmUoY2xpcHBlZFNvdXJjZVJlY3QubG9jYXRpb24oKSAtIHNvdXJj
ZVJlY3QubG9jYXRpb24oKSk7Ci0gICAgICAgIGNsaXBwZWREZXN0UmVjdC5zZXRTaXplKGNsaXBw
ZWRTb3VyY2VSZWN0LnNpemUoKSk7CisgICAgICAgIEludFBvaW50IGNsaXBwZWREZXN0T2Zmc2V0
ID0gZGVzdE9mZnNldDsKKyAgICAgICAgY2xpcHBlZERlc3RPZmZzZXQubW92ZShjbGlwcGVkU291
cmNlUmVjdC5sb2NhdGlvbigpIC0gc291cmNlUmVjdC5sb2NhdGlvbigpKTsKIAogICAgICAgICBT
a0F1dG9Mb2NrUGl4ZWxzIGxvY2sobV9iaXRtYXApOwotICAgICAgICB0ZXh0dXJlLT51cGxvYWQo
cmVzb3VyY2VQcm92aWRlciwgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1fYml0bWFwLmdl
dFBpeGVscygpKSwgaW1hZ2VSZWN0LCBjbGlwcGVkU291cmNlUmVjdCwgY2xpcHBlZERlc3RSZWN0
KTsKKyAgICAgICAgdGV4dHVyZS0+dXBsb2FkKHJlc291cmNlUHJvdmlkZXIsIHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQ4X3QqPihtX2JpdG1hcC5nZXRQaXhlbHMoKSksIGltYWdlUmVjdCwgY2xpcHBl
ZFNvdXJjZVJlY3QsIGNsaXBwZWREZXN0T2Zmc2V0KTsKICAgICB9CiAKICAgICB2b2lkIHNldEJp
dG1hcChjb25zdCBTa0JpdG1hcCYgYml0bWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHAKaW5kZXggNDIwOWRjNjU0NDVkMWM2OWM3ZWY2MmM4YjBmMTU1NmE5MWQ2NDUyYS4u
OTcxODFkMTc2NTE2ZWIxZmFhYWFlNTgwOGQ3YTM3MTNjMjA2ZDE3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBpc0J1c3koKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBiZWdpblVwbG9hZHMoKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZW5kVXBsb2FkcygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGxvYWRUZXh0dXJl
KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgUGFyYW1ldGVycyB1cGxvYWQp
IE9WRVJSSURFIHsgdXBsb2FkLnRleHR1cmUtPnVwZGF0ZVJlY3QocmVzb3VyY2VQcm92aWRlciwg
dXBsb2FkLnNvdXJjZVJlY3QsIHVwbG9hZC5kZXN0UmVjdCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
dXBsb2FkVGV4dHVyZShDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFBhcmFt
ZXRlcnMgdXBsb2FkKSBPVkVSUklERSB7IHVwbG9hZC50ZXh0dXJlLT51cGRhdGVSZWN0KHJlc291
cmNlUHJvdmlkZXIsIHVwbG9hZC5zb3VyY2VSZWN0LCB1cGxvYWQuZGVzdE9mZnNldCk7IH0KIAog
cHJvdGVjdGVkOgogICAgIFVudGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVyKCkgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1
cmVTdWJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclRleHR1cmVTdWJJbWFnZS5jcHAKaW5kZXggYjY2ZDc5ZTA0ZWJkYWY4YTY0Mjc5ZDhh
MzM3YmU4M2U0MWZhYzU5ZC4uODFmZDMyNTFmYTZlMDNhMzE2ZjU2OWM0YzVkMjlmYjA3NWU3ZDE5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUZXh0dXJlU3ViSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVN1YkltYWdlLmNwcApAQCAtNDksMTcgKzQ5LDE3
IEBAIExheWVyVGV4dHVyZVN1YkltYWdlOjp+TGF5ZXJUZXh0dXJlU3ViSW1hZ2UoKQogfQogCiB2
b2lkIExheWVyVGV4dHVyZVN1YkltYWdlOjp1cGxvYWQoY29uc3QgdWludDhfdCogaW1hZ2UsIGNv
bnN0IEludFJlY3QmIGltYWdlUmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBJbnRQb2ludCYgZGVzdE9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQzNEZW51bSBmb3JtYXQsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQog
ewogICAgIGlmIChtX3VzZU1hcFRleFN1YkltYWdlKQotICAgICAgICB1cGxvYWRXaXRoTWFwVGV4
U3ViSW1hZ2UoaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdFJlY3QsIGZvcm1hdCwg
Y29udGV4dCk7CisgICAgICAgIHVwbG9hZFdpdGhNYXBUZXhTdWJJbWFnZShpbWFnZSwgaW1hZ2VS
ZWN0LCBzb3VyY2VSZWN0LCBkZXN0T2Zmc2V0LCBmb3JtYXQsIGNvbnRleHQpOwogICAgIGVsc2UK
LSAgICAgICAgdXBsb2FkV2l0aFRleFN1YkltYWdlKGltYWdlLCBpbWFnZVJlY3QsIHNvdXJjZVJl
Y3QsIGRlc3RSZWN0LCBmb3JtYXQsIGNvbnRleHQpOworICAgICAgICB1cGxvYWRXaXRoVGV4U3Vi
SW1hZ2UoaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdE9mZnNldCwgZm9ybWF0LCBj
b250ZXh0KTsKIH0KIAogdm9pZCBMYXllclRleHR1cmVTdWJJbWFnZTo6dXBsb2FkV2l0aFRleFN1
YkltYWdlKGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RPZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gZm9ybWF0LCBXZWJHcmFwaGljc0Nv
bnRleHQzRCogY29udGV4dCkKIHsKICAgICBUUkFDRV9FVkVOVDAoImNjIiwgIkxheWVyVGV4dHVy
ZVN1YkltYWdlOjp1cGxvYWRXaXRoVGV4U3ViSW1hZ2UiKTsKQEAgLTcxLDI2ICs3MSwyNiBAQCB2
b2lkIExheWVyVGV4dHVyZVN1YkltYWdlOjp1cGxvYWRXaXRoVGV4U3ViSW1hZ2UoY29uc3QgdWlu
dDhfdCogaW1hZ2UsIGNvbnN0IEludAogICAgIGlmIChpbWFnZVJlY3Qud2lkdGgoKSA9PSBzb3Vy
Y2VSZWN0LndpZHRoKCkgJiYgIW9mZnNldC54KCkpCiAgICAgICAgIHBpeGVsU291cmNlID0gJmlt
YWdlWzQgKiBvZmZzZXQueSgpICogaW1hZ2VSZWN0LndpZHRoKCldOwogICAgIGVsc2UgewotICAg
ICAgICBzaXplX3QgbmVlZGVkU2l6ZSA9IDQgKiBkZXN0UmVjdC53aWR0aCgpICogZGVzdFJlY3Qu
aGVpZ2h0KCk7CisgICAgICAgIHNpemVfdCBuZWVkZWRTaXplID0gNCAqIHNvdXJjZVJlY3Qud2lk
dGgoKSAqIHNvdXJjZVJlY3QuaGVpZ2h0KCk7CiAgICAgICAgIGlmIChtX3N1YkltYWdlU2l6ZSA8
IG5lZWRlZFNpemUpIHsKICAgICAgICAgICBtX3N1YkltYWdlID0gYWRvcHRBcnJheVB0cihuZXcg
dWludDhfdFtuZWVkZWRTaXplXSk7CiAgICAgICAgICAgbV9zdWJJbWFnZVNpemUgPSBuZWVkZWRT
aXplOwogICAgICAgICB9CiAgICAgICAgIC8vIFN0cmlkZXMgbm90IGVxdWFsLCBzbyBkbyBhIHJv
dy1ieS1yb3cgbWVtY3B5IGZyb20gdGhlCiAgICAgICAgIC8vIHBhaW50IHJlc3VsdHMgaW50byBh
IHRlbXAgYnVmZmVyIGZvciB1cGxvYWRpbmcuCi0gICAgICAgIGZvciAoaW50IHJvdyA9IDA7IHJv
dyA8IGRlc3RSZWN0LmhlaWdodCgpOyArK3JvdykKLSAgICAgICAgICAgIG1lbWNweSgmbV9zdWJJ
bWFnZVtkZXN0UmVjdC53aWR0aCgpICogNCAqIHJvd10sCisgICAgICAgIGZvciAoaW50IHJvdyA9
IDA7IHJvdyA8IHNvdXJjZVJlY3QuaGVpZ2h0KCk7ICsrcm93KQorICAgICAgICAgICAgbWVtY3B5
KCZtX3N1YkltYWdlW3NvdXJjZVJlY3Qud2lkdGgoKSAqIDQgKiByb3ddLAogICAgICAgICAgICAg
ICAgICAgICZpbWFnZVs0ICogKG9mZnNldC54KCkgKyAob2Zmc2V0LnkoKSArIHJvdykgKiBpbWFn
ZVJlY3Qud2lkdGgoKSldLAotICAgICAgICAgICAgICAgICAgIGRlc3RSZWN0LndpZHRoKCkgKiA0
KTsKKyAgICAgICAgICAgICAgICAgICBzb3VyY2VSZWN0LndpZHRoKCkgKiA0KTsKIAogICAgICAg
ICBwaXhlbFNvdXJjZSA9ICZtX3N1YkltYWdlWzBdOwogICAgIH0KIAotICAgIEdMQyhjb250ZXh0
LCBjb250ZXh0LT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAw
LCBkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgZGVzdFJlY3Qud2lkdGgoKSwgZGVzdFJlY3Qu
aGVpZ2h0KCksIGZvcm1hdCwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIHBpeGVs
U291cmNlKSk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFN1YkltYWdlMkQoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGRlc3RPZmZzZXQueCgpLCBkZXN0T2Zmc2V0Lnko
KSwgc291cmNlUmVjdC53aWR0aCgpLCBzb3VyY2VSZWN0LmhlaWdodCgpLCBmb3JtYXQsIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBwaXhlbFNvdXJjZSkpOwogfQogCiB2b2lkIExh
eWVyVGV4dHVyZVN1YkltYWdlOjp1cGxvYWRXaXRoTWFwVGV4U3ViSW1hZ2UoY29uc3QgdWludDhf
dCogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJ
bnRQb2ludCYgZGVzdE9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHQzNEZW51bSBmb3JtYXQsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KQogewogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiTGF5ZXJUZXh0dXJlU3ViSW1hZ2U6
OnVwbG9hZFdpdGhNYXBUZXhTdWJJbWFnZSIpOwpAQCAtOTgsMTAgKzk4LDEwIEBAIHZvaWQgTGF5
ZXJUZXh0dXJlU3ViSW1hZ2U6OnVwbG9hZFdpdGhNYXBUZXhTdWJJbWFnZShjb25zdCB1aW50OF90
KiBpbWFnZSwgY29uc3QKICAgICBJbnRQb2ludCBvZmZzZXQoc291cmNlUmVjdC54KCkgLSBpbWFn
ZVJlY3QueCgpLCBzb3VyY2VSZWN0LnkoKSAtIGltYWdlUmVjdC55KCkpOwogCiAgICAgLy8gVXBs
b2FkIHRpbGUgZGF0YSB2aWEgYSBtYXBwZWQgdHJhbnNmZXIgYnVmZmVyCi0gICAgdWludDhfdCog
cGl4ZWxEZXN0ID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnRleHQtPm1hcFRleFN1YkltYWdl
MkRDSFJPTUlVTShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgZGVzdFJlY3QueCgp
LCBkZXN0UmVjdC55KCksIGRlc3RSZWN0LndpZHRoKCksIGRlc3RSZWN0LmhlaWdodCgpLCBmb3Jt
YXQsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBFeHRlbnNpb25zM0RDaHJvbWl1
bTo6V1JJVEVfT05MWSkpOworICAgIHVpbnQ4X3QqIHBpeGVsRGVzdCA9IHN0YXRpY19jYXN0PHVp
bnQ4X3QqPihjb250ZXh0LT5tYXBUZXhTdWJJbWFnZTJEQ0hST01JVU0oR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQsIDAsIGRlc3RPZmZzZXQueCgpLCBkZXN0T2Zmc2V0LnkoKSwgc291cmNl
UmVjdC53aWR0aCgpLCBzb3VyY2VSZWN0LmhlaWdodCgpLCBmb3JtYXQsIEdyYXBoaWNzQ29udGV4
dDNEOjpVTlNJR05FRF9CWVRFLCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6V1JJVEVfT05MWSkpOwog
CiAgICAgaWYgKCFwaXhlbERlc3QpIHsKLSAgICAgICAgdXBsb2FkV2l0aFRleFN1YkltYWdlKGlt
YWdlLCBpbWFnZVJlY3QsIHNvdXJjZVJlY3QsIGRlc3RSZWN0LCBmb3JtYXQsIGNvbnRleHQpOwor
ICAgICAgICB1cGxvYWRXaXRoVGV4U3ViSW1hZ2UoaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVj
dCwgZGVzdE9mZnNldCwgZm9ybWF0LCBjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTEzLDE0ICsxMTMsMTQgQEAgdm9pZCBMYXllclRleHR1cmVTdWJJbWFnZTo6dXBsb2Fk
V2l0aE1hcFRleFN1YkltYWdlKGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdAogICAgIH0KIAog
ICAgIGlmIChpbWFnZVJlY3Qud2lkdGgoKSA9PSBzb3VyY2VSZWN0LndpZHRoKCkgJiYgIW9mZnNl
dC54KCkpCi0gICAgICAgIG1lbWNweShwaXhlbERlc3QsICZpbWFnZVtvZmZzZXQueSgpICogaW1h
Z2VSZWN0LndpZHRoKCkgKiBjb21wb25lbnRzUGVyUGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudF0s
IGltYWdlUmVjdC53aWR0aCgpICogZGVzdFJlY3QuaGVpZ2h0KCkgKiBjb21wb25lbnRzUGVyUGl4
ZWwgKiBieXRlc1BlckNvbXBvbmVudCk7CisgICAgICAgIG1lbWNweShwaXhlbERlc3QsICZpbWFn
ZVtvZmZzZXQueSgpICogaW1hZ2VSZWN0LndpZHRoKCkgKiBjb21wb25lbnRzUGVyUGl4ZWwgKiBi
eXRlc1BlckNvbXBvbmVudF0sIGltYWdlUmVjdC53aWR0aCgpICogc291cmNlUmVjdC5oZWlnaHQo
KSAqIGNvbXBvbmVudHNQZXJQaXhlbCAqIGJ5dGVzUGVyQ29tcG9uZW50KTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gU3RyaWRlcyBub3QgZXF1YWwsIHNvIGRvIGEgcm93LWJ5LXJvdyBtZW1jcHkg
ZnJvbSB0aGUKICAgICAgICAgLy8gcGFpbnQgcmVzdWx0cyBpbnRvIHRoZSBwaXhlbERlc3QKLSAg
ICAgICAgZm9yIChpbnQgcm93ID0gMDsgcm93IDwgZGVzdFJlY3QuaGVpZ2h0KCk7ICsrcm93KQot
ICAgICAgICAgICAgbWVtY3B5KCZwaXhlbERlc3RbZGVzdFJlY3Qud2lkdGgoKSAqIHJvdyAqIGNv
bXBvbmVudHNQZXJQaXhlbCAqIGJ5dGVzUGVyQ29tcG9uZW50XSwKKyAgICAgICAgZm9yIChpbnQg
cm93ID0gMDsgcm93IDwgc291cmNlUmVjdC5oZWlnaHQoKTsgKytyb3cpCisgICAgICAgICAgICBt
ZW1jcHkoJnBpeGVsRGVzdFtzb3VyY2VSZWN0LndpZHRoKCkgKiByb3cgKiBjb21wb25lbnRzUGVy
UGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudF0sCiAgICAgICAgICAgICAgICAgICAgJmltYWdlWzQg
KiAob2Zmc2V0LngoKSArIChvZmZzZXQueSgpICsgcm93KSAqIGltYWdlUmVjdC53aWR0aCgpKV0s
Ci0gICAgICAgICAgICAgICAgICAgZGVzdFJlY3Qud2lkdGgoKSAqIGNvbXBvbmVudHNQZXJQaXhl
bCAqIGJ5dGVzUGVyQ29tcG9uZW50KTsKKyAgICAgICAgICAgICAgICAgICBzb3VyY2VSZWN0Lndp
ZHRoKCkgKiBjb21wb25lbnRzUGVyUGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudCk7CiAgICAgfQog
ICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT51bm1hcFRleFN1YkltYWdlMkRDSFJPTUlVTShwaXhl
bERlc3QpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyVGV4dHVyZVN1YkltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVTdWJJbWFnZS5oCmluZGV4IDM1N2I2NDEz
NDRiMmUwY2ZkZjVlM2FmZTkzMmM4ZDE4YWZhZTcxZTYuLjdkNjdlOGJlOTQ0NjQ3YjYyMjNlMzRh
NjNkODRkOTA4ZDA4YTk3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVN1YkltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlU3ViSW1hZ2UuaApAQCAt
NDYsMTUgKzQ2LDE1IEBAIHB1YmxpYzoKICAgICB+TGF5ZXJUZXh0dXJlU3ViSW1hZ2UoKTsKIAog
ICAgIHZvaWQgdXBsb2FkKGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBpbWFn
ZVJlY3QsCi0gICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgZGVzdFJlY3QsCisgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RPZmZzZXQsCiAgICAgICAgICAgICAgICAgR0MzRGVu
dW0gZm9ybWF0LCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKik7CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCB1cGxvYWRXaXRoVGV4U3ViSW1hZ2UoY29uc3QgdWludDhfdCogaW1hZ2UsIGNvbnN0
IEludFJlY3QmIGltYWdlUmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJ
bnRQb2ludCYgZGVzdE9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQzNE
ZW51bSBmb3JtYXQsIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqKTsKICAgICB2b2lkIHVw
bG9hZFdpdGhNYXBUZXhTdWJJbWFnZShjb25zdCB1aW50OF90KiBpbWFnZSwgY29uc3QgSW50UmVj
dCYgaW1hZ2VSZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFBvaW50JiBkZXN0T2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
M0RlbnVtIGZvcm1hdCwgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCopOwogCiAgICAgYm9v
bCBtX3VzZU1hcFRleFN1YkltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4
IGUzYWM0OTk0NTM1YTc0NmFmNmFmZmY4OTA3MjNhYTIxOTMxNzRlMWIuLmFmNDIyOWZiZDRkZmNi
MGEyOTE3NzUyZTdlOTcwMTk1Mzg5YWUyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVy
LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgICAgICBDQ1ByaW9yaXRpemVkVGV4dHVy
ZSogdGV4dHVyZSgpIHsgcmV0dXJuIG1fdGV4dHVyZS5nZXQoKTsgfQogICAgICAgICB2b2lkIHN3
YXBUZXh0dXJlV2l0aChPd25QdHI8Q0NQcmlvcml0aXplZFRleHR1cmU+JiB0ZXh0dXJlKSB7IG1f
dGV4dHVyZS5zd2FwKHRleHR1cmUpOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlUmVj
dChjb25zdCBJbnRSZWN0JiAvKiBzb3VyY2VSZWN0ICovLCBDQ1JlbmRlcmluZ1N0YXRzJikgeyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciosIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciosIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0T2Zmc2V0KSA9IDA7CiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNpdCBUZXh0dXJlKFBhc3NPd25QdHI8Q0NQcmlv
cml0aXplZFRleHR1cmU+IHRleHR1cmUpIDogbV90ZXh0dXJlKHRleHR1cmUpIHsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxi
YXJMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGEwZmJmNWM0NGY2NDVkZmJh
YzRhYjI1OGE2ZWIxNWJiMWU0ZmY1YzguLjc1MTBhNzMzOTE5NGZkZTU5NzJlYThiMGMyMmM3NGI2
OWQxZmZiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCkBAIC0y
MjgsOCArMjI4LDggQEAgdm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGVQYXJ0KExh
eWVyVGV4dHVyZVVwZGF0ZXIqIHBhaW50ZXIsIExheWVyVGV4dHUKICAgICBwYWludGVyLT5wcmVw
YXJlVG9VcGRhdGUocmVjdCwgcmVjdC5zaXplKCksIDEsIDEsIHBhaW50ZWRPcGFxdWVSZWN0LCBz
dGF0cyk7CiAgICAgdGV4dHVyZS0+cHJlcGFyZVJlY3QocmVjdCwgc3RhdHMpOwogCi0gICAgSW50
UmVjdCBkZXN0UmVjdChJbnRQb2ludCgpLCByZWN0LnNpemUoKSk7Ci0gICAgVGV4dHVyZVVwbG9h
ZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgdGV4dHVyZSwgcmVjdCwgZGVzdFJlY3QgfTsKKyAg
ICBJbnRQb2ludCBkZXN0T2Zmc2V0KDAsIDApOworICAgIFRleHR1cmVVcGxvYWRlcjo6UGFyYW1l
dGVycyB1cGxvYWQgPSB7IHRleHR1cmUsIHJlY3QsIGRlc3RPZmZzZXQgfTsKICAgICBxdWV1ZS5h
cHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVVcGxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9hZGVyLmgKaW5kZXgg
N2E1MTY1M2Y4YWNkMTAwMzJlYWQxMWU0YzQ2ZTdjMmEyNDkyMWRhZC4uYjY3MTY5OWIxYzE2YzZj
NzgwYjRmN2ZmYjY5Njg1Y2RlYzk1MDU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9hZGVyLmgKQEAgLTM0
LDcgKzM0LDcgQEAgcHVibGljOgogICAgIHN0cnVjdCBQYXJhbWV0ZXJzIHsKICAgICAgICAgTGF5
ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZSogdGV4dHVyZTsKICAgICAgICAgSW50UmVjdCBzb3Vy
Y2VSZWN0OwotICAgICAgICBJbnRSZWN0IGRlc3RSZWN0OworICAgICAgICBJbnRQb2ludCBkZXN0
T2Zmc2V0OwogICAgIH07CiAKICAgICB2aXJ0dWFsIH5UZXh0dXJlVXBsb2FkZXIoKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rocm90
dGxlZFRleHR1cmVVcGxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaHJvdHRsZWRUZXh0dXJlVXBsb2FkZXIuY3BwCmluZGV4IDkzZGExODljNWJj
YTMzZGVlOWQwYjQ3NDFjOTcwMzM0NmNjNjc3NmQuLmI4MmVkMmI5N2M2NTkwNjMyNWZlZDgzYjM5
MTA4ZDkzM2JiZDI5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1Rocm90dGxlZFRleHR1cmVVcGxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVy
LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgVGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVyOjpl
bmRVcGxvYWRzKCkKIAogdm9pZCBUaHJvdHRsZWRUZXh0dXJlVXBsb2FkZXI6OnVwbG9hZFRleHR1
cmUoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBQYXJhbWV0ZXJzIHVwbG9h
ZCkKIHsKLSAgICB1cGxvYWQudGV4dHVyZS0+dXBkYXRlUmVjdChyZXNvdXJjZVByb3ZpZGVyLCB1
cGxvYWQuc291cmNlUmVjdCwgdXBsb2FkLmRlc3RSZWN0KTsKKyAgICB1cGxvYWQudGV4dHVyZS0+
dXBkYXRlUmVjdChyZXNvdXJjZVByb3ZpZGVyLCB1cGxvYWQuc291cmNlUmVjdCwgdXBsb2FkLmRl
c3RPZmZzZXQpOwogfQogCiB2b2lkIFRocm90dGxlZFRleHR1cmVVcGxvYWRlcjo6cHJvY2Vzc1F1
ZXJpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggYWZiZThmMjBjMzY5
YTU3NzA3Y2Y2MTczNWZjOWIzMGRjZTJjYjgzMS4uMzY5MmM0YzNjZmQ3ODQ3ZjYzNGQwN2ZmY2Zk
MmZkZjczZGM3ZGMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC01Mjks
MTAgKzUyOSwxMCBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGlsZVRleHR1cmVz
KGNvbnN0IEludFJlY3QmIHBhaW50UmVjdCwgaW50IGxlZnQsCiAgICAgICAgICAgICBjb25zdCBJ
bnRQb2ludCBhbmNob3IgPSBtX3RpbGVyLT50aWxlUmVjdCh0aWxlKS5sb2NhdGlvbigpOwogCiAg
ICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGlsZS1zcGFjZSByZWN0YW5nbGUgdG8gdXBsb2FkIGlu
dG8uCi0gICAgICAgICAgICBJbnRSZWN0IGRlc3RSZWN0KEludFBvaW50KHNvdXJjZVJlY3QueCgp
IC0gYW5jaG9yLngoKSwgc291cmNlUmVjdC55KCkgLSBhbmNob3IueSgpKSwgc291cmNlUmVjdC5z
aXplKCkpOwotICAgICAgICAgICAgaWYgKGRlc3RSZWN0LngoKSA8IDApCisgICAgICAgICAgICBJ
bnRQb2ludCBkZXN0T2Zmc2V0KHNvdXJjZVJlY3QueCgpIC0gYW5jaG9yLngoKSwgc291cmNlUmVj
dC55KCkgLSBhbmNob3IueSgpKTsKKyAgICAgICAgICAgIGlmIChkZXN0T2Zmc2V0LngoKSA8IDAp
CiAgICAgICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgICAgIGlmIChkZXN0UmVjdC55KCkg
PCAwKQorICAgICAgICAgICAgaWYgKGRlc3RPZmZzZXQueSgpIDwgMCkKICAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogCiAgICAgICAgICAgICAvLyBPZmZzZXQgZnJvbSBwYWludCByZWN0YW5nbGUg
dG8gdGhpcyB0aWxlJ3MgZGlydHkgcmVjdGFuZ2xlLgpAQCAtNTQxLDEyICs1NDEsMTIgQEAgdm9p
ZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVUZXh0dXJlcyhjb25zdCBJbnRSZWN0JiBw
YWludFJlY3QsIGludCBsZWZ0LAogICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAgICAgICAg
ICBpZiAocGFpbnRPZmZzZXQueSgpIDwgMCkKICAgICAgICAgICAgICAgICBDUkFTSCgpOwotICAg
ICAgICAgICAgaWYgKHBhaW50T2Zmc2V0LngoKSArIGRlc3RSZWN0LndpZHRoKCkgPiBwYWludFJl
Y3Qud2lkdGgoKSkKKyAgICAgICAgICAgIGlmIChwYWludE9mZnNldC54KCkgKyBzb3VyY2VSZWN0
LndpZHRoKCkgPiBwYWludFJlY3Qud2lkdGgoKSkKICAgICAgICAgICAgICAgICBDUkFTSCgpOwot
ICAgICAgICAgICAgaWYgKHBhaW50T2Zmc2V0LnkoKSArIGRlc3RSZWN0LmhlaWdodCgpID4gcGFp
bnRSZWN0LmhlaWdodCgpKQorICAgICAgICAgICAgaWYgKHBhaW50T2Zmc2V0LnkoKSArIHNvdXJj
ZVJlY3QuaGVpZ2h0KCkgPiBwYWludFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgICAgICAgICAgQ1JB
U0goKTsKIAotICAgICAgICAgICAgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9
IHsgdGlsZS0+dGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0UmVjdCB9OworICAgICAgICAgICAg
VGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgdGlsZS0+dGV4dHVyZSgpLCBz
b3VyY2VSZWN0LCBkZXN0T2Zmc2V0IH07CiAgICAgICAgICAgICBpZiAodGlsZS0+cGFydGlhbFVw
ZGF0ZSkKICAgICAgICAgICAgICAgICBxdWV1ZS5hcHBlbmRQYXJ0aWFsVXBsb2FkKHVwbG9hZCk7
CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlM
YXllckltcGwuY3BwCmluZGV4IDk3ZDFlZjU0YTg0MDdiYWUwZmEwNzM0M2JhMGQyZWI0MDc5NzM2
ZDcuLjEyYmMyZmMxNWI1Zjc0ZWI1MjFjYmI0NDViNTM4YzY5MjViODk4YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERp
c3BsYXlMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwCkBAIC0xMDcsNyArMTA3
LDcgQEAgdm9pZCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjp3aWxsRHJhdyhDQ1Jlc291cmNl
UHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIpCiAKICAgICBJbnRSZWN0IGxheWVyUmVjdChJbnRQ
b2ludCgpLCBib3VuZHMoKSk7CiAgICAgQVNTRVJUKGJpdG1hcC0+Y29uZmlnKCkgPT0gU2tCaXRt
YXA6OmtBUkdCXzg4ODhfQ29uZmlnKTsKLSAgICByZXNvdXJjZVByb3ZpZGVyLT51cGxvYWQobV9o
dWRUZXh0dXJlLT5pZCgpLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYml0bWFwLT5nZXRQ
aXhlbHMoKSksIGxheWVyUmVjdCwgbGF5ZXJSZWN0LCBsYXllclJlY3QpOworICAgIHJlc291cmNl
UHJvdmlkZXItPnVwbG9hZChtX2h1ZFRleHR1cmUtPmlkKCksIHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QqPihiaXRtYXAtPmdldFBpeGVscygpKSwgbGF5ZXJSZWN0LCBsYXllclJlY3QsIGxheWVy
UmVjdC5sb2NhdGlvbigpKTsKIH0KIAogdm9pZCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjph
cHBlbmRRdWFkcyhDQ1F1YWRTaW5rJiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUq
IHNoYXJlZFF1YWRTdGF0ZSwgYm9vbCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVkVGV4dHVyZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVkVGV4
dHVyZS5jcHAKaW5kZXggNjBjZjFhMWUyY2U1Nzg3MTA3ZmE3MzgzYWE1NTQxYjlkZTBiZGRkNC4u
MzRlYmY1MjVhYzFiOWI5YjQ1MDdiYTFhOGM3OWM3ZWEyYzViZjQ0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcmlvcml0aXplZFRl
eHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDUHJpb3JpdGl6ZWRUZXh0dXJlLmNwcApAQCAtMTA1LDEzICsxMDUsMTMgQEAgQ0NSZXNv
dXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIENDUHJpb3JpdGl6ZWRUZXh0dXJlOjpyZXNvdXJjZUlk
KCkgY29uc3QKIAogdm9pZCBDQ1ByaW9yaXRpemVkVGV4dHVyZTo6dXBsb2FkKENDUmVzb3VyY2VQ
cm92aWRlciogcmVzb3VyY2VQcm92aWRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCB1aW50OF90KiBpbWFnZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0T2Zmc2V0
KQogewogICAgIEFTU0VSVChtX2lzQWJvdmVQcmlvcml0eUN1dG9mZik7CiAgICAgaWYgKG1faXNB
Ym92ZVByaW9yaXR5Q3V0b2ZmKQogICAgICAgICBhY3F1aXJlQmFja2luZ1RleHR1cmUocmVzb3Vy
Y2VQcm92aWRlcik7CiAgICAgQVNTRVJUKG1fYmFja2luZyk7Ci0gICAgcmVzb3VyY2VQcm92aWRl
ci0+dXBsb2FkKHJlc291cmNlSWQoKSwgaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVz
dFJlY3QpOworICAgIHJlc291cmNlUHJvdmlkZXItPnVwbG9hZChyZXNvdXJjZUlkKCksIGltYWdl
LCBpbWFnZVJlY3QsIHNvdXJjZVJlY3QsIGRlc3RPZmZzZXQpOwogfQogCiB2b2lkIENDUHJpb3Jp
dGl6ZWRUZXh0dXJlOjpsaW5rKEJhY2tpbmcqIGJhY2tpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVkVGV4dHVy
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcmlv
cml0aXplZFRleHR1cmUuaAppbmRleCA3NjRjYmVjZWRjM2RjZDI3YTJiM2M2NTA5Mzk5MzUwNDE2
ZDkwN2E5Li41MWY5Nzk2Y2I2NjI4OTA4MmNkOTk4ODMxY2NjYjFkMDEyZjg2OGM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9y
aXRpemVkVGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUHJpb3JpdGl6ZWRUZXh0dXJlLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgcmVxdWVzdExhdGUoKTsKIAogICAgIC8vIFVwbG9hZHMgcGl4ZWxzIGludG8g
dGhlIGJhY2tpbmcgcmVzb3VyY2UuIFRoaXMgZnVuY3Rpb25zIHdpbGwgYXF1aXJlIHRoZSBiYWNr
aW5nIGlmIG5lZWRlZC4KLSAgICB2b2lkIHVwbG9hZChDQ1Jlc291cmNlUHJvdmlkZXIqLCBjb25z
dCB1aW50OF90KiBpbWFnZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CisgICAgdm9pZCB1cGxvYWQo
Q0NSZXNvdXJjZVByb3ZpZGVyKiwgY29uc3QgdWludDhfdCogaW1hZ2UsIGNvbnN0IEludFJlY3Qm
IGltYWdlUmVjdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRl
c3RPZmZzZXQpOwogCiAgICAgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIHJlc291cmNl
SWQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVzb3VyY2VQcm92aWRlci5jcHAKaW5kZXgg
YTBiZDM3Y2M4ZDVhZTgzYTA4M2I5MWRjZDcxMWI5OTE5OTdmMGQ3MC4uYzNiY2UzN2VmMjdmZTQ1
ZmVmYjQ1ZTFjYWE3NmQyZjQ4MTQyY2I3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJv
dmlkZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBDQ1Jlc291cmNlUHJvdmlkZXI6OmRl
bGV0ZU93bmVkUmVzb3VyY2VzKGludCBwb29sKQogICAgICAgICBkZWxldGVSZXNvdXJjZSgqaXQp
OwogfQogCi12b2lkIENDUmVzb3VyY2VQcm92aWRlcjo6dXBsb2FkKFJlc291cmNlSWQgaWQsIGNv
bnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQordm9pZCBDQ1Jlc291cmNl
UHJvdmlkZXI6OnVwbG9hZChSZXNvdXJjZUlkIGlkLCBjb25zdCB1aW50OF90KiBpbWFnZSwgY29u
c3QgSW50UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJ
bnRQb2ludCYgZGVzdE9mZnNldCkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFk
KCkpOwogICAgIEFTU0VSVChtX3RleFN1YkltYWdlLmdldCgpKTsKQEAgLTE2Myw3ICsxNjMsNyBA
QCB2b2lkIENDUmVzb3VyY2VQcm92aWRlcjo6dXBsb2FkKFJlc291cmNlSWQgaWQsIGNvbnN0IHVp
bnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZQogICAgIEFTU0VSVChpdCAhPSBtX3Jlc291cmNlcy5l
bmQoKSAmJiAhaXQtPnNlY29uZC5sb2NrZWRGb3JXcml0ZSAmJiAhaXQtPnNlY29uZC5sb2NrRm9y
UmVhZENvdW50ICYmICFpdC0+c2Vjb25kLmV4dGVybmFsKTsKIAogICAgIGNvbnRleHQzZC0+Ymlu
ZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIGl0LT5zZWNvbmQuZ2xJZCk7
Ci0gICAgbV90ZXhTdWJJbWFnZS0+dXBsb2FkKGltYWdlLCBpbWFnZVJlY3QsIHNvdXJjZVJlY3Qs
IGRlc3RSZWN0LCBpdC0+c2Vjb25kLmZvcm1hdCwgY29udGV4dDNkKTsKKyAgICBtX3RleFN1Yklt
YWdlLT51cGxvYWQoaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdE9mZnNldCwgaXQt
PnNlY29uZC5mb3JtYXQsIGNvbnRleHQzZCk7CiB9CiAKIHVuc2lnbmVkIENDUmVzb3VyY2VQcm92
aWRlcjo6bG9ja0ZvcldyaXRlKFJlc291cmNlSWQgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVzb3VyY2VQ
cm92aWRlci5oCmluZGV4IGFkZDkwOWU1YmZlYTUwMDc1ZjY3NjIyNzlkNjU4OWIzMjMxYzBlMjUu
LmIwMTRiMDlhZDFhNWUxMjM0NDE5ZGNjN2VhZWU2ZWY3NjY5MTYzODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVzb3VyY2VQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVzb3VyY2VQcm92aWRlci5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRlbGV0ZU93bmVkUmVzb3VyY2VzKGludCBwb29sKTsKIAogICAgIC8vIFVwbG9hZCBkYXRhIGZy
b20gaW1hZ2UsIGNvcHlpbmcgc291cmNlUmVjdCAoaW4gaW1hZ2UpIGludG8gZGVzdFJlY3QgKGlu
IHRoZSByZXNvdXJjZSkuCi0gICAgdm9pZCB1cGxvYWQoUmVzb3VyY2VJZCwgY29uc3QgdWludDhf
dCogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOworICAgIHZvaWQgdXBsb2FkKFJlc291cmNl
SWQsIGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0T2Zmc2V0KTsKIAogICAg
IC8vIEZsdXNoIGFsbCBjb250ZXh0IG9wZXJhdGlvbnMsIGtpY2tpbmcgdXBsb2FkcyBhbmQgZW5z
dXJpbmcgb3JkZXJpbmcgd2l0aAogICAgIC8vIHJlc3BlY3QgdG8gb3RoZXIgY29udGV4dHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1ZpZGVvTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IDQyMDhkNTJjYmQzN2YzYTQ1Zjlh
ODgwNGZjNDQ1NDUwYWY4MmUxNzkuLmVmYWQ5MGU0MTQzYmJmOTM3YWMwMGJjYWI2ZTJmOTk1Yzkx
NzUxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC0zNTEsNyArMzUx
LDcgQEAgYm9vbCBDQ1ZpZGVvTGF5ZXJJbXBsOjpjb3B5UGxhbmVEYXRhKENDUmVzb3VyY2VQcm92
aWRlciogcmVzb3VyY2VQcm92aWRlcikKICAgICAgICAgQ0NWaWRlb0xheWVySW1wbDo6RnJhbWVQ
bGFuZSYgcGxhbmUgPSBtX2ZyYW1lUGxhbmVzW3NvZnR3YXJlUGxhbmVJbmRleF07CiAgICAgICAg
IGNvbnN0IHVpbnQ4X3QqIHNvZnR3YXJlUGxhbmVQaXhlbHMgPSBzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90Kj4obV9mcmFtZS0+ZGF0YShzb2Z0d2FyZVBsYW5lSW5kZXgpKTsKICAgICAgICAgSW50
UmVjdCBwbGFuZVJlY3QoSW50UG9pbnQoKSwgcGxhbmUuc2l6ZSk7Ci0gICAgICAgIHJlc291cmNl
UHJvdmlkZXItPnVwbG9hZChwbGFuZS5yZXNvdXJjZUlkLCBzb2Z0d2FyZVBsYW5lUGl4ZWxzLCBw
bGFuZVJlY3QsIHBsYW5lUmVjdCwgcGxhbmVSZWN0KTsKKyAgICAgICAgcmVzb3VyY2VQcm92aWRl
ci0+dXBsb2FkKHBsYW5lLnJlc291cmNlSWQsIHNvZnR3YXJlUGxhbmVQaXhlbHMsIHBsYW5lUmVj
dCwgcGxhbmVSZWN0LCBwbGFuZVJlY3QubG9jYXRpb24oKSk7CiAgICAgfQogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Jlc291
cmNlUHJvdmlkZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NSZXNv
dXJjZVByb3ZpZGVyVGVzdC5jcHAKaW5kZXggNDIyNzc0NTlhZWUwNzQxYTk2YjIzM2E1MmUzYTYw
ZjgyMWI0ODBhNC4uZDdhZmY5MWE2YjBkMjgyZGQyMTA2ZGU4MDc0YjE0NDRhZWY3NmE3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Jlc291cmNlUHJvdmlkZXJU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUmVzb3VyY2VQcm92
aWRlclRlc3QuY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgVEVTVF9GKENDUmVzb3VyY2VQcm92aWRl
clRlc3QsIEJhc2ljKQogCiAgICAgdWludDhfdCBkYXRhWzRdID0gezEsIDIsIDMsIDR9OwogICAg
IEludFJlY3QgcmVjdChJbnRQb2ludCgpLCBzaXplKTsKLSAgICBtX3Jlc291cmNlUHJvdmlkZXIt
PnVwbG9hZChpZCwgZGF0YSwgcmVjdCwgcmVjdCwgcmVjdCk7CisgICAgbV9yZXNvdXJjZVByb3Zp
ZGVyLT51cGxvYWQoaWQsIGRhdGEsIHJlY3QsIHJlY3QsIHJlY3QubG9jYXRpb24oKSk7CiAKICAg
ICB1aW50OF90IHJlc3VsdFs0XSA9IHswfTsKICAgICBnZXRSZXNvdXJjZVBpeGVscyhpZCwgc2l6
ZSwgZm9ybWF0LCByZXN1bHQpOwpAQCAtMjYzLDcgKzI2Myw3IEBAIFRFU1RfRihDQ1Jlc291cmNl
UHJvdmlkZXJUZXN0LCBVcGxvYWQpCiAKICAgICB1aW50OF90IGltYWdlWzE2XSA9IHswfTsKICAg
ICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCBzaXplKTsKLSAgICBtX3Jlc291cmNlUHJv
dmlkZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVjdCwgaW1hZ2VSZWN0LCBpbWFnZVJlY3Qp
OworICAgIG1fcmVzb3VyY2VQcm92aWRlci0+dXBsb2FkKGlkLCBpbWFnZSwgaW1hZ2VSZWN0LCBp
bWFnZVJlY3QsIGltYWdlUmVjdC5sb2NhdGlvbigpKTsKIAogICAgIGZvciAodWludDhfdCBpID0g
MCA7IGkgPCBwaXhlbFNpemU7ICsraSkKICAgICAgICAgaW1hZ2VbaV0gPSBpOwpAQCAtMjcxLDgg
KzI3MSw4IEBAIFRFU1RfRihDQ1Jlc291cmNlUHJvdmlkZXJUZXN0LCBVcGxvYWQpCiAgICAgdWlu
dDhfdCByZXN1bHRbMTZdID0gezB9OwogICAgIHsKICAgICAgICAgSW50UmVjdCBzb3VyY2VSZWN0
KDAsIDAsIDEsIDEpOwotICAgICAgICBJbnRSZWN0IGRlc3RSZWN0KDAsIDAsIDEsIDEpOwotICAg
ICAgICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVjdCwgc291
cmNlUmVjdCwgZGVzdFJlY3QpOworICAgICAgICBJbnRQb2ludCBkZXN0T2Zmc2V0KDAsIDApOwor
ICAgICAgICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVjdCwg
c291cmNlUmVjdCwgZGVzdE9mZnNldCk7CiAKICAgICAgICAgdWludDhfdCBleHBlY3RlZFsxNl0g
PSB7MCwgMSwgMiwgMywgICAwLCAwLCAwLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLCAwLCAwLCAwLCAgIDAsIDAsIDAsIDB9OwpAQCAtMjgxLDggKzI4MSw4IEBAIFRFU1Rf
RihDQ1Jlc291cmNlUHJvdmlkZXJUZXN0LCBVcGxvYWQpCiAgICAgfQogICAgIHsKICAgICAgICAg
SW50UmVjdCBzb3VyY2VSZWN0KDAsIDAsIDEsIDEpOwotICAgICAgICBJbnRSZWN0IGRlc3RSZWN0
KDEsIDEsIDEsIDEpOwotICAgICAgICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwgaW1h
Z2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdFJlY3QpOworICAgICAgICBJbnRQb2ludCBk
ZXN0T2Zmc2V0KDEsIDEpOworICAgICAgICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwg
aW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdE9mZnNldCk7CiAKICAgICAgICAgdWlu
dDhfdCBleHBlY3RlZFsxNl0gPSB7MCwgMSwgMiwgMywgICAwLCAwLCAwLCAwLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAgIDAsIDEsIDIsIDN9OwpAQCAtMjkx
LDggKzI5MSw4IEBAIFRFU1RfRihDQ1Jlc291cmNlUHJvdmlkZXJUZXN0LCBVcGxvYWQpCiAgICAg
fQogICAgIHsKICAgICAgICAgSW50UmVjdCBzb3VyY2VSZWN0KDEsIDAsIDEsIDEpOwotICAgICAg
ICBJbnRSZWN0IGRlc3RSZWN0KDAsIDEsIDEsIDEpOwotICAgICAgICBtX3Jlc291cmNlUHJvdmlk
ZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdFJlY3QpOwor
ICAgICAgICBJbnRQb2ludCBkZXN0T2Zmc2V0KDAsIDEpOworICAgICAgICBtX3Jlc291cmNlUHJv
dmlkZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdE9mZnNl
dCk7CiAKICAgICAgICAgdWludDhfdCBleHBlY3RlZFsxNl0gPSB7MCwgMSwgMiwgMywgICAwLCAw
LCAwLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCA1LCA2LCA3LCAgIDAs
IDEsIDIsIDN9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAppbmRleCBhMGRjMmVjMWY5MzY4
MTI3OTc2ZjE2MzRlMDIzMWVhMjdlMWYyNmYwLi44MTE0MDk0YjljM2NlYWJiNmQwODBhMTIzYzg3
OTFmYmUyOGNkZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcApAQCAtODksNyArODks
NyBAQCBwcml2YXRlOgogY2xhc3MgVGV4dHVyZUZvclVwbG9hZFRlc3QgOiBwdWJsaWMgTGF5ZXJU
ZXh0dXJlVXBkYXRlcjo6VGV4dHVyZSB7CiBwdWJsaWM6CiAgICAgVGV4dHVyZUZvclVwbG9hZFRl
c3QoKSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUoYWRvcHRQdHI8Q0NQcmlvcml0aXpl
ZFRleHR1cmU+KDApKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChDQ1Jlc291cmNl
UHJvdmlkZXIqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVy
KiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RPZmZzZXQp
IHsgfQogfTsKIAogCkBAIC0xOTAsNyArMTkwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX3Rv
dGFsVXBsb2FkQ291bnRFeHBlY3RlZCArPSBjb3VudDsKIAogICAgICAgICBjb25zdCBJbnRSZWN0
IHJlY3QoMCwgMCwgMzAwLCAxNTApOwotICAgICAgICBjb25zdCBUZXh0dXJlVXBsb2FkZXI6OlBh
cmFtZXRlcnMgdXBsb2FkID0geyAmbV90ZXh0dXJlLCByZWN0LCByZWN0IH07CisgICAgICAgIGNv
bnN0IFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQgPSB7ICZtX3RleHR1cmUsIHJl
Y3QsIHJlY3QubG9jYXRpb24oKSB9OwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50
OyBpKyspCiAgICAgICAgICAgICBtX3F1ZXVlLT5hcHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CiAg
ICAgfQpAQCAtMjAxLDcgKzIwMSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV90b3RhbFVwbG9h
ZENvdW50RXhwZWN0ZWQgKz0gY291bnQ7CiAKICAgICAgICAgY29uc3QgSW50UmVjdCByZWN0KDAs
IDAsIDEwMCwgMTAwKTsKLSAgICAgICAgY29uc3QgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJz
IHVwbG9hZCA9IHsgJm1fdGV4dHVyZSwgcmVjdCwgcmVjdCB9OworICAgICAgICBjb25zdCBUZXh0
dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgdXBsb2FkID0geyAmbV90ZXh0dXJlLCByZWN0LCByZWN0
LmxvY2F0aW9uKCkgfTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQog
ICAgICAgICAgICAgbV9xdWV1ZS0+YXBwZW5kUGFydGlhbFVwbG9hZCh1cGxvYWQpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVz
dENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRl
c3RDb21tb24uY3BwCmluZGV4IDU0ZjI5YmJlZjU1NDhkM2UwY2Y3NTQyMWYzYzYzM2MzZDUwOWEz
MDQuLmE5NTI2MzNmZDQ2NTRjOGY3OTE3ZDE4N2ZhOWE5ZDBkM2FhZTM5N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9u
LmNwcApAQCAtNDAsNyArNDAsNyBAQCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6
flRleHR1cmUoKQogewogfQogCi12b2lkIEZha2VMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJl
Ojp1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFJlY3QmKQordm9pZCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
VGV4dHVyZTo6dXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIs
IGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYpCiB7CiAgICAgdGV4dHVyZSgpLT5hY3F1
aXJlQmFja2luZ1RleHR1cmUocmVzb3VyY2VQcm92aWRlcik7CiAgICAgbV9sYXllci0+dXBkYXRl
UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVk
TGF5ZXJUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRM
YXllclRlc3RDb21tb24uaAppbmRleCBjNzU5MzJhY2Y2MjFiZGViMzBjNmY3MTQyYjc3MTU3ZGQz
OTVkMzUyLi5mOTQ3YTcyOTFiOTljYjZjODJiYTJhOTBhOTM2NTIyYzczMGJmNDRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21t
b24uaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIFRleHR1cmUoRmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIqLCBQYXNzT3duUHRyPFdlYkNvcmU6OkNDUHJpb3JpdGl6ZWRUZXh0dXJl
Pik7CiAgICAgICAgIHZpcnR1YWwgflRleHR1cmUoKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlUmVjdChXZWJDb3JlOjpDQ1Jlc291cmNlUHJvdmlkZXIqICwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVJlY3QoV2ViQ29yZTo6Q0NSZXNvdXJjZVByb3ZpZGVyKiAsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIE9WRVJSSURFOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IFdlYkNvcmU6OkNDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKIAogICAgIHByaXZhdGU6CkBA
IC0xNjIsNyArMTYyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0J1c3koKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBiZWdpblVwbG9hZHMoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZW5kVXBsb2FkcygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGxvYWRUZXh0
dXJlKFdlYkNvcmU6OkNDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgUGFyYW1l
dGVycyB1cGxvYWQpIHsgdXBsb2FkLnRleHR1cmUtPnVwZGF0ZVJlY3QocmVzb3VyY2VQcm92aWRl
ciwgdXBsb2FkLnNvdXJjZVJlY3QsIHVwbG9hZC5kZXN0UmVjdCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdXBsb2FkVGV4dHVyZShXZWJDb3JlOjpDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJv
dmlkZXIsIFBhcmFtZXRlcnMgdXBsb2FkKSB7IHVwbG9hZC50ZXh0dXJlLT51cGRhdGVSZWN0KHJl
c291cmNlUHJvdmlkZXIsIHVwbG9hZC5zb3VyY2VSZWN0LCB1cGxvYWQuZGVzdE9mZnNldCk7IH0K
IH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158663</attachid>
            <date>2012-08-15 16:59:00 -0700</date>
            <delta_ts>2012-08-16 16:43:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94154-20120815165826.patch</filename>
            <type>text/plain</type>
            <size>46792</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWMzNjhiMzRmMzFhYzRj
MmFiN2U5ZGE0ZGZiMDAyZGI0ZTAyNDg1Yy4uNGM0MGNmMWRhNmFhZDZjMmJmMTJhNDYzNzg4N2My
YzFhOTYwM2VhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA4LTE1ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJl
cGxhY2UgZGVzdFJlY3Qgd2l0aCBkZXN0T2Zmc2V0IGluIHRleHR1cmUgdXBsb2FkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDE1NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHksIHRleHR1
cmUgdXBsb2FkIGNvZGUgaW1wbGljaXRseSBhc3N1bWVkIHRoYXQgc291cmNlUmVjdCBhbmQKKyAg
ICAgICAgZGVzdFJlY3QgaGF2ZSB0aGUgc2FtZSBzaXplLiBUaGUgYmVoYXZpb3IgaXMgdW5kZWZp
bmVkIGlmIHRoZXkgYXJlCisgICAgICAgIGRpZmZlcmVudCwgc2luY2UgdGhleSBhcmUgdXNlZCBp
bnRlcmNoYW5nZWFibHkgYW5kIHRoZXJlJ3Mgbm8gc3VwcG9ydAorICAgICAgICBmb3Igc2NhbGlu
ZyBmcm9tIG9uZSByZWN0IHRvIHRoZSBvdGhlci4gVGhpcyBwYXRjaCBlbmZvcmNlcyB0aGF0Cisg
ICAgICAgIGNvbnN0cmFpbnQgYXQgdGhlIGludGVyZmFjZSBsZXZlbCBieSByZXBsYWNpbmcgYWxs
IGluc3RhbmNlcyBvZgorICAgICAgICAiSW50UmVjdCBkZXN0UmVjdCIgYnkgIkludFNpemUgZGVz
dE9mZnNldCIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChuby1vcCByZWZhY3RvcmluZykuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcENhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaDoKKyAgICAgICAgKFRleHR1cmUpOgorICAgICAgICAoQml0bWFwQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0
bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1
cGRhdGVSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBT
a1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgIChUZXh0dXJlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVC
dWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1cGRhdGVS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oOgorICAgICAgICAoVGV4dHVyZSk6CisgICAgICAgIChGcmFtZUJ1ZmZlclNrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVN1YkltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVN1YkltYWdlOjp1cGxvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJUZXh0dXJlU3ViSW1hZ2U6OnVwbG9hZFdpdGhUZXhTdWJJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclRleHR1cmVTdWJJbWFnZTo6dXBsb2FkV2l0aE1hcFRl
eFN1YkltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRl
eHR1cmVTdWJJbWFnZS5oOgorICAgICAgICAoTGF5ZXJUZXh0dXJlU3ViSW1hZ2UpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoKKyAg
ICAgICAgKFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Nj
cm9sbGJhckxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyTGF5
ZXJDaHJvbWl1bTo6dXBkYXRlUGFydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGV4dHVyZVVwbG9hZGVyLmg6CisgICAgICAgIChQYXJhbWV0ZXJzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaHJvdHRsZWRUZXh0dXJlVXBsb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVyOjp1cGxvYWRUZXh0
dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVU
aWxlVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1Vw
RGlzcGxheUxheWVySW1wbDo6d2lsbERyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUHJpb3JpdGl6ZWRUZXh0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDUHJpb3JpdGl6ZWRUZXh0dXJlOjp1cGxvYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDUHJpb3JpdGl6ZWRUZXh0dXJlLmg6CisgICAgICAgIChDQ1ByaW9y
aXRpemVkVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZXNvdXJjZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVzb3VyY2VQcm92
aWRlcjo6dXBsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1Jlc291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKENDUmVzb3VyY2VQcm92aWRlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBsOjpjb3B5UGxhbmVEYXRhKToKKwog
MjAxMi0wOC0xNSAgT3R0byBEZXJlayBDaGV1bmcgIDxvdGNoZXVuZ0ByaW0uY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBTaG93IGN1c3RvbSBlcnJvciBwYWdlIHdoZW4gNDA3IGlzIHJlY2Vp
dmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM4MmFlMWM0MTQ5MTFhYjI3YmVmZTFm
NGQyODQyNzBhYWUzNjEwNDAuLmZhMTQxZmRkYzdlNmE2OTFjY2VlZWUzM2MzNzg2YWZlZDBlM2Qw
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDgt
MTUgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJv
bWl1bV0gUmVwbGFjZSBkZXN0UmVjdCB3aXRoIGRlc3RPZmZzZXQgaW4gdGV4dHVyZSB1cGxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNs
eSwgdGV4dHVyZSB1cGxvYWQgY29kZSBpbXBsaWNpdGx5IGFzc3VtZWQgdGhhdCBzb3VyY2VSZWN0
IGFuZAorICAgICAgICBkZXN0UmVjdCBoYXZlIHRoZSBzYW1lIHNpemUuIFRoZSBiZWhhdmlvciBp
cyB1bmRlZmluZWQgaWYgdGhleSBhcmUKKyAgICAgICAgZGlmZmVyZW50LCBzaW5jZSB0aGV5IGFy
ZSB1c2VkIGludGVyY2hhbmdlYWJseSBhbmQgdGhlcmUncyBubyBzdXBwb3J0CisgICAgICAgIGZv
ciBzY2FsaW5nIGZyb20gb25lIHJlY3QgdG8gdGhlIG90aGVyLiBUaGlzIHBhdGNoIGVuZm9yY2Vz
IHRoYXQKKyAgICAgICAgY29uc3RyYWludCBhdCB0aGUgaW50ZXJmYWNlIGxldmVsIGJ5IHJlcGxh
Y2luZyBhbGwgaW5zdGFuY2VzIG9mCisgICAgICAgICJJbnRSZWN0IGRlc3RSZWN0IiBieSAiSW50
U2l6ZSBkZXN0T2Zmc2V0Ii4KKworICAgICAgICAqIHRlc3RzL0NDUmVzb3VyY2VQcm92aWRlclRl
c3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9DQ1RpbGVkTGF5
ZXJUZXN0Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpGYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6VGV4dHVyZTo6dXBkYXRlUmVjdCk6CisgICAgICAgICogdGVzdHMvQ0NUaWxlZExh
eWVyVGVzdENvbW1vbi5oOgorICAgICAgICAoVGV4dHVyZSk6CisgICAgICAgIChXZWJLaXRUZXN0
czo6RmFrZVRleHR1cmVVcGxvYWRlcjo6dXBsb2FkVGV4dHVyZSk6CisKIDIwMTItMDgtMTUgIEJy
dW5vIGRlIE9saXZlaXJhIEFiaW5hZGVyICA8YnJ1bm8uYWJpbmFkZXJAYmFzeXNrb20uY29tPgog
CiAgICAgICAgIFtjc3MzLXRleHRdIEFkZCBDU1MzIFRleHQgZGVjb3JhdGlvbiBjb21waWxlIGZs
YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5j
cHAKaW5kZXggYzkyY2UwNjFkNDdmMTc4N2Q2NWMwNmM1YWRjOGMxY2I1MDJmNGYxMC4uYzEyMTBl
NTQ1NmNhNDg0NmVhODJmYjliNTg0MzAxMGI5Zjc4ZWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJl
VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAg
Qml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6flRleHR1cmUoKQogewog
fQogCi12b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6OnVwZGF0
ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3ZvaWQgQml0bWFwQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6dXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlk
ZXIqIHJlc291cmNlUHJvdmlkZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFNpemUmIGRlc3RPZmZzZXQpCiB7Ci0gICAgdGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlVGV4dHVy
ZVJlY3QocmVzb3VyY2VQcm92aWRlciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0UmVjdCk7
CisgICAgdGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlVGV4dHVyZVJlY3QocmVzb3VyY2VQcm92aWRl
ciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0T2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxC
aXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyPiBCaXRtYXBDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyOjpjcmVhdGUoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gcGFpbnRlcikK
QEAgLTg4LDEyICs4OCwxMiBAQCB2b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6
OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdAogICAgIHBhaW50Q29u
dGVudHMobV9jYW52YXMuZ2V0KCksIGNvbnRlbnRSZWN0LCBjb250ZW50c1dpZHRoU2NhbGUsIGNv
bnRlbnRzSGVpZ2h0U2NhbGUsIHJlc3VsdGluZ09wYXF1ZVJlY3QsIHN0YXRzKTsKIH0KIAotdm9p
ZCBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdChDQ1Jl
c291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiB0
ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVj
dCkKK3ZvaWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJl
Y3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9yaXRpemVkVGV4
dHVyZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50U2l6ZSYg
ZGVzdE9mZnNldCkKIHsKICAgICBjb25zdCBTa0JpdG1hcCYgYml0bWFwID0gbV9jYW52YXMtPmdl
dERldmljZSgpLT5hY2Nlc3NCaXRtYXAoZmFsc2UpOwogICAgIGJpdG1hcC5sb2NrUGl4ZWxzKCk7
CiAKLSAgICB0ZXh0dXJlLT51cGxvYWQocmVzb3VyY2VQcm92aWRlciwgc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGJpdG1hcC5nZXRQaXhlbHMoKSksIGNvbnRlbnRSZWN0KCksIHNvdXJjZVJl
Y3QsIGRlc3RSZWN0KTsKKyAgICB0ZXh0dXJlLT51cGxvYWQocmVzb3VyY2VQcm92aWRlciwgc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJpdG1hcC5nZXRQaXhlbHMoKSksIGNvbnRlbnRSZWN0
KCksIHNvdXJjZVJlY3QsIGRlc3RPZmZzZXQpOwogICAgIGJpdG1hcC51bmxvY2tQaXhlbHMoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5o
CmluZGV4IDg0NTBlMWYzNWMxNDYzNzAwYWVjMWQ2Zjc2NTg2MTJmZmExZTMxMDEuLmQ1NDUyMWY5
YmQ0NWZhODA5MTMwN2Q3YTQwNjJjMmQ4MzQxOTVmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9C
aXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGlj
OgogICAgICAgICBUZXh0dXJlKEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIqLCBQYXNz
T3duUHRyPENDUHJpb3JpdGl6ZWRUZXh0dXJlPik7CiAgICAgICAgIHZpcnR1YWwgflRleHR1cmUo
KTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIq
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkgT1ZF
UlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRl
ciosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQp
IE9WRVJSSURFOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQml0bWFwQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIoKSB7IHJldHVybiBtX3RleHR1cmVVcGRhdGVyOyB9
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8TGF5ZXJU
ZXh0dXJlVXBkYXRlcjo6VGV4dHVyZT4gY3JlYXRlVGV4dHVyZShDQ1ByaW9yaXRpemVkVGV4dHVy
ZU1hbmFnZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1w
bGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29u
c3QgSW50U2l6ZSYgdGlsZVNpemUsIGZsb2F0IGNvbnRlbnRzV2lkdGhTY2FsZSwgZmxvYXQgY29u
dGVudHNIZWlnaHRTY2FsZSwgSW50UmVjdCYgcmVzdWx0aW5nT3BhcXVlUmVjdCwgQ0NSZW5kZXJp
bmdTdGF0cyYpIE9WRVJSSURFOwotICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoQ0NSZXNvdXJj
ZVByb3ZpZGVyKiwgQ0NQcmlvcml0aXplZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CisgICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVj
dChDQ1Jlc291cmNlUHJvdmlkZXIqLCBDQ1ByaW9yaXRpemVkVGV4dHVyZSosIGNvbnN0IEludFJl
Y3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQpOwogCiAgICAgdmlydHVh
bCB2b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRl
eCBkZTAxMDg2YTgyNjE3NjlhNDY2OWJiNmNiYjI5NDYwMzExMWZhZTEyLi41NWY5N2RkMjA3OTNl
M2M1MDQyZjNkNTRlZjY0MmE5N2VmZDEyMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9CaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNTcs
MTAgKzU3LDEwIEBAIHZvaWQgQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6VGV4dHVyZTo6cHJlcGFyZVJlY3QoY29uc3QgSW50UmVjCiAgICAgc3RhdHMudG90YWxQYWlu
dFRpbWVJblNlY29uZHMgKz0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBwYWludEJl
Z2luVGltZTsKIH0KIAotdm9pZCBCaXRtYXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyOjpUZXh0dXJlOjp1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92
aWRlciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3Qp
Cit2b2lkIEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU6
OnVwZGF0ZVJlY3QoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBjb25zdCBJ
bnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBkZXN0T2Zmc2V0KQogewogICAgIG1f
Yml0bWFwLmxvY2tQaXhlbHMoKTsKLSAgICB0ZXh0dXJlKCktPnVwbG9hZChyZXNvdXJjZVByb3Zp
ZGVyLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9iaXRtYXAuZ2V0UGl4ZWxzKCkpLCBkZXN0UmVj
dCwgZGVzdFJlY3QsIGRlc3RSZWN0KTsKKyAgICB0ZXh0dXJlKCktPnVwbG9hZChyZXNvdXJjZVBy
b3ZpZGVyLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9iaXRtYXAuZ2V0UGl4ZWxzKCkpLCBzb3Vy
Y2VSZWN0LCBzb3VyY2VSZWN0LCBkZXN0T2Zmc2V0KTsKICAgICBtX2JpdG1hcC51bmxvY2tQaXhl
bHMoKTsKICAgICBtX2JpdG1hcC5yZXNldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4IDcwYmRk
NWY5MGU4MGZmODg0YTJhYWE2ZWYxYjY4YWVjOGVhZGUyYTcuLjM4ZGE1M2NkMzY2ZDc3YTA4ZDAx
OTY1ZDVkMzI4ZGUxNTY4NjQyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRt
YXBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTQyLDcgKzQyLDcgQEAg
cHVibGljOgogICAgICAgICBUZXh0dXJlKEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVy
ZVVwZGF0ZXIqLCBQYXNzT3duUHRyPENDUHJpb3JpdGl6ZWRUZXh0dXJlPik7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIHByZXBhcmVSZWN0KGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIENDUmVu
ZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3Qo
Q0NSZXNvdXJjZVByb3ZpZGVyKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
UmVjdCYgZGVzdFJlY3QpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVj
dChDQ1Jlc291cmNlUHJvdmlkZXIqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJ
bnRTaXplJiBkZXN0T2Zmc2V0KSBPVkVSUklERTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEJp
dG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIqIHRleHR1cmVVcGRhdGVyKCkg
eyByZXR1cm4gbV90ZXh0dXJlVXBkYXRlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAK
aW5kZXggYTBlODU3ZTlkNGJjNWVhNzkyNDkyOTVmOTA2MWJmNGFkZGYyNTM0Ny4uMDAwNDRjNzEx
YzE2ZDUxOGM5ZDEyMjI2MWI4NTI5NDNkMjQ3NWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNM
YXllclRleHR1cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuY3BwCkBAIC02NywxMyArNjcsMTMgQEAgRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp+VGV4dHVyZSgpCiB7CiB9CiAKLXZvaWQgRnJhbWVC
dWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1cGRhdGVS
ZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCit2b2lkIEZyYW1lQnVmZmVyU2tQ
aWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6dXBkYXRlUmVjdChDQ1Jl
c291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQpCiB7CiAgICAgV2ViR3JhcGhpY3NDb250ZXh0
M0QqIHNoYXJlZENvbnRleHQgPSBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgPyBXZWJTaGFyZWRH
cmFwaGljc0NvbnRleHQzRDo6Y29tcG9zaXRvclRocmVhZENvbnRleHQoKSA6IFdlYlNoYXJlZEdy
YXBoaWNzQ29udGV4dDNEOjptYWluVGhyZWFkQ29udGV4dCgpOwogICAgIEdyQ29udGV4dCogc2hh
cmVkR3JDb250ZXh0ID0gQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpID8gV2ViU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0Q6OmNvbXBvc2l0b3JUaHJlYWRHckNvbnRleHQoKSA6IFdlYlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEOjptYWluVGhyZWFkR3JDb250ZXh0KCk7CiAgICAgaWYgKCFzaGFyZWRDb250
ZXh0IHx8ICFzaGFyZWRHckNvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICB0ZXh0dXJlVXBk
YXRlcigpLT51cGRhdGVUZXh0dXJlUmVjdChzaGFyZWRDb250ZXh0LCBzaGFyZWRHckNvbnRleHQs
IHJlc291cmNlUHJvdmlkZXIsIHRleHR1cmUoKSwgc291cmNlUmVjdCwgZGVzdFJlY3QpOworICAg
IHRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZVRleHR1cmVSZWN0KHNoYXJlZENvbnRleHQsIHNoYXJl
ZEdyQ29udGV4dCwgcmVzb3VyY2VQcm92aWRlciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0
T2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI+IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6Y3JlYXRlKFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IHBhaW50ZXIpCkBA
IC0xMDEsNyArMTAxLDcgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0
IEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXAKICAgICByZXR1cm4gTGF5
ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQTsKIH0KIAotdm9pZCBGcmFt
ZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVS
ZWN0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHckNvbnRleHQqIGdyQ29udGV4dCwg
Q0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBDQ1ByaW9yaXRpemVkVGV4dHVy
ZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVz
dFJlY3QpCit2b2lkIEZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6dXBkYXRlVGV4dHVyZVJlY3QoV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIEdyQ29u
dGV4dCogZ3JDb250ZXh0LCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIEND
UHJpb3JpdGl6ZWRUZXh0dXJlKiB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBj
b25zdCBJbnRTaXplJiBkZXN0T2Zmc2V0KQogewogICAgIC8vIE1ha2Ugc3VyZSBnYW5lc2ggdXNl
cyB0aGUgY29ycmVjdCBHTCBjb250ZXh0LgogICAgIGNvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVu
dCgpOwpAQCAtMTE2LDEyICsxMTYsMTIgQEAgdm9pZCBGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KFdlYkdyYXBoaWMKICAgICAv
LyBuZWVkIHRvIGRvIGEgeS1mbGlwLgogICAgIGNhbnZhcy0+dHJhbnNsYXRlKDAuMCwgdGV4dHVy
ZS0+c2l6ZSgpLmhlaWdodCgpKTsKICAgICBjYW52YXMtPnNjYWxlKDEuMCwgLTEuMCk7Ci0gICAg
Ly8gT25seSB0aGUgcmVnaW9uIGNvcnJlc3BvbmRpbmcgdG8gZGVzdFJlY3Qgb24gdGhlIHRleHR1
cmUgbXVzdCBiZSB1cGRhdGVkLgotICAgIGNhbnZhcy0+Y2xpcFJlY3QoU2tSZWN0OjpNYWtlWFlX
SChkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgZGVzdFJlY3Qud2lkdGgoKSwgZGVzdFJlY3Qu
aGVpZ2h0KCkpKTsKKyAgICAvLyBDbGlwIHRvIHRoZSBkZXN0aW5hdGlvbiBvbiB0aGUgdGV4dHVy
ZSB0aGF0IG11c3QgYmUgdXBkYXRlZC4KKyAgICBjYW52YXMtPmNsaXBSZWN0KFNrUmVjdDo6TWFr
ZVhZV0goZGVzdE9mZnNldC53aWR0aCgpLCBkZXN0T2Zmc2V0LmhlaWdodCgpLCBzb3VyY2VSZWN0
LndpZHRoKCksIHNvdXJjZVJlY3QuaGVpZ2h0KCkpKTsKICAgICAvLyBUcmFuc2xhdGUgdGhlIG9y
aWdpbiBvZiBjb250ZW50UmVjdCB0byB0aGF0IG9mIGRlc3RSZWN0LgogICAgIC8vIE5vdGUgdGhh
dCBkZXN0UmVjdCBpcyBkZWZpbmVkIHJlbGF0aXZlIHRvIHNvdXJjZVJlY3QuCi0gICAgY2FudmFz
LT50cmFuc2xhdGUoY29udGVudFJlY3QoKS54KCkgLSBzb3VyY2VSZWN0LngoKSArIGRlc3RSZWN0
LngoKSwKLSAgICAgICAgICAgICAgICAgICAgICBjb250ZW50UmVjdCgpLnkoKSAtIHNvdXJjZVJl
Y3QueSgpICsgZGVzdFJlY3QueSgpKTsKKyAgICBjYW52YXMtPnRyYW5zbGF0ZShjb250ZW50UmVj
dCgpLngoKSAtIHNvdXJjZVJlY3QueCgpICsgZGVzdE9mZnNldC53aWR0aCgpLAorICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRlbnRSZWN0KCkueSgpIC0gc291cmNlUmVjdC55KCkgKyBkZXN0T2Zm
c2V0LmhlaWdodCgpKTsKICAgICBkcmF3UGljdHVyZShjYW52YXMuZ2V0KCkpOwogCiAgICAgLy8g
Rmx1c2ggZ2FuZXNoIGNvbnRleHQgc28gdGhhdCBhbGwgdGhlIHJlbmRlcmVkIHN0dWZmIGFwcGVh
cnMgb24gdGhlIHRleHR1cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9GcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZyYW1l
QnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4IDY0ZDVlZWMz
ODE2ZGQ0NDgxODQwYTkwNjhiZGExZjE2ZDkyYjM5YmUuLjA1YTlkZmVmM2VjMmFkODAxN2I0NDVk
MDgzOTM1NjQ3ZDdhZDcxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ZyYW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Zy
YW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC01MCw3ICs1
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgVGV4dHVyZShGcmFtZUJ1ZmZlclNrUGljdHVyZUNhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXIqLCBQYXNzT3duUHRyPENDUHJpb3JpdGl6ZWRUZXh0dXJlPik7
CiAgICAgICAgIHZpcnR1YWwgflRleHR1cmUoKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBj
b25zdCBJbnRSZWN0JiBkZXN0UmVjdCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3Qs
IGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQpIE9WRVJSSURFOwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKiB0ZXh0
dXJlVXBkYXRlcigpIHsgcmV0dXJuIG1fdGV4dHVyZVVwZGF0ZXI7IH0KQEAgLTYzLDcgKzYzLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPExheWVyVGV4dHVyZVVwZGF0ZXI6
OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUoQ0NQcmlvcml0aXplZFRleHR1cmVNYW5hZ2VyKikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0
KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpIE9WRVJSSURFOwotICAgIHZvaWQgdXBkYXRlVGV4dHVy
ZVJlY3QoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29udGV4dCosIENDUmVzb3Vy
Y2VQcm92aWRlciosIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOworICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJl
Y3QoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCosIEdyQ29udGV4dCosIENDUmVzb3VyY2VQ
cm92aWRlciosIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVj
dCwgY29uc3QgSW50U2l6ZSYgZGVzdE9mZnNldCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
RnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyKFBhc3NPd25QdHI8
TGF5ZXJQYWludGVyQ2hyb21pdW0+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDUwNzNkMWNjOGExNjU1N2Q3NDNhMTY3OWQwYWMwODFmYWU0YmE4MmEuLjU0OTExZmI4OWFh
ZTUxODI2NmYzZGUyNWI0NmJkZTRjMTYwMWU4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9t
aXVtLmNwcApAQCAtNTAsOSArNTAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgfQog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYg
ZGVzdFJlY3QpIE9WRVJSSURFCisgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVz
b3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYgc291cmNlUmVj
dCwgY29uc3QgSW50U2l6ZSYgZGVzdE9mZnNldCkgT1ZFUlJJREUKICAgICAgICAgewotICAgICAg
ICAgICAgdGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlVGV4dHVyZVJlY3QocmVzb3VyY2VQcm92aWRl
ciwgdGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0UmVjdCk7CisgICAgICAgICAgICB0ZXh0dXJl
VXBkYXRlcigpLT51cGRhdGVUZXh0dXJlUmVjdChyZXNvdXJjZVByb3ZpZGVyLCB0ZXh0dXJlKCks
IHNvdXJjZVJlY3QsIGRlc3RPZmZzZXQpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAt
NzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRU
ZXhlbEZvcm1hdEJHUkE7CiAgICAgfQogCi0gICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChDQ1Jl
c291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIENDUHJpb3JpdGl6ZWRUZXh0dXJlKiB0
ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVj
dCkKKyAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3Vy
Y2VQcm92aWRlciwgQ0NQcmlvcml0aXplZFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQpCiAgICAgewogICAgICAgICAv
LyBTb3VyY2UgcmVjdCBzaG91bGQgbmV2ZXIgZ28gb3V0c2lkZSB0aGUgaW1hZ2UgcGl4ZWxzLCBl
dmVuIGlmIHRoaXMKICAgICAgICAgLy8gaXMgcmVxdWVzdGVkIGJlY2F1c2UgdGhlIHRleHR1cmUg
ZXh0ZW5kcyBvdXRzaWRlIHRoZSBpbWFnZS4KQEAgLTg3LDEyICs4NywxMCBAQCBwdWJsaWM6CiAg
ICAgICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gSW50UmVjdCgwLCAwLCBtX2JpdG1hcC53aWR0aCgp
LCBtX2JpdG1hcC5oZWlnaHQoKSk7CiAgICAgICAgIGNsaXBwZWRTb3VyY2VSZWN0LmludGVyc2Vj
dChpbWFnZVJlY3QpOwogCi0gICAgICAgIEludFJlY3QgY2xpcHBlZERlc3RSZWN0ID0gZGVzdFJl
Y3Q7Ci0gICAgICAgIGNsaXBwZWREZXN0UmVjdC5tb3ZlKGNsaXBwZWRTb3VyY2VSZWN0LmxvY2F0
aW9uKCkgLSBzb3VyY2VSZWN0LmxvY2F0aW9uKCkpOwotICAgICAgICBjbGlwcGVkRGVzdFJlY3Qu
c2V0U2l6ZShjbGlwcGVkU291cmNlUmVjdC5zaXplKCkpOworICAgICAgICBJbnRTaXplIGNsaXBw
ZWREZXN0T2Zmc2V0ID0gZGVzdE9mZnNldCArIEludFNpemUoY2xpcHBlZFNvdXJjZVJlY3QubG9j
YXRpb24oKSAtIHNvdXJjZVJlY3QubG9jYXRpb24oKSk7CiAKICAgICAgICAgU2tBdXRvTG9ja1Bp
eGVscyBsb2NrKG1fYml0bWFwKTsKLSAgICAgICAgdGV4dHVyZS0+dXBsb2FkKHJlc291cmNlUHJv
dmlkZXIsIHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihtX2JpdG1hcC5nZXRQaXhlbHMoKSks
IGltYWdlUmVjdCwgY2xpcHBlZFNvdXJjZVJlY3QsIGNsaXBwZWREZXN0UmVjdCk7CisgICAgICAg
IHRleHR1cmUtPnVwbG9hZChyZXNvdXJjZVByb3ZpZGVyLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50
OF90Kj4obV9iaXRtYXAuZ2V0UGl4ZWxzKCkpLCBpbWFnZVJlY3QsIGNsaXBwZWRTb3VyY2VSZWN0
LCBjbGlwcGVkRGVzdE9mZnNldCk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRCaXRtYXAoY29uc3Qg
U2tCaXRtYXAmIGJpdG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDQyMDlkYzY1NDQ1ZDFjNjljN2VmNjJjOGIwZjE1NTZhOTFkNjQ1MmEuLjk3MTgxZDE3NjUx
NmViMWZhYWFhZTU4MDhkN2EzNzEzYzIwNmQxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNCdXN5KCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
YmVnaW5VcGxvYWRzKCkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGVuZFVwbG9hZHMo
KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBsb2FkVGV4dHVyZShDQ1Jlc291cmNl
UHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFBhcmFtZXRlcnMgdXBsb2FkKSBPVkVSUklERSB7
IHVwbG9hZC50ZXh0dXJlLT51cGRhdGVSZWN0KHJlc291cmNlUHJvdmlkZXIsIHVwbG9hZC5zb3Vy
Y2VSZWN0LCB1cGxvYWQuZGVzdFJlY3QpOyB9CisgICAgdmlydHVhbCB2b2lkIHVwbG9hZFRleHR1
cmUoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBQYXJhbWV0ZXJzIHVwbG9h
ZCkgT1ZFUlJJREUgeyB1cGxvYWQudGV4dHVyZS0+dXBkYXRlUmVjdChyZXNvdXJjZVByb3ZpZGVy
LCB1cGxvYWQuc291cmNlUmVjdCwgdXBsb2FkLmRlc3RPZmZzZXQpOyB9CiAKIHByb3RlY3RlZDoK
ICAgICBVbnRocm90dGxlZFRleHR1cmVVcGxvYWRlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlU3ViSW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0
dXJlU3ViSW1hZ2UuY3BwCmluZGV4IGI2NmQ3OWUwNGViZGFmOGE2NDI3OWQ4YTMzN2JlODNlNDFm
YWM1OWQuLjgzYzcxMTRiYWU0YWUwMDAzZTdiOTRkNDQyYjY0ZjM1NzAxMGFjM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVy
ZVN1YkltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclRleHR1cmVTdWJJbWFnZS5jcHAKQEAgLTQ5LDE3ICs0OSwxNyBAQCBMYXllclRl
eHR1cmVTdWJJbWFnZTo6fkxheWVyVGV4dHVyZVN1YkltYWdlKCkKIH0KIAogdm9pZCBMYXllclRl
eHR1cmVTdWJJbWFnZTo6dXBsb2FkKGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZWN0
JiBpbWFnZVJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50
U2l6ZSYgZGVzdE9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQzNE
ZW51bSBmb3JtYXQsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogewogICAgIGlmICht
X3VzZU1hcFRleFN1YkltYWdlKQotICAgICAgICB1cGxvYWRXaXRoTWFwVGV4U3ViSW1hZ2UoaW1h
Z2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdFJlY3QsIGZvcm1hdCwgY29udGV4dCk7Cisg
ICAgICAgIHVwbG9hZFdpdGhNYXBUZXhTdWJJbWFnZShpbWFnZSwgaW1hZ2VSZWN0LCBzb3VyY2VS
ZWN0LCBkZXN0T2Zmc2V0LCBmb3JtYXQsIGNvbnRleHQpOwogICAgIGVsc2UKLSAgICAgICAgdXBs
b2FkV2l0aFRleFN1YkltYWdlKGltYWdlLCBpbWFnZVJlY3QsIHNvdXJjZVJlY3QsIGRlc3RSZWN0
LCBmb3JtYXQsIGNvbnRleHQpOworICAgICAgICB1cGxvYWRXaXRoVGV4U3ViSW1hZ2UoaW1hZ2Us
IGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdE9mZnNldCwgZm9ybWF0LCBjb250ZXh0KTsKIH0K
IAogdm9pZCBMYXllclRleHR1cmVTdWJJbWFnZTo6dXBsb2FkV2l0aFRleFN1YkltYWdlKGNvbnN0
IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50U2l6ZSYgZGVzdE9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHQzNEZW51bSBmb3JtYXQsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0KQogewogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiTGF5ZXJUZXh0dXJlU3ViSW1hZ2U6OnVw
bG9hZFdpdGhUZXhTdWJJbWFnZSIpOwpAQCAtNzEsMjYgKzcxLDI2IEBAIHZvaWQgTGF5ZXJUZXh0
dXJlU3ViSW1hZ2U6OnVwbG9hZFdpdGhUZXhTdWJJbWFnZShjb25zdCB1aW50OF90KiBpbWFnZSwg
Y29uc3QgSW50CiAgICAgaWYgKGltYWdlUmVjdC53aWR0aCgpID09IHNvdXJjZVJlY3Qud2lkdGgo
KSAmJiAhb2Zmc2V0LngoKSkKICAgICAgICAgcGl4ZWxTb3VyY2UgPSAmaW1hZ2VbNCAqIG9mZnNl
dC55KCkgKiBpbWFnZVJlY3Qud2lkdGgoKV07CiAgICAgZWxzZSB7Ci0gICAgICAgIHNpemVfdCBu
ZWVkZWRTaXplID0gNCAqIGRlc3RSZWN0LndpZHRoKCkgKiBkZXN0UmVjdC5oZWlnaHQoKTsKKyAg
ICAgICAgc2l6ZV90IG5lZWRlZFNpemUgPSA0ICogc291cmNlUmVjdC53aWR0aCgpICogc291cmNl
UmVjdC5oZWlnaHQoKTsKICAgICAgICAgaWYgKG1fc3ViSW1hZ2VTaXplIDwgbmVlZGVkU2l6ZSkg
ewogICAgICAgICAgIG1fc3ViSW1hZ2UgPSBhZG9wdEFycmF5UHRyKG5ldyB1aW50OF90W25lZWRl
ZFNpemVdKTsKICAgICAgICAgICBtX3N1YkltYWdlU2l6ZSA9IG5lZWRlZFNpemU7CiAgICAgICAg
IH0KICAgICAgICAgLy8gU3RyaWRlcyBub3QgZXF1YWwsIHNvIGRvIGEgcm93LWJ5LXJvdyBtZW1j
cHkgZnJvbSB0aGUKICAgICAgICAgLy8gcGFpbnQgcmVzdWx0cyBpbnRvIGEgdGVtcCBidWZmZXIg
Zm9yIHVwbG9hZGluZy4KLSAgICAgICAgZm9yIChpbnQgcm93ID0gMDsgcm93IDwgZGVzdFJlY3Qu
aGVpZ2h0KCk7ICsrcm93KQotICAgICAgICAgICAgbWVtY3B5KCZtX3N1YkltYWdlW2Rlc3RSZWN0
LndpZHRoKCkgKiA0ICogcm93XSwKKyAgICAgICAgZm9yIChpbnQgcm93ID0gMDsgcm93IDwgc291
cmNlUmVjdC5oZWlnaHQoKTsgKytyb3cpCisgICAgICAgICAgICBtZW1jcHkoJm1fc3ViSW1hZ2Vb
c291cmNlUmVjdC53aWR0aCgpICogNCAqIHJvd10sCiAgICAgICAgICAgICAgICAgICAgJmltYWdl
WzQgKiAob2Zmc2V0LngoKSArIChvZmZzZXQueSgpICsgcm93KSAqIGltYWdlUmVjdC53aWR0aCgp
KV0sCi0gICAgICAgICAgICAgICAgICAgZGVzdFJlY3Qud2lkdGgoKSAqIDQpOworICAgICAgICAg
ICAgICAgICAgIHNvdXJjZVJlY3Qud2lkdGgoKSAqIDQpOwogCiAgICAgICAgIHBpeGVsU291cmNl
ID0gJm1fc3ViSW1hZ2VbMF07CiAgICAgfQogCi0gICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRl
eFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGRlc3RSZWN0Lngo
KSwgZGVzdFJlY3QueSgpLCBkZXN0UmVjdC53aWR0aCgpLCBkZXN0UmVjdC5oZWlnaHQoKSwgZm9y
bWF0LCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgcGl4ZWxTb3VyY2UpKTsKKyAg
ICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV8yRCwgMCwgZGVzdE9mZnNldC53aWR0aCgpLCBkZXN0T2Zmc2V0LmhlaWdodCgpLCBz
b3VyY2VSZWN0LndpZHRoKCksIHNvdXJjZVJlY3QuaGVpZ2h0KCksIGZvcm1hdCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIHBpeGVsU291cmNlKSk7CiB9CiAKIHZvaWQgTGF5ZXJU
ZXh0dXJlU3ViSW1hZ2U6OnVwbG9hZFdpdGhNYXBUZXhTdWJJbWFnZShjb25zdCB1aW50OF90KiBp
bWFnZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IEludFJlY3QmIGRlc3RSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNp
emUmIGRlc3RPZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0MzRGVudW0gZm9ybWF0LCBXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dCkKIHsKICAgICBUUkFDRV9FVkVOVDAoImNjIiwgIkxheWVyVGV4dHVyZVN1YkltYWdlOjp1cGxv
YWRXaXRoTWFwVGV4U3ViSW1hZ2UiKTsKQEAgLTk4LDEwICs5OCwxMCBAQCB2b2lkIExheWVyVGV4
dHVyZVN1YkltYWdlOjp1cGxvYWRXaXRoTWFwVGV4U3ViSW1hZ2UoY29uc3QgdWludDhfdCogaW1h
Z2UsIGNvbnN0CiAgICAgSW50UG9pbnQgb2Zmc2V0KHNvdXJjZVJlY3QueCgpIC0gaW1hZ2VSZWN0
LngoKSwgc291cmNlUmVjdC55KCkgLSBpbWFnZVJlY3QueSgpKTsKIAogICAgIC8vIFVwbG9hZCB0
aWxlIGRhdGEgdmlhIGEgbWFwcGVkIHRyYW5zZmVyIGJ1ZmZlcgotICAgIHVpbnQ4X3QqIHBpeGVs
RGVzdCA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjb250ZXh0LT5tYXBUZXhTdWJJbWFnZTJEQ0hS
T01JVU0oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGRlc3RSZWN0LngoKSwgZGVz
dFJlY3QueSgpLCBkZXN0UmVjdC53aWR0aCgpLCBkZXN0UmVjdC5oZWlnaHQoKSwgZm9ybWF0LCBH
cmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgRXh0ZW5zaW9uczNEQ2hyb21pdW06OldS
SVRFX09OTFkpKTsKKyAgICB1aW50OF90KiBwaXhlbERlc3QgPSBzdGF0aWNfY2FzdDx1aW50OF90
Kj4oY29udGV4dC0+bWFwVGV4U3ViSW1hZ2UyRENIUk9NSVVNKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJELCAwLCBkZXN0T2Zmc2V0LndpZHRoKCksIGRlc3RPZmZzZXQuaGVpZ2h0KCksIHNv
dXJjZVJlY3Qud2lkdGgoKSwgc291cmNlUmVjdC5oZWlnaHQoKSwgZm9ybWF0LCBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfQllURSwgRXh0ZW5zaW9uczNEQ2hyb21pdW06OldSSVRFX09OTFkp
KTsKIAogICAgIGlmICghcGl4ZWxEZXN0KSB7Ci0gICAgICAgIHVwbG9hZFdpdGhUZXhTdWJJbWFn
ZShpbWFnZSwgaW1hZ2VSZWN0LCBzb3VyY2VSZWN0LCBkZXN0UmVjdCwgZm9ybWF0LCBjb250ZXh0
KTsKKyAgICAgICAgdXBsb2FkV2l0aFRleFN1YkltYWdlKGltYWdlLCBpbWFnZVJlY3QsIHNvdXJj
ZVJlY3QsIGRlc3RPZmZzZXQsIGZvcm1hdCwgY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTExMywxNCArMTEzLDE0IEBAIHZvaWQgTGF5ZXJUZXh0dXJlU3ViSW1hZ2U6OnVw
bG9hZFdpdGhNYXBUZXhTdWJJbWFnZShjb25zdCB1aW50OF90KiBpbWFnZSwgY29uc3QKICAgICB9
CiAKICAgICBpZiAoaW1hZ2VSZWN0LndpZHRoKCkgPT0gc291cmNlUmVjdC53aWR0aCgpICYmICFv
ZmZzZXQueCgpKQotICAgICAgICBtZW1jcHkocGl4ZWxEZXN0LCAmaW1hZ2Vbb2Zmc2V0LnkoKSAq
IGltYWdlUmVjdC53aWR0aCgpICogY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25l
bnRdLCBpbWFnZVJlY3Qud2lkdGgoKSAqIGRlc3RSZWN0LmhlaWdodCgpICogY29tcG9uZW50c1Bl
clBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQpOworICAgICAgICBtZW1jcHkocGl4ZWxEZXN0LCAm
aW1hZ2Vbb2Zmc2V0LnkoKSAqIGltYWdlUmVjdC53aWR0aCgpICogY29tcG9uZW50c1BlclBpeGVs
ICogYnl0ZXNQZXJDb21wb25lbnRdLCBpbWFnZVJlY3Qud2lkdGgoKSAqIHNvdXJjZVJlY3QuaGVp
Z2h0KCkgKiBjb21wb25lbnRzUGVyUGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudCk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIC8vIFN0cmlkZXMgbm90IGVxdWFsLCBzbyBkbyBhIHJvdy1ieS1yb3cgbWVt
Y3B5IGZyb20gdGhlCiAgICAgICAgIC8vIHBhaW50IHJlc3VsdHMgaW50byB0aGUgcGl4ZWxEZXN0
Ci0gICAgICAgIGZvciAoaW50IHJvdyA9IDA7IHJvdyA8IGRlc3RSZWN0LmhlaWdodCgpOyArK3Jv
dykKLSAgICAgICAgICAgIG1lbWNweSgmcGl4ZWxEZXN0W2Rlc3RSZWN0LndpZHRoKCkgKiByb3cg
KiBjb21wb25lbnRzUGVyUGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudF0sCisgICAgICAgIGZvciAo
aW50IHJvdyA9IDA7IHJvdyA8IHNvdXJjZVJlY3QuaGVpZ2h0KCk7ICsrcm93KQorICAgICAgICAg
ICAgbWVtY3B5KCZwaXhlbERlc3Rbc291cmNlUmVjdC53aWR0aCgpICogcm93ICogY29tcG9uZW50
c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnRdLAogICAgICAgICAgICAgICAgICAgICZpbWFn
ZVs0ICogKG9mZnNldC54KCkgKyAob2Zmc2V0LnkoKSArIHJvdykgKiBpbWFnZVJlY3Qud2lkdGgo
KSldLAotICAgICAgICAgICAgICAgICAgIGRlc3RSZWN0LndpZHRoKCkgKiBjb21wb25lbnRzUGVy
UGl4ZWwgKiBieXRlc1BlckNvbXBvbmVudCk7CisgICAgICAgICAgICAgICAgICAgc291cmNlUmVj
dC53aWR0aCgpICogY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQpOwogICAg
IH0KICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dW5tYXBUZXhTdWJJbWFnZTJEQ0hST01JVU0o
cGl4ZWxEZXN0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVTdWJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlU3ViSW1hZ2UuaAppbmRleCAzNTdi
NjQxMzQ0YjJlMGNmZGY1ZTNhZmU5MzJjOGQxOGFmYWU3MWU2Li5lMmE3MzlhMGYyOTg2NmIxNTc2
ZjA4YmZjOGZiOWY4MWJkNzg2ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVTdWJJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVN1YkltYWdlLmgK
QEAgLTQ2LDE1ICs0NiwxNSBAQCBwdWJsaWM6CiAgICAgfkxheWVyVGV4dHVyZVN1YkltYWdlKCk7
CiAKICAgICB2b2lkIHVwbG9hZChjb25zdCB1aW50OF90KiBpbWFnZSwgY29uc3QgSW50UmVjdCYg
aW1hZ2VSZWN0LAotICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IEludFJlY3QmIGRlc3RSZWN0LAorICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQsCiAgICAgICAgICAgICAgICAgR0Mz
RGVudW0gZm9ybWF0LCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKik7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCB1cGxvYWRXaXRoVGV4U3ViSW1hZ2UoY29uc3QgdWludDhfdCogaW1hZ2UsIGNv
bnN0IEludFJlY3QmIGltYWdlUmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRTaXplJiBkZXN0T2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
M0RlbnVtIGZvcm1hdCwgV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRCopOwogICAgIHZvaWQg
dXBsb2FkV2l0aE1hcFRleFN1YkltYWdlKGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRS
ZWN0JiBpbWFnZVJlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50U2l6ZSYgZGVzdE9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
QzNEZW51bSBmb3JtYXQsIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqKTsKIAogICAgIGJv
b2wgbV91c2VNYXBUZXhTdWJJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRl
eCBlM2FjNDk5NDUzNWE3NDZhZjZhZmZmODkwNzIzYWEyMTkzMTc0ZTFiLi5jYzc1MzZiNDczNWQ4
NTFiY2Y5Zjg5YTZmOGJkNWIxNWYyMWM0ZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgQ0NQcmlvcml0aXplZFRleHR1
cmUqIHRleHR1cmUoKSB7IHJldHVybiBtX3RleHR1cmUuZ2V0KCk7IH0KICAgICAgICAgdm9pZCBz
d2FwVGV4dHVyZVdpdGgoT3duUHRyPENDUHJpb3JpdGl6ZWRUZXh0dXJlPiYgdGV4dHVyZSkgeyBt
X3RleHR1cmUuc3dhcCh0ZXh0dXJlKTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVJl
Y3QoY29uc3QgSW50UmVjdCYgLyogc291cmNlUmVjdCAqLywgQ0NSZW5kZXJpbmdTdGF0cyYpIHsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqLCBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBkZXN0T2Zmc2V0KSA9IDA7CiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNpdCBUZXh0dXJlKFBhc3NPd25QdHI8Q0NQcmlv
cml0aXplZFRleHR1cmU+IHRleHR1cmUpIDogbV90ZXh0dXJlKHRleHR1cmUpIHsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxi
YXJMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGEwZmJmNWM0NGY2NDVkZmJh
YzRhYjI1OGE2ZWIxNWJiMWU0ZmY1YzguLmI0MTdlMzM0ZTg2ZDQ5NDkyZjU2NmVmMjgyOWMzYTA5
YTJlMGI0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCkBAIC0y
MjgsOCArMjI4LDggQEAgdm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGVQYXJ0KExh
eWVyVGV4dHVyZVVwZGF0ZXIqIHBhaW50ZXIsIExheWVyVGV4dHUKICAgICBwYWludGVyLT5wcmVw
YXJlVG9VcGRhdGUocmVjdCwgcmVjdC5zaXplKCksIDEsIDEsIHBhaW50ZWRPcGFxdWVSZWN0LCBz
dGF0cyk7CiAgICAgdGV4dHVyZS0+cHJlcGFyZVJlY3QocmVjdCwgc3RhdHMpOwogCi0gICAgSW50
UmVjdCBkZXN0UmVjdChJbnRQb2ludCgpLCByZWN0LnNpemUoKSk7Ci0gICAgVGV4dHVyZVVwbG9h
ZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgdGV4dHVyZSwgcmVjdCwgZGVzdFJlY3QgfTsKKyAg
ICBJbnRTaXplIGRlc3RPZmZzZXQoMCwgMCk7CisgICAgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0
ZXJzIHVwbG9hZCA9IHsgdGV4dHVyZSwgcmVjdCwgZGVzdE9mZnNldCB9OwogICAgIHF1ZXVlLmFw
cGVuZEZ1bGxVcGxvYWQodXBsb2FkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlVXBsb2FkZXIuaAppbmRleCA3
YTUxNjUzZjhhY2QxMDAzMmVhZDExZTRjNDZlN2MyYTI0OTIxZGFkLi4wYTg2MTYxMmUzNTlhZmQ2
ZTQyZDkwNjExZTU2N2U0YzM2MjJlNjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlVXBsb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlVXBsb2FkZXIuaApAQCAtMzQs
NyArMzQsNyBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFBhcmFtZXRlcnMgewogICAgICAgICBMYXll
clRleHR1cmVVcGRhdGVyOjpUZXh0dXJlKiB0ZXh0dXJlOwogICAgICAgICBJbnRSZWN0IHNvdXJj
ZVJlY3Q7Ci0gICAgICAgIEludFJlY3QgZGVzdFJlY3Q7CisgICAgICAgIEludFNpemUgZGVzdE9m
ZnNldDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+VGV4dHVyZVVwbG9hZGVyKCkgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaHJvdHRs
ZWRUZXh0dXJlVXBsb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVyLmNwcAppbmRleCA5M2RhMTg5YzViY2Ez
M2RlZTlkMGI0NzQxYzk3MDMzNDZjYzY3NzZkLi5iODJlZDJiOTdjNjU5MDYzMjVmZWQ4M2IzOTEw
OGQ5MzNiYmQyOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaHJvdHRsZWRUZXh0dXJlVXBsb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rocm90dGxlZFRleHR1cmVVcGxvYWRlci5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFRocm90dGxlZFRleHR1cmVVcGxvYWRlcjo6ZW5k
VXBsb2FkcygpCiAKIHZvaWQgVGhyb3R0bGVkVGV4dHVyZVVwbG9hZGVyOjp1cGxvYWRUZXh0dXJl
KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgUGFyYW1ldGVycyB1cGxvYWQp
CiB7Ci0gICAgdXBsb2FkLnRleHR1cmUtPnVwZGF0ZVJlY3QocmVzb3VyY2VQcm92aWRlciwgdXBs
b2FkLnNvdXJjZVJlY3QsIHVwbG9hZC5kZXN0UmVjdCk7CisgICAgdXBsb2FkLnRleHR1cmUtPnVw
ZGF0ZVJlY3QocmVzb3VyY2VQcm92aWRlciwgdXBsb2FkLnNvdXJjZVJlY3QsIHVwbG9hZC5kZXN0
T2Zmc2V0KTsKIH0KIAogdm9pZCBUaHJvdHRsZWRUZXh0dXJlVXBsb2FkZXI6OnByb2Nlc3NRdWVy
aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCmluZGV4IGFmYmU4ZjIwYzM2OWE1
NzcwN2NmNjE3MzVmYzliMzBkY2UyY2I4MzEuLjJhZTE3MjAxYTI5ZTI2MTNlYjQ2ZDRiYjAwZjNk
MGU2NTA3ZGVmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcApAQCAtNTI5LDEw
ICs1MjksMTAgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVUZXh0dXJlcyhj
b25zdCBJbnRSZWN0JiBwYWludFJlY3QsIGludCBsZWZ0LAogICAgICAgICAgICAgY29uc3QgSW50
UG9pbnQgYW5jaG9yID0gbV90aWxlci0+dGlsZVJlY3QodGlsZSkubG9jYXRpb24oKTsKIAogICAg
ICAgICAgICAgLy8gQ2FsY3VsYXRlIHRpbGUtc3BhY2UgcmVjdGFuZ2xlIHRvIHVwbG9hZCBpbnRv
LgotICAgICAgICAgICAgSW50UmVjdCBkZXN0UmVjdChJbnRQb2ludChzb3VyY2VSZWN0LngoKSAt
IGFuY2hvci54KCksIHNvdXJjZVJlY3QueSgpIC0gYW5jaG9yLnkoKSksIHNvdXJjZVJlY3Quc2l6
ZSgpKTsKLSAgICAgICAgICAgIGlmIChkZXN0UmVjdC54KCkgPCAwKQorICAgICAgICAgICAgSW50
U2l6ZSBkZXN0T2Zmc2V0KHNvdXJjZVJlY3QueCgpIC0gYW5jaG9yLngoKSwgc291cmNlUmVjdC55
KCkgLSBhbmNob3IueSgpKTsKKyAgICAgICAgICAgIGlmIChkZXN0T2Zmc2V0LndpZHRoKCkgPCAw
KQogICAgICAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgICAgICBpZiAoZGVzdFJlY3QueSgp
IDwgMCkKKyAgICAgICAgICAgIGlmIChkZXN0T2Zmc2V0LmhlaWdodCgpIDwgMCkKICAgICAgICAg
ICAgICAgICBDUkFTSCgpOwogCiAgICAgICAgICAgICAvLyBPZmZzZXQgZnJvbSBwYWludCByZWN0
YW5nbGUgdG8gdGhpcyB0aWxlJ3MgZGlydHkgcmVjdGFuZ2xlLgpAQCAtNTQxLDEyICs1NDEsMTIg
QEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVUZXh0dXJlcyhjb25zdCBJbnRS
ZWN0JiBwYWludFJlY3QsIGludCBsZWZ0LAogICAgICAgICAgICAgICAgIENSQVNIKCk7CiAgICAg
ICAgICAgICBpZiAocGFpbnRPZmZzZXQueSgpIDwgMCkKICAgICAgICAgICAgICAgICBDUkFTSCgp
OwotICAgICAgICAgICAgaWYgKHBhaW50T2Zmc2V0LngoKSArIGRlc3RSZWN0LndpZHRoKCkgPiBw
YWludFJlY3Qud2lkdGgoKSkKKyAgICAgICAgICAgIGlmIChwYWludE9mZnNldC54KCkgKyBzb3Vy
Y2VSZWN0LndpZHRoKCkgPiBwYWludFJlY3Qud2lkdGgoKSkKICAgICAgICAgICAgICAgICBDUkFT
SCgpOwotICAgICAgICAgICAgaWYgKHBhaW50T2Zmc2V0LnkoKSArIGRlc3RSZWN0LmhlaWdodCgp
ID4gcGFpbnRSZWN0LmhlaWdodCgpKQorICAgICAgICAgICAgaWYgKHBhaW50T2Zmc2V0LnkoKSAr
IHNvdXJjZVJlY3QuaGVpZ2h0KCkgPiBwYWludFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgICAgICAg
ICAgQ1JBU0goKTsKIAotICAgICAgICAgICAgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVw
bG9hZCA9IHsgdGlsZS0+dGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0UmVjdCB9OworICAgICAg
ICAgICAgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgdGlsZS0+dGV4dHVy
ZSgpLCBzb3VyY2VSZWN0LCBkZXN0T2Zmc2V0IH07CiAgICAgICAgICAgICBpZiAodGlsZS0+cGFy
dGlhbFVwZGF0ZSkKICAgICAgICAgICAgICAgICBxdWV1ZS5hcHBlbmRQYXJ0aWFsVXBsb2FkKHVw
bG9hZCk7CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERp
c3BsYXlMYXllckltcGwuY3BwCmluZGV4IDk3ZDFlZjU0YTg0MDdiYWUwZmEwNzM0M2JhMGQyZWI0
MDc5NzM2ZDcuLmVkYzU2NDU2MDcxODgzNjM0NDI4YmMzYThmYmYzOTRhNmMzYjJjZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVh
ZHNVcERpc3BsYXlMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwCkBAIC0xMDcs
NyArMTA3LDcgQEAgdm9pZCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjp3aWxsRHJhdyhDQ1Jl
c291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIpCiAKICAgICBJbnRSZWN0IGxheWVyUmVj
dChJbnRQb2ludCgpLCBib3VuZHMoKSk7CiAgICAgQVNTRVJUKGJpdG1hcC0+Y29uZmlnKCkgPT0g
U2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnKTsKLSAgICByZXNvdXJjZVByb3ZpZGVyLT51cGxv
YWQobV9odWRUZXh0dXJlLT5pZCgpLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYml0bWFw
LT5nZXRQaXhlbHMoKSksIGxheWVyUmVjdCwgbGF5ZXJSZWN0LCBsYXllclJlY3QpOworICAgIHJl
c291cmNlUHJvdmlkZXItPnVwbG9hZChtX2h1ZFRleHR1cmUtPmlkKCksIHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQ4X3QqPihiaXRtYXAtPmdldFBpeGVscygpKSwgbGF5ZXJSZWN0LCBsYXllclJlY3Qs
IEludFNpemUoKSk7CiB9CiAKIHZvaWQgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6YXBwZW5k
UXVhZHMoQ0NRdWFkU2luayYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFy
ZWRRdWFkU3RhdGUsIGJvb2wmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcmlvcml0aXplZFRleHR1cmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcmlvcml0aXplZFRleHR1cmUu
Y3BwCmluZGV4IDYwY2YxYTFlMmNlNTc4NzEwN2ZhNzM4M2FhNTU0MWI5ZGUwYmRkZDQuLmIxNzIy
NzYzYWMyMDQ5N2U2YmI3ZWYzNWMzMjA3OWUxODEzNWM5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUHJpb3JpdGl6ZWRUZXh0dXJl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1ByaW9yaXRpemVkVGV4dHVyZS5jcHAKQEAgLTEwNSwxMyArMTA1LDEzIEBAIENDUmVzb3VyY2VQ
cm92aWRlcjo6UmVzb3VyY2VJZCBDQ1ByaW9yaXRpemVkVGV4dHVyZTo6cmVzb3VyY2VJZCgpIGNv
bnN0CiAKIHZvaWQgQ0NQcmlvcml0aXplZFRleHR1cmU6OnVwbG9hZChDQ1Jlc291cmNlUHJvdmlk
ZXIqIHJlc291cmNlUHJvdmlkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgdWludDhfdCogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25z
dCBJbnRSZWN0JiBkZXN0UmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBkZXN0T2Zmc2V0KQogewog
ICAgIEFTU0VSVChtX2lzQWJvdmVQcmlvcml0eUN1dG9mZik7CiAgICAgaWYgKG1faXNBYm92ZVBy
aW9yaXR5Q3V0b2ZmKQogICAgICAgICBhY3F1aXJlQmFja2luZ1RleHR1cmUocmVzb3VyY2VQcm92
aWRlcik7CiAgICAgQVNTRVJUKG1fYmFja2luZyk7Ci0gICAgcmVzb3VyY2VQcm92aWRlci0+dXBs
b2FkKHJlc291cmNlSWQoKSwgaW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdFJlY3Qp
OworICAgIHJlc291cmNlUHJvdmlkZXItPnVwbG9hZChyZXNvdXJjZUlkKCksIGltYWdlLCBpbWFn
ZVJlY3QsIHNvdXJjZVJlY3QsIGRlc3RPZmZzZXQpOwogfQogCiB2b2lkIENDUHJpb3JpdGl6ZWRU
ZXh0dXJlOjpsaW5rKEJhY2tpbmcqIGJhY2tpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVkVGV4dHVyZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcmlvcml0aXpl
ZFRleHR1cmUuaAppbmRleCA3NjRjYmVjZWRjM2RjZDI3YTJiM2M2NTA5Mzk5MzUwNDE2ZDkwN2E5
Li40ZDQ3YjYzODI1NmM3Zjc1NDQ3MDY4MmIzNmViODVjNDEwZmI3NjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ByaW9yaXRpemVk
VGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDUHJpb3JpdGl6ZWRUZXh0dXJlLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAg
IGJvb2wgcmVxdWVzdExhdGUoKTsKIAogICAgIC8vIFVwbG9hZHMgcGl4ZWxzIGludG8gdGhlIGJh
Y2tpbmcgcmVzb3VyY2UuIFRoaXMgZnVuY3Rpb25zIHdpbGwgYXF1aXJlIHRoZSBiYWNraW5nIGlm
IG5lZWRlZC4KLSAgICB2b2lkIHVwbG9hZChDQ1Jlc291cmNlUHJvdmlkZXIqLCBjb25zdCB1aW50
OF90KiBpbWFnZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBJbnRSZWN0JiBzb3Vy
Y2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CisgICAgdm9pZCB1cGxvYWQoQ0NSZXNv
dXJjZVByb3ZpZGVyKiwgY29uc3QgdWludDhfdCogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGltYWdl
UmVjdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50U2l6ZSYgZGVzdE9mZnNl
dCk7CiAKICAgICBDQ1Jlc291cmNlUHJvdmlkZXI6OlJlc291cmNlSWQgcmVzb3VyY2VJZCgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVByb3ZpZGVyLmNwcAppbmRleCBhMGJkMzdj
YzhkNWFlODNhMDgzYjkxZGNkNzExYjk5MTk5N2YwZDcwLi5kMjFjNGI1ZGM0MzJjYjU0NjM1NjZj
ZmEwMDliYmE1ZjM1YTIwZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVzb3VyY2VQcm92aWRlci5j
cHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIENDUmVzb3VyY2VQcm92aWRlcjo6ZGVsZXRlT3du
ZWRSZXNvdXJjZXMoaW50IHBvb2wpCiAgICAgICAgIGRlbGV0ZVJlc291cmNlKCppdCk7CiB9CiAK
LXZvaWQgQ0NSZXNvdXJjZVByb3ZpZGVyOjp1cGxvYWQoUmVzb3VyY2VJZCBpZCwgY29uc3QgdWlu
dDhfdCogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCwgY29uc3QgSW50UmVjdCYgc291
cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCit2b2lkIENDUmVzb3VyY2VQcm92aWRl
cjo6dXBsb2FkKFJlc291cmNlSWQgaWQsIGNvbnN0IHVpbnQ4X3QqIGltYWdlLCBjb25zdCBJbnRS
ZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUm
IGRlc3RPZmZzZXQpCiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKICAg
ICBBU1NFUlQobV90ZXhTdWJJbWFnZS5nZXQoKSk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBD
Q1Jlc291cmNlUHJvdmlkZXI6OnVwbG9hZChSZXNvdXJjZUlkIGlkLCBjb25zdCB1aW50OF90KiBp
bWFnZSwgY29uc3QgSW50UmUKICAgICBBU1NFUlQoaXQgIT0gbV9yZXNvdXJjZXMuZW5kKCkgJiYg
IWl0LT5zZWNvbmQubG9ja2VkRm9yV3JpdGUgJiYgIWl0LT5zZWNvbmQubG9ja0ZvclJlYWRDb3Vu
dCAmJiAhaXQtPnNlY29uZC5leHRlcm5hbCk7CiAKICAgICBjb250ZXh0M2QtPmJpbmRUZXh0dXJl
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBpdC0+c2Vjb25kLmdsSWQpOwotICAgIG1f
dGV4U3ViSW1hZ2UtPnVwbG9hZChpbWFnZSwgaW1hZ2VSZWN0LCBzb3VyY2VSZWN0LCBkZXN0UmVj
dCwgaXQtPnNlY29uZC5mb3JtYXQsIGNvbnRleHQzZCk7CisgICAgbV90ZXhTdWJJbWFnZS0+dXBs
b2FkKGltYWdlLCBpbWFnZVJlY3QsIHNvdXJjZVJlY3QsIGRlc3RPZmZzZXQsIGl0LT5zZWNvbmQu
Zm9ybWF0LCBjb250ZXh0M2QpOwogfQogCiB1bnNpZ25lZCBDQ1Jlc291cmNlUHJvdmlkZXI6Omxv
Y2tGb3JXcml0ZShSZXNvdXJjZUlkIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZXNvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIu
aAppbmRleCBhZGQ5MDllNWJmZWE1MDA3NWY2NzYyMjc5ZDY1ODliMzIzMWMwZTI1Li4yNTI0MTIx
YmY0NTNhMzA3ZmQ4OGU5NDNhNDY0NTUxMTFiOWQ5ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291cmNlUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jlc291
cmNlUHJvdmlkZXIuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVP
d25lZFJlc291cmNlcyhpbnQgcG9vbCk7CiAKICAgICAvLyBVcGxvYWQgZGF0YSBmcm9tIGltYWdl
LCBjb3B5aW5nIHNvdXJjZVJlY3QgKGluIGltYWdlKSBpbnRvIGRlc3RSZWN0IChpbiB0aGUgcmVz
b3VyY2UpLgotICAgIHZvaWQgdXBsb2FkKFJlc291cmNlSWQsIGNvbnN0IHVpbnQ4X3QqIGltYWdl
LCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IEludFJlY3QmIGRlc3RSZWN0KTsKKyAgICB2b2lkIHVwbG9hZChSZXNvdXJjZUlkLCBjb25z
dCB1aW50OF90KiBpbWFnZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBkZXN0T2Zmc2V0KTsKIAogICAgIC8vIEZsdXNo
IGFsbCBjb250ZXh0IG9wZXJhdGlvbnMsIGtpY2tpbmcgdXBsb2FkcyBhbmQgZW5zdXJpbmcgb3Jk
ZXJpbmcgd2l0aAogICAgIC8vIHJlc3BlY3QgdG8gb3RoZXIgY29udGV4dHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IDQyMDhkNTJjYmQzN2YzYTQ1ZjlhODgwNGZjNDQ1
NDUwYWY4MmUxNzkuLjQ3YjNjNmY0MTY3MGM3MWVmYmJjNDE2ZTk5ZTczYzFmZjJiMGZiOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC0zNTEsNyArMzUxLDcgQEAgYm9v
bCBDQ1ZpZGVvTGF5ZXJJbXBsOjpjb3B5UGxhbmVEYXRhKENDUmVzb3VyY2VQcm92aWRlciogcmVz
b3VyY2VQcm92aWRlcikKICAgICAgICAgQ0NWaWRlb0xheWVySW1wbDo6RnJhbWVQbGFuZSYgcGxh
bmUgPSBtX2ZyYW1lUGxhbmVzW3NvZnR3YXJlUGxhbmVJbmRleF07CiAgICAgICAgIGNvbnN0IHVp
bnQ4X3QqIHNvZnR3YXJlUGxhbmVQaXhlbHMgPSBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
bV9mcmFtZS0+ZGF0YShzb2Z0d2FyZVBsYW5lSW5kZXgpKTsKICAgICAgICAgSW50UmVjdCBwbGFu
ZVJlY3QoSW50UG9pbnQoKSwgcGxhbmUuc2l6ZSk7Ci0gICAgICAgIHJlc291cmNlUHJvdmlkZXIt
PnVwbG9hZChwbGFuZS5yZXNvdXJjZUlkLCBzb2Z0d2FyZVBsYW5lUGl4ZWxzLCBwbGFuZVJlY3Qs
IHBsYW5lUmVjdCwgcGxhbmVSZWN0KTsKKyAgICAgICAgcmVzb3VyY2VQcm92aWRlci0+dXBsb2Fk
KHBsYW5lLnJlc291cmNlSWQsIHNvZnR3YXJlUGxhbmVQaXhlbHMsIHBsYW5lUmVjdCwgcGxhbmVS
ZWN0LCBJbnRTaXplKCkpOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4
IDRhYTFhZmQzODBmYWVjMzdkOGUzZDlhZjRjZWRmMTA0MzA5OWQ4NTUuLjU5YmFlYWM5ZGQ0YmE3
ZGY4MmU1ZjhhNGYyZjgxMDg0MzZjOTI3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMjM1Myw3ICsyMzUzLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEV2aWN0aW9uVHJhY2tpbmdUZXh0dXJl
PiBjcmVhdGUoUGFzc093blB0cjxDQ1ByaW9yaXRpemVkVGV4dHVyZT4gdGV4dHVyZSkgeyByZXR1
cm4gYWRvcHRQdHIobmV3IEV2aWN0aW9uVHJhY2tpbmdUZXh0dXJlKHRleHR1cmUpKTsgfQogICAg
IHZpcnR1YWwgfkV2aWN0aW9uVHJhY2tpbmdUZXh0dXJlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIGNvbnN0
IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRTaXplJikgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIEFTU0VSVF9UUlVF
KCF0ZXh0dXJlKCktPmhhdmVCYWNraW5nVGV4dHVyZSgpIHx8IHJlc291cmNlUHJvdmlkZXItPm51
bVJlc291cmNlcygpID4gMCk7CiAgICAgICAgIHRleHR1cmUoKS0+YWNxdWlyZUJhY2tpbmdUZXh0
dXJlKHJlc291cmNlUHJvdmlkZXIpOwpAQCAtMjQzOCw3ICsyNDM4LDcgQEAgdm9pZCBFdmljdGlv
blRlc3RMYXllcjo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NP
Y2NsdXNpb25UcmEKICAgICBpZiAoIW1fdGV4dHVyZS5nZXQoKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIEludFJlY3QgZnVsbFJlY3QoMCwgMCwgMTAsIDEwKTsKLSAgICBUZXh0dXJlVXBsb2FkZXI6
OlBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IHsgbV90ZXh0dXJlLmdldCgpLCBmdWxsUmVjdCwgZnVs
bFJlY3QgfTsKKyAgICBUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IHsg
bV90ZXh0dXJlLmdldCgpLCBmdWxsUmVjdCwgSW50U2l6ZSgpIH07CiAgICAgcXVldWUuYXBwZW5k
RnVsbFVwbG9hZChwYXJhbWV0ZXJzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1Jlc291cmNlUHJvdmlkZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NSZXNvdXJjZVByb3ZpZGVyVGVzdC5jcHAKaW5kZXggNDIyNzc0NTlh
ZWUwNzQxYTk2YjIzM2E1MmUzYTYwZjgyMWI0ODBhNC4uMjI4YTIwMGM0NGU5NWRhYzZkMDU0ZDhl
ZDBjOGIyNWEyOGVmNDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1Jlc291cmNlUHJvdmlkZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDUmVzb3VyY2VQcm92aWRlclRlc3QuY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgVEVT
VF9GKENDUmVzb3VyY2VQcm92aWRlclRlc3QsIEJhc2ljKQogCiAgICAgdWludDhfdCBkYXRhWzRd
ID0gezEsIDIsIDMsIDR9OwogICAgIEludFJlY3QgcmVjdChJbnRQb2ludCgpLCBzaXplKTsKLSAg
ICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwgZGF0YSwgcmVjdCwgcmVjdCwgcmVjdCk7
CisgICAgbV9yZXNvdXJjZVByb3ZpZGVyLT51cGxvYWQoaWQsIGRhdGEsIHJlY3QsIHJlY3QsIElu
dFNpemUoKSk7CiAKICAgICB1aW50OF90IHJlc3VsdFs0XSA9IHswfTsKICAgICBnZXRSZXNvdXJj
ZVBpeGVscyhpZCwgc2l6ZSwgZm9ybWF0LCByZXN1bHQpOwpAQCAtMjYzLDcgKzI2Myw3IEBAIFRF
U1RfRihDQ1Jlc291cmNlUHJvdmlkZXJUZXN0LCBVcGxvYWQpCiAKICAgICB1aW50OF90IGltYWdl
WzE2XSA9IHswfTsKICAgICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCBzaXplKTsKLSAg
ICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVjdCwgaW1hZ2VS
ZWN0LCBpbWFnZVJlY3QpOworICAgIG1fcmVzb3VyY2VQcm92aWRlci0+dXBsb2FkKGlkLCBpbWFn
ZSwgaW1hZ2VSZWN0LCBpbWFnZVJlY3QsIEludFNpemUoKSk7CiAKICAgICBmb3IgKHVpbnQ4X3Qg
aSA9IDAgOyBpIDwgcGl4ZWxTaXplOyArK2kpCiAgICAgICAgIGltYWdlW2ldID0gaTsKQEAgLTI3
MSw4ICsyNzEsOCBAQCBURVNUX0YoQ0NSZXNvdXJjZVByb3ZpZGVyVGVzdCwgVXBsb2FkKQogICAg
IHVpbnQ4X3QgcmVzdWx0WzE2XSA9IHswfTsKICAgICB7CiAgICAgICAgIEludFJlY3Qgc291cmNl
UmVjdCgwLCAwLCAxLCAxKTsKLSAgICAgICAgSW50UmVjdCBkZXN0UmVjdCgwLCAwLCAxLCAxKTsK
LSAgICAgICAgbV9yZXNvdXJjZVByb3ZpZGVyLT51cGxvYWQoaWQsIGltYWdlLCBpbWFnZVJlY3Qs
IHNvdXJjZVJlY3QsIGRlc3RSZWN0KTsKKyAgICAgICAgSW50U2l6ZSBkZXN0T2Zmc2V0KDAsIDAp
OworICAgICAgICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwgaW1hZ2UsIGltYWdlUmVj
dCwgc291cmNlUmVjdCwgZGVzdE9mZnNldCk7CiAKICAgICAgICAgdWludDhfdCBleHBlY3RlZFsx
Nl0gPSB7MCwgMSwgMiwgMywgICAwLCAwLCAwLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLCAwLCAwLCAwLCAgIDAsIDAsIDAsIDB9OwpAQCAtMjgxLDggKzI4MSw4IEBAIFRF
U1RfRihDQ1Jlc291cmNlUHJvdmlkZXJUZXN0LCBVcGxvYWQpCiAgICAgfQogICAgIHsKICAgICAg
ICAgSW50UmVjdCBzb3VyY2VSZWN0KDAsIDAsIDEsIDEpOwotICAgICAgICBJbnRSZWN0IGRlc3RS
ZWN0KDEsIDEsIDEsIDEpOwotICAgICAgICBtX3Jlc291cmNlUHJvdmlkZXItPnVwbG9hZChpZCwg
aW1hZ2UsIGltYWdlUmVjdCwgc291cmNlUmVjdCwgZGVzdFJlY3QpOworICAgICAgICBJbnRTaXpl
IGRlc3RPZmZzZXQoMSwgMSk7CisgICAgICAgIG1fcmVzb3VyY2VQcm92aWRlci0+dXBsb2FkKGlk
LCBpbWFnZSwgaW1hZ2VSZWN0LCBzb3VyY2VSZWN0LCBkZXN0T2Zmc2V0KTsKIAogICAgICAgICB1
aW50OF90IGV4cGVjdGVkWzE2XSA9IHswLCAxLCAyLCAzLCAgIDAsIDAsIDAsIDAsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsICAgMCwgMSwgMiwgM307CkBAIC0y
OTEsOCArMjkxLDggQEAgVEVTVF9GKENDUmVzb3VyY2VQcm92aWRlclRlc3QsIFVwbG9hZCkKICAg
ICB9CiAgICAgewogICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QoMSwgMCwgMSwgMSk7Ci0gICAg
ICAgIEludFJlY3QgZGVzdFJlY3QoMCwgMSwgMSwgMSk7Ci0gICAgICAgIG1fcmVzb3VyY2VQcm92
aWRlci0+dXBsb2FkKGlkLCBpbWFnZSwgaW1hZ2VSZWN0LCBzb3VyY2VSZWN0LCBkZXN0UmVjdCk7
CisgICAgICAgIEludFNpemUgZGVzdE9mZnNldCgwLCAxKTsKKyAgICAgICAgbV9yZXNvdXJjZVBy
b3ZpZGVyLT51cGxvYWQoaWQsIGltYWdlLCBpbWFnZVJlY3QsIHNvdXJjZVJlY3QsIGRlc3RPZmZz
ZXQpOwogCiAgICAgICAgIHVpbnQ4X3QgZXhwZWN0ZWRbMTZdID0gezAsIDEsIDIsIDMsICAgMCwg
MCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgNSwgNiwgNywgICAw
LCAxLCAyLCAzfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKaW5kZXggYTBkYzJlYzFmOTM2
ODEyNzk3NmYxNjM0ZTAyMzFlYTI3ZTFmMjZmMC4uNDZlN2MwMDcxMWViNmU0MjE0NTQyODkwN2M4
ZTZjNDFlNmYxODFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgcHJpdmF0ZToKIGNsYXNzIFRleHR1cmVGb3JVcGxvYWRUZXN0IDogcHVibGljIExheWVy
VGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUgewogcHVibGljOgogICAgIFRleHR1cmVGb3JVcGxvYWRU
ZXN0KCkgOiBMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlKGFkb3B0UHRyPENDUHJpb3JpdGl6
ZWRUZXh0dXJlPigwKSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3QoQ0NSZXNvdXJj
ZVByb3ZpZGVyKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVz
dFJlY3QpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KENDUmVzb3VyY2VQcm92aWRl
ciosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUmIGRlc3RPZmZzZXQp
IHsgfQogfTsKIAogCkBAIC0xOTAsNyArMTkwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX3Rv
dGFsVXBsb2FkQ291bnRFeHBlY3RlZCArPSBjb3VudDsKIAogICAgICAgICBjb25zdCBJbnRSZWN0
IHJlY3QoMCwgMCwgMzAwLCAxNTApOwotICAgICAgICBjb25zdCBUZXh0dXJlVXBsb2FkZXI6OlBh
cmFtZXRlcnMgdXBsb2FkID0geyAmbV90ZXh0dXJlLCByZWN0LCByZWN0IH07CisgICAgICAgIGNv
bnN0IFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQgPSB7ICZtX3RleHR1cmUsIHJl
Y3QsIEludFNpemUoKSB9OwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKysp
CiAgICAgICAgICAgICBtX3F1ZXVlLT5hcHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CiAgICAgfQpA
QCAtMjAxLDcgKzIwMSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV90b3RhbFVwbG9hZENvdW50
RXhwZWN0ZWQgKz0gY291bnQ7CiAKICAgICAgICAgY29uc3QgSW50UmVjdCByZWN0KDAsIDAsIDEw
MCwgMTAwKTsKLSAgICAgICAgY29uc3QgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9h
ZCA9IHsgJm1fdGV4dHVyZSwgcmVjdCwgcmVjdCB9OworICAgICAgICBjb25zdCBUZXh0dXJlVXBs
b2FkZXI6OlBhcmFtZXRlcnMgdXBsb2FkID0geyAmbV90ZXh0dXJlLCByZWN0LCBJbnRTaXplKCkg
fTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQogICAgICAgICAgICAg
bV9xdWV1ZS0+YXBwZW5kUGFydGlhbFVwbG9hZCh1cGxvYWQpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uY3Bw
CmluZGV4IDU0ZjI5YmJlZjU1NDhkM2UwY2Y3NTQyMWYzYzYzM2MzZDUwOWEzMDQuLjU4ZjM3YzY5
NDljYWZlN2MxMDNmZDQ1ZTY0MTU1ODYzZGEwZDc1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcApAQCAtNDAs
NyArNDAsNyBAQCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6flRleHR1cmUoKQog
ewogfQogCi12b2lkIEZha2VMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlOjp1cGRhdGVSZWN0
KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgY29uc3QgSW50UmVjdCYsIGNv
bnN0IEludFJlY3QmKQordm9pZCBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZTo6dXBk
YXRlUmVjdChDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBJbnRTaXplJikKIHsKICAgICB0ZXh0dXJlKCktPmFjcXVpcmVCYWNraW5nVGV4
dHVyZShyZXNvdXJjZVByb3ZpZGVyKTsKICAgICBtX2xheWVyLT51cGRhdGVSZWN0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21t
b24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1v
bi5oCmluZGV4IGM3NTkzMmFjZjYyMWJkZWIzMGM2ZjcxNDJiNzcxNTdkZDM5NWQzNTIuLjI3Yzdj
YWFlZjRmOTA0YjUyZmUxY2ZmZmU4YzZkNjc2OWFlNTVlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgVGV4dHVyZShGYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
ciosIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NQcmlvcml0aXplZFRleHR1cmU+KTsKICAgICAgICAg
dmlydHVhbCB+VGV4dHVyZSgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWN0KFdl
YkNvcmU6OkNDUmVzb3VyY2VQcm92aWRlciogLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlUmVjdChXZWJDb3JlOjpDQ1Jlc291cmNlUHJvdmlkZXIqICwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBPVkVSUklERTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHByZXBhcmVSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpDQ1Jl
bmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CiAKICAgICBwcml2YXRlOgpAQCAtMTYyLDcgKzE2Miw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNCdXN5KCkgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5VcGxvYWRzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGVu
ZFVwbG9hZHMoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBsb2FkVGV4dHVyZShXZWJDb3JlOjpD
Q1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFBhcmFtZXRlcnMgdXBsb2FkKSB7
IHVwbG9hZC50ZXh0dXJlLT51cGRhdGVSZWN0KHJlc291cmNlUHJvdmlkZXIsIHVwbG9hZC5zb3Vy
Y2VSZWN0LCB1cGxvYWQuZGVzdFJlY3QpOyB9CisgICAgdmlydHVhbCB2b2lkIHVwbG9hZFRleHR1
cmUoV2ViQ29yZTo6Q0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBQYXJhbWV0
ZXJzIHVwbG9hZCkgeyB1cGxvYWQudGV4dHVyZS0+dXBkYXRlUmVjdChyZXNvdXJjZVByb3ZpZGVy
LCB1cGxvYWQuc291cmNlUmVjdCwgdXBsb2FkLmRlc3RPZmZzZXQpOyB9CiB9OwogCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>