<?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>100548</bug_id>
          
          <creation_ts>2012-10-26 11:52:44 -0700</creation_ts>
          <short_desc>[CSS Shaders] Extract the CustomFilterParameterList to its own file</short_desc>
          <delta_ts>2012-10-29 09:50:30 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100533</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>752241</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-26 11:52:44 -0700</bug_when>
    <thetext>CustomFilterParameterList is defined as a typedef in the header of CustomFilterOperation. We will reuse the CustomFilterParameterList in different other places, so extract that to its own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752332</commentid>
    <comment_count>1</comment_count>
      <attachid>170993</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-26 13:34:00 -0700</bug_when>
    <thetext>Created attachment 170993
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752342</commentid>
    <comment_count>2</comment_count>
      <attachid>170993</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-26 13:42:33 -0700</bug_when>
    <thetext>Comment on attachment 170993
Patch V1

Attachment 170993 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14610169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752469</commentid>
    <comment_count>3</comment_count>
      <attachid>171025</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-26 15:03:58 -0700</bug_when>
    <thetext>Created attachment 171025
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752479</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 15:09:36 -0700</bug_when>
    <thetext>Attachment 171025 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h:43:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h:44:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752481</commentid>
    <comment_count>5</comment_count>
      <attachid>171025</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-26 15:12:32 -0700</bug_when>
    <thetext>Comment on attachment 171025
Patch V2

Attachment 171025 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14593824</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752483</commentid>
    <comment_count>6</comment_count>
      <attachid>171025</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-26 15:17:19 -0700</bug_when>
    <thetext>Comment on attachment 171025
Patch V2

Attachment 171025 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14617145</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752487</commentid>
    <comment_count>7</comment_count>
      <attachid>171026</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-26 15:20:57 -0700</bug_when>
    <thetext>Created attachment 171026
Patch V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752588</commentid>
    <comment_count>8</comment_count>
      <attachid>171026</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-26 16:58:28 -0700</bug_when>
    <thetext>Comment on attachment 171026
Patch V3

Looks good, Alex.

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

&gt; Source/WebCore/platform/graphics/filters/CustomFilterParameterList.cpp:49
&gt; +bool CustomFilterParameterList::operator==(const CustomFilterParameterList&amp; other) const

Nice. An operator== looks much better than customFilterParametersEqual(...).

&gt; Source/WebCore/platform/graphics/filters/CustomFilterParameterList.h:45
&gt; +    explicit CustomFilterParameterList(size_t);

Nice use of explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752590</commentid>
    <comment_count>9</comment_count>
      <attachid>171026</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-26 16:59:43 -0700</bug_when>
    <thetext>Comment on attachment 171026
Patch V3

Attachment 171026 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14608279</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753394</commentid>
    <comment_count>10</comment_count>
      <attachid>171026</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-29 07:07:02 -0700</bug_when>
    <thetext>Comment on attachment 171026
Patch V3

I like this patch. Not sure why EFL couldn&apos;t find the new file, but assuming that works itself out, I&apos;m happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753403</commentid>
    <comment_count>11</comment_count>
      <attachid>171026</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-29 07:14:03 -0700</bug_when>
    <thetext>Comment on attachment 171026
Patch V3

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

&gt; Source/WebCore/CMakeLists.txt:1914
&gt; +    platform/graphics/filters/CustomFilterParameter.cpp

The file is called CustomFilterParameterList.cpp, not CustomFilterParameter.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753464</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-29 08:13:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 171026 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171026&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/CMakeLists.txt:1914
&gt; &gt; +    platform/graphics/filters/CustomFilterParameter.cpp
&gt; 
&gt; The file is called CustomFilterParameterList.cpp, not CustomFilterParameter.cpp.

Ah, thanks! No need to r- then because it is an easy fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753475</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-29 08:42:30 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 171026 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171026&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/CMakeLists.txt:1914
&gt; &gt; &gt; +    platform/graphics/filters/CustomFilterParameter.cpp
&gt; &gt; 
&gt; &gt; The file is called CustomFilterParameterList.cpp, not CustomFilterParameter.cpp.
&gt; 
&gt; Ah, thanks! No need to r- then because it is an easy fix.

Thanks, Dean! Sorry about the naming, it&apos;s the evil copy-paste :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753503</commentid>
    <comment_count>14</comment_count>
      <attachid>171258</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-29 09:22:37 -0700</bug_when>
    <thetext>Created attachment 171258
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753539</commentid>
    <comment_count>15</comment_count>
      <attachid>171258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 09:50:25 -0700</bug_when>
    <thetext>Comment on attachment 171258
Patch for landing

Clearing flags on attachment: 171258

Committed r132808: &lt;http://trac.webkit.org/changeset/132808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753540</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 09:50:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170993</attachid>
            <date>2012-10-26 13:34:00 -0700</date>
            <delta_ts>2012-10-26 15:03:58 -0700</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug100548.patch</filename>
            <type>text/plain</type>
            <size>22648</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTY3Nzk4Ni4uNTE1NjRkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5MTEsNiArMTkxMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1JbmZvLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDJkNGZhMzQuLjFiZTg2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0xMC0y
NiAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBTaGFkZXJzXSBFeHRyYWN0IHRoZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IHRvIGl0cyBv
d24gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwNTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZWQgYWxsIHRoZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IHJlbGF0ZWQgbWV0aG9kcyB0
byB0aGVpciBvd24gZmlsZS4KKyAgICAgICAgQWxzbyBtYWRlIEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QgaW5oZXJpdCBmcm9tIFZlY3RvciBpbnN0ZWFkIG9mIHR5cGVkZWZpbmcgaXQsCisgICAg
ICAgIHNvIHRoYXQgd2UgY2FuIGFkZCBhIGRpZmZlcmVudCBvcGVyYXRvcj09IGFuZCBhIGJsZW5k
IG1ldGhvZCB0byBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgcmVmYWN0b3Jpbmcg
ZXhpc3RpbmcgY29kZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpDdXN0b21GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpjaGVja0FscGhhYmV0aWNhbE9yZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6OmJsZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QpOgorCiAyMDEyLTEwLTI1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNTQ0NjI2PiBbY2ddIFJlbmRlckJs
b2NrOjpzZWxlY3Rpb25HYXBzKCkgaXMgZXh0cmVtZWx5IHNsb3cgd2hlbiB0aGVyZSBhcmUgbWFu
eSBmbG9hdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM5ZTM3YjYuLjdlYjFj
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDMzNiw2ICs0MzM2LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmgg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQ
cm9ncmFtSW5mby5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNGNlOGYxMS4uOTQyYmI5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC0yMDc4LDYgKzIwNzgsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJUcmFuc2Zvcm1QYXJhbWV0ZXIu
aCBcCkBAIC0zNDkyLDYgKzM0OTMsNyBAQCBlbmFibGU/KEZJTFRFUlMpIHsKICAgICBTT1VSQ0VT
ICs9IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9i
YWxDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IGI5MjA0MTMuLjhmMWRjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTQ5NzcsNiArNDk3Nyw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMDY5
NWQ0Li4zNzk5YjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNDk4LDYgKzE0OTgsOCBAQAogCQk1MDgxRTNFMDNDRkY4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJl
YWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOEND
QTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi87IH07CiAJCTUwOEND
QTUwMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTRFMTNDRjEwNkIwMDMxNTFG
MyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLzsgfTsKKwkJNTA5MzMzNEYxNjNCMEU0MzAwMDk5
QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5MzMzNEQxNjNCMEU0MzAwMDk5QTYwIC8qIEN1
c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwICovOyB9OworCQk1MDkzMzM1MDE2M0IwRTQzMDAw
OTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5MzMzNEUxNjNCMEU0MzAwMDk5QTYwIC8qIEN1
c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCAqLzsgfTsKIAkJNTA5ODdDMjYxNTdENjc2RDAwQkRB
ODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5ODdDMjQxNTdENjc2RDAwQkRBODM1IC8qIEN1
c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwICovOyB9OwogCQk1MDk4N0MyNzE1N0Q2NzZEMDBC
REE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5ODdDMjUxNTdENjc2RDAwQkRBODM1IC8qIEN1
c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCAqLzsgfTsKIAkJNTA5Q0M5RkIxNEMwNjlFRDAwQkJF
Q0JEIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5Q0M5RkExNEMwNjlFRDAwQkJFQ0JEIC8qIEN1c3RvbUZp
bHRlclBhcmFtZXRlci5oICovOyB9OwpAQCAtODcwNCw2ICs4NzA2LDggQEAKIAkJNTA4MUUzRTEz
RDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93
VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZsb3dUaHJl
YWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA4Q0NBNEUxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyRmxvd1RocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUwOTMzMzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3QuY3BwOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA5MzMzNEUxNjNCMEU0MzAwMDk5
QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oOyBwYXRoID0gZmlsdGVycy9D
dXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUwOTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1c3RvbUZpbHRlckdsb2Jh
bENvbnRleHQuY3BwOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA5ODdDMjUxNTdENjc2RDAwQkRBODM1
IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5oOyBwYXRoID0gZmlsdGVycy9DdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUw
OUNDOUZBMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmg7IHBhdGgg
PSBmaWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTgyNDQsNiArMTgyNDgsOCBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEg
LyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNTA5MzMzNEQxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qu
Y3BwICovLAorCQkJCTUwOTMzMzRFMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJh
bWV0ZXJMaXN0LmggKi8sCiAJCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0IC8qIGFybSAqLywK
IAkJCQkxNUIzRkMxNzE1RkIyMTc4MDBBODFCQ0IgLyogQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0
ZXIuaCAqLywKIAkJCQk1MEQ0MDYwRjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyQ29t
cGlsZWRQcm9ncmFtLmNwcCAqLywKQEAgLTI1NjcxLDYgKzI1Njc3LDcgQEAKIAkJCQlFMUJFNTEy
RTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MDkzMzM1MDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVy
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODc4NCw2ICsyODc5MSw3IEBACiAJCQkJOTc3RTJF
MEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxQUJGNjREMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1MDkzMzM0RjE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFy
YW1ldGVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5o
CmluZGV4IDcyNGFkNjYuLjdhOWQxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApA
QCAtNTksNiArNTksNyBAQCBjbGFzcyBDU1NWYWx1ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBj
bGFzcyBDdXN0b21GaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI7
CitjbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CkBAIC05MiwxMCArOTMsNiBAQCBjbGFzcyBXZWJLaXRD
U1NGaWx0ZXJWYWx1ZTsKIGNsYXNzIFdlYktpdENTU1NoYWRlclZhbHVlOwogY2xhc3MgV2ViS2l0
Q1NTU1ZHRG9jdW1lbnRWYWx1ZTsKIAotI2lmIEVOQUJMRShDU1NfU0hBREVSUykKLXR5cGVkZWYg
VmVjdG9yPFJlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+ID4gQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdDsKLSNlbmRpZgotCiBjbGFzcyBNZWRpYVF1ZXJ5UmVzdWx0IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShNZWRpYVF1ZXJ5UmVzdWx0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAKaW5kZXggZWQ1N2I3
My4uYjlkMzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcApAQCAtMzYs
NjUgKzM2LDggQEAKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9uLmgiCiAKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBjdXN0b21GaWx0ZXJQYXJhbWV0ZXJzRXF1YWwo
Y29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgbGlzdEEsIGNvbnN0IEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QmIGxpc3RCKQotewotICAgIGlmIChsaXN0QS5zaXplKCkgIT0gbGlzdEIu
c2l6ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsaXN0QS5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobGlzdEEuYXQoaSkuZ2V0KCkgIT0g
bGlzdEIuYXQoaSkuZ2V0KCkgCi0gICAgICAgICAgICAmJiAqbGlzdEEuYXQoaSkuZ2V0KCkgIT0g
Kmxpc3RCLmF0KGkpLmdldCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotI2lmICFBU1NFUlRfRElTQUJMRUQKLXN0YXRpYyBib29sIGNo
ZWNrQ3VzdG9tRmlsdGVyUGFyYW1ldGVyc09yZGVyKGNvbnN0IEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QmIHBhcmFtZXRlcnMpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHBhcmFt
ZXRlcnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgLy8gQnJlYWsgZm9yIGVxdWFsIG9yIG5vdC1z
b3J0ZWQgcGFyYW1ldGVycy4KLSAgICAgICAgaWYgKCFjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4o
cGFyYW1ldGVycy5hdChpIC0gMSktPm5hbWUoKSwgcGFyYW1ldGVycy5hdChpKS0+bmFtZSgpKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0j
ZW5kaWYKLQotdm9pZCBibGVuZEN1c3RvbUZpbHRlclBhcmFtZXRlcnMoY29uc3QgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdCYgZnJvbUxpc3QsIGNvbnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3QmIHRvTGlzdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcHJv
Z3Jlc3MsIGNvbnN0IExheW91dFNpemUmIHNpemUsIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qm
IHJlc3VsdExpc3QpCi17Ci0gICAgLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBib3RoIGxpc3RzIHRv
IGJlIHNvcnRlZCBieSBwYXJhbWV0ZXIgbmFtZSBhbmQgdGhlIHJlc3VsdCBsaXN0IGlzIGFsc28g
c29ydGVkLgotICAgIEFTU0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcihmcm9t
TGlzdCkpOwotICAgIEFTU0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcih0b0xp
c3QpKTsKLSAgICBzaXplX3QgZnJvbUxpc3RJbmRleCA9IDAsIHRvTGlzdEluZGV4ID0gMDsKLSAg
ICB3aGlsZSAoZnJvbUxpc3RJbmRleCA8IGZyb21MaXN0LnNpemUoKSAmJiB0b0xpc3RJbmRleCA8
IHRvTGlzdC5zaXplKCkpIHsKLSAgICAgICAgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyKiBwYXJhbUZy
b20gPSBmcm9tTGlzdC5hdChmcm9tTGlzdEluZGV4KS5nZXQoKTsKLSAgICAgICAgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyKiBwYXJhbVRvID0gdG9MaXN0LmF0KHRvTGlzdEluZGV4KS5nZXQoKTsKLSAg
ICAgICAgaWYgKHBhcmFtRnJvbS0+bmFtZSgpID09IHBhcmFtVG8tPm5hbWUoKSkgewotICAgICAg
ICAgICAgcmVzdWx0TGlzdC5hcHBlbmQocGFyYW1Uby0+YmxlbmQocGFyYW1Gcm9tLCBwcm9ncmVz
cywgc2l6ZSkpOwotICAgICAgICAgICAgKytmcm9tTGlzdEluZGV4OwotICAgICAgICAgICAgKyt0
b0xpc3RJbmRleDsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4ocGFyYW1Gcm9tLT5uYW1lKCksIHBhcmFtVG8tPm5h
bWUoKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtRnJvbSk7Ci0gICAg
ICAgICAgICArK2Zyb21MaXN0SW5kZXg7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJhbVRvKTsKLSAgICAgICAgKyt0b0xpc3RJ
bmRleDsKLSAgICB9Ci0gICAgZm9yICg7IGZyb21MaXN0SW5kZXggPCBmcm9tTGlzdC5zaXplKCk7
ICsrZnJvbUxpc3RJbmRleCkKLSAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQoZnJvbUxpc3QuYXQo
ZnJvbUxpc3RJbmRleCkpOwotICAgIGZvciAoOyB0b0xpc3RJbmRleCA8IHRvTGlzdC5zaXplKCk7
ICsrdG9MaXN0SW5kZXgpCi0gICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHRvTGlzdC5hdCh0b0xp
c3RJbmRleCkpOwotICAgIEFTU0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcihy
ZXN1bHRMaXN0KSk7Ci19Ci0KIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Q3VzdG9tRmlsdGVyT3Bl
cmF0aW9uKFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwgY29uc3QgQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgc29ydGVkUGFyYW1ldGVycywgdW5zaWduZWQgbWVzaFJv
d3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBNZXNoQm94VHlwZSBtZXNoQm94VHlwZSwgTWVzaFR5
cGUgbWVzaFR5cGUpCiAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQ1VTVE9NKQogICAgICwgbV9wcm9n
cmFtKHByb2dyYW0pCkBAIC0xMDUsNyArNDgsNyBAQCBDdXN0b21GaWx0ZXJPcGVyYXRpb246OkN1
c3RvbUZpbHRlck9wZXJhdGlvbihQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHBybwog
ICAgICwgbV9tZXNoVHlwZShtZXNoVHlwZSkKIHsKICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
cGFyYW1ldGVycyBhcmUgYWx3eWFzIHNvcnRlZCBieSBuYW1lLiBXZSB1c2UgdGhhdCB0byBtZXJn
ZSB0d28gQ3VzdG9tRmlsdGVyT3BlcmF0aW9ucyBpbiBhbmltYXRpb25zLgotICAgIEFTU0VSVChj
aGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcihtX3BhcmFtZXRlcnMpKTsKKyAgICBBU1NF
UlQobV9wYXJhbWV0ZXJzLmNoZWNrQWxwaGFiZXRpY2FsT3JkZXIoKSk7CiB9CiAgICAgCiBDdXN0
b21GaWx0ZXJPcGVyYXRpb246On5DdXN0b21GaWx0ZXJPcGVyYXRpb24oKQpAQCAtMTI5LDcgKzcy
LDcgQEAgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6
YmxlbmQoY29uc3QgRmlsdGVyT3BlcmF0aW9uKgogICAgICAgICByZXR1cm4gdGhpczsKICAgICAK
ICAgICBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IGFuaW1hdGVkUGFyYW1ldGVyczsKLSAgICBi
bGVuZEN1c3RvbUZpbHRlclBhcmFtZXRlcnMoZnJvbU9wLT5tX3BhcmFtZXRlcnMsIG1fcGFyYW1l
dGVycywgcHJvZ3Jlc3MsIHNpemUsIGFuaW1hdGVkUGFyYW1ldGVycyk7CisgICAgbV9wYXJhbWV0
ZXJzLmJsZW5kKGZyb21PcC0+bV9wYXJhbWV0ZXJzLCBwcm9ncmVzcywgc2l6ZSwgYW5pbWF0ZWRQ
YXJhbWV0ZXJzKTsKICAgICByZXR1cm4gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUobV9w
cm9ncmFtLCBhbmltYXRlZFBhcmFtZXRlcnMsIG1fbWVzaFJvd3MsIG1fbWVzaENvbHVtbnMsIG1f
bWVzaEJveFR5cGUsIG1fbWVzaFR5cGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRp
b24uaAppbmRleCAwZDY0ZDIzLi4zNGQyNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uLmgKQEAgLTMxLDIzICszMSwxNSBAQAogI2RlZmluZSBDdXN0b21GaWx0ZXJPcGVyYXRpb25f
aAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QuaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKIAotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIENTUyBT
aGFkZXJzCiAKLWNsYXNzIEN1c3RvbUZpbHRlclBhcmFtZXRlcjsKLXR5cGVkZWYgVmVjdG9yPFJl
ZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+ID4gQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDsK
LQotYm9vbCBjdXN0b21GaWx0ZXJQYXJhbWV0ZXJzRXF1YWwoY29uc3QgQ3VzdG9tRmlsdGVyUGFy
YW1ldGVyTGlzdCYsIGNvbnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmKTsKLXZvaWQgYmxl
bmRDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGNvbnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qm
IGxpc3RGcm9tLCBjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBsaXN0VG8sIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHByb2dyZXNzLCBjb25zdCBMYXlv
dXRTaXplJiwgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgcmVzdWx0TGlzdCk7Ci0KIGNsYXNz
IEN1c3RvbUZpbHRlck9wZXJhdGlvbiA6IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24gewogcHVibGlj
OgogICAgIGVudW0gTWVzaEJveFR5cGUgewpAQCAtOTIsMTEgKzg0LDExIEBAIHByaXZhdGU6CiAK
ICAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0
PGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KCZvKTsKICAgICAgICAgcmV0dXJuICptX3By
b2dyYW0uZ2V0KCkgPT0gKm90aGVyLT5tX3Byb2dyYW0uZ2V0KCkKLSAgICAgICAgICAgICAgICYm
IG1fbWVzaFJvd3MgPT0gb3RoZXItPm1fbWVzaFJvd3MKLSAgICAgICAgICAgICAgICYmIG1fbWVz
aENvbHVtbnMgPT0gb3RoZXItPm1fbWVzaENvbHVtbnMKLSAgICAgICAgICAgICAgICYmIG1fbWVz
aEJveFR5cGUgPT0gb3RoZXItPm1fbWVzaEJveFR5cGUKLSAgICAgICAgICAgICAgICYmIG1fbWVz
aFR5cGUgPT0gb3RoZXItPm1fbWVzaFR5cGUKLSAgICAgICAgICAgICAgICYmIGN1c3RvbUZpbHRl
clBhcmFtZXRlcnNFcXVhbChtX3BhcmFtZXRlcnMsIG90aGVyLT5tX3BhcmFtZXRlcnMpOworICAg
ICAgICAgICAgJiYgbV9tZXNoUm93cyA9PSBvdGhlci0+bV9tZXNoUm93cworICAgICAgICAgICAg
JiYgbV9tZXNoQ29sdW1ucyA9PSBvdGhlci0+bV9tZXNoQ29sdW1ucworICAgICAgICAgICAgJiYg
bV9tZXNoQm94VHlwZSA9PSBvdGhlci0+bV9tZXNoQm94VHlwZQorICAgICAgICAgICAgJiYgbV9t
ZXNoVHlwZSA9PSBvdGhlci0+bV9tZXNoVHlwZQorICAgICAgICAgICAgJiYgbV9wYXJhbWV0ZXJz
ID09IG90aGVyLT5tX3BhcmFtZXRlcnM7CiAgICAgfQogICAgIAogICAgIEN1c3RvbUZpbHRlck9w
ZXJhdGlvbihQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+LCBjb25zdCBDdXN0b21GaWx0
ZXJQYXJhbWV0ZXJMaXN0JiwgdW5zaWduZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5z
LCBNZXNoQm94VHlwZSwgTWVzaFR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUxZmUwNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMK
KyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisg
KiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIgorCisj
aW5jbHVkZSAiQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgQ3VzdG9tRmlsdGVyUGFy
YW1ldGVyTGlzdDo6b3BlcmF0b3I9PShjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBv
dGhlcikgY29uc3QKK3sKKyAgICBpZiAoc2l6ZSgpICE9IG90aGVyLnNpemUoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgaWYgKGF0KGkpLmdldCgpICE9IG90aGVyLmF0KGkpLmdldCgpIAorICAgICAgICAg
ICAgJiYgKmF0KGkpLmdldCgpICE9ICpvdGhlci5hdChpKS5nZXQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdDo6Y2hlY2tBbHBoYWJldGljYWxPcmRlcigpIGNvbnN0Cit7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IHNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIEJyZWFr
IGZvciBlcXVhbCBvciBub3Qtc29ydGVkIHBhcmFtZXRlcnMuCisgICAgICAgIGlmICghY29kZVBv
aW50Q29tcGFyZUxlc3NUaGFuKGF0KGkgLSAxKS0+bmFtZSgpLCBhdChpKS0+bmFtZSgpKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDo6YmxlbmQoY29uc3QgQ3VzdG9tRmlsdGVyUGFy
YW1ldGVyTGlzdCYgZnJvbUxpc3QsIAorICAgIGRvdWJsZSBwcm9ncmVzcywgY29uc3QgTGF5b3V0
U2l6ZSYgZnJhbWVTaXplLCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiByZXN1bHRMaXN0KSBj
b25zdAoreworICAgIC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgYm90aCBsaXN0cyB0byBiZSBzb3J0
ZWQgYnkgcGFyYW1ldGVyIG5hbWUgYW5kIHRoZSByZXN1bHQgbGlzdCBpcyBhbHNvIHNvcnRlZC4K
KyAgICBBU1NFUlQoY2hlY2tBbHBoYWJldGljYWxPcmRlcigpKTsKKyAgICBBU1NFUlQoZnJvbUxp
c3QuY2hlY2tBbHBoYWJldGljYWxPcmRlcigpKTsKKyAgICBzaXplX3QgZnJvbUxpc3RJbmRleCA9
IDAsIHRvTGlzdEluZGV4ID0gMDsKKyAgICB3aGlsZSAoZnJvbUxpc3RJbmRleCA8IGZyb21MaXN0
LnNpemUoKSAmJiB0b0xpc3RJbmRleCA8IHNpemUoKSkgeworICAgICAgICBDdXN0b21GaWx0ZXJQ
YXJhbWV0ZXIqIHBhcmFtRnJvbSA9IGZyb21MaXN0LmF0KGZyb21MaXN0SW5kZXgpLmdldCgpOwor
ICAgICAgICBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIqIHBhcmFtVG8gPSBhdCh0b0xpc3RJbmRleCku
Z2V0KCk7CisgICAgICAgIGlmIChwYXJhbUZyb20tPm5hbWUoKSA9PSBwYXJhbVRvLT5uYW1lKCkp
IHsKKyAgICAgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtVG8tPmJsZW5kKHBhcmFtRnJv
bSwgcHJvZ3Jlc3MsIGZyYW1lU2l6ZSkpOworICAgICAgICAgICAgKytmcm9tTGlzdEluZGV4Owor
ICAgICAgICAgICAgKyt0b0xpc3RJbmRleDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisgICAgICAgIGlmIChjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4ocGFyYW1Gcm9tLT5uYW1l
KCksIHBhcmFtVG8tPm5hbWUoKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHBh
cmFtRnJvbSk7CisgICAgICAgICAgICArK2Zyb21MaXN0SW5kZXg7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJhbVRvKTsKKyAg
ICAgICAgKyt0b0xpc3RJbmRleDsKKyAgICB9CisgICAgZm9yICg7IGZyb21MaXN0SW5kZXggPCBm
cm9tTGlzdC5zaXplKCk7ICsrZnJvbUxpc3RJbmRleCkKKyAgICAgICAgcmVzdWx0TGlzdC5hcHBl
bmQoZnJvbUxpc3QuYXQoZnJvbUxpc3RJbmRleCkpOworICAgIGZvciAoOyB0b0xpc3RJbmRleCA8
IHNpemUoKTsgKyt0b0xpc3RJbmRleCkKKyAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQoYXQodG9M
aXN0SW5kZXgpKTsKKyAgICBBU1NFUlQocmVzdWx0TGlzdC5jaGVja0FscGhhYmV0aWNhbE9yZGVy
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NT
X1NIQURFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMGQwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFk
b2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdF9oCisjZGVmaW5lIEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3RfaAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkxh
eW91dFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEN1c3RvbUZpbHRlclBhcmFtZXRlcjsKKworY2xhc3MgQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdCA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPEN1c3RvbUZpbHRlclBhcmFtZXRl
cj4gPiB7CitwdWJsaWM6CisgICAgYm9vbCBjaGVja0FscGhhYmV0aWNhbE9yZGVyKCkgY29uc3Q7
CisgICAgdm9pZCBibGVuZChjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBmcm9tLCBk
b3VibGUgcHJvZ3Jlc3MsIGNvbnN0IExheW91dFNpemUmLCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJM
aXN0JiByZXN1bHRMaXN0KSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ3VzdG9t
RmlsdGVyUGFyYW1ldGVyTGlzdCYpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdF9oCg==
</data>
<flag name="commit-queue"
          id="184763"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171025</attachid>
            <date>2012-10-26 15:03:58 -0700</date>
            <delta_ts>2012-10-26 15:20:57 -0700</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug100548_v2.patch</filename>
            <type>text/plain</type>
            <size>23521</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTY3Nzk4Ni4uNTE1NjRkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5MTEsNiArMTkxMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1JbmZvLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDJkNGZhMzQuLjFiZTg2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0xMC0y
NiAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBTaGFkZXJzXSBFeHRyYWN0IHRoZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IHRvIGl0cyBv
d24gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwNTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZWQgYWxsIHRoZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IHJlbGF0ZWQgbWV0aG9kcyB0
byB0aGVpciBvd24gZmlsZS4KKyAgICAgICAgQWxzbyBtYWRlIEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QgaW5oZXJpdCBmcm9tIFZlY3RvciBpbnN0ZWFkIG9mIHR5cGVkZWZpbmcgaXQsCisgICAg
ICAgIHNvIHRoYXQgd2UgY2FuIGFkZCBhIGRpZmZlcmVudCBvcGVyYXRvcj09IGFuZCBhIGJsZW5k
IG1ldGhvZCB0byBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgcmVmYWN0b3Jpbmcg
ZXhpc3RpbmcgY29kZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpDdXN0b21GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpjaGVja0FscGhhYmV0aWNhbE9yZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6OmJsZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QpOgorCiAyMDEyLTEwLTI1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNTQ0NjI2PiBbY2ddIFJlbmRlckJs
b2NrOjpzZWxlY3Rpb25HYXBzKCkgaXMgZXh0cmVtZWx5IHNsb3cgd2hlbiB0aGVyZSBhcmUgbWFu
eSBmbG9hdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM5ZTM3YjYuLjdlYjFj
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDMzNiw2ICs0MzM2LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmgg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQ
cm9ncmFtSW5mby5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNGNlOGYxMS4uOTQyYmI5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC0yMDc4LDYgKzIwNzgsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJUcmFuc2Zvcm1QYXJhbWV0ZXIu
aCBcCkBAIC0zNDkyLDYgKzM0OTMsNyBAQCBlbmFibGU/KEZJTFRFUlMpIHsKICAgICBTT1VSQ0VT
ICs9IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9i
YWxDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IGI5MjA0MTMuLjhmMWRjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTQ5NzcsNiArNDk3Nyw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZmE4ZGJmYS4uNDli
NGNmYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTMxOTI1LDYgKzMxOTI1LDE0IEBACiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZp
bGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8
RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEN1
c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8
RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEN1
c3RvbUZpbHRlclByb2dyYW0uY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjA2OTVk
NC4uMzc5OWIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTQ5OCw2ICsxNDk4LDggQEAKIAkJNTA4MUUzRTAzQ0ZGODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFk
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0
RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1
MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMg
LyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87IH07CisJCTUwOTMzMzRGMTYzQjBFNDMwMDA5OUE2
MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTMzMzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCAqLzsgfTsKKwkJNTA5MzMzNTAxNjNCMEU0MzAwMDk5
QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTMzMzRFMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggKi87IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgz
NSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAqLzsgfTsKIAkJNTA5ODdDMjcxNTdENjc2RDAwQkRB
ODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTg3QzI1MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0LmggKi87IH07CiAJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNC
RCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUwOUNDOUZBMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0
ZXJQYXJhbWV0ZXIuaCAqLzsgfTsKQEAgLTg3MDQsNiArODcwNiw4IEBACiAJCTUwODFFM0UxM0Qw
MjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1Ro
cmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbG93VGhyZWFk
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTRFMTNDRjEwNkIwMDMxNTFG
MyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MDkzMzM0RDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJQYXJh
bWV0ZXJMaXN0LmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwOTMzMzRFMTYzQjBFNDMwMDA5OUE2
MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaDsgcGF0aCA9IGZpbHRlcnMvQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MDk4N0MyNDE1N0Q2NzZEMDBCREE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJHbG9iYWxD
b250ZXh0LmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOTg3QzI1MTU3RDY3NkQwMEJEQTgzNSAv
KiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9t
RmlsdGVyR2xvYmFsQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDlD
QzlGQTE0QzA2OUVEMDBCQkVDQkQgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlclBhcmFtZXRlci5oOyBwYXRoID0g
ZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4MjQ0LDYgKzE4MjQ4LDggQEAKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8q
IGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTUwOTMzMzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNw
cCAqLywKKwkJCQk1MDkzMzM0RTE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdC5oICovLAogCQkJCTQ5RUNFQjVDMTQ5OTc5MEQwMENERDNBNCAvKiBhcm0gKi8sCiAJ
CQkJMTVCM0ZDMTcxNUZCMjE3ODAwQTgxQkNCIC8qIEN1c3RvbUZpbHRlckFycmF5UGFyYW1ldGVy
LmggKi8sCiAJCQkJNTBENDA2MEYxNDdENDlERTAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlckNvbXBp
bGVkUHJvZ3JhbS5jcHAgKi8sCkBAIC0yNTY3MSw2ICsyNTY3Nyw3IEBACiAJCQkJRTFCRTUxMkUw
Q0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTA5MzMzNTAxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg3ODQsNiArMjg3OTEsNyBAQAogCQkJCTk3N0UyRTBF
MTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
NTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUFCRjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3RyYXRlZ3kuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTA5MzMzNEYxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApp
bmRleCA3MjRhZDY2Li43YTlkMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAg
LTU5LDYgKzU5LDcgQEAgY2xhc3MgQ1NTVmFsdWU7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xh
c3MgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOwogY2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyOwor
Y2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIEZyYW1lOwpAQCAtOTIsMTAgKzkzLDYgQEAgY2xhc3MgV2ViS2l0Q1NT
RmlsdGVyVmFsdWU7CiBjbGFzcyBXZWJLaXRDU1NTaGFkZXJWYWx1ZTsKIGNsYXNzIFdlYktpdENT
U1NWR0RvY3VtZW50VmFsdWU7CiAKLSNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi10eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiA+IEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3Q7Ci0jZW5kaWYKLQogY2xhc3MgTWVkaWFRdWVyeVJlc3VsdCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTWVkaWFRdWVyeVJlc3VsdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwCmluZGV4IGVkNTdiNzMu
LmI5ZDM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAKQEAgLTM2LDY1
ICszNiw4IEBACiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIkZp
bHRlck9wZXJhdGlvbi5oIgogCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgY3VzdG9tRmlsdGVyUGFyYW1ldGVyc0VxdWFsKGNv
bnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmIGxpc3RBLCBjb25zdCBDdXN0b21GaWx0ZXJQ
YXJhbWV0ZXJMaXN0JiBsaXN0QikKLXsKLSAgICBpZiAobGlzdEEuc2l6ZSgpICE9IGxpc3RCLnNp
emUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdEEuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKGxpc3RBLmF0KGkpLmdldCgpICE9IGxp
c3RCLmF0KGkpLmdldCgpIAotICAgICAgICAgICAgJiYgKmxpc3RBLmF0KGkpLmdldCgpICE9ICps
aXN0Qi5hdChpKS5nZXQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLSNpZiAhQVNTRVJUX0RJU0FCTEVECi1zdGF0aWMgYm9vbCBjaGVj
a0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcihjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJM
aXN0JiBwYXJhbWV0ZXJzKQotewotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBwYXJhbWV0
ZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIC8vIEJyZWFrIGZvciBlcXVhbCBvciBub3Qtc29y
dGVkIHBhcmFtZXRlcnMuCi0gICAgICAgIGlmICghY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKHBh
cmFtZXRlcnMuYXQoaSAtIDEpLT5uYW1lKCksIHBhcmFtZXRlcnMuYXQoaSktPm5hbWUoKSkpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotI2Vu
ZGlmCi0KLXZvaWQgYmxlbmRDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGNvbnN0IEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QmIGZyb21MaXN0LCBjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0
JiB0b0xpc3QsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHByb2dy
ZXNzLCBjb25zdCBMYXlvdXRTaXplJiBzaXplLCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBy
ZXN1bHRMaXN0KQotewotICAgIC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgYm90aCBsaXN0cyB0byBi
ZSBzb3J0ZWQgYnkgcGFyYW1ldGVyIG5hbWUgYW5kIHRoZSByZXN1bHQgbGlzdCBpcyBhbHNvIHNv
cnRlZC4KLSAgICBBU1NFUlQoY2hlY2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIoZnJvbUxp
c3QpKTsKLSAgICBBU1NFUlQoY2hlY2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIodG9MaXN0
KSk7Ci0gICAgc2l6ZV90IGZyb21MaXN0SW5kZXggPSAwLCB0b0xpc3RJbmRleCA9IDA7Ci0gICAg
d2hpbGUgKGZyb21MaXN0SW5kZXggPCBmcm9tTGlzdC5zaXplKCkgJiYgdG9MaXN0SW5kZXggPCB0
b0xpc3Quc2l6ZSgpKSB7Ci0gICAgICAgIEN1c3RvbUZpbHRlclBhcmFtZXRlciogcGFyYW1Gcm9t
ID0gZnJvbUxpc3QuYXQoZnJvbUxpc3RJbmRleCkuZ2V0KCk7Ci0gICAgICAgIEN1c3RvbUZpbHRl
clBhcmFtZXRlciogcGFyYW1UbyA9IHRvTGlzdC5hdCh0b0xpc3RJbmRleCkuZ2V0KCk7Ci0gICAg
ICAgIGlmIChwYXJhbUZyb20tPm5hbWUoKSA9PSBwYXJhbVRvLT5uYW1lKCkpIHsKLSAgICAgICAg
ICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtVG8tPmJsZW5kKHBhcmFtRnJvbSwgcHJvZ3Jlc3Ms
IHNpemUpKTsKLSAgICAgICAgICAgICsrZnJvbUxpc3RJbmRleDsKLSAgICAgICAgICAgICsrdG9M
aXN0SW5kZXg7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKHBhcmFtRnJvbS0+bmFtZSgpLCBwYXJhbVRvLT5uYW1l
KCkpKSB7Ci0gICAgICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJhbUZyb20pOwotICAgICAg
ICAgICAgKytmcm9tTGlzdEluZGV4OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LSAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQocGFyYW1Ubyk7Ci0gICAgICAgICsrdG9MaXN0SW5k
ZXg7Ci0gICAgfQotICAgIGZvciAoOyBmcm9tTGlzdEluZGV4IDwgZnJvbUxpc3Quc2l6ZSgpOyAr
K2Zyb21MaXN0SW5kZXgpCi0gICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKGZyb21MaXN0LmF0KGZy
b21MaXN0SW5kZXgpKTsKLSAgICBmb3IgKDsgdG9MaXN0SW5kZXggPCB0b0xpc3Quc2l6ZSgpOyAr
K3RvTGlzdEluZGV4KQotICAgICAgICByZXN1bHRMaXN0LmFwcGVuZCh0b0xpc3QuYXQodG9MaXN0
SW5kZXgpKTsKLSAgICBBU1NFUlQoY2hlY2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIocmVz
dWx0TGlzdCkpOwotfQotCiBDdXN0b21GaWx0ZXJPcGVyYXRpb246OkN1c3RvbUZpbHRlck9wZXJh
dGlvbihQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0sIGNvbnN0IEN1c3Rv
bUZpbHRlclBhcmFtZXRlckxpc3QmIHNvcnRlZFBhcmFtZXRlcnMsIHVuc2lnbmVkIG1lc2hSb3dz
LCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUsIE1lc2hUeXBl
IG1lc2hUeXBlKQogICAgIDogRmlsdGVyT3BlcmF0aW9uKENVU1RPTSkKICAgICAsIG1fcHJvZ3Jh
bShwcm9ncmFtKQpAQCAtMTA1LDcgKzQ4LDcgQEAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpDdXN0
b21GaWx0ZXJPcGVyYXRpb24oUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiBwcm8KICAg
ICAsIG1fbWVzaFR5cGUobWVzaFR5cGUpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHBh
cmFtZXRlcnMgYXJlIGFsd3lhcyBzb3J0ZWQgYnkgbmFtZS4gV2UgdXNlIHRoYXQgdG8gbWVyZ2Ug
dHdvIEN1c3RvbUZpbHRlck9wZXJhdGlvbnMgaW4gYW5pbWF0aW9ucy4KLSAgICBBU1NFUlQoY2hl
Y2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIobV9wYXJhbWV0ZXJzKSk7CisgICAgQVNTRVJU
KG1fcGFyYW1ldGVycy5jaGVja0FscGhhYmV0aWNhbE9yZGVyKCkpOwogfQogICAgIAogQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uOjp+Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKCkKQEAgLTEyOSw3ICs3Miw3
IEBAIFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBDdXN0b21GaWx0ZXJPcGVyYXRpb246OmJs
ZW5kKGNvbnN0IEZpbHRlck9wZXJhdGlvbioKICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgCiAg
ICAgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCBhbmltYXRlZFBhcmFtZXRlcnM7Ci0gICAgYmxl
bmRDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGZyb21PcC0+bV9wYXJhbWV0ZXJzLCBtX3BhcmFtZXRl
cnMsIHByb2dyZXNzLCBzaXplLCBhbmltYXRlZFBhcmFtZXRlcnMpOworICAgIG1fcGFyYW1ldGVy
cy5ibGVuZChmcm9tT3AtPm1fcGFyYW1ldGVycywgcHJvZ3Jlc3MsIHNpemUsIGFuaW1hdGVkUGFy
YW1ldGVycyk7CiAgICAgcmV0dXJuIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKG1fcHJv
Z3JhbSwgYW5pbWF0ZWRQYXJhbWV0ZXJzLCBtX21lc2hSb3dzLCBtX21lc2hDb2x1bW5zLCBtX21l
c2hCb3hUeXBlLCBtX21lc2hUeXBlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmgKaW5kZXggMGQ2NGQyMy4uMzRkMjVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlv
bi5oCkBAIC0zMSwyMyArMzEsMTUgQEAKICNkZWZpbmUgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gK
IAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQYXJhbWV0
ZXJMaXN0LmgiCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIkZp
bHRlck9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAKLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBDU1MgU2hh
ZGVycwogCi1jbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI7Ci10eXBlZGVmIFZlY3RvcjxSZWZQ
dHI8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiA+IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q7Ci0K
LWJvb2wgY3VzdG9tRmlsdGVyUGFyYW1ldGVyc0VxdWFsKGNvbnN0IEN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QmLCBjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0Jik7Ci12b2lkIGJsZW5k
Q3VzdG9tRmlsdGVyUGFyYW1ldGVycyhjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBs
aXN0RnJvbSwgY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgbGlzdFRvLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBwcm9ncmVzcywgY29uc3QgTGF5b3V0
U2l6ZSYsIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmIHJlc3VsdExpc3QpOwotCiBjbGFzcyBD
dXN0b21GaWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMgRmlsdGVyT3BlcmF0aW9uIHsKIHB1YmxpYzoK
ICAgICBlbnVtIE1lc2hCb3hUeXBlIHsKQEAgLTkyLDExICs4NCwxMSBAQCBwcml2YXRlOgogCiAg
ICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxj
b25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qPigmbyk7CiAgICAgICAgIHJldHVybiAqbV9wcm9n
cmFtLmdldCgpID09ICpvdGhlci0+bV9wcm9ncmFtLmdldCgpCi0gICAgICAgICAgICAgICAmJiBt
X21lc2hSb3dzID09IG90aGVyLT5tX21lc2hSb3dzCi0gICAgICAgICAgICAgICAmJiBtX21lc2hD
b2x1bW5zID09IG90aGVyLT5tX21lc2hDb2x1bW5zCi0gICAgICAgICAgICAgICAmJiBtX21lc2hC
b3hUeXBlID09IG90aGVyLT5tX21lc2hCb3hUeXBlCi0gICAgICAgICAgICAgICAmJiBtX21lc2hU
eXBlID09IG90aGVyLT5tX21lc2hUeXBlCi0gICAgICAgICAgICAgICAmJiBjdXN0b21GaWx0ZXJQ
YXJhbWV0ZXJzRXF1YWwobV9wYXJhbWV0ZXJzLCBvdGhlci0+bV9wYXJhbWV0ZXJzKTsKKyAgICAg
ICAgICAgICYmIG1fbWVzaFJvd3MgPT0gb3RoZXItPm1fbWVzaFJvd3MKKyAgICAgICAgICAgICYm
IG1fbWVzaENvbHVtbnMgPT0gb3RoZXItPm1fbWVzaENvbHVtbnMKKyAgICAgICAgICAgICYmIG1f
bWVzaEJveFR5cGUgPT0gb3RoZXItPm1fbWVzaEJveFR5cGUKKyAgICAgICAgICAgICYmIG1fbWVz
aFR5cGUgPT0gb3RoZXItPm1fbWVzaFR5cGUKKyAgICAgICAgICAgICYmIG1fcGFyYW1ldGVycyA9
PSBvdGhlci0+bV9wYXJhbWV0ZXJzOwogICAgIH0KICAgICAKICAgICBDdXN0b21GaWx0ZXJPcGVy
YXRpb24oUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiwgY29uc3QgQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdCYsIHVuc2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1ucywg
TWVzaEJveFR5cGUsIE1lc2hUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OTAyNWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwor
ICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAq
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShD
U1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmgiCisKKyNp
bmNsdWRlICJDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3VzdG9tRmlsdGVyUGFyYW1ldGVy
TGlzdDo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCgpCit7Cit9CisKK0N1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3Q6OkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qoc2l6ZV90IHNpemUpCisgICAg
OiBWZWN0b3Ioc2l6ZSkgCit7Cit9CisKK2Jvb2wgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDo6
b3BlcmF0b3I9PShjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBvdGhlcikgY29uc3QK
K3sKKyAgICBpZiAoc2l6ZSgpICE9IG90aGVyLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYg
KGF0KGkpLmdldCgpICE9IG90aGVyLmF0KGkpLmdldCgpIAorICAgICAgICAgICAgJiYgKmF0KGkp
LmdldCgpICE9ICpvdGhlci5hdChpKS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ3VzdG9tRmlsdGVyUGFyYW1ldGVy
TGlzdDo6Y2hlY2tBbHBoYWJldGljYWxPcmRlcigpIGNvbnN0Cit7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMTsgaSA8IHNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIEJyZWFrIGZvciBlcXVhbCBv
ciBub3Qtc29ydGVkIHBhcmFtZXRlcnMuCisgICAgICAgIGlmICghY29kZVBvaW50Q29tcGFyZUxl
c3NUaGFuKGF0KGkgLSAxKS0+bmFtZSgpLCBhdChpKS0+bmFtZSgpKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdDo6YmxlbmQoY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYg
ZnJvbUxpc3QsIAorICAgIGRvdWJsZSBwcm9ncmVzcywgY29uc3QgTGF5b3V0U2l6ZSYgZnJhbWVT
aXplLCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiByZXN1bHRMaXN0KSBjb25zdAoreworICAg
IC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgYm90aCBsaXN0cyB0byBiZSBzb3J0ZWQgYnkgcGFyYW1l
dGVyIG5hbWUgYW5kIHRoZSByZXN1bHQgbGlzdCBpcyBhbHNvIHNvcnRlZC4KKyAgICBBU1NFUlQo
Y2hlY2tBbHBoYWJldGljYWxPcmRlcigpKTsKKyAgICBBU1NFUlQoZnJvbUxpc3QuY2hlY2tBbHBo
YWJldGljYWxPcmRlcigpKTsKKyAgICBzaXplX3QgZnJvbUxpc3RJbmRleCA9IDAsIHRvTGlzdElu
ZGV4ID0gMDsKKyAgICB3aGlsZSAoZnJvbUxpc3RJbmRleCA8IGZyb21MaXN0LnNpemUoKSAmJiB0
b0xpc3RJbmRleCA8IHNpemUoKSkgeworICAgICAgICBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIqIHBh
cmFtRnJvbSA9IGZyb21MaXN0LmF0KGZyb21MaXN0SW5kZXgpLmdldCgpOworICAgICAgICBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXIqIHBhcmFtVG8gPSBhdCh0b0xpc3RJbmRleCkuZ2V0KCk7CisgICAg
ICAgIGlmIChwYXJhbUZyb20tPm5hbWUoKSA9PSBwYXJhbVRvLT5uYW1lKCkpIHsKKyAgICAgICAg
ICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtVG8tPmJsZW5kKHBhcmFtRnJvbSwgcHJvZ3Jlc3Ms
IGZyYW1lU2l6ZSkpOworICAgICAgICAgICAgKytmcm9tTGlzdEluZGV4OworICAgICAgICAgICAg
Kyt0b0xpc3RJbmRleDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAg
IGlmIChjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4ocGFyYW1Gcm9tLT5uYW1lKCksIHBhcmFtVG8t
Pm5hbWUoKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtRnJvbSk7Cisg
ICAgICAgICAgICArK2Zyb21MaXN0SW5kZXg7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJhbVRvKTsKKyAgICAgICAgKyt0b0xp
c3RJbmRleDsKKyAgICB9CisgICAgZm9yICg7IGZyb21MaXN0SW5kZXggPCBmcm9tTGlzdC5zaXpl
KCk7ICsrZnJvbUxpc3RJbmRleCkKKyAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQoZnJvbUxpc3Qu
YXQoZnJvbUxpc3RJbmRleCkpOworICAgIGZvciAoOyB0b0xpc3RJbmRleCA8IHNpemUoKTsgKyt0
b0xpc3RJbmRleCkKKyAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQoYXQodG9MaXN0SW5kZXgpKTsK
KyAgICBBU1NFUlQocmVzdWx0TGlzdC5jaGVja0FscGhhYmV0aWNhbE9yZGVyKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3Rv
bUZpbHRlclBhcmFtZXRlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQ3Mzc2OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMg
SW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICog
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdF9oCisjZGVmaW5lIEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3RfaAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkxheW91dFR5cGVzLmgi
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEN1c3RvbUZpbHRlclBhcmFtZXRlcjsKKworY2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlz
dCA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPEN1c3RvbUZpbHRlclBhcmFtZXRlcj4gPiB7CitwdWJs
aWM6CisJQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCgpOworICAgIGV4cGxpY2l0IEN1c3RvbUZp
bHRlclBhcmFtZXRlckxpc3Qoc2l6ZV90IHNpemUpOworCisgICAgYm9vbCBjaGVja0FscGhhYmV0
aWNhbE9yZGVyKCkgY29uc3Q7CisgICAgdm9pZCBibGVuZChjb25zdCBDdXN0b21GaWx0ZXJQYXJh
bWV0ZXJMaXN0JiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGNvbnN0IExheW91dFNpemUmLCBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiByZXN1bHRMaXN0KSBjb25zdDsKKyAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYpIGNvbnN0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisj
ZW5kaWYgLy8gQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdF9oCg==
</data>
<flag name="commit-queue"
          id="184799"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171026</attachid>
            <date>2012-10-26 15:20:57 -0700</date>
            <delta_ts>2012-10-29 09:22:37 -0700</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug100548_v3.patch</filename>
            <type>text/plain</type>
            <size>23612</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTY3Nzk4Ni4uNTE1NjRkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5MTEsNiArMTkxMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1JbmZvLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDJkNGZhMzQuLjFiZTg2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0xMC0y
NiAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBTaGFkZXJzXSBFeHRyYWN0IHRoZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IHRvIGl0cyBv
d24gZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwNTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZWQgYWxsIHRoZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IHJlbGF0ZWQgbWV0aG9kcyB0
byB0aGVpciBvd24gZmlsZS4KKyAgICAgICAgQWxzbyBtYWRlIEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QgaW5oZXJpdCBmcm9tIFZlY3RvciBpbnN0ZWFkIG9mIHR5cGVkZWZpbmcgaXQsCisgICAg
ICAgIHNvIHRoYXQgd2UgY2FuIGFkZCBhIGRpZmZlcmVudCBvcGVyYXRvcj09IGFuZCBhIGJsZW5k
IG1ldGhvZCB0byBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgcmVmYWN0b3Jpbmcg
ZXhpc3RpbmcgY29kZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpDdXN0b21GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpjaGVja0FscGhhYmV0aWNhbE9yZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6OmJsZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QpOgorCiAyMDEyLTEwLTI1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNTQ0NjI2PiBbY2ddIFJlbmRlckJs
b2NrOjpzZWxlY3Rpb25HYXBzKCkgaXMgZXh0cmVtZWx5IHNsb3cgd2hlbiB0aGVyZSBhcmUgbWFu
eSBmbG9hdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM5ZTM3YjYuLjdlYjFj
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDMzNiw2ICs0MzM2LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmgg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQ
cm9ncmFtSW5mby5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNGNlOGYxMS4uOTQyYmI5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC0yMDc4LDYgKzIwNzgsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJUcmFuc2Zvcm1QYXJhbWV0ZXIu
aCBcCkBAIC0zNDkyLDYgKzM0OTMsNyBAQCBlbmFibGU/KEZJTFRFUlMpIHsKICAgICBTT1VSQ0VT
ICs9IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9i
YWxDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IGI5MjA0MTMuLjhmMWRjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTQ5NzcsNiArNDk3Nyw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZmE4ZGJmYS4uNDli
NGNmYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTMxOTI1LDYgKzMxOTI1LDE0IEBACiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZp
bGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8
RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEN1
c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8
RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEN1
c3RvbUZpbHRlclByb2dyYW0uY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjA2OTVk
NC4uMzc5OWIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTQ5OCw2ICsxNDk4LDggQEAKIAkJNTA4MUUzRTAzQ0ZGODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFk
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0
RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1
MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMg
LyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87IH07CisJCTUwOTMzMzRGMTYzQjBFNDMwMDA5OUE2
MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTMzMzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCAqLzsgfTsKKwkJNTA5MzMzNTAxNjNCMEU0MzAwMDk5
QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTMzMzRFMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggKi87IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgz
NSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAqLzsgfTsKIAkJNTA5ODdDMjcxNTdENjc2RDAwQkRB
ODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOTg3QzI1MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0LmggKi87IH07CiAJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNC
RCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUwOUNDOUZBMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0
ZXJQYXJhbWV0ZXIuaCAqLzsgfTsKQEAgLTg3MDQsNiArODcwNiw4IEBACiAJCTUwODFFM0UxM0Qw
MjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1Ro
cmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbG93VGhyZWFk
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTRFMTNDRjEwNkIwMDMxNTFG
MyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MDkzMzM0RDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJQYXJh
bWV0ZXJMaXN0LmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwOTMzMzRFMTYzQjBFNDMwMDA5OUE2
MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaDsgcGF0aCA9IGZpbHRlcnMvQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MDk4N0MyNDE1N0Q2NzZEMDBCREE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJHbG9iYWxD
b250ZXh0LmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOTg3QzI1MTU3RDY3NkQwMEJEQTgzNSAv
KiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9t
RmlsdGVyR2xvYmFsQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDlD
QzlGQTE0QzA2OUVEMDBCQkVDQkQgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlclBhcmFtZXRlci5oOyBwYXRoID0g
ZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4MjQ0LDYgKzE4MjQ4LDggQEAKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8q
IGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTUwOTMzMzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNw
cCAqLywKKwkJCQk1MDkzMzM0RTE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdC5oICovLAogCQkJCTQ5RUNFQjVDMTQ5OTc5MEQwMENERDNBNCAvKiBhcm0gKi8sCiAJ
CQkJMTVCM0ZDMTcxNUZCMjE3ODAwQTgxQkNCIC8qIEN1c3RvbUZpbHRlckFycmF5UGFyYW1ldGVy
LmggKi8sCiAJCQkJNTBENDA2MEYxNDdENDlERTAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlckNvbXBp
bGVkUHJvZ3JhbS5jcHAgKi8sCkBAIC0yNTY3MSw2ICsyNTY3Nyw3IEBACiAJCQkJRTFCRTUxMkUw
Q0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTA5MzMzNTAxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg3ODQsNiArMjg3OTEsNyBAQAogCQkJCTk3N0UyRTBF
MTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
NTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUFCRjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3RyYXRlZ3kuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTA5MzMzNEYxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApp
bmRleCA3MjRhZDY2Li43YTlkMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAg
LTU5LDYgKzU5LDcgQEAgY2xhc3MgQ1NTVmFsdWU7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xh
c3MgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOwogY2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyOwor
Y2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIEZyYW1lOwpAQCAtOTIsMTAgKzkzLDYgQEAgY2xhc3MgV2ViS2l0Q1NT
RmlsdGVyVmFsdWU7CiBjbGFzcyBXZWJLaXRDU1NTaGFkZXJWYWx1ZTsKIGNsYXNzIFdlYktpdENT
U1NWR0RvY3VtZW50VmFsdWU7CiAKLSNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi10eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiA+IEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3Q7Ci0jZW5kaWYKLQogY2xhc3MgTWVkaWFRdWVyeVJlc3VsdCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTWVkaWFRdWVyeVJlc3VsdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwCmluZGV4IGVkNTdiNzMu
LmI5ZDM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAKQEAgLTM2LDY1
ICszNiw4IEBACiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIkZp
bHRlck9wZXJhdGlvbi5oIgogCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgY3VzdG9tRmlsdGVyUGFyYW1ldGVyc0VxdWFsKGNv
bnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmIGxpc3RBLCBjb25zdCBDdXN0b21GaWx0ZXJQ
YXJhbWV0ZXJMaXN0JiBsaXN0QikKLXsKLSAgICBpZiAobGlzdEEuc2l6ZSgpICE9IGxpc3RCLnNp
emUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdEEuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKGxpc3RBLmF0KGkpLmdldCgpICE9IGxp
c3RCLmF0KGkpLmdldCgpIAotICAgICAgICAgICAgJiYgKmxpc3RBLmF0KGkpLmdldCgpICE9ICps
aXN0Qi5hdChpKS5nZXQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLSNpZiAhQVNTRVJUX0RJU0FCTEVECi1zdGF0aWMgYm9vbCBjaGVj
a0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcihjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJM
aXN0JiBwYXJhbWV0ZXJzKQotewotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBwYXJhbWV0
ZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIC8vIEJyZWFrIGZvciBlcXVhbCBvciBub3Qtc29y
dGVkIHBhcmFtZXRlcnMuCi0gICAgICAgIGlmICghY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKHBh
cmFtZXRlcnMuYXQoaSAtIDEpLT5uYW1lKCksIHBhcmFtZXRlcnMuYXQoaSktPm5hbWUoKSkpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotI2Vu
ZGlmCi0KLXZvaWQgYmxlbmRDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGNvbnN0IEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QmIGZyb21MaXN0LCBjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0
JiB0b0xpc3QsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHByb2dy
ZXNzLCBjb25zdCBMYXlvdXRTaXplJiBzaXplLCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBy
ZXN1bHRMaXN0KQotewotICAgIC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgYm90aCBsaXN0cyB0byBi
ZSBzb3J0ZWQgYnkgcGFyYW1ldGVyIG5hbWUgYW5kIHRoZSByZXN1bHQgbGlzdCBpcyBhbHNvIHNv
cnRlZC4KLSAgICBBU1NFUlQoY2hlY2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIoZnJvbUxp
c3QpKTsKLSAgICBBU1NFUlQoY2hlY2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIodG9MaXN0
KSk7Ci0gICAgc2l6ZV90IGZyb21MaXN0SW5kZXggPSAwLCB0b0xpc3RJbmRleCA9IDA7Ci0gICAg
d2hpbGUgKGZyb21MaXN0SW5kZXggPCBmcm9tTGlzdC5zaXplKCkgJiYgdG9MaXN0SW5kZXggPCB0
b0xpc3Quc2l6ZSgpKSB7Ci0gICAgICAgIEN1c3RvbUZpbHRlclBhcmFtZXRlciogcGFyYW1Gcm9t
ID0gZnJvbUxpc3QuYXQoZnJvbUxpc3RJbmRleCkuZ2V0KCk7Ci0gICAgICAgIEN1c3RvbUZpbHRl
clBhcmFtZXRlciogcGFyYW1UbyA9IHRvTGlzdC5hdCh0b0xpc3RJbmRleCkuZ2V0KCk7Ci0gICAg
ICAgIGlmIChwYXJhbUZyb20tPm5hbWUoKSA9PSBwYXJhbVRvLT5uYW1lKCkpIHsKLSAgICAgICAg
ICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtVG8tPmJsZW5kKHBhcmFtRnJvbSwgcHJvZ3Jlc3Ms
IHNpemUpKTsKLSAgICAgICAgICAgICsrZnJvbUxpc3RJbmRleDsKLSAgICAgICAgICAgICsrdG9M
aXN0SW5kZXg7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKHBhcmFtRnJvbS0+bmFtZSgpLCBwYXJhbVRvLT5uYW1l
KCkpKSB7Ci0gICAgICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJhbUZyb20pOwotICAgICAg
ICAgICAgKytmcm9tTGlzdEluZGV4OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LSAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQocGFyYW1Ubyk7Ci0gICAgICAgICsrdG9MaXN0SW5k
ZXg7Ci0gICAgfQotICAgIGZvciAoOyBmcm9tTGlzdEluZGV4IDwgZnJvbUxpc3Quc2l6ZSgpOyAr
K2Zyb21MaXN0SW5kZXgpCi0gICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKGZyb21MaXN0LmF0KGZy
b21MaXN0SW5kZXgpKTsKLSAgICBmb3IgKDsgdG9MaXN0SW5kZXggPCB0b0xpc3Quc2l6ZSgpOyAr
K3RvTGlzdEluZGV4KQotICAgICAgICByZXN1bHRMaXN0LmFwcGVuZCh0b0xpc3QuYXQodG9MaXN0
SW5kZXgpKTsKLSAgICBBU1NFUlQoY2hlY2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIocmVz
dWx0TGlzdCkpOwotfQotCiBDdXN0b21GaWx0ZXJPcGVyYXRpb246OkN1c3RvbUZpbHRlck9wZXJh
dGlvbihQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0sIGNvbnN0IEN1c3Rv
bUZpbHRlclBhcmFtZXRlckxpc3QmIHNvcnRlZFBhcmFtZXRlcnMsIHVuc2lnbmVkIG1lc2hSb3dz
LCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUsIE1lc2hUeXBl
IG1lc2hUeXBlKQogICAgIDogRmlsdGVyT3BlcmF0aW9uKENVU1RPTSkKICAgICAsIG1fcHJvZ3Jh
bShwcm9ncmFtKQpAQCAtMTA1LDcgKzQ4LDcgQEAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpDdXN0
b21GaWx0ZXJPcGVyYXRpb24oUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiBwcm8KICAg
ICAsIG1fbWVzaFR5cGUobWVzaFR5cGUpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHBh
cmFtZXRlcnMgYXJlIGFsd3lhcyBzb3J0ZWQgYnkgbmFtZS4gV2UgdXNlIHRoYXQgdG8gbWVyZ2Ug
dHdvIEN1c3RvbUZpbHRlck9wZXJhdGlvbnMgaW4gYW5pbWF0aW9ucy4KLSAgICBBU1NFUlQoY2hl
Y2tDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzT3JkZXIobV9wYXJhbWV0ZXJzKSk7CisgICAgQVNTRVJU
KG1fcGFyYW1ldGVycy5jaGVja0FscGhhYmV0aWNhbE9yZGVyKCkpOwogfQogICAgIAogQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uOjp+Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKCkKQEAgLTEyOSw3ICs3Miw3
IEBAIFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBDdXN0b21GaWx0ZXJPcGVyYXRpb246OmJs
ZW5kKGNvbnN0IEZpbHRlck9wZXJhdGlvbioKICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgCiAg
ICAgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCBhbmltYXRlZFBhcmFtZXRlcnM7Ci0gICAgYmxl
bmRDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGZyb21PcC0+bV9wYXJhbWV0ZXJzLCBtX3BhcmFtZXRl
cnMsIHByb2dyZXNzLCBzaXplLCBhbmltYXRlZFBhcmFtZXRlcnMpOworICAgIG1fcGFyYW1ldGVy
cy5ibGVuZChmcm9tT3AtPm1fcGFyYW1ldGVycywgcHJvZ3Jlc3MsIHNpemUsIGFuaW1hdGVkUGFy
YW1ldGVycyk7CiAgICAgcmV0dXJuIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKG1fcHJv
Z3JhbSwgYW5pbWF0ZWRQYXJhbWV0ZXJzLCBtX21lc2hSb3dzLCBtX21lc2hDb2x1bW5zLCBtX21l
c2hCb3hUeXBlLCBtX21lc2hUeXBlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmgKaW5kZXggMGQ2NGQyMy4uMzRkMjVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlv
bi5oCkBAIC0zMSwyMyArMzEsMTUgQEAKICNkZWZpbmUgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gK
IAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQYXJhbWV0
ZXJMaXN0LmgiCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIkZp
bHRlck9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAKLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBDU1MgU2hh
ZGVycwogCi1jbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI7Ci10eXBlZGVmIFZlY3RvcjxSZWZQ
dHI8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiA+IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q7Ci0K
LWJvb2wgY3VzdG9tRmlsdGVyUGFyYW1ldGVyc0VxdWFsKGNvbnN0IEN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QmLCBjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0Jik7Ci12b2lkIGJsZW5k
Q3VzdG9tRmlsdGVyUGFyYW1ldGVycyhjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBs
aXN0RnJvbSwgY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgbGlzdFRvLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBwcm9ncmVzcywgY29uc3QgTGF5b3V0
U2l6ZSYsIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmIHJlc3VsdExpc3QpOwotCiBjbGFzcyBD
dXN0b21GaWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMgRmlsdGVyT3BlcmF0aW9uIHsKIHB1YmxpYzoK
ICAgICBlbnVtIE1lc2hCb3hUeXBlIHsKQEAgLTkyLDExICs4NCwxMSBAQCBwcml2YXRlOgogCiAg
ICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxj
b25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qPigmbyk7CiAgICAgICAgIHJldHVybiAqbV9wcm9n
cmFtLmdldCgpID09ICpvdGhlci0+bV9wcm9ncmFtLmdldCgpCi0gICAgICAgICAgICAgICAmJiBt
X21lc2hSb3dzID09IG90aGVyLT5tX21lc2hSb3dzCi0gICAgICAgICAgICAgICAmJiBtX21lc2hD
b2x1bW5zID09IG90aGVyLT5tX21lc2hDb2x1bW5zCi0gICAgICAgICAgICAgICAmJiBtX21lc2hC
b3hUeXBlID09IG90aGVyLT5tX21lc2hCb3hUeXBlCi0gICAgICAgICAgICAgICAmJiBtX21lc2hU
eXBlID09IG90aGVyLT5tX21lc2hUeXBlCi0gICAgICAgICAgICAgICAmJiBjdXN0b21GaWx0ZXJQ
YXJhbWV0ZXJzRXF1YWwobV9wYXJhbWV0ZXJzLCBvdGhlci0+bV9wYXJhbWV0ZXJzKTsKKyAgICAg
ICAgICAgICYmIG1fbWVzaFJvd3MgPT0gb3RoZXItPm1fbWVzaFJvd3MKKyAgICAgICAgICAgICYm
IG1fbWVzaENvbHVtbnMgPT0gb3RoZXItPm1fbWVzaENvbHVtbnMKKyAgICAgICAgICAgICYmIG1f
bWVzaEJveFR5cGUgPT0gb3RoZXItPm1fbWVzaEJveFR5cGUKKyAgICAgICAgICAgICYmIG1fbWVz
aFR5cGUgPT0gb3RoZXItPm1fbWVzaFR5cGUKKyAgICAgICAgICAgICYmIG1fcGFyYW1ldGVycyA9
PSBvdGhlci0+bV9wYXJhbWV0ZXJzOwogICAgIH0KICAgICAKICAgICBDdXN0b21GaWx0ZXJPcGVy
YXRpb24oUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiwgY29uc3QgQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdCYsIHVuc2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1ucywg
TWVzaEJveFR5cGUsIE1lc2hUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNjMzZTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0N1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwor
ICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAq
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShD
U1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmgiCisKKyNp
bmNsdWRlICJDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3VzdG9tRmlsdGVyUGFyYW1ldGVy
TGlzdDo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCgpCit7Cit9CisKK0N1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3Q6OkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qoc2l6ZV90IHNpemUpCisgICAg
OiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0QmFzZShzaXplKSAKK3sKK30KKworYm9vbCBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpvcGVyYXRvcj09KGNvbnN0IEN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QmIG90aGVyKSBjb25zdAoreworICAgIGlmIChzaXplKCkgIT0gb3RoZXIuc2l6ZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAoYXQoaSkuZ2V0KCkgIT0gb3RoZXIuYXQoaSkuZ2V0KCkg
CisgICAgICAgICAgICAmJiAqYXQoaSkuZ2V0KCkgIT0gKm90aGVyLmF0KGkpLmdldCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpjaGVja0FscGhhYmV0aWNhbE9yZGVyKCkgY29u
c3QKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgLy8gQnJlYWsgZm9yIGVxdWFsIG9yIG5vdC1zb3J0ZWQgcGFyYW1ldGVycy4KKyAgICAgICAg
aWYgKCFjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXQoaSAtIDEpLT5uYW1lKCksIGF0KGkpLT5u
YW1lKCkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpibGVuZChjb25zdCBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBmcm9tTGlzdCwgCisgICAgZG91YmxlIHByb2dyZXNzLCBj
b25zdCBMYXlvdXRTaXplJiBmcmFtZVNpemUsIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmIHJl
c3VsdExpc3QpIGNvbnN0Cit7CisgICAgLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBib3RoIGxpc3Rz
IHRvIGJlIHNvcnRlZCBieSBwYXJhbWV0ZXIgbmFtZSBhbmQgdGhlIHJlc3VsdCBsaXN0IGlzIGFs
c28gc29ydGVkLgorICAgIEFTU0VSVChjaGVja0FscGhhYmV0aWNhbE9yZGVyKCkpOworICAgIEFT
U0VSVChmcm9tTGlzdC5jaGVja0FscGhhYmV0aWNhbE9yZGVyKCkpOworICAgIHNpemVfdCBmcm9t
TGlzdEluZGV4ID0gMCwgdG9MaXN0SW5kZXggPSAwOworICAgIHdoaWxlIChmcm9tTGlzdEluZGV4
IDwgZnJvbUxpc3Quc2l6ZSgpICYmIHRvTGlzdEluZGV4IDwgc2l6ZSgpKSB7CisgICAgICAgIEN1
c3RvbUZpbHRlclBhcmFtZXRlciogcGFyYW1Gcm9tID0gZnJvbUxpc3QuYXQoZnJvbUxpc3RJbmRl
eCkuZ2V0KCk7CisgICAgICAgIEN1c3RvbUZpbHRlclBhcmFtZXRlciogcGFyYW1UbyA9IGF0KHRv
TGlzdEluZGV4KS5nZXQoKTsKKyAgICAgICAgaWYgKHBhcmFtRnJvbS0+bmFtZSgpID09IHBhcmFt
VG8tPm5hbWUoKSkgeworICAgICAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQocGFyYW1Uby0+Ymxl
bmQocGFyYW1Gcm9tLCBwcm9ncmVzcywgZnJhbWVTaXplKSk7CisgICAgICAgICAgICArK2Zyb21M
aXN0SW5kZXg7CisgICAgICAgICAgICArK3RvTGlzdEluZGV4OworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihwYXJh
bUZyb20tPm5hbWUoKSwgcGFyYW1Uby0+bmFtZSgpKSkgeworICAgICAgICAgICAgcmVzdWx0TGlz
dC5hcHBlbmQocGFyYW1Gcm9tKTsKKyAgICAgICAgICAgICsrZnJvbUxpc3RJbmRleDsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHBh
cmFtVG8pOworICAgICAgICArK3RvTGlzdEluZGV4OworICAgIH0KKyAgICBmb3IgKDsgZnJvbUxp
c3RJbmRleCA8IGZyb21MaXN0LnNpemUoKTsgKytmcm9tTGlzdEluZGV4KQorICAgICAgICByZXN1
bHRMaXN0LmFwcGVuZChmcm9tTGlzdC5hdChmcm9tTGlzdEluZGV4KSk7CisgICAgZm9yICg7IHRv
TGlzdEluZGV4IDwgc2l6ZSgpOyArK3RvTGlzdEluZGV4KQorICAgICAgICByZXN1bHRMaXN0LmFw
cGVuZChhdCh0b0xpc3RJbmRleCkpOworICAgIEFTU0VSVChyZXN1bHRMaXN0LmNoZWNrQWxwaGFi
ZXRpY2FsT3JkZXIoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShDU1NfU0hBREVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI2NzU2ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyUGFyYW1ldGVyTGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICog
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0X2gKKyNkZWZpbmUg
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdF9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisj
aW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyOwordHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPEN1c3RvbUZpbHRlclBhcmFtZXRlcj4gPiBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXJMaXN0QmFzZTsKKworY2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCA6IHB1YmxpYyBD
dXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0QmFzZSB7CitwdWJsaWM6CisgICAgQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdCgpOworICAgIGV4cGxpY2l0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qo
c2l6ZV90KTsKKworICAgIGJvb2wgY2hlY2tBbHBoYWJldGljYWxPcmRlcigpIGNvbnN0OworICAg
IHZvaWQgYmxlbmQoY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgZnJvbSwgZG91Ymxl
IHByb2dyZXNzLCBjb25zdCBMYXlvdXRTaXplJiwgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYg
cmVzdWx0TGlzdCkgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QmKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlmIC8vIEN1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3RfaAo=
</data>
<flag name="review"
          id="184800"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="184801"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171258</attachid>
            <date>2012-10-29 09:22:37 -0700</date>
            <delta_ts>2012-10-29 09:50:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug100548_v4.patch</filename>
            <type>text/plain</type>
            <size>23620</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTFiOWVkZC4uZjhhZTliZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5MTEsNiArMTkxMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAwN2RlZGU5Li5mMmRmZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTIt
MTAtMjkgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgU2hhZGVyc10gRXh0cmFjdCB0aGUgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCB0byBp
dHMgb3duIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDU0OAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAg
ICBNb3ZlZCBhbGwgdGhlIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QgcmVsYXRlZCBtZXRob2Rz
IHRvIHRoZWlyIG93biBmaWxlLgorICAgICAgICBBbHNvIG1hZGUgQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdCBpbmhlcml0IGZyb20gVmVjdG9yIGluc3RlYWQgb2YgdHlwZWRlZmluZyBpdCwKKyAg
ICAgICAgc28gdGhhdCB3ZSBjYW4gYWRkIGEgZGlmZmVyZW50IG9wZXJhdG9yPT0gYW5kIGEgYmxl
bmQgbWV0aG9kIHRvIGl0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCByZWZhY3Rvcmlu
ZyBleGlzdGluZyBjb2RlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDdXN0b21GaWx0ZXJPcGVyYXRpb246OkN1c3RvbUZpbHRlck9wZXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDdXN0b21GaWx0ZXJPcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJPcGVyYXRpb246Om9wZXJh
dG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdlYkNvcmU6OkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6OmNoZWNrQWxwaGFiZXRpY2FsT3Jk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdDo6YmxlbmQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdCk6CisKIDIwMTItMTAtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFRleHQgd2l0aCB6ZXJvIGZvbnQgc2l6ZSBy
ZW5kZXJzIGFzIFggcHggc29tZXRpbWVzLCBjYXVzaW5nIGZhc3QvdGV4dC96ZXJvLWZvbnQtc2l6
ZS0yLmh0bWwgdG8gZmFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMWEwNWEw
OS4uYjBiZGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MzM2LDYgKzQz
MzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJh
bWV0ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJv
Z3JhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3Rv
bUZpbHRlclByb2dyYW1JbmZvLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAyYWU1MDIyLi40MDA0ZDFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKQEAgLTIwNzgsNiArMjA3OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggXAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclRyYW5zZm9ybVBh
cmFtZXRlci5oIFwKQEAgLTM0OTIsNiArMzQ5Myw3IEBAIGVuYWJsZT8oRklMVEVSUykgewogICAg
IFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlckdsb2JhbENvbnRleHQuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBcCiAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1JbmZvLmNwcCBcCiAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFt
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYWFkMDJjOS4uODkwYzBiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNDk3Nyw2ICs0OTc3LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5YWJj
NDkwLi5iNTYwMTliIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMzE5MjUsNiArMzE5MjUsMTQgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgog
CQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0
ZXJzXEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+
CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZp
bHRlcnNcQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+
CisJCQkJCTxGaWxlCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZp
bHRlcnNcQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1MzhkM2Y4Li44MjJjMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDk4LDYgKzE0OTgsOCBAQAogCQk1MDgxRTNFMDND
RkY4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZs
b3dUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi87IH07CiAJ
CTUwOENDQTUwMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTRFMTNDRjEwNkIw
MDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLzsgfTsKKwkJNTA5MzMzNEYxNjNCMEU0
MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5MzMzNEQxNjNCMEU0MzAwMDk5QTYw
IC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwICovOyB9OworCQk1MDkzMzM1MDE2M0Iw
RTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5MzMzNEUxNjNCMEU0MzAwMDk5QTYw
IC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCAqLzsgfTsKIAkJNTA5ODdDMjYxNTdENjc2
RDAwQkRBODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5ODdDMjQxNTdENjc2RDAwQkRBODM1
IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwICovOyB9OwogCQk1MDk4N0MyNzE1N0Q2
NzZEMDBCREE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5ODdDMjUxNTdENjc2RDAwQkRBODM1
IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCAqLzsgfTsKIAkJNTA5Q0M5RkIxNEMwNjlF
RDAwQkJFQ0JEIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5Q0M5RkExNEMwNjlFRDAwQkJFQ0JEIC8qIEN1
c3RvbUZpbHRlclBhcmFtZXRlci5oICovOyB9OwpAQCAtODcwNCw2ICs4NzA2LDggQEAKIAkJNTA4
MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5k
ZXJGbG93VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZs
b3dUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA4Q0NBNEUxM0NGMTA2
QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVuZGVyRmxvd1RocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUwOTMzMzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1c3RvbUZp
bHRlclBhcmFtZXRlckxpc3QuY3BwOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0
ZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA5MzMzNEUxNjNCMEU0
MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5oOyBwYXRoID0gZmls
dGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUwOTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1c3RvbUZpbHRl
ckdsb2JhbENvbnRleHQuY3BwOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA5ODdDMjUxNTdENjc2RDAw
QkRBODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5oOyBwYXRoID0gZmlsdGVy
cy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUwOUNDOUZBMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmg7
IHBhdGggPSBmaWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTgyNDQsNiArMTgyNDgsOCBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3
RjI0ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNTA5MzMzNEQxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QuY3BwICovLAorCQkJCTUwOTMzMzRFMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0
ZXJQYXJhbWV0ZXJMaXN0LmggKi8sCiAJCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0IC8qIGFy
bSAqLywKIAkJCQkxNUIzRkMxNzE1RkIyMTc4MDBBODFCQ0IgLyogQ3VzdG9tRmlsdGVyQXJyYXlQ
YXJhbWV0ZXIuaCAqLywKIAkJCQk1MEQ0MDYwRjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmls
dGVyQ29tcGlsZWRQcm9ncmFtLmNwcCAqLywKQEAgLTI1NjcxLDYgKzI1Njc3LDcgQEAKIAkJCQlF
MUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MDkzMzM1MDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFy
YW1ldGVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODc4NCw2ICsyODc5MSw3IEBACiAJCQkJ
OTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxQUJGNjREMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1MDkzMzM0RjE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oCmluZGV4IGIxZjI1MTYuLjRiM2VjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBDU1NWYWx1ZTsKIGNsYXNzIENvbnRhaW5lck5v
ZGU7CiBjbGFzcyBDdXN0b21GaWx0ZXJPcGVyYXRpb247CiBjbGFzcyBDdXN0b21GaWx0ZXJQYXJh
bWV0ZXI7CitjbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0OwogY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CkBAIC05NSwxMCArOTYsNiBAQCBjbGFzcyBX
ZWJLaXRDU1NGaWx0ZXJWYWx1ZTsKIGNsYXNzIFdlYktpdENTU1NoYWRlclZhbHVlOwogY2xhc3Mg
V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTsKIAotI2lmIEVOQUJMRShDU1NfU0hBREVSUykKLXR5
cGVkZWYgVmVjdG9yPFJlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+ID4gQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdDsKLSNlbmRpZgotCiBjbGFzcyBNZWRpYVF1ZXJ5UmVzdWx0IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVF1ZXJ5UmVzdWx0KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAKaW5kZXgg
ZWQ1N2I3My4uYjlkMzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcApA
QCAtMzYsNjUgKzM2LDggQEAKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5j
bHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCiAKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBjdXN0b21GaWx0ZXJQYXJhbWV0ZXJz
RXF1YWwoY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgbGlzdEEsIGNvbnN0IEN1c3Rv
bUZpbHRlclBhcmFtZXRlckxpc3QmIGxpc3RCKQotewotICAgIGlmIChsaXN0QS5zaXplKCkgIT0g
bGlzdEIuc2l6ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0QS5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobGlzdEEuYXQoaSkuZ2V0
KCkgIT0gbGlzdEIuYXQoaSkuZ2V0KCkgCi0gICAgICAgICAgICAmJiAqbGlzdEEuYXQoaSkuZ2V0
KCkgIT0gKmxpc3RCLmF0KGkpLmdldCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotI2lmICFBU1NFUlRfRElTQUJMRUQKLXN0YXRpYyBi
b29sIGNoZWNrQ3VzdG9tRmlsdGVyUGFyYW1ldGVyc09yZGVyKGNvbnN0IEN1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3QmIHBhcmFtZXRlcnMpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8
IHBhcmFtZXRlcnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgLy8gQnJlYWsgZm9yIGVxdWFsIG9y
IG5vdC1zb3J0ZWQgcGFyYW1ldGVycy4KLSAgICAgICAgaWYgKCFjb2RlUG9pbnRDb21wYXJlTGVz
c1RoYW4ocGFyYW1ldGVycy5hdChpIC0gMSktPm5hbWUoKSwgcGFyYW1ldGVycy5hdChpKS0+bmFt
ZSgpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0jZW5kaWYKLQotdm9pZCBibGVuZEN1c3RvbUZpbHRlclBhcmFtZXRlcnMoY29uc3QgQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgZnJvbUxpc3QsIGNvbnN0IEN1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QmIHRvTGlzdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3Vi
bGUgcHJvZ3Jlc3MsIGNvbnN0IExheW91dFNpemUmIHNpemUsIEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QmIHJlc3VsdExpc3QpCi17Ci0gICAgLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBib3RoIGxp
c3RzIHRvIGJlIHNvcnRlZCBieSBwYXJhbWV0ZXIgbmFtZSBhbmQgdGhlIHJlc3VsdCBsaXN0IGlz
IGFsc28gc29ydGVkLgotICAgIEFTU0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRl
cihmcm9tTGlzdCkpOwotICAgIEFTU0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRl
cih0b0xpc3QpKTsKLSAgICBzaXplX3QgZnJvbUxpc3RJbmRleCA9IDAsIHRvTGlzdEluZGV4ID0g
MDsKLSAgICB3aGlsZSAoZnJvbUxpc3RJbmRleCA8IGZyb21MaXN0LnNpemUoKSAmJiB0b0xpc3RJ
bmRleCA8IHRvTGlzdC5zaXplKCkpIHsKLSAgICAgICAgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyKiBw
YXJhbUZyb20gPSBmcm9tTGlzdC5hdChmcm9tTGlzdEluZGV4KS5nZXQoKTsKLSAgICAgICAgQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyKiBwYXJhbVRvID0gdG9MaXN0LmF0KHRvTGlzdEluZGV4KS5nZXQo
KTsKLSAgICAgICAgaWYgKHBhcmFtRnJvbS0+bmFtZSgpID09IHBhcmFtVG8tPm5hbWUoKSkgewot
ICAgICAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQocGFyYW1Uby0+YmxlbmQocGFyYW1Gcm9tLCBw
cm9ncmVzcywgc2l6ZSkpOwotICAgICAgICAgICAgKytmcm9tTGlzdEluZGV4OwotICAgICAgICAg
ICAgKyt0b0xpc3RJbmRleDsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4ocGFyYW1Gcm9tLT5uYW1lKCksIHBhcmFt
VG8tPm5hbWUoKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHBhcmFtRnJvbSk7
Ci0gICAgICAgICAgICArK2Zyb21MaXN0SW5kZXg7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgfQotICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJhbVRvKTsKLSAgICAgICAgKyt0
b0xpc3RJbmRleDsKLSAgICB9Ci0gICAgZm9yICg7IGZyb21MaXN0SW5kZXggPCBmcm9tTGlzdC5z
aXplKCk7ICsrZnJvbUxpc3RJbmRleCkKLSAgICAgICAgcmVzdWx0TGlzdC5hcHBlbmQoZnJvbUxp
c3QuYXQoZnJvbUxpc3RJbmRleCkpOwotICAgIGZvciAoOyB0b0xpc3RJbmRleCA8IHRvTGlzdC5z
aXplKCk7ICsrdG9MaXN0SW5kZXgpCi0gICAgICAgIHJlc3VsdExpc3QuYXBwZW5kKHRvTGlzdC5h
dCh0b0xpc3RJbmRleCkpOwotICAgIEFTU0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNP
cmRlcihyZXN1bHRMaXN0KSk7Ci19Ci0KIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Q3VzdG9tRmls
dGVyT3BlcmF0aW9uKFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwgY29u
c3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgc29ydGVkUGFyYW1ldGVycywgdW5zaWduZWQg
bWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBNZXNoQm94VHlwZSBtZXNoQm94VHlwZSwg
TWVzaFR5cGUgbWVzaFR5cGUpCiAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQ1VTVE9NKQogICAgICwg
bV9wcm9ncmFtKHByb2dyYW0pCkBAIC0xMDUsNyArNDgsNyBAQCBDdXN0b21GaWx0ZXJPcGVyYXRp
b246OkN1c3RvbUZpbHRlck9wZXJhdGlvbihQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+
IHBybwogICAgICwgbV9tZXNoVHlwZShtZXNoVHlwZSkKIHsKICAgICAvLyBNYWtlIHN1cmUgdGhh
dCB0aGUgcGFyYW1ldGVycyBhcmUgYWx3eWFzIHNvcnRlZCBieSBuYW1lLiBXZSB1c2UgdGhhdCB0
byBtZXJnZSB0d28gQ3VzdG9tRmlsdGVyT3BlcmF0aW9ucyBpbiBhbmltYXRpb25zLgotICAgIEFT
U0VSVChjaGVja0N1c3RvbUZpbHRlclBhcmFtZXRlcnNPcmRlcihtX3BhcmFtZXRlcnMpKTsKKyAg
ICBBU1NFUlQobV9wYXJhbWV0ZXJzLmNoZWNrQWxwaGFiZXRpY2FsT3JkZXIoKSk7CiB9CiAgICAg
CiBDdXN0b21GaWx0ZXJPcGVyYXRpb246On5DdXN0b21GaWx0ZXJPcGVyYXRpb24oKQpAQCAtMTI5
LDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IEN1c3RvbUZpbHRlck9wZXJh
dGlvbjo6YmxlbmQoY29uc3QgRmlsdGVyT3BlcmF0aW9uKgogICAgICAgICByZXR1cm4gdGhpczsK
ICAgICAKICAgICBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IGFuaW1hdGVkUGFyYW1ldGVyczsK
LSAgICBibGVuZEN1c3RvbUZpbHRlclBhcmFtZXRlcnMoZnJvbU9wLT5tX3BhcmFtZXRlcnMsIG1f
cGFyYW1ldGVycywgcHJvZ3Jlc3MsIHNpemUsIGFuaW1hdGVkUGFyYW1ldGVycyk7CisgICAgbV9w
YXJhbWV0ZXJzLmJsZW5kKGZyb21PcC0+bV9wYXJhbWV0ZXJzLCBwcm9ncmVzcywgc2l6ZSwgYW5p
bWF0ZWRQYXJhbWV0ZXJzKTsKICAgICByZXR1cm4gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpjcmVh
dGUobV9wcm9ncmFtLCBhbmltYXRlZFBhcmFtZXRlcnMsIG1fbWVzaFJvd3MsIG1fbWVzaENvbHVt
bnMsIG1fbWVzaEJveFR5cGUsIG1fbWVzaFR5cGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJP
cGVyYXRpb24uaAppbmRleCAwZDY0ZDIzLi4zNGQyNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmgKQEAgLTMxLDIzICszMSwxNSBAQAogI2RlZmluZSBDdXN0b21GaWx0ZXJPcGVy
YXRpb25faAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3QuaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5j
bHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKIAotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8v
IENTUyBTaGFkZXJzCiAKLWNsYXNzIEN1c3RvbUZpbHRlclBhcmFtZXRlcjsKLXR5cGVkZWYgVmVj
dG9yPFJlZlB0cjxDdXN0b21GaWx0ZXJQYXJhbWV0ZXI+ID4gQ3VzdG9tRmlsdGVyUGFyYW1ldGVy
TGlzdDsKLQotYm9vbCBjdXN0b21GaWx0ZXJQYXJhbWV0ZXJzRXF1YWwoY29uc3QgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdCYsIGNvbnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmKTsKLXZv
aWQgYmxlbmRDdXN0b21GaWx0ZXJQYXJhbWV0ZXJzKGNvbnN0IEN1c3RvbUZpbHRlclBhcmFtZXRl
ckxpc3QmIGxpc3RGcm9tLCBjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBsaXN0VG8s
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHByb2dyZXNzLCBjb25z
dCBMYXlvdXRTaXplJiwgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYgcmVzdWx0TGlzdCk7Ci0K
IGNsYXNzIEN1c3RvbUZpbHRlck9wZXJhdGlvbiA6IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24gewog
cHVibGljOgogICAgIGVudW0gTWVzaEJveFR5cGUgewpAQCAtOTIsMTEgKzg0LDExIEBAIHByaXZh
dGU6CiAKICAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBvdGhlciA9IHN0YXRp
Y19jYXN0PGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KCZvKTsKICAgICAgICAgcmV0dXJu
ICptX3Byb2dyYW0uZ2V0KCkgPT0gKm90aGVyLT5tX3Byb2dyYW0uZ2V0KCkKLSAgICAgICAgICAg
ICAgICYmIG1fbWVzaFJvd3MgPT0gb3RoZXItPm1fbWVzaFJvd3MKLSAgICAgICAgICAgICAgICYm
IG1fbWVzaENvbHVtbnMgPT0gb3RoZXItPm1fbWVzaENvbHVtbnMKLSAgICAgICAgICAgICAgICYm
IG1fbWVzaEJveFR5cGUgPT0gb3RoZXItPm1fbWVzaEJveFR5cGUKLSAgICAgICAgICAgICAgICYm
IG1fbWVzaFR5cGUgPT0gb3RoZXItPm1fbWVzaFR5cGUKLSAgICAgICAgICAgICAgICYmIGN1c3Rv
bUZpbHRlclBhcmFtZXRlcnNFcXVhbChtX3BhcmFtZXRlcnMsIG90aGVyLT5tX3BhcmFtZXRlcnMp
OworICAgICAgICAgICAgJiYgbV9tZXNoUm93cyA9PSBvdGhlci0+bV9tZXNoUm93cworICAgICAg
ICAgICAgJiYgbV9tZXNoQ29sdW1ucyA9PSBvdGhlci0+bV9tZXNoQ29sdW1ucworICAgICAgICAg
ICAgJiYgbV9tZXNoQm94VHlwZSA9PSBvdGhlci0+bV9tZXNoQm94VHlwZQorICAgICAgICAgICAg
JiYgbV9tZXNoVHlwZSA9PSBvdGhlci0+bV9tZXNoVHlwZQorICAgICAgICAgICAgJiYgbV9wYXJh
bWV0ZXJzID09IG90aGVyLT5tX3BhcmFtZXRlcnM7CiAgICAgfQogICAgIAogICAgIEN1c3RvbUZp
bHRlck9wZXJhdGlvbihQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+LCBjb25zdCBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiwgdW5zaWduZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hD
b2x1bW5zLCBNZXNoQm94VHlwZSwgTWVzaFR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M2
MzNlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAKQEAgLTAsMCArMSwxMDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
CisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Qu
aCIKKworI2luY2x1ZGUgIkN1c3RvbUZpbHRlclBhcmFtZXRlci5oIgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXN0b21GaWx0ZXJQ
YXJhbWV0ZXJMaXN0OjpDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0KCkKK3sKK30KKworQ3VzdG9t
RmlsdGVyUGFyYW1ldGVyTGlzdDo6Q3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdChzaXplX3Qgc2l6
ZSkKKyAgICA6IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3RCYXNlKHNpemUpIAoreworfQorCiti
b29sIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6Om9wZXJhdG9yPT0oY29uc3QgQ3VzdG9tRmls
dGVyUGFyYW1ldGVyTGlzdCYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKHNpemUoKSAhPSBvdGhl
ci5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChhdChpKS5nZXQoKSAhPSBvdGhlci5hdChp
KS5nZXQoKSAKKyAgICAgICAgICAgICYmICphdChpKS5nZXQoKSAhPSAqb3RoZXIuYXQoaSkuZ2V0
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6OmNoZWNrQWxwaGFiZXRpY2FsT3Jk
ZXIoKSBjb25zdAoreworICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBzaXplKCk7ICsraSkg
eworICAgICAgICAvLyBCcmVhayBmb3IgZXF1YWwgb3Igbm90LXNvcnRlZCBwYXJhbWV0ZXJzLgor
ICAgICAgICBpZiAoIWNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhdChpIC0gMSktPm5hbWUoKSwg
YXQoaSktPm5hbWUoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3Q6OmJsZW5kKGNv
bnN0IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QmIGZyb21MaXN0LCAKKyAgICBkb3VibGUgcHJv
Z3Jlc3MsIGNvbnN0IExheW91dFNpemUmIGZyYW1lU2l6ZSwgQ3VzdG9tRmlsdGVyUGFyYW1ldGVy
TGlzdCYgcmVzdWx0TGlzdCkgY29uc3QKK3sKKyAgICAvLyBUaGlzIG1ldGhvZCBleHBlY3RzIGJv
dGggbGlzdHMgdG8gYmUgc29ydGVkIGJ5IHBhcmFtZXRlciBuYW1lIGFuZCB0aGUgcmVzdWx0IGxp
c3QgaXMgYWxzbyBzb3J0ZWQuCisgICAgQVNTRVJUKGNoZWNrQWxwaGFiZXRpY2FsT3JkZXIoKSk7
CisgICAgQVNTRVJUKGZyb21MaXN0LmNoZWNrQWxwaGFiZXRpY2FsT3JkZXIoKSk7CisgICAgc2l6
ZV90IGZyb21MaXN0SW5kZXggPSAwLCB0b0xpc3RJbmRleCA9IDA7CisgICAgd2hpbGUgKGZyb21M
aXN0SW5kZXggPCBmcm9tTGlzdC5zaXplKCkgJiYgdG9MaXN0SW5kZXggPCBzaXplKCkpIHsKKyAg
ICAgICAgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyKiBwYXJhbUZyb20gPSBmcm9tTGlzdC5hdChmcm9t
TGlzdEluZGV4KS5nZXQoKTsKKyAgICAgICAgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyKiBwYXJhbVRv
ID0gYXQodG9MaXN0SW5kZXgpLmdldCgpOworICAgICAgICBpZiAocGFyYW1Gcm9tLT5uYW1lKCkg
PT0gcGFyYW1Uby0+bmFtZSgpKSB7CisgICAgICAgICAgICByZXN1bHRMaXN0LmFwcGVuZChwYXJh
bVRvLT5ibGVuZChwYXJhbUZyb20sIHByb2dyZXNzLCBmcmFtZVNpemUpKTsKKyAgICAgICAgICAg
ICsrZnJvbUxpc3RJbmRleDsKKyAgICAgICAgICAgICsrdG9MaXN0SW5kZXg7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29kZVBvaW50Q29tcGFyZUxlc3NU
aGFuKHBhcmFtRnJvbS0+bmFtZSgpLCBwYXJhbVRvLT5uYW1lKCkpKSB7CisgICAgICAgICAgICBy
ZXN1bHRMaXN0LmFwcGVuZChwYXJhbUZyb20pOworICAgICAgICAgICAgKytmcm9tTGlzdEluZGV4
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0TGlzdC5h
cHBlbmQocGFyYW1Ubyk7CisgICAgICAgICsrdG9MaXN0SW5kZXg7CisgICAgfQorICAgIGZvciAo
OyBmcm9tTGlzdEluZGV4IDwgZnJvbUxpc3Quc2l6ZSgpOyArK2Zyb21MaXN0SW5kZXgpCisgICAg
ICAgIHJlc3VsdExpc3QuYXBwZW5kKGZyb21MaXN0LmF0KGZyb21MaXN0SW5kZXgpKTsKKyAgICBm
b3IgKDsgdG9MaXN0SW5kZXggPCBzaXplKCk7ICsrdG9MaXN0SW5kZXgpCisgICAgICAgIHJlc3Vs
dExpc3QuYXBwZW5kKGF0KHRvTGlzdEluZGV4KSk7CisgICAgQVNTRVJUKHJlc3VsdExpc3QuY2hl
Y2tBbHBoYWJldGljYWxPcmRlcigpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFt
ZXRlckxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjY3NTZlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAq
ICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3RfaAor
I2RlZmluZSBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0X2gKKworI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXI7Cit0
eXBlZGVmIFZlY3RvcjxSZWZQdHI8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiA+IEN1c3RvbUZpbHRl
clBhcmFtZXRlckxpc3RCYXNlOworCitjbGFzcyBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0IDog
cHVibGljIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3RCYXNlIHsKK3B1YmxpYzoKKyAgICBDdXN0
b21GaWx0ZXJQYXJhbWV0ZXJMaXN0KCk7CisgICAgZXhwbGljaXQgQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdChzaXplX3QpOworCisgICAgYm9vbCBjaGVja0FscGhhYmV0aWNhbE9yZGVyKCkgY29u
c3Q7CisgICAgdm9pZCBibGVuZChjb25zdCBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0JiBmcm9t
LCBkb3VibGUgcHJvZ3Jlc3MsIGNvbnN0IExheW91dFNpemUmLCBDdXN0b21GaWx0ZXJQYXJhbWV0
ZXJMaXN0JiByZXN1bHRMaXN0KSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyTGlzdCYpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gQ3VzdG9t
RmlsdGVyUGFyYW1ldGVyTGlzdF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>