<?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>160963</bug_id>
          
          <creation_ts>2016-08-18 10:36:29 -0700</creation_ts>
          <short_desc>Resource Timing: Make PerformanceEntryList a sequence as per spec</short_desc>
          <delta_ts>2016-08-19 11:31:53 -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>WebCore Misc.</component>
          <version>WebKit 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="Johan K. Jensen">jj</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221110</commentid>
    <comment_count>0</comment_count>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-18 10:36:29 -0700</bug_when>
    <thetext>PerformanceEntryList should be iterable as per the current spec: https://www.w3.org/TR/2016/WD-performance-timeline-2-20160421/#idl-def-performanceentrylist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221149</commentid>
    <comment_count>1</comment_count>
      <attachid>286385</attachid>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-18 12:14:14 -0700</bug_when>
    <thetext>Created attachment 286385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221174</commentid>
    <comment_count>2</comment_count>
      <attachid>286385</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-18 14:01:04 -0700</bug_when>
    <thetext>Comment on attachment 286385
Patch

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

&gt; Source/WebCore/page/Performance.cpp:92
&gt; -RefPtr&lt;PerformanceEntryList&gt; Performance::getEntries() const
&gt; +Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt; Performance::getEntries() const

Could these be Ref&lt;PerformanceEntry&gt;s?

&gt; Source/WebCore/page/Performance.cpp:105
&gt; +    std::sort(entries.begin(), entries.end(), PerformanceEntry::startTimeCompareLessThan);

do we have to sort everything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221176</commentid>
    <comment_count>3</comment_count>
      <attachid>286385</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-18 14:04:10 -0700</bug_when>
    <thetext>Comment on attachment 286385
Patch

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

&gt; LayoutTests/http/tests/performance/performance-resource-timing-entries-iterable-expected.txt:1
&gt; +PASS resources is an instance of Array

Would be nice if this test had a description.

&gt; LayoutTests/http/tests/performance/performance-resource-timing-entries-iterable.html:3
&gt; +&lt;script&gt;

description(&quot;....&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221177</commentid>
    <comment_count>4</comment_count>
      <attachid>286385</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-18 14:05:56 -0700</bug_when>
    <thetext>Comment on attachment 286385
Patch

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

&gt; Source/WebCore/page/Performance.h:67
&gt; +    Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt; getEntriesByType(const String&amp; entryType);

Why is this not const?

&gt; Source/WebCore/page/Performance.h:68
&gt; +    Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt; getEntriesByName(const String&amp; name, const String&amp; entryType);

Why is this not const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221223</commentid>
    <comment_count>5</comment_count>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-18 15:46:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/page/Performance.cpp:92
&gt; &gt; -RefPtr&lt;PerformanceEntryList&gt; Performance::getEntries() const
&gt; &gt; +Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt; Performance::getEntries() const
&gt; 
&gt; Could these be Ref&lt;PerformanceEntry&gt;s?
Some of the User Timing code uses PassRefPtr, so it should probably be updated in another patch.
&gt; 
&gt; &gt; Source/WebCore/page/Performance.cpp:105
&gt; &gt; +    std::sort(entries.begin(), entries.end(), PerformanceEntry::startTimeCompareLessThan);
&gt; 
&gt; do we have to sort everything?
Yes, per the spec we should sort them by start time. Entries gets added according to responseEnd.

(In reply to comment #3)
&gt; &gt; LayoutTests/http/tests/performance/performance-resource-timing-entries-iterable-expected.txt:1
&gt; &gt; +PASS resources is an instance of Array
&gt; 
&gt; Would be nice if this test had a description.
Ah, yeah.

(In reply to comment #4)
&gt; &gt; Source/WebCore/page/Performance.h:67
&gt; &gt; +    Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt; getEntriesByType(const String&amp; entryType);
&gt; 
&gt; Why is this not const?
Hm... Don’t see any reason why it isn’t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221225</commentid>
    <comment_count>6</comment_count>
      <attachid>286406</attachid>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-18 15:47:13 -0700</bug_when>
    <thetext>Created attachment 286406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221226</commentid>
    <comment_count>7</comment_count>
      <attachid>286406</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-18 15:49:06 -0700</bug_when>
    <thetext>Comment on attachment 286406
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221407</commentid>
    <comment_count>8</comment_count>
      <attachid>286406</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-19 11:31:49 -0700</bug_when>
    <thetext>Comment on attachment 286406
Patch

Clearing flags on attachment: 286406

Committed r204641: &lt;http://trac.webkit.org/changeset/204641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221408</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-19 11:31:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286385</attachid>
            <date>2016-08-18 12:14:14 -0700</date>
            <delta_ts>2016-08-18 15:47:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160963-20160818121224.patch</filename>
            <type>text/plain</type>
            <size>32379</size>
            <attacher name="Johan K. Jensen">jj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY1MDQ5NjlkZjljNGVl
YWU0YjljMTgyZDk5NmY2MTE5YTBhODk5My4uY2YxMzA0OTA4ZDcwODNlNzc0MDk2YWRkNWM3NjVl
YzhjZDFjMGE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA4LTE4ICBKb2hh
biBLLiBKZW5zZW4gIDxqb2hhbl9qZW5zZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNl
IFRpbWluZzogTWFrZSBQZXJmb3JtYW5jZUVudHJ5TGlzdCBhIHNlcXVlbmNlIGFzIHBlciBzcGVj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Ug
UGVyZm9ybWFuY2VFbnRyeUxpc3QgdG8gYmUgYSBzZXF1ZW5jZSBvZiBQZXJmb3JtYW5jZUVudHJ5
IGluc3RlYWQgb2YgYW4gb2JqZWN0LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcGVyZm9y
bWFuY2UvcGVyZm9ybWFuY2UtcmVzb3VyY2UtdGltaW5nLWVudHJpZXMtaXRlcmFibGUuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3Bw
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZvcm1HVEsu
Y21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAg
IFJlbW92ZSByZWZlcmVuY2VzIHRvIHtKUyx9UGVyZm9ybWFuY2VFbnRyeUxpc3Que2NwcCxoLGlk
bH0uCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlOjpnZXRFbnRyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
OjpnZXRFbnRyaWVzQnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjpnZXRF
bnRyaWVzQnlOYW1lKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6CisgICAgICAgIE1l
dGhvZHMgbm93IG9wZXJhdGUgb24gYSBWZWN0b3Igb2YgUGVyZm9ybWFuY2VFbnRyeS4KKworICAg
ICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaWRsOgorICAgICAgICBUeXBlZGVmIFBlcmZvcm1hbmNl
RW50cnlMaXN0IGFzIGEgc2VxdWVuY2Ugb2YgUGVyZm9ybWFuY2VFbnRyeS4KKworICAgICAgICAq
IHBhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2VFbnRyeUxpc3Q6OlBlcmZvcm1hbmNlRW50cnlMaXN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnlMaXN0Ojp+UGVyZm9ybWFuY2VFbnRy
eUxpc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VFbnRyeUxpc3Q6
Omxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUVudHJ5TGlz
dDo6aXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUVudHJ5TGlz
dDo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnlM
aXN0OjphcHBlbmRBbGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VF
bnRyeUxpc3Q6OnNvcnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VFbnRy
eUxpc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnlMaXN0
OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3Qu
aWRsOiBSZW1vdmVkLgorCiAyMDE2LTA4LTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gY2xlYW51cCBNZWRpYUNvbnN0cmFp
bnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM1OTBjMTJhYTA5NDM5YzVlM2ZhYjFjMWNkNzM3
OWJhYzkwZGU0NDUuLjQ4NTY2YjcyODYxMTYzODAyNTQyMTRjZjRhNGQxMGEwNTZjMzc4ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MjIsNyArNjIyLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NW
R19JRExfRklMRVMKICAgICBwYWdlL05hdmlnYXRvck9uTGluZS5pZGwKICAgICBwYWdlL1BlcmZv
cm1hbmNlLmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGwKLSAgICBwYWdlL1BlcmZv
cm1hbmNlRW50cnlMaXN0LmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2VNYXJrLmlkbAogICAgIHBh
Z2UvUGVyZm9ybWFuY2VNZWFzdXJlLmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9u
LmlkbApAQCAtMjA2NCw3ICsyMDYzLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlLmNwcAogICAgIHBh
Z2UvUGVyZm9ybWFuY2VFbnRyeS5jcHAKLSAgICBwYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmNw
cAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDdkYWVkMjg0MDdiOTk4OGY3Y2NhODlhODg3OGQ0
NDE4YmU5N2E5OGMuLjQ1ZTk4YjIzNzJkOTczMzFiNTdhZDFhNTQ3YzY1MjY5Yjk4NDhhN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTM4Miw3ICszODIsNiBAQAogI2luY2x1ZGUg
IkpTUGFyZW50Tm9kZS5jcHAiCiAjaW5jbHVkZSAiSlNQZXJmb3JtYW5jZS5jcHAiCiAjaW5jbHVk
ZSAiSlNQZXJmb3JtYW5jZUVudHJ5LmNwcCIKLSNpbmNsdWRlICJKU1BlcmZvcm1hbmNlRW50cnlM
aXN0LmNwcCIKICNpbmNsdWRlICJKU1BlcmZvcm1hbmNlTWFyay5jcHAiCiAjaW5jbHVkZSAiSlNQ
ZXJmb3JtYW5jZU1lYXN1cmUuY3BwIgogI2luY2x1ZGUgIkpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9u
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDMyNzY3YWVkYjUwMDAwZTRj
NzA3YzFlMDgzMjlhNzY4Y2NlMWFlMWYuLjU5Yjk3YjI3MjZhNDc2ZDQ2YTdhODE0ZmNhNTZmOGYy
ZTNmYWM0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTI3LDcgKzUyNyw2
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdhdG9yT25M
aW5lLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaWRsIFwKLSAgICAkKFdlYkNvcmUpL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFu
Y2VOYXZpZ2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZGZjMzdjZTdmMTc3NGE2YzY1ZWFjYzZh
Y2I1ZjJhMTJhZTAwODRmMS4uOTMzNGNmYjdlZWM4MDM5YTc1OGJiZmVmY2VjZDc1OTRmMDA5NzE1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTU3OCw3ICs1NzgsNiBAQCBsaXN0KEFQ
UEVORCBHT2JqZWN0RE9NQmluZGluZ3NVbnN0YWJsZV9JRExfRklMRVMKICAgICBwYWdlL05hdmln
YXRvci5pZGwKICAgICBwYWdlL1BlcmZvcm1hbmNlLmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2VF
bnRyeS5pZGwKLSAgICBwYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmlkbAogICAgIHBhZ2UvUGVy
Zm9ybWFuY2VOYXZpZ2F0aW9uLmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCiAg
ICAgcGFnZS9TY3JlZW4uaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjg0MjVjYjZhYzM2ZDE3ODIyMmQwNGIwMjA0NWQzNzM0
MzEyMTQ2NS4uMWUxMjE0ZDdlMDg2Y2EwOWMxOGY4YjRjN2Q5NDA5MDBmMGYwMTU0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzM4Miw4ICszMzgyLDYgQEAKIAkJODY4MTYwRDYxODc2NkExMzAwMjFFNzlEIC8qIFVzZXJBY3Rp
dml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY4
MTYwRDIxODc2NjlDNDAwMjFFNzlEIC8qIFVzZXJBY3Rpdml0eS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVE
MSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2QkE3NjZEMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1
ZXN0LmNwcCAqLzsgfTsKIAkJODZCRTM0MDExNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNl
RW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
QkUzM0ZCMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmggKi87IH07Ci0JCTg2
QkUzNDAzMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkJFMzNGRDE1MDU4Q0Iy
MDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwICovOyB9OwotCQk4NkJFMzQwNDE1
MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeUxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkUzM0ZFMTUwNThDQjIwMENFMEZEOCAv
KiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5oICovOyB9OwogCQk4NkQ5ODJGNzEyNUMxNTQwMDBBRDlF
M0QgLyogRG9jdW1lbnRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2RDk4MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVudFRpbWluZy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg5MzFE
RTVCMTRDNDRDNDQwMDBEQzlEMiAvKiBKU0Jsb2JDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkzMURFNUExNEM0NEM0NDAwMERDOUQyIC8q
IEpTQmxvYkN1c3RvbS5jcHAgKi87IH07CiAJCTg5ODc4NUYwMTIyRTFFODcwMDNBQUJEQSAvKiBK
U0ZpbGVFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODk4Nzg1RUUxMjJFMUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5jcHAg
Ki87IH07CkBAIC01ODg2LDggKzU4ODQsNiBAQAogCQlDQjM4RkQ0QjFDQ0NGMzY2MDA1OTJBM0Yg
LyogUGVyZm9ybWFuY2VFbnRyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDQjM4RkQ0QTFDQ0NGMkREMDA1OTJBM0YgLyogUGVyZm9ybWFuY2VFbnRy
eS5jcHAgKi87IH07CiAJCUNCMzhGRDUxMUNDRjkzODkwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNl
RW50cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0IzOEZENEQxQ0NGOTM3RTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5jcHAgKi87IH07
CiAJCUNCMzhGRDUyMUNDRjkzOTQwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50cnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENCMzhGRDRFMUNDRjkz
N0UwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50cnkuaCAqLzsgfTsKLQkJQ0IzOEZENTMxQ0NG
OTM5QjAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0IzOEZENEYxQ0NGOTM3RTAwNTkyQTNG
IC8qIEpTUGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwICovOyB9OwotCQlDQjM4RkQ1NDFDQ0Y5MzlF
MDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0IzOEZENTAxQ0NGOTM3RTAwNTkyQTNGIC8qIEpT
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaCAqLzsgfTsKIAkJQ0IzOEZENTcxQ0QyMUUyQTAwNTkyQTNG
IC8qIEpTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQjM4RkQ1NTFDRDIxRDVCMDA1OTJBM0YgLyogSlNQZXJm
b3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQ0IzOEZENUExQ0QyMzI1ODAwNTkyQTNG
IC8qIEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQjM4RkQ1ODFDRDIzMTQ1MDA1OTJBM0YgLyogSlNQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCAqLzsgfTsKIAkJQ0IzOEZENUIxQ0QyMzI1QjAw
NTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0IzOEZENTkxQ0QyMzE0NTAwNTkyQTNGIC8q
IEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oICovOyB9OwpAQCAtMTA4ODIsOSArMTA4Nzgs
NiBAQAogCQk4NkJBNzY2RDE2NjQyN0E4MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZUxvYWRSZXF1ZXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZCRTMzRkIxNTA1OENCMjAwQ0UwRkQ4
IC8qIFBlcmZvcm1hbmNlRW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGVyZm9ybWFuY2VFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkJFMzNG
QzE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUGVyZm9ybWFuY2VFbnRyeS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg2QkUzM0ZEMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5jZUVudHJ5TGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg2QkUzM0ZFMTUwNThDQjIwMENF
MEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQZXJmb3JtYW5jZUVudHJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk4NkJFMzNGRjE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlRW50cnlMaXN0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3Vt
ZW50VGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50VGlt
aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5MkFCRTVDMTZFRUUyQUEwMDlG
MzU4NyAvKiBKU05hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU05hdmlnYXRvclN0b3JhZ2VRdW90YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg5MkFCRTVEMTZFRUUyQUEwMDlGMzU4NyAvKiBKU05hdmlnYXRv
clN0b3JhZ2VRdW90YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05hdmln
YXRvclN0b3JhZ2VRdW90YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3NDYs
OCArMTM3MzksNiBAQAogCQlDQjM4RkQ0QTFDQ0NGMkREMDA1OTJBM0YgLyogUGVyZm9ybWFuY2VF
bnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3JtYW5j
ZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0IzOEZENEQxQ0NGOTM3
RTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgZmlsZUVuY29k
aW5nID0gNDsgcGF0aCA9IEpTUGVyZm9ybWFuY2VFbnRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNCMzhGRDRFMUNDRjkzN0UwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQZXJmb3JtYW5jZUVudHJ5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNCMzhGRDRGMUNDRjkzN0UwMDU5MkEz
RiAvKiBKU1BlcmZvcm1hbmNlRW50cnlMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlDQjM4RkQ1MDFDQ0Y5MzdFMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVu
dHJ5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEpTUGVyZm9ybWFu
Y2VFbnRyeUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0IzOEZENTUxQ0Qy
MUQ1QjAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQjM4RkQ1ODFDRDIzMTQ1MDA1OTJBM0YgLyog
SlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNCMzhGRDU5MUNEMjMxNDUwMDU5MkEzRiAvKiBKU1BlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODI5Myw5ICsxODI4NCw2IEBACiAJCQkJQ0IzOEZENEExQ0NDRjJERDAwNTkyQTNGIC8qIFBl
cmZvcm1hbmNlRW50cnkuY3BwICovLAogCQkJCTg2QkUzM0ZCMTUwNThDQjIwMENFMEZEOCAvKiBQ
ZXJmb3JtYW5jZUVudHJ5LmggKi8sCiAJCQkJODZCRTMzRkMxNTA1OENCMjAwQ0UwRkQ4IC8qIFBl
cmZvcm1hbmNlRW50cnkuaWRsICovLAotCQkJCTg2QkUzM0ZEMTUwNThDQjIwMENFMEZEOCAvKiBQ
ZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgKi8sCi0JCQkJODZCRTMzRkUxNTA1OENCMjAwQ0UwRkQ4
IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmggKi8sCi0JCQkJODZCRTMzRkYxNTA1OENCMjAwQ0Uw
RkQ4IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmlkbCAqLywKIAkJCQk4QUY0RTU1MjExREM1QTM2
MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk4QUY0RTU1MzEx
REM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmggKi8sCiAJCQkJOEFGNEU1
NTQxMURDNUEzNjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdhdGlvbi5pZGwgKi8sCkBAIC0y
MjM5MSw4ICsyMjM3OSw2IEBACiAJCQkJOEE5QTU4NzMxMUU4NEM4MTAwOEFDRkQxIC8qIEpTUGVy
Zm9ybWFuY2UuaCAqLywKIAkJCQlDQjM4RkQ0RDFDQ0Y5MzdFMDA1OTJBM0YgLyogSlNQZXJmb3Jt
YW5jZUVudHJ5LmNwcCAqLywKIAkJCQlDQjM4RkQ0RTFDQ0Y5MzdFMDA1OTJBM0YgLyogSlNQZXJm
b3JtYW5jZUVudHJ5LmggKi8sCi0JCQkJQ0IzOEZENEYxQ0NGOTM3RTAwNTkyQTNGIC8qIEpTUGVy
Zm9ybWFuY2VFbnRyeUxpc3QuY3BwICovLAotCQkJCUNCMzhGRDUwMUNDRjkzN0UwMDU5MkEzRiAv
KiBKU1BlcmZvcm1hbmNlRW50cnlMaXN0LmggKi8sCiAJCQkJOEE5QTU4NkUxMUU4NEMzNTAwOEFD
RkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk4QTlBNTg2RjExRTg0
QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCAqLywKIAkJCQlDQjM4RkQ1
ODFDRDIzMTQ1MDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCAqLywK
QEAgLTI2NDQ4LDcgKzI2NDM0LDYgQEAKIAkJCQlGREExNUVCMjEyQjAzRUUxMDAzQTU4M0EgLyog
SlNQYW5uZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTlBNTg3NTExRTg0QzgxMDA4QUNG
RDEgLyogSlNQZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0IzOEZENTIxQ0NGOTM5
NDAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQ0Iz
OEZENTQxQ0NGOTM5RTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeUxpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCThBOUE1ODcxMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2
aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0IzOEZENUIxQ0QyMzI1QjAwNTkyQTNGIC8q
IEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE5QTU4
ODgxMUU4NEYzNzAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICov
LApAQCAtMjcxMzMsNyArMjcxMTgsNiBAQAogCQkJCThBN0NDOTZCMTIwNzZENzMwMDFENDU4OCAv
KiBQZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTg0NEQwNTExRDNDMThFMDAx
NDA2NUMgLyogUGVyZm9ybWFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QkUzNDAxMTUwNThD
QjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQk4NkJF
MzQwNDE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NTEyRURGMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUY0RTU1QzExREM1
QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMzAy
MzMsNyArMzAyMTcsNiBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZv
cm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNCMzhGRDUxMUNDRjkzODkwMDU5MkEzRiAv
KiBKU1BlcmZvcm1hbmNlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0IzOEZENTcxQ0Qy
MUUyQTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlDQjM4RkQ1MzFDQ0Y5MzlCMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5TGlz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlBNTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQ
ZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0IzOEZENUExQ0Qy
MzI1ODAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWlu
Zy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwODcyLDcgKzMwODU1LDYgQEAKIAkJCQk4QTdDQzk3
MDEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFNTI2QUYzRjE3MjdGOEYyMDBFNDE3ODEgLyogUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0IzOEZENEIxQ0NDRjM2NjAwNTkyQTNGIC8qIFBlcmZvcm1hbmNlRW50cnkuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJODZCRTM0MDMxNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1h
bmNlRW50cnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBRjRFNTU1MTFEQzVBMzYwMDBF
RDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODY1
MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY0M0M4NUQxODlFMTBDRjAwMDE5QUUyIC8qIFBlcmZvcm1hbmNl
VGltaW5nLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggNzUwZmJhZTE5ODJl
NmRlM2RkNDZjMDRkNmU5ZTYzM2Y0YTFkOWU4Ni4uYmZiN2ZhZjEwNTQ0OGZmYjEzMzAzNjIzMWQz
Mjg1ZmRiODAzN2JmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC02NSw3ICs2NSw3IEBAIG15ICV0cmFu
c2ZlckZ1bGxUeXBlSGFzaCA9ICgiQXVkaW9UcmFjayIgPT4gMSwgIkF1ZGlvVHJhY2tMaXN0IiA9
PiAxLCAiQmFyUHJvcCIKICAgICAiR2VvbG9jYXRpb24iID0+IDEsICJIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24iID0+IDEsICJIaXN0b3J5IiA9PiAxLAogICAgICJLZXlib2FyZEV2ZW50IiA9PiAxLCAi
S2V5ZnJhbWVFZmZlY3QiID0+IDEsICJNZWRpYUVycm9yIiA9PiAxLCAiTWVkaWFDb250cm9sbGVy
IiA9PiAxLAogICAgICJNb3VzZUV2ZW50IiA9PiAxLCAiTWVkaWFRdWVyeUxpc3QiID0+IDEsICJO
YXZpZ2F0b3IiID0+IDEsICJOb2RlRmlsdGVyIiA9PiAxLAotICAgICJQZXJmb3JtYW5jZSIgPT4g
MSwgIlBlcmZvcm1hbmNlRW50cnkiID0+IDEsICJQZXJmb3JtYW5jZUVudHJ5TGlzdCIgPT4gMSwg
IlBlcmZvcm1hbmNlTmF2aWdhdGlvbiIgPT4gMSwgIlBlcmZvcm1hbmNlVGltaW5nIiA9PiAxLAor
ICAgICJQZXJmb3JtYW5jZSIgPT4gMSwgIlBlcmZvcm1hbmNlRW50cnkiID0+IDEsICJQZXJmb3Jt
YW5jZU5hdmlnYXRpb24iID0+IDEsICJQZXJmb3JtYW5jZVRpbWluZyIgPT4gMSwKICAgICAiUmFu
Z2UiID0+IDEsICJTY3JlZW4iID0+IDEsICJTcGVlY2hTeW50aGVzaXMiID0+IDEsICJTcGVlY2hT
eW50aGVzaXNWb2ljZSIgPT4gMSwKICAgICAiU3RvcmFnZSIgPT4gMSwgIlN0eWxlTWVkaWEiID0+
IDEsICJUZXh0VHJhY2siID0+IDEsICJUZXh0VHJhY2tDdWVMaXN0IiA9PiAxLAogICAgICJUaW1l
UmFuZ2VzIiA9PiAxLCAiVG91Y2giID0+IDEsICJVSUV2ZW50IiA9PiAxLCAiVXNlck1lc3NhZ2VI
YW5kbGVyIiA9PiAxLCAiVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZSIgPT4gMSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKaW5kZXggYTQ1N2ZhNzI0N2E0OTgwMWMwNTAyYTdkMzdl
NjYzNmJlNTEyNjZiYy4uNWU0Y2RmMzM2NmEzNDU5NDk2Yzk1YzAzODI1ZGI0NjRmMWMxYWRjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTg4LDY2ICs4OSw2NiBAQCBQZXJmb3JtYW5j
ZVRpbWluZyogUGVyZm9ybWFuY2U6OnRpbWluZygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGltaW5n
LmdldCgpOwogfQogCi1SZWZQdHI8UGVyZm9ybWFuY2VFbnRyeUxpc3Q+IFBlcmZvcm1hbmNlOjpn
ZXRFbnRyaWVzKCkgY29uc3QKK1ZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+IFBlcmZv
cm1hbmNlOjpnZXRFbnRyaWVzKCkgY29uc3QKIHsKLSAgICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRy
eUxpc3Q+IGVudHJpZXMgPSBQZXJmb3JtYW5jZUVudHJ5TGlzdDo6Y3JlYXRlKCk7CisgICAgVmVj
dG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4gZW50cmllczsKIAotICAgIGVudHJpZXMtPmFw
cGVuZEFsbChtX3Jlc291cmNlVGltaW5nQnVmZmVyKTsKKyAgICBlbnRyaWVzLmFwcGVuZFZlY3Rv
cihtX3Jlc291cmNlVGltaW5nQnVmZmVyKTsKIAogI2lmIEVOQUJMRShVU0VSX1RJTUlORykKICAg
ICBpZiAobV91c2VyVGltaW5nKSB7Ci0gICAgICAgIGVudHJpZXMtPmFwcGVuZEFsbChtX3VzZXJU
aW1pbmctPmdldE1hcmtzKCkpOwotICAgICAgICBlbnRyaWVzLT5hcHBlbmRBbGwobV91c2VyVGlt
aW5nLT5nZXRNZWFzdXJlcygpKTsKKyAgICAgICAgZW50cmllcy5hcHBlbmRWZWN0b3IobV91c2Vy
VGltaW5nLT5nZXRNYXJrcygpKTsKKyAgICAgICAgZW50cmllcy5hcHBlbmRWZWN0b3IobV91c2Vy
VGltaW5nLT5nZXRNZWFzdXJlcygpKTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKFVTRVJfVElN
SU5HKQogCi0gICAgZW50cmllcy0+c29ydCgpOworICAgIHN0ZDo6c29ydChlbnRyaWVzLmJlZ2lu
KCksIGVudHJpZXMuZW5kKCksIFBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik7CiAgICAgcmV0dXJuIGVudHJpZXM7CiB9CiAKLVJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5
TGlzdD4gUGVyZm9ybWFuY2U6OmdldEVudHJpZXNCeVR5cGUoY29uc3QgU3RyaW5nJiBlbnRyeVR5
cGUpCitWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBQZXJmb3JtYW5jZTo6Z2V0RW50
cmllc0J5VHlwZShjb25zdCBTdHJpbmcmIGVudHJ5VHlwZSkKIHsKLSAgICBSZWZQdHI8UGVyZm9y
bWFuY2VFbnRyeUxpc3Q+IGVudHJpZXMgPSBQZXJmb3JtYW5jZUVudHJ5TGlzdDo6Y3JlYXRlKCk7
CisgICAgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4gZW50cmllczsKIAogICAgIGlm
IChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbnRyeVR5cGUsICJyZXNvdXJjZSIpKSB7
CiAgICAgICAgIGZvciAoYXV0byYgcmVzb3VyY2UgOiBtX3Jlc291cmNlVGltaW5nQnVmZmVyKQot
ICAgICAgICAgICAgZW50cmllcy0+YXBwZW5kKHJlc291cmNlKTsKKyAgICAgICAgICAgIGVudHJp
ZXMuYXBwZW5kKHJlc291cmNlKTsKICAgICB9CiAKICNpZiBFTkFCTEUoVVNFUl9USU1JTkcpCiAg
ICAgaWYgKG1fdXNlclRpbWluZykgewogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZW50cnlUeXBlLCAibWFyayIpKQotICAgICAgICAgICAgZW50cmllcy0+YXBwZW5k
QWxsKG1fdXNlclRpbWluZy0+Z2V0TWFya3MoKSk7CisgICAgICAgICAgICBlbnRyaWVzLmFwcGVu
ZFZlY3RvcihtX3VzZXJUaW1pbmctPmdldE1hcmtzKCkpOwogICAgICAgICBlbHNlIGlmIChlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbnRyeVR5cGUsICJtZWFzdXJlIikpCi0gICAgICAg
ICAgICBlbnRyaWVzLT5hcHBlbmRBbGwobV91c2VyVGltaW5nLT5nZXRNZWFzdXJlcygpKTsKKyAg
ICAgICAgICAgIGVudHJpZXMuYXBwZW5kVmVjdG9yKG1fdXNlclRpbWluZy0+Z2V0TWVhc3VyZXMo
KSk7CiAgICAgfQogI2VuZGlmCiAKLSAgICBlbnRyaWVzLT5zb3J0KCk7CisgICAgc3RkOjpzb3J0
KGVudHJpZXMuYmVnaW4oKSwgZW50cmllcy5lbmQoKSwgUGVyZm9ybWFuY2VFbnRyeTo6c3RhcnRU
aW1lQ29tcGFyZUxlc3NUaGFuKTsKICAgICByZXR1cm4gZW50cmllczsKIH0KIAotUmVmUHRyPFBl
cmZvcm1hbmNlRW50cnlMaXN0PiBQZXJmb3JtYW5jZTo6Z2V0RW50cmllc0J5TmFtZShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZW50cnlUeXBlKQorVmVjdG9yPFJlZlB0cjxQZXJm
b3JtYW5jZUVudHJ5Pj4gUGVyZm9ybWFuY2U6OmdldEVudHJpZXNCeU5hbWUoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGVudHJ5VHlwZSkKIHsKLSAgICBSZWZQdHI8UGVyZm9ybWFu
Y2VFbnRyeUxpc3Q+IGVudHJpZXMgPSBQZXJmb3JtYW5jZUVudHJ5TGlzdDo6Y3JlYXRlKCk7Cisg
ICAgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4gZW50cmllczsKIAogICAgIGlmIChl
bnRyeVR5cGUuaXNOdWxsKCkgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW50cnlU
eXBlLCAicmVzb3VyY2UiKSkgewogICAgICAgICBmb3IgKGF1dG8mIHJlc291cmNlIDogbV9yZXNv
dXJjZVRpbWluZ0J1ZmZlcikgewogICAgICAgICAgICAgaWYgKHJlc291cmNlLT5uYW1lKCkgPT0g
bmFtZSkKLSAgICAgICAgICAgICAgICBlbnRyaWVzLT5hcHBlbmQocmVzb3VyY2UpOworICAgICAg
ICAgICAgICAgIGVudHJpZXMuYXBwZW5kKHJlc291cmNlKTsKICAgICAgICAgfQogICAgIH0KIAog
I2lmIEVOQUJMRShVU0VSX1RJTUlORykKICAgICBpZiAobV91c2VyVGltaW5nKSB7CiAgICAgICAg
IGlmIChlbnRyeVR5cGUuaXNOdWxsKCkgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
ZW50cnlUeXBlLCAibWFyayIpKQotICAgICAgICAgICAgZW50cmllcy0+YXBwZW5kQWxsKG1fdXNl
clRpbWluZy0+Z2V0TWFya3MobmFtZSkpOworICAgICAgICAgICAgZW50cmllcy5hcHBlbmRWZWN0
b3IobV91c2VyVGltaW5nLT5nZXRNYXJrcyhuYW1lKSk7CiAgICAgICAgIGlmIChlbnRyeVR5cGUu
aXNOdWxsKCkgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZW50cnlUeXBlLCAibWVh
c3VyZSIpKQotICAgICAgICAgICAgZW50cmllcy0+YXBwZW5kQWxsKG1fdXNlclRpbWluZy0+Z2V0
TWVhc3VyZXMobmFtZSkpOworICAgICAgICAgICAgZW50cmllcy5hcHBlbmRWZWN0b3IobV91c2Vy
VGltaW5nLT5nZXRNZWFzdXJlcyhuYW1lKSk7CiAgICAgfQogI2VuZGlmCiAKLSAgICBlbnRyaWVz
LT5zb3J0KCk7CisgICAgc3RkOjpzb3J0KGVudHJpZXMuYmVnaW4oKSwgZW50cmllcy5lbmQoKSwg
UGVyZm9ybWFuY2VFbnRyeTo6c3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKTsKICAgICByZXR1cm4g
ZW50cmllczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4IDE3NmMxNTBjNGE4
ZjQ4NzNkOGI3NjY0NDkzMzI3OWIzODg1ZDQxNzMuLmU4MDUzM2IxZTM5ODBkZTY5NWEwMTZkMDNi
MmQ2MDU1ZDY2OTYyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5LDE0ICszMCwxMiBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBlcmZvcm1hbmNlX2gKLSNkZWZpbmUg
UGVyZm9ybWFuY2VfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKIAog
I2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIK
LSNpbmNsdWRlICJQZXJmb3JtYW5jZUVudHJ5TGlzdC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNl
TmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlVGltaW5nLmgiCiAjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCkBAIC00Nyw2ICs0Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgUGVyZm9ybWFuY2VFbnRyeTsKIGNsYXNzIFJlc291
cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBVc2VyVGltaW5nOwpA
QCAtNjMsOSArNjMsOSBAQCBwdWJsaWM6CiAgICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygp
IGNvbnN0OwogICAgIGRvdWJsZSBub3coKSBjb25zdDsKIAotICAgIFJlZlB0cjxQZXJmb3JtYW5j
ZUVudHJ5TGlzdD4gZ2V0RW50cmllcygpIGNvbnN0OwotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVu
dHJ5TGlzdD4gZ2V0RW50cmllc0J5VHlwZShjb25zdCBTdHJpbmcmIGVudHJ5VHlwZSk7Ci0gICAg
UmVmUHRyPFBlcmZvcm1hbmNlRW50cnlMaXN0PiBnZXRFbnRyaWVzQnlOYW1lKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlbnRyeVR5cGUpOworICAgIFZlY3RvcjxSZWZQdHI8UGVy
Zm9ybWFuY2VFbnRyeT4+IGdldEVudHJpZXMoKSBjb25zdDsKKyAgICBWZWN0b3I8UmVmUHRyPFBl
cmZvcm1hbmNlRW50cnk+PiBnZXRFbnRyaWVzQnlUeXBlKGNvbnN0IFN0cmluZyYgZW50cnlUeXBl
KTsKKyAgICBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBnZXRFbnRyaWVzQnlOYW1l
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlbnRyeVR5cGUpOwogCiAgICAgdm9p
ZCBjbGVhclJlc291cmNlVGltaW5ncygpOwogICAgIHZvaWQgc2V0UmVzb3VyY2VUaW1pbmdCdWZm
ZXJTaXplKHVuc2lnbmVkKTsKQEAgLTEwNiw1ICsxMDYsMyBAQCBwcml2YXRlOgogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQl9USU1JTkcpCi0KLSNlbmRpZiAvLyBQZXJmb3JtYW5jZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuaWRsCmluZGV4IDk0ODk2OTBiMzU2MTUyZjZlZDA3YWY0NzM4
NTNmNjMyMzJmNDViZTUuLjM4OTI4OGZlNDVmMzE5MDczZWE3MTk2NzIzZGRmMDA1MDI4ZjM4YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaWRsCkBAIC01OSwzICs1OSw0IEBACiAgICAg
dW5yZXN0cmljdGVkIGRvdWJsZSBub3coKTsKIH07CiAKK3R5cGVkZWYgc2VxdWVuY2U8UGVyZm9y
bWFuY2VFbnRyeT4gUGVyZm9ybWFuY2VFbnRyeUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
MDM1OTI4YjMxYzZkZTlkNjFkODYzMTE2MzFkMzM1NmZjM2I4MjYwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VFbnRyeUxpc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiUGVyZm9ybWFuY2VFbnRyeUxpc3QuaCIKLQotI2lmIEVOQUJM
RShXRUJfVElNSU5HKQotCi0jaW5jbHVkZSAiUGVyZm9ybWFuY2VFbnRyeS5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLVBlcmZvcm1hbmNlRW50cnlMaXN0OjpQZXJmb3JtYW5jZUVudHJ5TGlz
dCgpCi17Ci19Ci0KLVBlcmZvcm1hbmNlRW50cnlMaXN0Ojp+UGVyZm9ybWFuY2VFbnRyeUxpc3Qo
KQotewotfQotCi11bnNpZ25lZCBQZXJmb3JtYW5jZUVudHJ5TGlzdDo6bGVuZ3RoKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9lbnRyaWVzLnNpemUoKTsKLX0KLQotUGVyZm9ybWFuY2VFbnRyeSog
UGVyZm9ybWFuY2VFbnRyeUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGlu
ZGV4IDwgbV9lbnRyaWVzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIG1fZW50cmllc1tpbmRleF0u
Z2V0KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgUGVyZm9ybWFuY2VFbnRyeUxpc3Q6OmFw
cGVuZChQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5KQotewotICAgIG1fZW50cmll
cy5hcHBlbmQoZW50cnkpOwotfQotCi12b2lkIFBlcmZvcm1hbmNlRW50cnlMaXN0OjphcHBlbmRB
bGwoY29uc3QgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4mIGVudHJpZXMpCi17Ci0g
ICAgbV9lbnRyaWVzLmFwcGVuZFZlY3RvcihlbnRyaWVzKTsKLX0KLQotdm9pZCBQZXJmb3JtYW5j
ZUVudHJ5TGlzdDo6c29ydCgpCi17Ci0gICAgc3RkOjpzb3J0KG1fZW50cmllcy5iZWdpbigpLCBt
X2VudHJpZXMuZW5kKCksIFBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNzVGhh
bik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJf
VElNSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjAwNzE3ZjMyMzU5OTdjNTk2Njk3OWQ2MjE1Y2E2
MTY0NGRiMzAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3QuaAorKysgL2Rldi9udWxs
CkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0g
KiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQZXJmb3JtYW5jZUVudHJ5TGlzdF9oCi0jZGVmaW5lIFBl
cmZvcm1hbmNlRW50cnlMaXN0X2gKLQotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgUGVyZm9ybWFuY2VFbnRyeTsKLQotY2xhc3MgUGVyZm9ybWFuY2VF
bnRyeUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJmb3JtYW5jZUVudHJ5TGlzdD4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFuY2VFbnRyeUxpc3Q+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUGVyZm9ybWFuY2VFbnRyeUxpc3QpOyB9Ci0gICAgflBlcmZvcm1h
bmNlRW50cnlMaXN0KCk7Ci0KLSAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKLSAgICBQZXJm
b3JtYW5jZUVudHJ5KiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKLQotICAgIHZvaWQgYXBwZW5kKFBh
c3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4pOwotICAgIHZvaWQgYXBwZW5kQWxsKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+Jik7Ci0KLSAgICB2b2lkIHNvcnQoKTsKLQot
cHJpdmF0ZToKLSAgICBQZXJmb3JtYW5jZUVudHJ5TGlzdCgpOwotCi0gICAgVmVjdG9yPFJlZlB0
cjxQZXJmb3JtYW5jZUVudHJ5Pj4gbV9lbnRyaWVzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9USU1JTkcpCi0jZW5kaWYgLy8gUGVyZm9ybWFu
Y2VFbnRyeUxpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUVudHJ5TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgwNjZjYzM3ZTU3M2YyMGUxYTkw
NWMzODhiMDIxODE4ZWI3OTM2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmlkbAor
KysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcv
aGcvd2VicGVyZi9yYXctZmlsZS90aXAvc3BlY3MvUGVyZm9ybWFuY2VUaW1lbGluZS9PdmVydmll
dy5odG1sCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9V0VCX1RJ
TUlORywKLSAgICBFbmFibGVkQXRSdW50aW1lPVJlc291cmNlVGltaW5nLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBQZXJmb3JtYW5jZUVudHJ5TGlzdCB7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBQ
ZXJmb3JtYW5jZUVudHJ5IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Ci19OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY0
YmZiZDlhODBiZmQzZTE2NmQxNmFiYTQ5ZDlhNmFmOWFlZmM0ODYuLjE4YmNmMjhmYzYzNmZkODRh
NzU1NWI3ZWJjZDgwZjU0ZDQ2ZGY4NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wOC0x
OCAgSm9oYW4gSy4gSmVuc2VuICA8am9oYW5famVuc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXNvdXJjZSBUaW1pbmc6IE1ha2UgUGVyZm9ybWFuY2VFbnRyeUxpc3QgYSBzZXF1ZW5jZSBhcyBw
ZXIgc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdGluZyB0aGF0IFBlcmZvcm1hbmNlRW50cnlMaXN0ICh3aW5kb3cucGVyZm9ybWFuY2UuZ2V0
RW50cmllcygpKSBpcyBpdGVyYWJsZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcGVyZm9ybWFu
Y2UvcGVyZm9ybWFuY2UtcmVzb3VyY2UtdGltaW5nLWVudHJpZXMtaXRlcmFibGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNl
LXJlc291cmNlLXRpbWluZy1lbnRyaWVzLWl0ZXJhYmxlLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA4
LTE4ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFz
ZWxpbmUganMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy5odG1sIGFmdGVyIHIy
MDQ1OTQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3Bl
cmZvcm1hbmNlLXJlc291cmNlLXRpbWluZy1lbnRyaWVzLWl0ZXJhYmxlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGVyZm9ybWFuY2UvcGVyZm9ybWFuY2UtcmVzb3VyY2Ut
dGltaW5nLWVudHJpZXMtaXRlcmFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2ZjU2ZGJk
YWUwOWEwZWFlNGYwODBhZTQyMGFlNDVkZTA4ZmRjZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLXJlc291cmNlLXRpbWlu
Zy1lbnRyaWVzLWl0ZXJhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgcmVz
b3VyY2VzIGlzIGFuIGluc3RhbmNlIG9mIEFycmF5CitQQVNTIHJlc291cmNlcy5sZW5ndGggaXMg
ZGVmaW5lZC4KK1BBU1MgcmVzb3VyY2VzLmxlbmd0aCBpcyAxCitQQVNTIHJlc291cmNlc1swXSBp
cyBkZWZpbmVkLgorUEFTUyBlbnRyeVR5cGVzWzBdIGlzICJyZXNvdXJjZSIKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJj
ZS10aW1pbmctZW50cmllcy1pdGVyYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
ZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctZW50cmllcy1pdGVyYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM4ZjAxNWVhNzZiMWI5NzVjNWIzZWUzZmZkYzI0N2ZlODdjOGMzNDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3Bl
cmZvcm1hbmNlLXJlc291cmNlLXRpbWluZy1lbnRyaWVzLWl0ZXJhYmxlLmh0bWwKQEAgLTAsMCAr
MSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZVRpbWluZ1N1cHBvcnQo
dHJ1ZSk7CisgICAgZnVuY3Rpb24gcmVzb2x2ZShwYXRoKSB7CisgICAgICAgIHZhciBhID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOworICAgICAgICBhLmhyZWYgPSBwYXRoOworICAgICAg
ICByZXR1cm4gYS5ocmVmOworICAgIH0KKyAgICB2YXIgdXJsID0gcmVzb2x2ZSgiLi4vcmVzb3Vy
Y2VzL3NxdWFyZTEwMC5wbmc/IiArIE1hdGgucmFuZG9tKCkpOworICAgIGRvY3VtZW50LndyaXRl
KCI8aW1nIHNyYz0nIiArIHVybCArICInPiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgdmFy
IHJlc291cmNlczsKKyAgICB2YXIgZW50cnlUeXBlOworICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHJlc291cmNlcyA9IHBlcmZvcm1hbmNl
LmdldEVudHJpZXNCeU5hbWUodXJsKTsKKyAgICAgICAgc2hvdWxkQmVUeXBlKCJyZXNvdXJjZXMi
LCAiQXJyYXkiKTsKKyAgICAgICAgc2hvdWxkQmVEZWZpbmVkKCJyZXNvdXJjZXMubGVuZ3RoIik7
CisgICAgICAgIHNob3VsZEJlKCJyZXNvdXJjZXMubGVuZ3RoIiwgIjEiKTsKKyAgICAgICAgc2hv
dWxkQmVEZWZpbmVkKCJyZXNvdXJjZXNbMF0iKTsKKyAgICAgICAgZW50cnlUeXBlcyA9IHJlc291
cmNlcy5tYXAoKGVudHJ5KSA9PiBlbnRyeS5lbnRyeVR5cGUpOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImVudHJ5VHlwZXNbMF0iLCAicmVzb3VyY2UiKTsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFJlc291cmNl
VGltaW5nU3VwcG9ydChmYWxzZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286406</attachid>
            <date>2016-08-18 15:47:13 -0700</date>
            <delta_ts>2016-08-19 11:31:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160963-20160818154523.patch</filename>
            <type>text/plain</type>
            <size>32837</size>
            <attacher name="Johan K. Jensen">jj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY1MDQ5NjlkZjljNGVl
YWU0YjljMTgyZDk5NmY2MTE5YTBhODk5My4uYTVkNTY5MDYzMTU0ZjkwMzA1ZTA2YjM4ZDQ0MmU4
NjUxOWVkM2M2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA4LTE4ICBKb2hh
biBLLiBKZW5zZW4gIDxqb2hhbl9qZW5zZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNl
IFRpbWluZzogTWFrZSBQZXJmb3JtYW5jZUVudHJ5TGlzdCBhIHNlcXVlbmNlIGFzIHBlciBzcGVj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIENoYW5n
ZSBQZXJmb3JtYW5jZUVudHJ5TGlzdCB0byBiZSBhIHNlcXVlbmNlIG9mIFBlcmZvcm1hbmNlRW50
cnkgaW5zdGVhZCBvZiBhbiBvYmplY3QuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wZXJm
b3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctZW50cmllcy1pdGVyYWJsZS5odG1s
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5j
cHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdU
Sy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKyAgICAg
ICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8ge0pTLH1QZXJmb3JtYW5jZUVudHJ5TGlzdC57Y3BwLGgs
aWRsfS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2U6OmdldEVudHJpZXMpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2U6OmdldEVudHJpZXNCeVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6Omdl
dEVudHJpZXNCeU5hbWUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaDoKKyAgICAgICAg
TWV0aG9kcyBub3cgb3BlcmF0ZSBvbiBhIFZlY3RvciBvZiBQZXJmb3JtYW5jZUVudHJ5LgorCisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5pZGw6CisgICAgICAgIFR5cGVkZWYgUGVyZm9ybWFu
Y2VFbnRyeUxpc3QgYXMgYSBzZXF1ZW5jZSBvZiBQZXJmb3JtYW5jZUVudHJ5LgorCisgICAgICAg
ICogcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJD
b3JlOjpQZXJmb3JtYW5jZUVudHJ5TGlzdDo6UGVyZm9ybWFuY2VFbnRyeUxpc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VFbnRyeUxpc3Q6On5QZXJmb3JtYW5jZUVu
dHJ5TGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUVudHJ5TGlz
dDo6bGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnlM
aXN0OjppdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnlM
aXN0OjphcHBlbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VFbnRy
eUxpc3Q6OmFwcGVuZEFsbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5j
ZUVudHJ5TGlzdDo6c29ydCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5TGlzdC5oOiBSZW1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VFbnRyeUxp
c3Q6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlz
dC5pZGw6IFJlbW92ZWQuCisKIDIwMTYtMDgtMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBjbGVhbnVwIE1lZGlhQ29uc3Ry
YWludHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzU5MGMxMmFhMDk0MzljNWUzZmFiMWMxY2Q3
Mzc5YmFjOTBkZTQ0NS4uNDg1NjZiNzI4NjExNjM4MDI1NDIxNGNmNGE0ZDEwYTA1NmMzNzhkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYyMiw3ICs2MjIsNiBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAogICAgIHBhZ2UvUGVy
Zm9ybWFuY2UuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbAotICAgIHBhZ2UvUGVy
Zm9ybWFuY2VFbnRyeUxpc3QuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZU1hcmsuaWRsCiAgICAg
cGFnZS9QZXJmb3JtYW5jZU1lYXN1cmUuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRp
b24uaWRsCkBAIC0yMDY0LDcgKzIwNjMsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFn
ZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3BwCiAgICAg
cGFnZS9QZXJmb3JtYW5jZUVudHJ5LmNwcAotICAgIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3Qu
Y3BwCiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCiAgICAgcGFnZS9QZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggN2RhZWQyODQwN2I5OTg4ZjdjY2E4OWE4ODc4
ZDQ0MThiZTk3YTk4Yy4uNDVlOThiMjM3MmQ5NzMzMWI1N2FkMWE1NDdjNjUyNjliOTg0OGE3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMzgyLDcgKzM4Miw2IEBACiAjaW5jbHVk
ZSAiSlNQYXJlbnROb2RlLmNwcCIKICNpbmNsdWRlICJKU1BlcmZvcm1hbmNlLmNwcCIKICNpbmNs
dWRlICJKU1BlcmZvcm1hbmNlRW50cnkuY3BwIgotI2luY2x1ZGUgIkpTUGVyZm9ybWFuY2VFbnRy
eUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTUGVyZm9ybWFuY2VNYXJrLmNwcCIKICNpbmNsdWRlICJK
U1BlcmZvcm1hbmNlTWVhc3VyZS5jcHAiCiAjaW5jbHVkZSAiSlNQZXJmb3JtYW5jZU5hdmlnYXRp
b24uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzI3NjdhZWRiNTAwMDBl
NGM3MDdjMWUwODMyOWE3NjhjY2UxYWUxZi4uNTliOTdiMjcyNmE0NzZkNDZhN2E4MTRmY2E1NmY4
ZjJlM2ZhYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01MjcsNyArNTI3
LDYgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JP
bkxpbmUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2UuaWRsIFwKICAgICAk
KFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGwgXAotICAgICQoV2ViQ29yZSkvcGFn
ZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9QZXJmb3Jt
YW5jZU5hdmlnYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBkZmMzN2NlN2YxNzc0YTZjNjVlYWNj
NmFjYjVmMmExMmFlMDA4NGYxLi45MzM0Y2ZiN2VlYzgwMzlhNzU4YmJmZWZjZWNkNzU5NGYwMDk3
MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNTc4LDcgKzU3OCw2IEBAIGxpc3Qo
QVBQRU5EIEdPYmplY3RET01CaW5kaW5nc1Vuc3RhYmxlX0lETF9GSUxFUwogICAgIHBhZ2UvTmF2
aWdhdG9yLmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5j
ZUVudHJ5LmlkbAotICAgIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCiAgICAgcGFnZS9Q
ZXJmb3JtYW5jZU5hdmlnYXRpb24uaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwK
ICAgICBwYWdlL1NjcmVlbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmODQyNWNiNmFjMzZkMTc4MjIyZDA0YjAyMDQ1ZDM3
MzQzMTIxNDY1Li4xZTEyMTRkN2UwODZjYTA5YzE4ZjhiNGM3ZDk0MDkwMGYwZjAxNTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMzgyLDggKzMzODIsNiBAQAogCQk4NjgxNjBENjE4NzY2QTEzMDAyMUU3OUQgLyogVXNlckFj
dGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NjgxNjBEMjE4NzY2OUM0MDAyMUU3OUQgLyogVXNlckFjdGl2aXR5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZCQTc2NkUxNjY0MjdBODAwNUJF
NUQxIC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZCQTc2NkQxNjY0MjdBODAwNUJFNUQxIC8qIEZyYW1lTG9hZFJl
cXVlc3QuY3BwICovOyB9OwogCQk4NkJFMzQwMTE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9ybWFu
Y2VFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZCRTMzRkIxNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuaCAqLzsgfTsKLQkJ
ODZCRTM0MDMxNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkUzM0ZEMTUwNThD
QjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgKi87IH07Ci0JCTg2QkUzNDA0
MTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCRTMzRkUxNTA1OENCMjAwQ0UwRkQ4
IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmggKi87IH07CiAJCTg2RDk4MkY3MTI1QzE1NDAwMEFE
OUUzRCAvKiBEb2N1bWVudFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODkz
MURFNUIxNEM0NEM0NDAwMERDOUQyIC8qIEpTQmxvYkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTMxREU1QTE0QzQ0QzQ0MDAwREM5RDIg
LyogSlNCbG9iQ3VzdG9tLmNwcCAqLzsgfTsKIAkJODk4Nzg1RjAxMjJFMUU4NzAwM0FBQkRBIC8q
IEpTRmlsZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OTg3ODVFRTEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNw
cCAqLzsgfTsKQEAgLTU4ODYsOCArNTg4NCw2IEBACiAJCUNCMzhGRDRCMUNDQ0YzNjYwMDU5MkEz
RiAvKiBQZXJmb3JtYW5jZUVudHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENCMzhGRDRBMUNDQ0YyREQwMDU5MkEzRiAvKiBQZXJmb3JtYW5jZUVu
dHJ5LmNwcCAqLzsgfTsKIAkJQ0IzOEZENTExQ0NGOTM4OTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFu
Y2VFbnRyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDQjM4RkQ0RDFDQ0Y5MzdFMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5LmNwcCAqLzsg
fTsKIAkJQ0IzOEZENTIxQ0NGOTM5NDAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0IzOEZENEUxQ0NG
OTM3RTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5oICovOyB9OwotCQlDQjM4RkQ1MzFD
Q0Y5MzlCMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQjM4RkQ0RjFDQ0Y5MzdFMDA1OTJB
M0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgKi87IH07Ci0JCUNCMzhGRDU0MUNDRjkz
OUUwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50cnlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQjM4RkQ1MDFDQ0Y5MzdFMDA1OTJBM0YgLyog
SlNQZXJmb3JtYW5jZUVudHJ5TGlzdC5oICovOyB9OwogCQlDQjM4RkQ1NzFDRDIxRTJBMDA1OTJB
M0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENCMzhGRDU1MUNEMjFENUIwMDU5MkEzRiAvKiBKU1Bl
cmZvcm1hbmNlRW50cnlDdXN0b20uY3BwICovOyB9OwogCQlDQjM4RkQ1QTFDRDIzMjU4MDA1OTJB
M0YgLyogSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENCMzhGRDU4MUNEMjMxNDUwMDU5MkEzRiAvKiBK
U1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovOyB9OwogCQlDQjM4RkQ1QjFDRDIzMjVC
MDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQjM4RkQ1OTFDRDIzMTQ1MDA1OTJBM0Yg
LyogSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggKi87IH07CkBAIC0xMDg4Miw5ICsxMDg3
OCw2IEBACiAJCTg2QkE3NjZEMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lTG9hZFJlcXVlc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkJFMzNGQjE1MDU4Q0IyMDBDRTBG
RDggLyogUGVyZm9ybWFuY2VFbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQZXJmb3JtYW5jZUVudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2QkUz
M0ZDMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBQZXJmb3JtYW5jZUVudHJ5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODZCRTMzRkQxNTA1OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlRW50cnlM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODZCRTMzRkUxNTA1OENCMjAw
Q0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBlcmZvcm1hbmNlRW50cnlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTg2QkUzM0ZGMTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkQ5ODJGNjEyNUMxNTQwMDBBRDlFM0QgLyogRG9j
dW1lbnRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRU
aW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkyQUJFNUMxNkVFRTJBQTAw
OUYzNTg3IC8qIEpTTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkyQUJFNUQxNkVFRTJBQTAwOUYzNTg3IC8qIEpTTmF2aWdh
dG9yU3RvcmFnZVF1b3RhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2
aWdhdG9yU3RvcmFnZVF1b3RhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzc0
Niw4ICsxMzczOSw2IEBACiAJCUNCMzhGRDRBMUNDQ0YyREQwMDU5MkEzRiAvKiBQZXJmb3JtYW5j
ZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1h
bmNlRW50cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQjM4RkQ0RDFDQ0Y5
MzdFMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBmaWxlRW5j
b2RpbmcgPSA0OyBwYXRoID0gSlNQZXJmb3JtYW5jZUVudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0IzOEZENEUxQ0NGOTM3RTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VF
bnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1BlcmZvcm1hbmNlRW50
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0IzOEZENEYxQ0NGOTM3RTAwNTky
QTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUNCMzhGRDUwMUNDRjkzN0UwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNl
RW50cnlMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBwYXRoID0gSlNQZXJmb3Jt
YW5jZUVudHJ5TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQjM4RkQ1NTFD
RDIxRDVCMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNCMzhGRDU4MUNEMjMxNDUwMDU5MkEzRiAv
KiBKU1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0IzOEZENTkxQ0QyMzE0NTAwNTkyQTNGIC8qIEpTUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE4MjkzLDkgKzE4Mjg0LDYgQEAKIAkJCQlDQjM4RkQ0QTFDQ0NGMkREMDA1OTJBM0YgLyog
UGVyZm9ybWFuY2VFbnRyeS5jcHAgKi8sCiAJCQkJODZCRTMzRkIxNTA1OENCMjAwQ0UwRkQ4IC8q
IFBlcmZvcm1hbmNlRW50cnkuaCAqLywKIAkJCQk4NkJFMzNGQzE1MDU4Q0IyMDBDRTBGRDggLyog
UGVyZm9ybWFuY2VFbnRyeS5pZGwgKi8sCi0JCQkJODZCRTMzRkQxNTA1OENCMjAwQ0UwRkQ4IC8q
IFBlcmZvcm1hbmNlRW50cnlMaXN0LmNwcCAqLywKLQkJCQk4NkJFMzNGRTE1MDU4Q0IyMDBDRTBG
RDggLyogUGVyZm9ybWFuY2VFbnRyeUxpc3QuaCAqLywKLQkJCQk4NkJFMzNGRjE1MDU4Q0IyMDBD
RTBGRDggLyogUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsICovLAogCQkJCThBRjRFNTUyMTFEQzVB
MzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwICovLAogCQkJCThBRjRFNTUz
MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCAqLywKIAkJCQk4QUY0
RTU1NDExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbCAqLywKQEAg
LTIyMzkxLDggKzIyMzc5LDYgQEAKIAkJCQk4QTlBNTg3MzExRTg0QzgxMDA4QUNGRDEgLyogSlNQ
ZXJmb3JtYW5jZS5oICovLAogCQkJCUNCMzhGRDREMUNDRjkzN0UwMDU5MkEzRiAvKiBKU1BlcmZv
cm1hbmNlRW50cnkuY3BwICovLAogCQkJCUNCMzhGRDRFMUNDRjkzN0UwMDU5MkEzRiAvKiBKU1Bl
cmZvcm1hbmNlRW50cnkuaCAqLywKLQkJCQlDQjM4RkQ0RjFDQ0Y5MzdFMDA1OTJBM0YgLyogSlNQ
ZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAgKi8sCi0JCQkJQ0IzOEZENTAxQ0NGOTM3RTAwNTkyQTNG
IC8qIEpTUGVyZm9ybWFuY2VFbnRyeUxpc3QuaCAqLywKIAkJCQk4QTlBNTg2RTExRTg0QzM1MDA4
QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwICovLAogCQkJCThBOUE1ODZGMTFF
ODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5oICovLAogCQkJCUNCMzhG
RDU4MUNEMjMxNDUwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICov
LApAQCAtMjY0NDgsNyArMjY0MzQsNiBAQAogCQkJCUZEQTE1RUIyMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU1Bhbm5lck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCThBOUE1ODc1MTFFODRDODEwMDhB
Q0ZEMSAvKiBKU1BlcmZvcm1hbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQjM4RkQ1MjFDQ0Y5
Mzk0MDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQlD
QjM4RkQ1NDFDQ0Y5MzlFMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5TGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOEE5QTU4NzExMUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQjM4RkQ1QjFDRDIzMjVCMDA1OTJBM0Yg
LyogSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTlB
NTg4ODExRTg0RjM3MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzEzMyw3ICsyNzExOCw2IEBACiAJCQkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCThBODQ0RDA1MTFEM0MxOEUw
MDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZCRTM0MDExNTA1
OENCMjAwQ0UwRkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTg2
QkUzNDA0MTUwNThDQjIwMENFMEZEOCAvKiBQZXJmb3JtYW5jZUVudHJ5TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOEFGNEU1NTYxMURDNUEzNjAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY1MTJFREYxNTRBMkFFRjAwQTkwNDI2IC8qIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCThBRjRFNTVDMTFE
QzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDIzMyw3ICszMDIxNyw2IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVy
Zm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0IzOEZENTExQ0NGOTM4OTAwNTkyQTNG
IC8qIEpTUGVyZm9ybWFuY2VFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDQjM4RkQ1NzFD
RDIxRTJBMDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUNCMzhGRDUzMUNDRjkzOUIwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50cnlM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBK
U1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDQjM4RkQ1QTFD
RDIzMjU4MDA1OTJBM0YgLyogSlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGlt
aW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA4NzIsNyArMzA4NTUsNiBAQAogCQkJCThBN0ND
OTcwMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUU1MjZBRjNGMTcyN0Y4RjIwMEU0MTc4MSAvKiBQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDQjM4RkQ0QjFDQ0NGMzY2MDA1OTJBM0YgLyogUGVyZm9ybWFuY2VFbnRyeS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk4NkJFMzQwMzE1MDU4Q0IyMDBDRTBGRDggLyogUGVyZm9y
bWFuY2VFbnRyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEFGNEU1NTUxMURDNUEzNjAw
MEVEM0RFIC8qIFBlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NjUxMkVERTE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RDE4OUUxMENGMDAwMTlBRTIgLyogUGVyZm9ybWFu
Y2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA3NTBmYmFlMTk4
MmU2ZGUzZGQ0NmMwNGQ2ZTllNjMzZjRhMWQ5ZTg2Li5iZmI3ZmFmMTA1NDQ4ZmZiMTMzMDM2MjMx
ZDMyODVmZGI4MDM3YmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTY1LDcgKzY1LDcgQEAgbXkgJXRy
YW5zZmVyRnVsbFR5cGVIYXNoID0gKCJBdWRpb1RyYWNrIiA9PiAxLCAiQXVkaW9UcmFja0xpc3Qi
ID0+IDEsICJCYXJQcm9wIgogICAgICJHZW9sb2NhdGlvbiIgPT4gMSwgIkhUTUxPcHRpb25zQ29s
bGVjdGlvbiIgPT4gMSwgIkhpc3RvcnkiID0+IDEsCiAgICAgIktleWJvYXJkRXZlbnQiID0+IDEs
ICJLZXlmcmFtZUVmZmVjdCIgPT4gMSwgIk1lZGlhRXJyb3IiID0+IDEsICJNZWRpYUNvbnRyb2xs
ZXIiID0+IDEsCiAgICAgIk1vdXNlRXZlbnQiID0+IDEsICJNZWRpYVF1ZXJ5TGlzdCIgPT4gMSwg
Ik5hdmlnYXRvciIgPT4gMSwgIk5vZGVGaWx0ZXIiID0+IDEsCi0gICAgIlBlcmZvcm1hbmNlIiA9
PiAxLCAiUGVyZm9ybWFuY2VFbnRyeSIgPT4gMSwgIlBlcmZvcm1hbmNlRW50cnlMaXN0IiA9PiAx
LCAiUGVyZm9ybWFuY2VOYXZpZ2F0aW9uIiA9PiAxLCAiUGVyZm9ybWFuY2VUaW1pbmciID0+IDEs
CisgICAgIlBlcmZvcm1hbmNlIiA9PiAxLCAiUGVyZm9ybWFuY2VFbnRyeSIgPT4gMSwgIlBlcmZv
cm1hbmNlTmF2aWdhdGlvbiIgPT4gMSwgIlBlcmZvcm1hbmNlVGltaW5nIiA9PiAxLAogICAgICJS
YW5nZSIgPT4gMSwgIlNjcmVlbiIgPT4gMSwgIlNwZWVjaFN5bnRoZXNpcyIgPT4gMSwgIlNwZWVj
aFN5bnRoZXNpc1ZvaWNlIiA9PiAxLAogICAgICJTdG9yYWdlIiA9PiAxLCAiU3R5bGVNZWRpYSIg
PT4gMSwgIlRleHRUcmFjayIgPT4gMSwgIlRleHRUcmFja0N1ZUxpc3QiID0+IDEsCiAgICAgIlRp
bWVSYW5nZXMiID0+IDEsICJUb3VjaCIgPT4gMSwgIlVJRXZlbnQiID0+IDEsICJVc2VyTWVzc2Fn
ZUhhbmRsZXIiID0+IDEsICJVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlIiA9PiAxLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCBhNDU3ZmE3MjQ3YTQ5ODAxYzA1MDJhN2Qz
N2U2NjM2YmU1MTI2NmJjLi5kOWI2ZmUyNmY3OWJkYWQ0MWQ0NDFmZDg3NzAzMDNhMjE3OWJlNjll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtODgsNjYgKzg5LDY2IEBAIFBlcmZvcm1h
bmNlVGltaW5nKiBQZXJmb3JtYW5jZTo6dGltaW5nKCkgY29uc3QKICAgICByZXR1cm4gbV90aW1p
bmcuZ2V0KCk7CiB9CiAKLVJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5TGlzdD4gUGVyZm9ybWFuY2U6
OmdldEVudHJpZXMoKSBjb25zdAorVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4gUGVy
Zm9ybWFuY2U6OmdldEVudHJpZXMoKSBjb25zdAogewotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVu
dHJ5TGlzdD4gZW50cmllcyA9IFBlcmZvcm1hbmNlRW50cnlMaXN0OjpjcmVhdGUoKTsKKyAgICBW
ZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBlbnRyaWVzOwogCi0gICAgZW50cmllcy0+
YXBwZW5kQWxsKG1fcmVzb3VyY2VUaW1pbmdCdWZmZXIpOworICAgIGVudHJpZXMuYXBwZW5kVmVj
dG9yKG1fcmVzb3VyY2VUaW1pbmdCdWZmZXIpOwogCiAjaWYgRU5BQkxFKFVTRVJfVElNSU5HKQog
ICAgIGlmIChtX3VzZXJUaW1pbmcpIHsKLSAgICAgICAgZW50cmllcy0+YXBwZW5kQWxsKG1fdXNl
clRpbWluZy0+Z2V0TWFya3MoKSk7Ci0gICAgICAgIGVudHJpZXMtPmFwcGVuZEFsbChtX3VzZXJU
aW1pbmctPmdldE1lYXN1cmVzKCkpOworICAgICAgICBlbnRyaWVzLmFwcGVuZFZlY3RvcihtX3Vz
ZXJUaW1pbmctPmdldE1hcmtzKCkpOworICAgICAgICBlbnRyaWVzLmFwcGVuZFZlY3RvcihtX3Vz
ZXJUaW1pbmctPmdldE1lYXN1cmVzKCkpOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoVVNFUl9U
SU1JTkcpCiAKLSAgICBlbnRyaWVzLT5zb3J0KCk7CisgICAgc3RkOjpzb3J0KGVudHJpZXMuYmVn
aW4oKSwgZW50cmllcy5lbmQoKSwgUGVyZm9ybWFuY2VFbnRyeTo6c3RhcnRUaW1lQ29tcGFyZUxl
c3NUaGFuKTsKICAgICByZXR1cm4gZW50cmllczsKIH0KIAotUmVmUHRyPFBlcmZvcm1hbmNlRW50
cnlMaXN0PiBQZXJmb3JtYW5jZTo6Z2V0RW50cmllc0J5VHlwZShjb25zdCBTdHJpbmcmIGVudHJ5
VHlwZSkKK1ZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+IFBlcmZvcm1hbmNlOjpnZXRF
bnRyaWVzQnlUeXBlKGNvbnN0IFN0cmluZyYgZW50cnlUeXBlKSBjb25zdAogewotICAgIFJlZlB0
cjxQZXJmb3JtYW5jZUVudHJ5TGlzdD4gZW50cmllcyA9IFBlcmZvcm1hbmNlRW50cnlMaXN0Ojpj
cmVhdGUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBlbnRyaWVzOwog
CiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVudHJ5VHlwZSwgInJlc291
cmNlIikpIHsKICAgICAgICAgZm9yIChhdXRvJiByZXNvdXJjZSA6IG1fcmVzb3VyY2VUaW1pbmdC
dWZmZXIpCi0gICAgICAgICAgICBlbnRyaWVzLT5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAg
ICAgZW50cmllcy5hcHBlbmQocmVzb3VyY2UpOwogICAgIH0KIAogI2lmIEVOQUJMRShVU0VSX1RJ
TUlORykKICAgICBpZiAobV91c2VyVGltaW5nKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShlbnRyeVR5cGUsICJtYXJrIikpCi0gICAgICAgICAgICBlbnRyaWVz
LT5hcHBlbmRBbGwobV91c2VyVGltaW5nLT5nZXRNYXJrcygpKTsKKyAgICAgICAgICAgIGVudHJp
ZXMuYXBwZW5kVmVjdG9yKG1fdXNlclRpbWluZy0+Z2V0TWFya3MoKSk7CiAgICAgICAgIGVsc2Ug
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVudHJ5VHlwZSwgIm1lYXN1cmUiKSkK
LSAgICAgICAgICAgIGVudHJpZXMtPmFwcGVuZEFsbChtX3VzZXJUaW1pbmctPmdldE1lYXN1cmVz
KCkpOworICAgICAgICAgICAgZW50cmllcy5hcHBlbmRWZWN0b3IobV91c2VyVGltaW5nLT5nZXRN
ZWFzdXJlcygpKTsKICAgICB9CiAjZW5kaWYKIAotICAgIGVudHJpZXMtPnNvcnQoKTsKKyAgICBz
dGQ6OnNvcnQoZW50cmllcy5iZWdpbigpLCBlbnRyaWVzLmVuZCgpLCBQZXJmb3JtYW5jZUVudHJ5
OjpzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4pOwogICAgIHJldHVybiBlbnRyaWVzOwogfQogCi1S
ZWZQdHI8UGVyZm9ybWFuY2VFbnRyeUxpc3Q+IFBlcmZvcm1hbmNlOjpnZXRFbnRyaWVzQnlOYW1l
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlbnRyeVR5cGUpCitWZWN0b3I8UmVm
UHRyPFBlcmZvcm1hbmNlRW50cnk+PiBQZXJmb3JtYW5jZTo6Z2V0RW50cmllc0J5TmFtZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZW50cnlUeXBlKSBjb25zdAogewotICAgIFJl
ZlB0cjxQZXJmb3JtYW5jZUVudHJ5TGlzdD4gZW50cmllcyA9IFBlcmZvcm1hbmNlRW50cnlMaXN0
OjpjcmVhdGUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBlbnRyaWVz
OwogCiAgICAgaWYgKGVudHJ5VHlwZS5pc051bGwoKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShlbnRyeVR5cGUsICJyZXNvdXJjZSIpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcmVz
b3VyY2UgOiBtX3Jlc291cmNlVGltaW5nQnVmZmVyKSB7CiAgICAgICAgICAgICBpZiAocmVzb3Vy
Y2UtPm5hbWUoKSA9PSBuYW1lKQotICAgICAgICAgICAgICAgIGVudHJpZXMtPmFwcGVuZChyZXNv
dXJjZSk7CisgICAgICAgICAgICAgICAgZW50cmllcy5hcHBlbmQocmVzb3VyY2UpOwogICAgICAg
ICB9CiAgICAgfQogCiAjaWYgRU5BQkxFKFVTRVJfVElNSU5HKQogICAgIGlmIChtX3VzZXJUaW1p
bmcpIHsKICAgICAgICAgaWYgKGVudHJ5VHlwZS5pc051bGwoKSB8fCBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShlbnRyeVR5cGUsICJtYXJrIikpCi0gICAgICAgICAgICBlbnRyaWVzLT5h
cHBlbmRBbGwobV91c2VyVGltaW5nLT5nZXRNYXJrcyhuYW1lKSk7CisgICAgICAgICAgICBlbnRy
aWVzLmFwcGVuZFZlY3RvcihtX3VzZXJUaW1pbmctPmdldE1hcmtzKG5hbWUpKTsKICAgICAgICAg
aWYgKGVudHJ5VHlwZS5pc051bGwoKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShl
bnRyeVR5cGUsICJtZWFzdXJlIikpCi0gICAgICAgICAgICBlbnRyaWVzLT5hcHBlbmRBbGwobV91
c2VyVGltaW5nLT5nZXRNZWFzdXJlcyhuYW1lKSk7CisgICAgICAgICAgICBlbnRyaWVzLmFwcGVu
ZFZlY3RvcihtX3VzZXJUaW1pbmctPmdldE1lYXN1cmVzKG5hbWUpKTsKICAgICB9CiAjZW5kaWYK
IAotICAgIGVudHJpZXMtPnNvcnQoKTsKKyAgICBzdGQ6OnNvcnQoZW50cmllcy5iZWdpbigpLCBl
bnRyaWVzLmVuZCgpLCBQZXJmb3JtYW5jZUVudHJ5OjpzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4p
OwogICAgIHJldHVybiBlbnRyaWVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5k
ZXggMTc2YzE1MGM0YThmNDg3M2Q4Yjc2NjQ0OTMzMjc5YjM4ODVkNDE3My4uMTRhYWViYTEzY2U0
M2Y2YTcxMDE3YjEyZjIwZjgwMDg5YjNmOTVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
aApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MjksMTQgKzMwLDEyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUGVyZm9ybWFu
Y2VfaAotI2RlZmluZSBQZXJmb3JtYW5jZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShX
RUJfVElNSU5HKQogCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKICNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgotI2luY2x1ZGUgIlBlcmZvcm1hbmNlRW50cnlMaXN0LmgiCiAjaW5jbHVk
ZSAiUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VUaW1pbmcu
aCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQ3LDYgKzQ2LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQZXJmb3JtYW5jZUVudHJ5
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNz
IFVzZXJUaW1pbmc7CkBAIC02Myw5ICs2Myw5IEBAIHB1YmxpYzoKICAgICBQZXJmb3JtYW5jZVRp
bWluZyogdGltaW5nKCkgY29uc3Q7CiAgICAgZG91YmxlIG5vdygpIGNvbnN0OwogCi0gICAgUmVm
UHRyPFBlcmZvcm1hbmNlRW50cnlMaXN0PiBnZXRFbnRyaWVzKCkgY29uc3Q7Ci0gICAgUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnlMaXN0PiBnZXRFbnRyaWVzQnlUeXBlKGNvbnN0IFN0cmluZyYgZW50
cnlUeXBlKTsKLSAgICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeUxpc3Q+IGdldEVudHJpZXNCeU5h
bWUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGVudHJ5VHlwZSk7CisgICAgVmVj
dG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4gZ2V0RW50cmllcygpIGNvbnN0OworICAgIFZl
Y3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+IGdldEVudHJpZXNCeVR5cGUoY29uc3QgU3Ry
aW5nJiBlbnRyeVR5cGUpIGNvbnN0OworICAgIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRy
eT4+IGdldEVudHJpZXNCeU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGVu
dHJ5VHlwZSkgY29uc3Q7CiAKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7CiAgICAg
dm9pZCBzZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWduZWQpOwpAQCAtMTA2LDUgKzEw
NiwzIEBAIHByaXZhdGU6CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1RJTUlORykKLQotI2Vu
ZGlmIC8vIFBlcmZvcm1hbmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwKaW5kZXgg
OTQ4OTY5MGIzNTYxNTJmNmVkMDdhZjQ3Mzg1M2Y2MzIzMmY0NWJlNS4uMzg5Mjg4ZmU0NWYzMTkw
NzNlYTcxOTY3MjNkZGYwMDUwMjhmMzhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5p
ZGwKQEAgLTU5LDMgKzU5LDQgQEAKICAgICB1bnJlc3RyaWN0ZWQgZG91YmxlIG5vdygpOwogfTsK
IAordHlwZWRlZiBzZXF1ZW5jZTxQZXJmb3JtYW5jZUVudHJ5PiBQZXJmb3JtYW5jZUVudHJ5TGlz
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwMzU5MjhiMzFjNmRlOWQ2MWQ4NjMxMTYzMWQzMzU2
ZmMzYjgyNjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQZXJmb3JtYW5j
ZUVudHJ5TGlzdC5oIgotCi0jaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0KLSNpbmNsdWRlICJQZXJm
b3JtYW5jZUVudHJ5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGVyZm9ybWFuY2VFbnRy
eUxpc3Q6OlBlcmZvcm1hbmNlRW50cnlMaXN0KCkKLXsKLX0KLQotUGVyZm9ybWFuY2VFbnRyeUxp
c3Q6On5QZXJmb3JtYW5jZUVudHJ5TGlzdCgpCi17Ci19Ci0KLXVuc2lnbmVkIFBlcmZvcm1hbmNl
RW50cnlMaXN0OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJldHVybiBtX2VudHJpZXMuc2l6ZSgp
OwotfQotCi1QZXJmb3JtYW5jZUVudHJ5KiBQZXJmb3JtYW5jZUVudHJ5TGlzdDo6aXRlbSh1bnNp
Z25lZCBpbmRleCkKLXsKLSAgICBpZiAoaW5kZXggPCBtX2VudHJpZXMuc2l6ZSgpKQotICAgICAg
ICByZXR1cm4gbV9lbnRyaWVzW2luZGV4XS5nZXQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdm9p
ZCBQZXJmb3JtYW5jZUVudHJ5TGlzdDo6YXBwZW5kKFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRy
eT4gZW50cnkpCi17Ci0gICAgbV9lbnRyaWVzLmFwcGVuZChlbnRyeSk7Ci19Ci0KLXZvaWQgUGVy
Zm9ybWFuY2VFbnRyeUxpc3Q6OmFwcGVuZEFsbChjb25zdCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1h
bmNlRW50cnk+PiYgZW50cmllcykKLXsKLSAgICBtX2VudHJpZXMuYXBwZW5kVmVjdG9yKGVudHJp
ZXMpOwotfQotCi12b2lkIFBlcmZvcm1hbmNlRW50cnlMaXN0Ojpzb3J0KCkKLXsKLSAgICBzdGQ6
OnNvcnQobV9lbnRyaWVzLmJlZ2luKCksIG1fZW50cmllcy5lbmQoKSwgUGVyZm9ybWFuY2VFbnRy
eTo6c3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9USU1JTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlRW50cnlMaXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2MDA3
MTdmMzIzNTk5N2M1OTY2OTc5ZDYyMTVjYTYxNjQ0ZGIzMDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUVudHJ5TGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBlcmZvcm1h
bmNlRW50cnlMaXN0X2gKLSNkZWZpbmUgUGVyZm9ybWFuY2VFbnRyeUxpc3RfaAotCi0jaWYgRU5B
QkxFKFdFQl9USU1JTkcpCi0KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBQZXJmb3JtYW5jZUVu
dHJ5OwotCi1jbGFzcyBQZXJmb3JtYW5jZUVudHJ5TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFBl
cmZvcm1hbmNlRW50cnlMaXN0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQZXJmb3JtYW5j
ZUVudHJ5TGlzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJmb3JtYW5jZUVu
dHJ5TGlzdCk7IH0KLSAgICB+UGVyZm9ybWFuY2VFbnRyeUxpc3QoKTsKLQotICAgIHVuc2lnbmVk
IGxlbmd0aCgpIGNvbnN0OwotICAgIFBlcmZvcm1hbmNlRW50cnkqIGl0ZW0odW5zaWduZWQgaW5k
ZXgpOwotCi0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pik7Ci0g
ICAgdm9pZCBhcHBlbmRBbGwoY29uc3QgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4m
KTsKLQotICAgIHZvaWQgc29ydCgpOwotCi1wcml2YXRlOgotICAgIFBlcmZvcm1hbmNlRW50cnlM
aXN0KCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBtX2VudHJpZXM7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1RJ
TUlORykKLSNlbmRpZiAvLyBQZXJmb3JtYW5jZUVudHJ5TGlzdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxODA2NmNjMzdlNTczZjIwZTFhOTA1YzM4OGIwMjE4MThlYjc5MzZiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8v
IFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3RpcC9zcGVjcy9Q
ZXJmb3JtYW5jZVRpbWVsaW5lL092ZXJ2aWV3Lmh0bWwKLVsKLSAgICBOb0ludGVyZmFjZU9iamVj
dCwKLSAgICBDb25kaXRpb25hbD1XRUJfVElNSU5HLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9UmVz
b3VyY2VUaW1pbmcsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNl
IFBlcmZvcm1hbmNlRW50cnlMaXN0IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIFBlcmZvcm1hbmNlRW50cnkgaXRlbSh1bnNpZ25lZCBs
b25nIGluZGV4KTsKLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjRiZmJkOWE4MGJmZDNlMTY2ZDE2YWJhNDlkOWE2YWY5
YWVmYzQ4Ni4uZWI0YjIzYWY0MmI5ZDRhZmE0MzllZTgzZDkxYjViNzdkNDhiM2E2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE2LTA4LTE4ICBKb2hhbiBLLiBKZW5zZW4gIDxqb2hhbl9qZW5z
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIFRpbWluZzogTWFrZSBQZXJmb3JtYW5j
ZUVudHJ5TGlzdCBhIHNlcXVlbmNlIGFzIHBlciBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBB
bGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRlc3RpbmcgdGhhdCBQZXJmb3JtYW5jZUVudHJ5
TGlzdCAod2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXMoKSkgaXMgaXRlcmFibGUuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLXJlc291cmNlLXRpbWlu
Zy1lbnRyaWVzLWl0ZXJhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctZW50cmllcy1pdGVy
YWJsZS5odG1sOiBBZGRlZC4KKwogMjAxNi0wOC0xOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFk
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5lIGpzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMuaHRtbCBhZnRlciByMjA0NTk0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctZW50
cmllcy1pdGVyYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BlcmZv
cm1hbmNlL3BlcmZvcm1hbmNlLXJlc291cmNlLXRpbWluZy1lbnRyaWVzLWl0ZXJhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYTlkM2Q5MjU2ZWM4M2Q2M2ExNjg3MjFkMTE1YWE3MTU5Njhj
Yjg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wZXJmb3JtYW5j
ZS9wZXJmb3JtYW5jZS1yZXNvdXJjZS10aW1pbmctZW50cmllcy1pdGVyYWJsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGF0IFBlcmZvcm1hbmNlRW50cnlMaXN0ICh3aW5k
b3cucGVyZm9ybWFuY2UuZ2V0RW50cmllcygpKSBpcyBpdGVyYWJsZS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzb3VyY2VzIGlzIGFuIGluc3RhbmNlIG9mIEFycmF5
CitQQVNTIHJlc291cmNlcy5sZW5ndGggaXMgZGVmaW5lZC4KK1BBU1MgcmVzb3VyY2VzLmxlbmd0
aCBpcyAxCitQQVNTIHJlc291cmNlc1swXSBpcyBkZWZpbmVkLgorUEFTUyBlbnRyeVR5cGVzWzBd
IGlzICJyZXNvdXJjZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BlcmZvcm1hbmNl
L3BlcmZvcm1hbmNlLXJlc291cmNlLXRpbWluZy1lbnRyaWVzLWl0ZXJhYmxlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLXJlc291cmNlLXRpbWlu
Zy1lbnRyaWVzLWl0ZXJhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI4YTIwOGUzYmU2M2JlZWFhMjJj
Y2IxOTIyMmU3ZGYxYjFhNmNiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcGVyZm9ybWFuY2UvcGVyZm9ybWFuY2UtcmVzb3VyY2UtdGltaW5nLWVudHJpZXMtaXRl
cmFibGUuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNj
cmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlVGltaW5nU3VwcG9ydCh0cnVlKTsKKyAgICBmdW5jdGlvbiByZXNvbHZlKHBhdGgpIHsK
KyAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CisgICAgICAgIGEu
aHJlZiA9IHBhdGg7CisgICAgICAgIHJldHVybiBhLmhyZWY7CisgICAgfQorICAgIHZhciB1cmwg
PSByZXNvbHZlKCIuLi9yZXNvdXJjZXMvc3F1YXJlMTAwLnBuZz8iICsgTWF0aC5yYW5kb20oKSk7
CisgICAgZG9jdW1lbnQud3JpdGUoIjxpbWcgc3JjPSciICsgdXJsICsgIic+Iik7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBkZXNj
cmlwdGlvbigiVGVzdCB0aGF0IFBlcmZvcm1hbmNlRW50cnlMaXN0ICh3aW5kb3cucGVyZm9ybWFu
Y2UuZ2V0RW50cmllcygpKSBpcyBpdGVyYWJsZS4iKTsKKworICAgIHZhciByZXNvdXJjZXMsIGVu
dHJ5VHlwZTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkg
eworICAgICAgICByZXNvdXJjZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKHVybCk7
CisgICAgICAgIHNob3VsZEJlVHlwZSgicmVzb3VyY2VzIiwgIkFycmF5Iik7CisgICAgICAgIHNo
b3VsZEJlRGVmaW5lZCgicmVzb3VyY2VzLmxlbmd0aCIpOworICAgICAgICBzaG91bGRCZSgicmVz
b3VyY2VzLmxlbmd0aCIsICIxIik7CisgICAgICAgIHNob3VsZEJlRGVmaW5lZCgicmVzb3VyY2Vz
WzBdIik7CisgICAgICAgIGVudHJ5VHlwZXMgPSByZXNvdXJjZXMubWFwKChlbnRyeSkgPT4gZW50
cnkuZW50cnlUeXBlKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlbnRyeVR5cGVz
WzBdIiwgInJlc291cmNlIik7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRSZXNvdXJjZVRpbWluZ1N1cHBvcnQoZmFsc2UpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>