<?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>83600</bug_id>
          
          <creation_ts>2012-04-10 12:00:52 -0700</creation_ts>
          <short_desc>Need WebKit2 API to notify whether history loads are in the page cache</short_desc>
          <delta_ts>2012-04-13 10:52:46 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>599461</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-04-10 12:00:52 -0700</bug_when>
    <thetext>Need WebKit2 API to notify whether history loads are in the page cache

This should be in the bundle and leverage FrameLoaderClient::shouldGoToHistoryItem

In radar as &lt;rdar://problem/11176921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599491</commentid>
    <comment_count>1</comment_count>
      <attachid>136506</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-04-10 12:22:34 -0700</bug_when>
    <thetext>Created attachment 136506
Patch v1 - Fix plus API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599499</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-10 12:26:59 -0700</bug_when>
    <thetext>Attachment 136506 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Tools/TestWebKitAPI/Tests/WebKit2/ShouldGoToBackForwardListItem_Bundle.cpp:39:  The parameter name &quot;bundle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/TestWebKitAPI/Tests/WebKit2/ShouldGoToBackForwardListItem_Bundle.cpp:39:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599552</commentid>
    <comment_count>3</comment_count>
      <attachid>136506</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-04-10 13:02:01 -0700</bug_when>
    <thetext>Comment on attachment 136506
Patch v1 - Fix plus API test

Attachment 136506 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12376930</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599579</commentid>
    <comment_count>4</comment_count>
      <attachid>136525</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-04-10 13:35:20 -0700</bug_when>
    <thetext>Created attachment 136525
Patch v2 - Now with more Qt build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599581</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-10 13:37:25 -0700</bug_when>
    <thetext>Attachment 136525 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Tools/TestWebKitAPI/Tests/WebKit2/ShouldGoToBackForwardListItem_Bundle.cpp:39:  The parameter name &quot;bundle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/TestWebKitAPI/Tests/WebKit2/ShouldGoToBackForwardListItem_Bundle.cpp:39:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601550</commentid>
    <comment_count>6</comment_count>
      <attachid>136525</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-12 14:33:32 -0700</bug_when>
    <thetext>Comment on attachment 136525
Patch v2 - Now with more Qt build fixes

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:74
&gt; -typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, const void *clientInfo);
&gt; +typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, WKTypeRef userData, const void *clientInfo);

Are there any existing clients that would now have binary incompatibility? Or is this already something new?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601581</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-04-12 15:31:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 136525 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136525&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.h:74
&gt; &gt; -typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, const void *clientInfo);
&gt; &gt; +typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, WKTypeRef userData, const void *clientInfo);
&gt; 
&gt; Are there any existing clients that would now have binary incompatibility? Or is this already something new?

Less than two months old, added in http://trac.webkit.org/changeset/108570

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602201</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-04-13 10:52:46 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/114143</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136506</attachid>
            <date>2012-04-10 12:22:34 -0700</date>
            <delta_ts>2012-04-10 13:35:20 -0700</delta_ts>
            <desc>Patch v1 - Fix plus API test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>30438</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzOGFjMTM1Li40MmIwNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMg
QEAKKzIwMTItMDQtMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMTE3NjkyMT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MzYwMAorICAgICAgICBOZWVkIFdlYktpdDIgQVBJIHRvIG5vdGlm
eSB3aGV0aGVyIGhpc3RvcnkgbG9hZHMgYXJlIGluIHRoZSBwYWdlIGNhY2hlCisKKyAgICAgICAg
LSBBZGQgYSBuZXcgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IGNhbGxiYWNrIGFsbG93aW5nIHRo
ZSBidW5kbGUgdG8gYmUgbm90aWZpZWQKKyAgICAgICAgICBvZiBiYWNrL2ZvcndhcmQgbmF2aWdh
dGlvbnMgKGFuZCBkZW55IHRoZW0gaWYgaXQgY2hvb3NlcykKKyAgICAgICAgLSBBZGQgYSBuZXcg
QVBJIHRvIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbSB0byBwcm9iZSBpZiB0aGUgaXRlbSBp
cyBpbiB0aGUgcGFnZSBjYWNoZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGhlIG5ldyBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0gQVBJ
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bUlzSW5QYWdlQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOjppc0luUGFnZUNh
Y2hlKToKKworICAgICAgICBVcGRhdGUgdGhlIFVJIHBhZ2UgbG9hZGVyIGNsaWVudCB0byBhbGxv
dyBmb3IgYSB1c2VyIGRhdGEgb2JqZWN0IHRvIGJlIHBhc3NlZCBmcm9tIHRoZSBidW5kbGU6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OnNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKTogVXBkYXRlIGEgY29tbWVudCB0eXBvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bSk6IFVwZGF0ZSBmb3IgdGhlIHVzZXIgZGF0YSBmaWVsZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICBBZGQgdGhlIG5ldyBj
YWxsYmFjayB0byB0aGUgYnVuZGxlIGxvYWRlciBjbGllbnQ6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDogCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OnNob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50KToKKworICAgICAgICBDYWxsIHRoZSBidW5kbGUgY2xpZW50
IGJlZm9yZSBkb2luZyBhbnl0aGluZyBlbHNlLCBwb3NzaWJseSBjYW5jZWxpbmcgdGhlIG5hdmln
YXRpb246CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRHb1RvSGlzdG9yeUl0ZW0pOgorCiAyMDEyLTA0LTEwICBEaW51IEphY29iICA8ZGludS5qYWNv
YkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEFzc2VydGlvbiBmYWlsdXJlIG9uIGxv
YWRpbmcgbmV3IHBhZ2UgYWZ0ZXIgcGFubmluZy96b29taW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggYjA3YjZjMC4uNTYzNDQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtNzEsNyArNzEsNyBAQCB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VEaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLQmFja0ZvcgogdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBp
dGVtLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZh
aWxUb0luaXRpYWxpemVQbHVnaW5DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IG1pbWVUeXBlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZURpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYg
dm9pZCAoKldLUGFnZVdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0sIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3RydWN0IFdL
UGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAppbmRleCAyYWFlMDE2Li5kZGQ5MmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcApAQCAt
MjQzLDE3ICsyNDMsMTcgQEAgYm9vbCBXZWJMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViQmFja0YKIHsKICAgICAvLyBXZSBz
aG91bGQgb25seSBldmVuIGNvbnNpZGVyaW5nIHNlbmRpbmcgdGhlIHNob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKCkgY2xpZW50IGNhbGxiYWNrCiAgICAgLy8gZm9yIHZlcnNpb24gMCBjbGll
bnRzLiBMYXRlciB2ZXJzaW9uZWQgY2xpZW50cyBzaG91bGQgZ2V0IHdpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSgpIGluc3RlYWQsCi0gICAgLy8gYnV0IGRvIHRvIFhQQyByYWNlIGNvbmRpdGlv
bnMgdGhpcyBvbmUgbWlnaHQgaGF2ZSBiZWVuIGNhbGxlZCBpbnN0ZWFkLgorICAgIC8vIGJ1dCBk
dWUgdG8gWFBDIHJhY2UgY29uZGl0aW9ucyB0aGlzIG9uZSBtaWdodCBoYXZlIGJlZW4gY2FsbGVk
IGluc3RlYWQuCiAgICAgaWYgKG1fY2xpZW50LnZlcnNpb24gPiAwIHx8ICFtX2NsaWVudC5zaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBy
ZXR1cm4gbV9jbGllbnQuc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odG9BUEkocGFnZSks
IHRvQVBJKGl0ZW0pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBXZWJMb2FkZXJD
bGllbnQ6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkqIHBhZ2UsIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0pCit2b2lkIFdlYkxvYWRlckNsaWVudDo6d2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogaXRlbSwgQVBJT2JqZWN0KiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9jbGllbnQu
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKQotICAgICAgICBtX2NsaWVudC53aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0odG9BUEkocGFnZSksIHRvQVBJKGl0ZW0pLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKKyAgICAgICAgbV9jbGllbnQud2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRv
QVBJKHBhZ2UpLCB0b0FQSShpdGVtKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKIH0KIAogdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZEZhaWxUb0luaXRpYWxpemVQbHVn
aW4oV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCmluZGV4IDU1Y2M2YWEuLmNkMGQ2YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgKQEAgLTgzLDcg
KzgzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2Vi
UGFnZVByb3h5KiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVm
UHRyPEFQSU9iamVjdD4gPiogcmVtb3ZlZEl0ZW1zKTsKICAgICBib29sIHNob3VsZEdvVG9CYWNr
Rm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSosIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsK
LSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkqLCBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKik7CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0oV2ViUGFnZVByb3h5KiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSosIEFQSU9iamVjdCopOwog
CiAgICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKFdlYlBhZ2VQcm94eSosIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZDFiZDQwYy4uYjc1ZGFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY0MiwxMCArNjQyLDE1IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIGJvb2wm
IHNob3VsZEdvCiAgICAgc2hvdWxkR29Ub0JhY2tGb3J3YXJkSXRlbSA9IGl0ZW0gJiYgbV9sb2Fk
ZXJDbGllbnQuc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odGhpcywgaXRlbSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3Qg
aXRlbUlEKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1
aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewor
ICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsK
KyAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBwcm9jZXNzKCkt
PndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKQotICAgICAgICBtX2xvYWRlckNsaWVudC53aWxs
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odGhpcywgaXRlbSk7CisgICAgICAgIG1fbG9hZGVyQ2xp
ZW50LndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh0aGlzLCBpdGVtLCB1c2VyRGF0YS5nZXQo
KSk7CiB9CiAKIFN0cmluZyBXZWJQYWdlUHJveHk6OmFjdGl2ZVVSTCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzY0MjNlMi4uOGU0NGQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjcyLDcgKzI3Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQg
ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRl
bSwgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4qIHJlbW92ZWRJdGVtcyk7CiAgICAgdm9pZCBz
aG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIGJvb2wmIHNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbSh1aW50NjRfdCBpdGVtSUQpOworICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpOwogCiAgICAgU3RyaW5nIGFjdGl2ZVVSTCgpIGNvbnN0OwogICAgIFN0cmluZyBwcm92aXNp
b25hbFVSTCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTRmN2FhZi4uNjM4MmYxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNjYsNyAr
MTY2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBCYWNrRm9yd2FyZEZvcndh
cmRMaXN0Q291bnQoKSAtPiAoaW50MzJfdCBjb3VudCkKICAgICBCYWNrRm9yd2FyZENsZWFyKCkK
ICAgICBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQpIC0+IChi
b29sIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKQotICAgIFdpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQpCisgICAgV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlciB1c2VyRGF0YSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJF
ZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0u
Y3BwCmluZGV4IGU5ODQ1ZTMuLjRiMzJiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAgLTY3LDYgKzY3LDExIEBAIGJvb2wg
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJnZXRJdGVtKFdLQnVuZGxlQmFja0Zvcndh
cmRMaXN0SXRlbVJlZiBpdGVtCiAgICAgcmV0dXJuIHRvSW1wbChpdGVtUmVmKS0+aXNUYXJnZXRJ
dGVtKCk7CiB9CiAKK2Jvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBhZ2VDYWNo
ZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKK3sKKyAgICByZXR1cm4g
dG9JbXBsKGl0ZW1SZWYpLT5pc0luUGFnZUNhY2hlKCk7Cit9CisKIFdLQXJyYXlSZWYgV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weUNoaWxkcmVuKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbVJlZiBpdGVtUmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoaXRlbVJlZiktPmNo
aWxkcmVuKCkubGVha1JlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4IGYyNTY0NjQuLmU5NDc1YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAtNDMsNiArNDMs
OCBAQCBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29w
eVRpdGxlKFdLQnVuZGxlQmFja0ZvcndhcmRMaQogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlUYXJnZXQoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmIGl0ZW0pOwogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
SXNUYXJnZXRJdGVtKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKIAorV0tf
RVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBhZ2VDYWNoZShXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CisKIFdLX0VYUE9SVCBXS0FycmF5UmVm
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlDaGlsZHJlbihXS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmgKaW5kZXggZTY4ZTU1OC4uNWE0ZDBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlk
Q2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91Ymxl
IGRhdGUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwor
dHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1D
YWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bVJlZiBpdGVtLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
IAogc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz
aW9uOwpAQCAtMTMwLDYgKzEzMSw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQg
ewogICAgIFdLQnVuZGxlUGFnZURpZExheW91dEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkTGF5b3V0Rm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlRGlk
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Q2FsbGJhY2sgICAgICAgICAgICAgICBkaWRO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQ7CiAgICAgV0tCdW5kbGVQYWdlRGlkRGV0ZWN0
WFNTRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREZXRlY3RY
U1NGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bUNhbGxiYWNrICAgICAgICAgICAgICAgICAgIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBXS0J1bmRsZVBh
Z2VMb2FkZXJDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5oCmluZGV4IDZjZDllYzYuLmRhMDhmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAtNTMsNiArNTMsNyBA
QCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXRlbS0+dGFyZ2V0KCk7IH0KICAgICBib29sIGlzVGFyZ2V0SXRlbSgpIGNvbnN0IHsgcmV0dXJu
IG1faXRlbS0+aXNUYXJnZXRJdGVtKCk7IH0KKyAgICBib29sIGlzSW5QYWdlQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX2l0ZW0tPmlzSW5QYWdlQ2FjaGUoKTsgfQogCiAgICAgUGFzc1JlZlB0cjxJ
bW11dGFibGVBcnJheT4gY2hpbGRyZW4oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCmluZGV4IDI0YTNiODEuLmM3N2IyNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAg
LTM2LDYgKzM2LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2UqIHBhZ2UsIEluamVjdGVkQnVuZGxlQmFja0Zvcndh
cmRMaXN0SXRlbSogaXRlbSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQoreworICAgIGlm
ICghbV9jbGllbnQuc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBib29sIHJl
c3VsdCA9IG1fY2xpZW50LnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRvQVBJKHBhZ2Up
LCB0b0FQSShpdGVtKSwgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAg
ICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOworICAgIAorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1l
KiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGll
bnQuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IDFjYzQxYTYuLjA0YTJhYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtNDIsMTEg
KzQyLDEzIEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgQVBJT2JqZWN0OworY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYkZyYW1lOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdLQnVuZGxlUGFnZUxvYWRlckNs
aWVudCwga1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudEN1cnJlbnRWZXJzaW9uPiB7CiBwdWJsaWM6
CisgICAgYm9vbCBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlKiwgSW5qZWN0
ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRh
KTsKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViUGFnZSosIFdl
YkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJG
cmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDlhMmIyZTAuLjllN2M2YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5j
bHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLmgiCkBAIC05MzAsMTMgKzkzMSwyMCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCisg
ICAgUmVmUHRyPEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbT4gYnVuZGxlSXRlbSA9
IEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbTo6Y3JlYXRlKGl0ZW0pOworICAgIFJl
ZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworCisgICAgLy8gQXNrIHRoZSBidW5kbGUgY2xpZW50
IGZpcnN0CisgICAgYm9vbCBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSA9IHdlYlBhZ2Ut
PmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0od2ViUGFnZSwgYnVuZGxlSXRlbS5nZXQoKSwgdXNlckRhdGEpOworICAgIGlmICghc2hvdWxk
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAg
ICBpZiAod2ViUGFnZS0+d2lsbEdvVG9CYWNrRm9yd2FyZEl0ZW1DYWxsYmFja0VuYWJsZWQoKSkg
ewotICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbShpdGVtSUQpKTsKKyAgICAgICAgd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oaXRlbUlELCBJ
bmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIGJvb2wgc2hvdWxkR29Ub0JhY2tGb3J3
YXJkTGlzdEl0ZW07CiAgICAgaWYgKCF3ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVtSUQpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTo6UmVwbHkoc2hvdWxk
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM0Y2Zl
NDQuLjY4NTY0NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNC0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzExMTc2OTIxPiBhbmQgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNjAwCisgICAgICAgIE5lZWQg
V2ViS2l0MiBBUEkgdG8gbm90aWZ5IHdoZXRoZXIgaGlzdG9yeSBsb2FkcyBhcmUgaW4gdGhlIHBh
Z2UgY2FjaGUKKworICAgICAgICBBZGQgYSB0ZXN0IFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtIHRoYXQgZXhlcmNpc2VzIHRoZSBuZXcgQnVuZGxlUGFnZUxvYWRlckNsaWVudAorICAgICAg
ICBjYWxsYmFjayBhcyB3ZWxsIGFzIHRoZSBuZXcgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
SXNJblBhZ2VDYWNoZSgpIEFQSS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlk
RmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzZXRQYWdlTG9hZGVy
Q2xpZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5k
bGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtVGVz
dCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlNob3VsZEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtVGVzdDo6U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1UZXN0KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtVGVzdDo6ZGlk
Q3JlYXRlUGFnZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKTogVXBkYXRlIGZvciB0aGUgbmV3IGNsaWVu
dC4KKwogMjAxMi0wNC0xMCAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5p
QGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBu
ZWVkcyBpbXBsZW1lbnRhdGlvbiBvZiBhZGRVc2VyU3R5bGVTaGVldApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkMTE2Yzc1Li5iODI1NzlmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NDMsNiArNDMsOCBAQAogCQk1MTdFN0RGQzE1MTEwRUE2MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQ
cnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3RTdERkIxNTExMEVBNjAwRDBCMDA4IC8qIE1lbW9y
eUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJNTE3RTdF
MDQxNTExMTlDMTAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWRE
ZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxN0U3RTAzMTUxMTE4NzUwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0
aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsKIAkJNTFGQkJCNEQxNTEzRDRFOTAw
ODIyNzM4IC8qIFdlYlZpZXdDYW5QYXN0ZVVSTC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkJCQjRDMTUxM0Q0RTkwMDgyMjczOCAvKiBXZWJWaWV3
Q2FuUGFzdGVVUkwubW0gKi87IH07CisJCTUxRkNGNzlBMTUzNEFDNkQwMDEwNDQ5MSAvKiBTaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZDRjc5ODE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovOyB9OworCQk1MUZDRjdBMTE1MzRCMkEwMDAxMDQ0
OTEgLyogU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkNGNzk3MTUzNEFDNkQwMDEw
NDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwICovOyB9Owog
CQk1MjBCQ0Y0QzE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5
RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEQxNDFF
QjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hp
dmUuY3BwICovOyB9OwogCQk1MkNCNDc0MTE0NDhGQjkzMDA4NzM5OTUgLyogTG9hZEFsdGVybmF0
ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0I0NzQwMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2Fk
QWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwICovOyB9OwpAQCAtMjMz
LDYgKzIzNSw4IEBACiAJCTUxN0U3REZCMTUxMTBFQTYwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBy
dW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdh
dGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0U3RTAzMTUxMTE4NzUwMEQw
QjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUZCQkI0
QzE1MTNENEU5MDA4MjI3MzggLyogV2ViVmlld0NhblBhc3RlVVJMLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0NhblBhc3RlVVJMLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MUZDRjc5NzE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxk
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0J1bmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRkNGNzk4MTUzNEFDNkQwMDEwNDQ5MSAv
KiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyMEJDRjRBMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJB
cmNoaXZlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJBcmNoaXZlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyMEJD
RjRCMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MkNCNDc0MDE0NDhGQjkzMDA4NzM5OTUgLyogTG9hZEFsdGVybmF0ZUhUTUxTdHJp
bmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTksNiArNTIzLDggQEAKIAkJCQlDMEJENjY5
QzEzMUQzQ0Y3MDBFMThGMkEgLyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5j
cHAgKi8sCiAJCQkJQzBCRDY2OUUxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNzVGlt
ZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCAqLywKIAkJCQlDMEFEQkU4MjEyRkNBNkFBMDBE
MkMxMjkgLyogUmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAgKi8sCisJ
CQkJNTFGQ0Y3OTgxNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtLmNwcCAqLywKKwkJCQk1MUZDRjc5NzE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCAqLywKIAkJCQlDMDJCNzdGMTEyNjYxMjE0MDAy
NkJGMEYgLyogU3BhY2ViYXJTY3JvbGxpbmcuY3BwICovLAogCQkJCUJDMjJEMzEzMTREQzY4OTgw
MEZGQjFERCAvKiBVc2VyTWVzc2FnZS5jcHAgKi8sCiAJCQkJQkMyMkQzMTcxNERDNjhCODAwRkZC
MUREIC8qIFVzZXJNZXNzYWdlX0J1bmRsZS5jcHAgKi8sCkBAIC04MzksNiArODQ1LDcgQEAKIAkJ
CQk1MUZCQkI0RDE1MTNENEU5MDA4MjI3MzggLyogV2ViVmlld0NhblBhc3RlVVJMLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE0MkIyNzExNTE3Qzg4QjAwQzMyQjE5IC8qIENvbnRleHRNZW51Q2Fu
Q29weVVSTC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM1NDBGNzc2MTUyRTREQTAwMEE0MEM4QyAv
KiBTaW1wbGlmeU1hcmt1cC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxRkNGNzlBMTUzNEFDNkQw
MDEwNDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTg2Nyw2ICs4NzQsNyBAQAogCQkJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMjJEMzE5MTREQzY4QjkwMEZGQjFERCAvKiBVc2VyTWVzc2FnZV9CdW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBRjRFQ0UxNTA2RjA2NDAwN0ZENTdFIC8qIE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlc19CdW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTFGQ0Y3QTExNTM0QjJBMDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxM2E1
ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
Kworc3RhdGljIGJvb2wgZmluaXNoZWQgPSBmYWxzZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkUHJv
cGVyQmFja0ZvcndhcmRDYWxsYmFja3MgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgZGlkRmluaXNo
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25z
dCB2b2lkKikKK3sKKyAgICAvLyBPbmx5IG1hcmsgZmluaXNoZWQgd2hlbiB0aGUgbWFpbiBmcmFt
ZSBsb2FkcworICAgIGlmIChXS0ZyYW1lR2V0UGFyZW50RnJhbWUoZnJhbWUpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBmaW5pc2hlZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbShXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKikKK3sKKyAgICBpZiAoV0tHZXRUeXBlSUQo
dXNlckRhdGEpID09IFdLU3RyaW5nR2V0VHlwZUlEKCkpIHsKKyAgICAgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcoKFdLU3RyaW5nUmVmKXVzZXJEYXRhLCAic2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFjayBjYWxsZWQgYXMgZXhwZWN0ZWQiKSkKKyAgICAgICAg
ICAgIHJlY2VpdmVkUHJvcGVyQmFja0ZvcndhcmRDYWxsYmFja3MgPSB0cnVlOworICAgIH0KKwor
ICAgIGZpbmlzaGVkID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgc2V0UGFnZUxvYWRlckNsaWVu
dChXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50
OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7Cisg
ICAgbG9hZGVyQ2xpZW50LnZlcnNpb24gPSAxOworICAgIGxvYWRlckNsaWVudC5jbGllbnRJbmZv
ID0gMDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNo
TG9hZEZvckZyYW1lOworICAgIGxvYWRlckNsaWVudC53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0gPSB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW07CisKKyAgICBXS1BhZ2VTZXRQYWdlTG9h
ZGVyQ2xpZW50KHBhZ2UsICZsb2FkZXJDbGllbnQpOworfQorCitURVNUKFdlYktpdDIsIFNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxl
VGVzdCgiU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1UZXN0IikpOworICAgIC8vIEVuYWJs
ZSB0aGUgcGFnZSBjYWNoZSBzbyB3ZSBjYW4gdGVzdCB0aGUgV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3RJdGVtSXNJblBhZ2VDYWNoZSBBUEkKKyAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRl
eHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOworCisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgc2V0UGFnZUxvYWRlckNsaWVudCh3
ZWJWaWV3LnBhZ2UoKSk7CisKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKS5nZXQoKSk7
CisgICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgCisgICAgZmluaXNoZWQgPSBmYWxzZTsK
KyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVS
TEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwiKSkuZ2V0KCkpOworICAgIFV0aWw6
OnJ1bigmZmluaXNoZWQpOworCisgICAgZmluaXNoZWQgPSBmYWxzZTsKKyAgICBXS1BhZ2VHb0Jh
Y2sod2ViVmlldy5wYWdlKCkpOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIAorICAg
IEVYUEVDVF9FUShyZWNlaXZlZFByb3BlckJhY2tGb3J3YXJkQ2FsbGJhY2tzLCB0cnVlKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0J1bmRs
ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wZjE1YzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0J1bmRsZS5jcHAKQEAgLTAs
MCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJ
bmplY3RlZEJ1bmRsZVRlc3QuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K2NsYXNzIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtVGVzdCA6IHB1YmxpYyBJbmplY3Rl
ZEJ1bmRsZVRlc3QgeworcHVibGljOgorICAgIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
VGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcik7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsK
K307CisKK3N0YXRpYyBJbmplY3RlZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVyPFNob3VsZEdvVG9CYWNr
Rm9yd2FyZExpc3RJdGVtVGVzdD4gcmVnaXN0cmFyKCJTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0
SXRlbVRlc3QiKTsKKworc3RhdGljIGJvb2wgc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1D
YWxsYmFjayhXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBp
dGVtLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkKikKK3sKKyAgICAvLyBUaGUgaXRl
bSBzaG91bGQgYmUgaW4gdGhlIHBhZ2UgY2FjaGUKKyAgICBpZiAoV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtSXNJblBhZ2VDYWNoZShpdGVtKSkKKyAgICAgICAgKnVzZXJEYXRhID0gV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtQ2Fs
bGJhY2sgY2FsbGVkIGFzIGV4cGVjdGVkIik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1UZXN0OjpTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0
SXRlbVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgOiBJbmplY3RlZEJ1
bmRsZVRlc3QoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBTaG91bGRHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbVRlc3Q6OmRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBh
Z2VSZWYgcGFnZSkKK3sgICAgCisgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHBhZ2VMb2Fk
ZXJDbGllbnQ7CisgICAgbWVtc2V0KCZwYWdlTG9hZGVyQ2xpZW50LCAwLCBzaXplb2YocGFnZUxv
YWRlckNsaWVudCkpOworICAgIAorICAgIHBhZ2VMb2FkZXJDbGllbnQudmVyc2lvbiA9IDE7Cisg
ICAgcGFnZUxvYWRlckNsaWVudC5jbGllbnRJbmZvID0gdGhpczsKKyAgICBwYWdlTG9hZGVyQ2xp
ZW50LnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtID0gc2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1DYWxsYmFjazsKKyAgICAKKyAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xp
ZW50KHBhZ2UsICZwYWdlTG9hZGVyQ2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDM3YjIwNjQuLjdkYmRjMGQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTIzNSw2ICsyMzUsNyBAQCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICAgICAg
MCwgLy8gZGlkTGF5b3V0Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gZGlkTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUKICAgICAgICAgZGlkRGV0ZWN0WFNTRm9yRnJhbWUsCisg
ICAgICAgIDAsIC8vIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtCiAgICAgfTsKICAgICBX
S0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwgJmxvYWRlckNsaWVudCk7CiAK
</data>
<flag name="commit-queue"
          id="141344"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136525</attachid>
            <date>2012-04-10 13:35:20 -0700</date>
            <delta_ts>2012-04-12 14:33:31 -0700</delta_ts>
            <desc>Patch v2 - Now with more Qt build fixes</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>31196</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzOGFjMTM1Li45ZGYzYjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTItMDQtMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMTE3NjkyMT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MzYwMAorICAgICAgICBOZWVkIFdlYktpdDIgQVBJIHRvIG5vdGlm
eSB3aGV0aGVyIGhpc3RvcnkgbG9hZHMgYXJlIGluIHRoZSBwYWdlIGNhY2hlCisKKyAgICAgICAg
LSBBZGQgYSBuZXcgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IGNhbGxiYWNrIGFsbG93aW5nIHRo
ZSBidW5kbGUgdG8gYmUgbm90aWZpZWQKKyAgICAgICAgICBvZiBiYWNrL2ZvcndhcmQgbmF2aWdh
dGlvbnMgKGFuZCBkZW55IHRoZW0gaWYgaXQgY2hvb3NlcykKKyAgICAgICAgLSBBZGQgYSBuZXcg
QVBJIHRvIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbSB0byBwcm9iZSBpZiB0aGUgaXRlbSBp
cyBpbiB0aGUgcGFnZSBjYWNoZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGhlIG5ldyBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0gQVBJ
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bUlzSW5QYWdlQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOjppc0luUGFnZUNh
Y2hlKToKKworICAgICAgICBVcGRhdGUgdGhlIFVJIHBhZ2UgbG9hZGVyIGNsaWVudCB0byBhbGxv
dyBmb3IgYSB1c2VyIGRhdGEgb2JqZWN0IHRvIGJlIHBhc3NlZCBmcm9tIHRoZSBidW5kbGU6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OnNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKTogVXBkYXRlIGEgY29tbWVudCB0eXBvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bSk6IFVwZGF0ZSBmb3IgdGhlIHVzZXIgZGF0YSBmaWVsZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICBBZGQgdGhlIG5ldyBj
YWxsYmFjayB0byB0aGUgYnVuZGxlIGxvYWRlciBjbGllbnQ6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDogCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OnNob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50KToKKworICAgICAgICBDYWxsIHRoZSBidW5kbGUgY2xpZW50
IGJlZm9yZSBkb2luZyBhbnl0aGluZyBlbHNlLCBwb3NzaWJseSBjYW5jZWxpbmcgdGhlIG5hdmln
YXRpb246CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRHb1RvSGlzdG9yeUl0ZW0pOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5C
dW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UXRCdWlsdGluQnVuZGxlUGFnZTo6UXRC
dWlsdGluQnVuZGxlUGFnZSkgQWRvcHQgbmV3IGJ1bmRsZSBjbGllbnQgaW50ZXJmYWNlLgorCiAy
MDEyLTA0LTEwICBEaW51IEphY29iICA8ZGludS5qYWNvYkBub2tpYS5jb20+CiAKICAgICAgICAg
W1F0XVtXSzJdIEFzc2VydGlvbiBmYWlsdXJlIG9uIGxvYWRpbmcgbmV3IHBhZ2UgYWZ0ZXIgcGFu
bmluZy96b29taW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXgg
YjA3YjZjMC4uNTYzNDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aApAQCAtNzEsNyArNzEsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcgogdHlwZWRlZiBib29s
ICgqV0tQYWdlU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZhaWxUb0luaXRpYWxpemVQbHVnaW5DYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZVdpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yd2FyZExp
c3RJdGVtUmVmIGl0ZW0sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgq
V0tQYWdlV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCB7CiAgICAg
aW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmNwcAppbmRleCAyYWFlMDE2Li5kZGQ5MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcApAQCAtMjQzLDE3ICsyNDMsMTcgQEAgYm9vbCBX
ZWJMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94
eSogcGFnZSwgV2ViQmFja0YKIHsKICAgICAvLyBXZSBzaG91bGQgb25seSBldmVuIGNvbnNpZGVy
aW5nIHNlbmRpbmcgdGhlIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKCkgY2xpZW50IGNh
bGxiYWNrCiAgICAgLy8gZm9yIHZlcnNpb24gMCBjbGllbnRzLiBMYXRlciB2ZXJzaW9uZWQgY2xp
ZW50cyBzaG91bGQgZ2V0IHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSgpIGluc3RlYWQsCi0g
ICAgLy8gYnV0IGRvIHRvIFhQQyByYWNlIGNvbmRpdGlvbnMgdGhpcyBvbmUgbWlnaHQgaGF2ZSBi
ZWVuIGNhbGxlZCBpbnN0ZWFkLgorICAgIC8vIGJ1dCBkdWUgdG8gWFBDIHJhY2UgY29uZGl0aW9u
cyB0aGlzIG9uZSBtaWdodCBoYXZlIGJlZW4gY2FsbGVkIGluc3RlYWQuCiAgICAgaWYgKG1fY2xp
ZW50LnZlcnNpb24gPiAwIHx8ICFtX2NsaWVudC5zaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0odG9BUEkocGFnZSksIHRvQVBJKGl0ZW0pLCBtX2NsaWVudC5j
bGllbnRJbmZvKTsKIH0KIAotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OndpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0
ZW0pCit2b2lkIFdlYkxvYWRlckNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdl
YlBhZ2VQcm94eSogcGFnZSwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSwgQVBJT2JqZWN0
KiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9jbGllbnQud2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtKQotICAgICAgICBtX2NsaWVudC53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odG9BUEko
cGFnZSksIHRvQVBJKGl0ZW0pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICAgICAgbV9jbGll
bnQud2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRvQVBJKHBhZ2UpLCB0b0FQSShpdGVtKSwg
dG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBXZWJMb2Fk
ZXJDbGllbnQ6OmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV2ViUGFnZVByb3h5KiBwYWdlLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRl
ckNsaWVudC5oCmluZGV4IDU1Y2M2YWEuLmNkMGQ2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViUGFnZVByb3h5KiwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiogcmVtb3Zl
ZEl0ZW1zKTsKICAgICBib29sIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQ
cm94eSosIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkqLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7Cisg
ICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5KiwgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSosIEFQSU9iamVjdCopOwogCiAgICAgdm9pZCBkaWRGYWlsVG9Jbml0
aWFsaXplUGx1Z2luKFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDFiZDQwYy4u
Yjc1ZGFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTY0MiwxMCArNjQyLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIGJvb2wmIHNob3VsZEdvCiAgICAgc2hvdWxkR29U
b0JhY2tGb3J3YXJkSXRlbSA9IGl0ZW0gJiYgbV9sb2FkZXJDbGllbnQuc2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW0odGhpcywgaXRlbSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxs
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlEKQordm9pZCBXZWJQYWdlUHJv
eHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogeworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVz
ZXJEYXRhOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIo
dXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBpZiAoIWFyZ3VtZW50cy0+ZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBwcm9jZXNzKCktPndlYkJhY2tGb3J3YXJkSXRlbShpdGVt
SUQpKQotICAgICAgICBtX2xvYWRlckNsaWVudC53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0o
dGhpcywgaXRlbSk7CisgICAgICAgIG1fbG9hZGVyQ2xpZW50LndpbGxHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbSh0aGlzLCBpdGVtLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKIFN0cmluZyBXZWJQYWdl
UHJveHk6OmFjdGl2ZVVSTCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMzY0MjNlMi4uOGU0NGQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMjcyLDcgKzI3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyeVJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0
KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZlB0cjxBUElPYmpl
Y3Q+ID4qIHJlbW92ZWRJdGVtcyk7CiAgICAgdm9pZCBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0
SXRlbSh1aW50NjRfdCBpdGVtSUQsIGJvb2wmIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
KTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQp
OworICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpOwogCiAgICAgU3RyaW5nIGFjdGl2
ZVVSTCgpIGNvbnN0OwogICAgIFN0cmluZyBwcm92aXNpb25hbFVSTCgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZTRmN2FhZi4uNjM4MmYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNjYsNyArMTY2LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAoaW50MzJf
dCBjb3VudCkKICAgICBCYWNrRm9yd2FyZENsZWFyKCkKICAgICBTaG91bGRHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQpIC0+IChib29sIHNob3VsZEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKQotICAgIFdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVt
SUQpCisgICAgV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKIAogICAgICMg
VW5kby9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8odWludDY0
X3QgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmluZGV4IGU5ODQ1ZTMuLjRiMzJi
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5jcHAKQEAgLTY3LDYgKzY3LDExIEBAIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtSXNUYXJnZXRJdGVtKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtCiAgICAg
cmV0dXJuIHRvSW1wbChpdGVtUmVmKS0+aXNUYXJnZXRJdGVtKCk7CiB9CiAKK2Jvb2wgV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBhZ2VDYWNoZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYgaXRlbVJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGl0ZW1SZWYpLT5pc0luUGFn
ZUNhY2hlKCk7Cit9CisKIFdLQXJyYXlSZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29w
eUNoaWxkcmVuKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQogewogICAg
IHJldHVybiB0b0FQSSh0b0ltcGwoaXRlbVJlZiktPmNoaWxkcmVuKCkubGVha1JlZigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4
IGYyNTY0NjQuLmU5NDc1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAtNDMsNiArNDMsOCBAQCBXS19FWFBPUlQgV0tTdHJpbmdS
ZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRpdGxlKFdLQnVuZGxlQmFja0Zvcndh
cmRMaQogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUNv
cHlUYXJnZXQoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0pOwogV0tfRVhQT1JU
IGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJnZXRJdGVtKFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKIAorV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtSXNJblBhZ2VDYWNoZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgaXRlbSk7CisKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbUNvcHlDaGlsZHJlbihXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggZTY4ZTU1
OC4uNWE0ZDBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0xMDEsNiArMTAxLDcg
QEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFt
ZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURp
ZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
S1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tCdW5kbGVQ
YWdlU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtLCBXS1R5cGVSZWYqIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLQnVuZGxlUGFnZUxv
YWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMTMwLDYgKzEzMSw3IEBA
IHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgewogICAgIFdLQnVuZGxlUGFnZURpZExh
eW91dEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTGF5
b3V0Rm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlRGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Q2FsbGJhY2sgICAgICAgICAgICAgICBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXQ7CiAgICAgV0tCdW5kbGVQYWdlRGlkRGV0ZWN0WFNTRm9yRnJhbWVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaWREZXRlY3RYU1NGb3JGcmFtZTsKKyAgICBXS0J1bmRs
ZVBhZ2VTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOwogfTsKIHR5cGVkZWYgc3RydWN0IFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4IDZj
ZDllYzYuLmRhMDhmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tG
b3J3YXJkTGlzdEl0ZW0uaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBT
dHJpbmcmIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbS0+dGFyZ2V0KCk7IH0KICAgICBi
b29sIGlzVGFyZ2V0SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbS0+aXNUYXJnZXRJdGVtKCk7
IH0KKyAgICBib29sIGlzSW5QYWdlQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX2l0ZW0tPmlzSW5Q
YWdlQ2FjaGUoKTsgfQogCiAgICAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gY2hpbGRyZW4o
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDI0YTNiODEuLmM3N2IyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTM2LDYgKzM2LDE4IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorYm9vbCBJbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBh
Z2UqIHBhZ2UsIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSwgUmVmUHRy
PEFQSU9iamVjdD4mIHVzZXJEYXRhKQoreworICAgIGlmICghbV9jbGllbnQuc2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgV0tUeXBlUmVm
IHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBib29sIHJlc3VsdCA9IG1fY2xpZW50LnNob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKHRvQVBJKHBhZ2UpLCB0b0FQSShpdGVtKSwgJnVzZXJEYXRh
VG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRv
SW1wbCh1c2VyRGF0YVRvUGFzcykpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVj
dD4mIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5oCmluZGV4IDFjYzQxYTYuLjA0YTJhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtNDIsMTEgKzQyLDEzIEBAIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQVBJT2JqZWN0OworY2xhc3Mg
SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUGFnZTsKIGNsYXNz
IFdlYkZyYW1lOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQgOiBwdWJs
aWMgQVBJQ2xpZW50PFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCwga1dLQnVuZGxlUGFnZUxvYWRl
ckNsaWVudEN1cnJlbnRWZXJzaW9uPiB7CiBwdWJsaWM6CisgICAgYm9vbCBzaG91bGRHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlKiwgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVj
dD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+
JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9y
RnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDlhMmIyZTAuLjllN2M2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVy
cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgiCkBAIC05MzAsMTMgKzkz
MSwyMCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0o
SGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCisgICAgUmVmUHRyPEluamVjdGVkQnVuZGxl
QmFja0ZvcndhcmRMaXN0SXRlbT4gYnVuZGxlSXRlbSA9IEluamVjdGVkQnVuZGxlQmFja0Zvcndh
cmRMaXN0SXRlbTo6Y3JlYXRlKGl0ZW0pOworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OworCisgICAgLy8gQXNrIHRoZSBidW5kbGUgY2xpZW50IGZpcnN0CisgICAgYm9vbCBzaG91bGRH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbSA9IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xp
ZW50KCkuc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0od2ViUGFnZSwgYnVuZGxlSXRlbS5n
ZXQoKSwgdXNlckRhdGEpOworICAgIGlmICghc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0p
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAod2ViUGFnZS0+d2lsbEdvVG9C
YWNrRm9yd2FyZEl0ZW1DYWxsYmFja0VuYWJsZWQoKSkgewotICAgICAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
SUQpKTsKKyAgICAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpXaWxs
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oaXRlbUlELCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
ICAgIAotICAgIGJvb2wgc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW07CiAgICAgaWYgKCF3
ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG91bGRHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbShpdGVtSUQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG91bGRHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbTo6UmVwbHkoc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0p
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKaW5kZXggNGEyZDU1NC4uOTMw
YzYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5C
dW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRp
bkJ1bmRsZVBhZ2UuY3BwCkBAIC02OSw2ICs2OSw3IEBAIFF0QnVpbHRpbkJ1bmRsZVBhZ2U6OlF0
QnVpbHRpbkJ1bmRsZVBhZ2UoUXRCdWlsdGluQnVuZGxlKiBidW5kbGUsIFdLQnVuZGxlUGFnZVJl
CiAgICAgICAgIDAsIC8vIGRpZExheW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZERldGVj
dFhTU0ZvckZyYW1lCisgICAgICAgIDAsIC8vIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
CiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwgJmxv
YWRlckNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggYzRjZmU0NC4uNjg1NjQ1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTEwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTExNzY5MjE+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2
MDAKKyAgICAgICAgTmVlZCBXZWJLaXQyIEFQSSB0byBub3RpZnkgd2hldGhlciBoaXN0b3J5IGxv
YWRzIGFyZSBpbiB0aGUgcGFnZSBjYWNoZQorCisgICAgICAgIEFkZCBhIHRlc3QgU2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0gdGhhdCBleGVyY2lzZXMgdGhlIG5ldyBCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50CisgICAgICAgIGNhbGxiYWNrIGFzIHdlbGwgYXMgdGhlIG5ldyBXS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW1Jc0luUGFnZUNhY2hlKCkgQVBJLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcDogQWRkZWQuCisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnNldFBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtX0J1bmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoU2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW1UZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNob3VsZEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2spOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6U2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1UZXN0OjpTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0
SXRlbVRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6U2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1UZXN0OjpkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBVcGRhdGUg
Zm9yIHRoZSBuZXcgY2xpZW50LgorCiAyMDEyLTA0LTEwICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxz
dWRhcnNhbmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIExheW91
dFRlc3RDb250cm9sbGVyIG5lZWRzIGltcGxlbWVudGF0aW9uIG9mIGFkZFVzZXJTdHlsZVNoZWV0
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxMTZjNzUuLmI4MjU3OWYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00Myw2ICs0Myw4IEBACiAJCTUxN0U3REZDMTUxMTBFQTYwMEQwQjAw
OCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdFN0RGQjE1MTEwRUE2
MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1t
ICovOyB9OwogCQk1MTdFN0UwNDE1MTExOUMxMDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3RTdFMDMxNTExMTg3NTAwRDBCMDA4IC8qIE1l
bW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovOyB9OwogCQk1
MUZCQkI0RDE1MTNENEU5MDA4MjI3MzggLyogV2ViVmlld0NhblBhc3RlVVJMLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQkJCNEMxNTEzRDRFOTAw
ODIyNzM4IC8qIFdlYlZpZXdDYW5QYXN0ZVVSTC5tbSAqLzsgfTsKKwkJNTFGQ0Y3OUExNTM0QUM2
RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkNGNzk4MTUzNEFDNkQwMDEw
NDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi87IH07CisJCTUxRkNG
N0ExMTUzNEIyQTAwMDEwNDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFG
Q0Y3OTcxNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0J1
bmRsZS5jcHAgKi87IH07CiAJCTUyMEJDRjRDMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZl
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MjBCQ0Y0QTE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwICovOyB9
OwogCQk1MjBCQ0Y0RDE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjBCQ0Y0QjE0MUVCMDlFMDA5
MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAgKi87IH07CiAJCTUyQ0I0NzQxMTQ0OEZCOTMwMDg3Mzk5
NSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDQjQ3NDAxNDQ4RkI5
MzAwODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5j
cHAgKi87IH07CkBAIC0yMzMsNiArMjM1LDggQEAKIAkJNTE3RTdERkIxNTExMEVBNjAwRDBCMDA4
IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5S
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3
RTdFMDMxNTExMTg3NTAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxv
YWREZWxlZ2F0ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gTWVtb3J5Q2FjaGVQ
cnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxRkJCQjRDMTUxM0Q0RTkwMDgyMjczOCAvKiBXZWJWaWV3Q2FuUGFzdGVVUkwu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJWaWV3Q2FuUGFz
dGVVUkwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRkNGNzk3MTUzNEFDNkQw
MDEwNDQ5MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW1fQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFGQ0Y3OTgx
NTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNob3VsZEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIwQkNGNEExNDFFQjA5
RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXJjaGl2ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0I0NzQwMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2Fk
QWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGly
ZWN0b3J5VVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxOSw2ICs1MjMs
OCBAQAogCQkJCUMwQkQ2NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVy
RG9lc250RmlyZUVhcmx5LmNwcCAqLywKIAkJCQlDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyog
UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovLAogCQkJCUMw
QURCRTgyMTJGQ0E2QUEwMEQyQzEyOSAvKiBSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zv
cm1EYXRhLmNwcCAqLywKKwkJCQk1MUZDRjc5ODE1MzRBQzZEMDAxMDQ0OTEgLyogU2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAorCQkJCTUxRkNGNzk3MTUzNEFDNkQwMDEwNDQ5
MSAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwICovLAogCQkJCUMw
MkI3N0YxMTI2NjEyMTQwMDI2QkYwRiAvKiBTcGFjZWJhclNjcm9sbGluZy5jcHAgKi8sCiAJCQkJ
QkMyMkQzMTMxNERDNjg5ODAwRkZCMUREIC8qIFVzZXJNZXNzYWdlLmNwcCAqLywKIAkJCQlCQzIy
RDMxNzE0REM2OEI4MDBGRkIxREQgLyogVXNlck1lc3NhZ2VfQnVuZGxlLmNwcCAqLywKQEAgLTgz
OSw2ICs4NDUsNyBAQAogCQkJCTUxRkJCQjREMTUxM0Q0RTkwMDgyMjczOCAvKiBXZWJWaWV3Q2Fu
UGFzdGVVUkwubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTQyQjI3MTE1MTdDODhCMDBDMzJCMTkg
LyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU0MEY3NzYx
NTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTFGQ0Y3OUExNTM0QUM2RDAwMTA0NDkxIC8qIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtODY3LDYgKzg3NCw3IEBACiAJCQkJOTNGN0U4NkYxNERD
OEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMkQzMTkxNERDNjhCOTAwRkZCMUREIC8qIFVz
ZXJNZXNzYWdlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0FGNEVDRTE1MDZGMDY0
MDA3RkQ1N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRs
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUZDRjdBMTE1MzRCMkEwMDAxMDQ0OTEgLyogU2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9T
aG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzEzYTVlYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAgLTAs
MCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1
ZGUgIlRlc3QuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworc3RhdGlj
IGJvb2wgcmVjZWl2ZWRQcm9wZXJCYWNrRm9yd2FyZENhbGxiYWNrcyA9IGZhbHNlOworCitzdGF0
aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIC8vIE9ubHkgbWFyayBmaW5pc2hlZCB3
aGVuIHRoZSBtYWluIGZyYW1lIGxvYWRzCisgICAgaWYgKFdLRnJhbWVHZXRQYXJlbnRGcmFtZShm
cmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGZpbmlzaGVkID0gdHJ1ZTsKK30KKworc3Rh
dGljIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdLUGFnZVJlZiwgV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKQoreworICAg
IGlmIChXS0dldFR5cGVJRCh1c2VyRGF0YSkgPT0gV0tTdHJpbmdHZXRUeXBlSUQoKSkgeworICAg
ICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZygoV0tTdHJpbmdSZWYpdXNlckRh
dGEsICJzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrIGNhbGxlZCBhcyBleHBl
Y3RlZCIpKQorICAgICAgICAgICAgcmVjZWl2ZWRQcm9wZXJCYWNrRm9yd2FyZENhbGxiYWNrcyA9
IHRydWU7CisgICAgfQorCisgICAgZmluaXNoZWQgPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCBz
ZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlKQoreworICAgIFdLUGFnZUxvYWRlckNs
aWVudCBsb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihs
b2FkZXJDbGllbnQpKTsKKyAgICBsb2FkZXJDbGllbnQudmVyc2lvbiA9IDE7CisgICAgbG9hZGVy
Q2xpZW50LmNsaWVudEluZm8gPSAwOworICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9y
RnJhbWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgbG9hZGVyQ2xpZW50LndpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbSA9IHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKKworICAg
IFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZSwgJmxvYWRlckNsaWVudCk7Cit9CisKK1RF
U1QoV2ViS2l0MiwgU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pCit7CisgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0
Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbVRlc3Qi
KSk7CisgICAgLy8gRW5hYmxlIHRoZSBwYWdlIGNhY2hlIHNvIHdlIGNhbiB0ZXN0IHRoZSBXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Jc0luUGFnZUNhY2hlIEFQSQorICAgIFdLQ29udGV4dFNl
dENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7
CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXRQ
YWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpKTsKKworICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIs
ICJodG1sIikpLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICAKKyAgICBm
aW5pc2hlZCA9IGZhbHNlOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKS5n
ZXQoKSk7CisgICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisKKyAgICBmaW5pc2hlZCA9IGZhbHNl
OworICAgIFdLUGFnZUdvQmFjayh3ZWJWaWV3LnBhZ2UoKSk7CisgICAgVXRpbDo6cnVuKCZmaW5p
c2hlZCk7CisgICAgCisgICAgRVhQRUNUX0VRKHJlY2VpdmVkUHJvcGVyQmFja0ZvcndhcmRDYWxs
YmFja3MsIHRydWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3
YXJkTGlzdEl0ZW1fQnVuZGxlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMTVjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1f
QnVuZGxlLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVGVzdC5oIgorCisjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlUGFnZS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworY2xhc3MgU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1UZXN0
IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVzdCB7CitwdWJsaWM6CisgICAgU2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1UZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5k
bGVQYWdlUmVmIHBhZ2UpOworfTsKKworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0
ZXI8U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1UZXN0PiByZWdpc3RyYXIoIlNob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtVGVzdCIpOworCitzdGF0aWMgYm9vbCBzaG91bGRHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGl0ZW0sIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqKQor
eworICAgIC8vIFRoZSBpdGVtIHNob3VsZCBiZSBpbiB0aGUgcGFnZSBjYWNoZQorICAgIGlmIChX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Jc0luUGFnZUNhY2hlKGl0ZW0pKQorICAgICAgICAq
dXNlckRhdGEgPSBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygic2hvdWxkR29Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW1DYWxsYmFjayBjYWxsZWQgYXMgZXhwZWN0ZWQiKTsKKworICAgIHJldHVy
biB0cnVlOworfQorCitTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbVRlc3Q6OlNob3VsZEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcikK
KyAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVudGlmaWVyKQoreworfQorCit2b2lkIFNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtVGVzdDo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBi
dW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKQoreyAgICAKKyAgICBXS0J1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQgcGFnZUxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJnBhZ2VMb2FkZXJDbGllbnQs
IDAsIHNpemVvZihwYWdlTG9hZGVyQ2xpZW50KSk7CisgICAgCisgICAgcGFnZUxvYWRlckNsaWVu
dC52ZXJzaW9uID0gMTsKKyAgICBwYWdlTG9hZGVyQ2xpZW50LmNsaWVudEluZm8gPSB0aGlzOwor
ICAgIHBhZ2VMb2FkZXJDbGllbnQuc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0gPSBzaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrOworICAgIAorICAgIFdLQnVuZGxlUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZSwgJnBhZ2VMb2FkZXJDbGllbnQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMzdi
MjA2NC4uN2RiZGMwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMjM1LDYgKzIzNSw3
IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKQogICAgICAgICAwLCAvLyBkaWRMYXlvdXRGb3JGcmFtZQogICAgICAgICAwLCAvLyBk
aWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZQogICAgICAgICBkaWREZXRl
Y3RYU1NGb3JGcmFtZSwKKyAgICAgICAgMCwgLy8gc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0KICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9wYWdlLCAm
bG9hZGVyQ2xpZW50KTsKIAo=
</data>
<flag name="review"
          id="141348"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>