<?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>103799</bug_id>
          
          <creation_ts>2012-11-30 18:36:08 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Implement CSS parsing and handling for &lt;track-minmax&gt;</short_desc>
          <delta_ts>2012-12-04 16:26:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103311</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>780610</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-30 18:36:08 -0800</bug_when>
    <thetext>This is the CSS side of bug 103311, once this landed we can work on implementing the rendering. The idea is to implement parsing, applying and getting back through getComputedStyle the following syntax:

&lt;track-minmax&gt;  =&gt; minmax( &lt;track-breadth&gt; , &lt;track-breadth&gt; ) | auto | &lt;track-breadth&gt;

(We already support auto | &lt;track-breadth&gt;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781619</commentid>
    <comment_count>1</comment_count>
      <attachid>177283</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-03 10:41:24 -0800</bug_when>
    <thetext>Created attachment 177283
Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781756</commentid>
    <comment_count>2</comment_count>
      <attachid>177283</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-03 12:17:18 -0800</bug_when>
    <thetext>Comment on attachment 177283
Proposed change.

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

Please add some more test cases before landing.

&gt; Source/WebCore/css/CSSFunctionValue.h:54
&gt; +    explicit CSSFunctionValue(String, PassRefPtr&lt;CSSValueList&gt;);

Nit: No explicit.

&gt; Source/WebCore/css/CSSParser.cpp:4538
&gt; +        // We only accept the following grammar: minmax( &lt;track-breadth&gt; , &lt;track-breadth&gt; )

It&apos;s not clear to me what &apos;we&apos; refers to here. I would probably say, &quot;The spec defines the following grammar:&quot;.

&gt; Source/WebCore/rendering/style/GridTrackSize.h:64
&gt; +        m_minTrackBreadth = length;
&gt; +        m_maxTrackBreadth = length;

I see, you set both min and max so you can simplify operator==?  I would make operator== more complex instead.

&gt; LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:18
&gt; +PASS getComputedStyle(gridWithMinMax, &apos;&apos;).getPropertyValue(&apos;-webkit-grid-columns&apos;) is &apos;minmax(10%, 15px)&apos;
&gt; +PASS getComputedStyle(gridWithMinMax, &apos;&apos;).getPropertyValue(&apos;-webkit-grid-rows&apos;) is &apos;minmax(20px, 50%)&apos;

Can you add some test cases with &apos;auto&apos;, &apos;-webkit-min-content&apos; and &apos;-webkit-calc&apos; as arguments to minmax?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782090</commentid>
    <comment_count>3</comment_count>
      <attachid>177283</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-03 18:10:30 -0800</bug_when>
    <thetext>Comment on attachment 177283
Proposed change.

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

&gt;&gt; Source/WebCore/css/CSSFunctionValue.h:54
&gt;&gt; +    explicit CSSFunctionValue(String, PassRefPtr&lt;CSSValueList&gt;);
&gt; 
&gt; Nit: No explicit.

I would prefer to keep it but it&apos;s a personal preference.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:4538
&gt;&gt; +        // We only accept the following grammar: minmax( &lt;track-breadth&gt; , &lt;track-breadth&gt; )
&gt; 
&gt; It&apos;s not clear to me what &apos;we&apos; refers to here. I would probably say, &quot;The spec defines the following grammar:&quot;.

Sounds very good.

&gt;&gt; Source/WebCore/rendering/style/GridTrackSize.h:64
&gt;&gt; +        m_maxTrackBreadth = length;
&gt; 
&gt; I see, you set both min and max so you can simplify operator==?  I would make operator== more complex instead.

It&apos;s not only for operator==. The track sizing algorithm in the specification (section 9.2) doesn&apos;t special case the single length case but always checks both min and max track sizing functions.

We could special case it for performance but for now, I am taking the approach of following the algorithm to the letter.

&gt;&gt; LayoutTests/fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:18
&gt;&gt; +PASS getComputedStyle(gridWithMinMax, &apos;&apos;).getPropertyValue(&apos;-webkit-grid-rows&apos;) is &apos;minmax(20px, 50%)&apos;
&gt; 
&gt; Can you add some test cases with &apos;auto&apos;, &apos;-webkit-min-content&apos; and &apos;-webkit-calc&apos; as arguments to minmax?.

More testing is always better! However there are 2 issues here:
* -webkit-min-content is not allowed yet (we don&apos;t handle it in StyleResolver and probably also CSSParser).
* -webkit-calc is something we can&apos;t get back from getComputedStyle properly. See bug 103761 and the discussion in bug 103335.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782953</commentid>
    <comment_count>4</comment_count>
      <attachid>177566</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-04 14:36:05 -0800</bug_when>
    <thetext>Created attachment 177566
Rebaselined patch with extra testing, fixed a tiny coding style violation (no else after return).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782957</commentid>
    <comment_count>5</comment_count>
      <attachid>177566</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-04 14:38:35 -0800</bug_when>
    <thetext>Comment on attachment 177566
Rebaselined patch with extra testing, fixed a tiny coding style violation (no else after return).

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

&gt; Source/WebCore/rendering/RenderGrid.cpp:147
&gt; +            // FIXME: we stil need to support calc() here (bug 103761)

Nit: Add a period to the end of this sentence and capitalize the first letter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783082</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-04 16:26:52 -0800</bug_when>
    <thetext>Committed r136588: &lt;http://trac.webkit.org/changeset/136588&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177283</attachid>
            <date>2012-12-03 10:41:24 -0800</date>
            <delta_ts>2012-12-04 14:36:02 -0800</delta_ts>
            <desc>Proposed change.</desc>
            <filename>bug-103799-20121203103851.patch</filename>
            <type>text/plain</type>
            <size>26314</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI0NzVlYWMwNWFiNWU1
NjU1OTA3OTExYTAxNDNjYTEyYjczZGRlMS4uNWNjODBiZDU4MGQwNzc4NjE5NGU0MDE1MGFkZjhl
YWM1NGZlNGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTExLTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEltcGxlbWVudCBDU1MgcGFyc2luZyBhbmQgaGFuZGxpbmcgZm9yIDx0cmFjay1t
aW5tYXg+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM3OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGNoYW5nZSBhZGRzIHN1cHBvcnQgZm9yOgorICAgICAgICA8dHJhY2stbWlubWF4PiA9PiBt
aW5tYXgoIDx0cmFjay1icmVhZHRoPiAsIDx0cmFjay1icmVhZHRoPiApIHwgYXV0byB8IDx0cmFj
ay1icmVhZHRoPgorICAgICAgICAobm90ZSB0aGF0IHdlIGFscmVhZHkgc3VwcG9ydGVkIGF1dG8g
fCA8dHJhY2stYnJlYWR0aD4pLgorCisgICAgICAgIFRoZSBjaGFuZ2UgaXMgbW9zdGx5IG1lY2hh
bmljYWwsIHRoZSBvbmx5IG5ld25lc3MgaXMgdGhhdCBHcmlkVHJhY2tTaXplIHdhcyB1cGRhdGVk
IHRvCisgICAgICAgIGhvbGQgMiBMZW5ndGhzIGludGVybmFsbHkgYW5kIHdlIG1hcCB0aGUgc2lu
Z2xlIExlbmd0aCBjYXNlIHRvIDIgYnkgZHVwbGljYXRpbmcgdGhlIHZhbHVlCisgICAgICAgIGFz
IHRoaXMgbWF0Y2hlcyB0aGUgcmVuZGVyaW5nIGFsZ29yaXRobSBpbiB0aGUgc3BlYy4KKworICAg
ICAgICBUZXN0czogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNl
dC1tdWx0aXBsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNv
dXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5qcworCisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2
YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgpOgorICAgICAgICBDaGFuZ2VkIHRoZSBmdW5jdGlvbiB0
byBkbyB0aGUgY29udmVyc2lvbiBvZiBvbmUgdHJhY2sgYnJlYWR0aCAob25lIExlbmd0aCkuCisg
ICAgICAgIFRoaXMgd2FzIGZvcmdvdHRlbiBpbiB0aGUgcHJlcGFyYXRvcnkgY2hhbmdlIGluIGJ1
ZyAxMDM3MDMuCisKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrTWluTWF4KToK
KyAgICAgICAgQ29udmVydCB0aGUgdmFsdWUgYmFjayB1c2luZyB2YWx1ZUZvckdyaWRUcmFja0Jy
ZWFkdGguCisKKyAgICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGdW5jdGlvblZhbHVlOjpDU1NGdW5jdGlvblZhbHVlKToKKyAgICAgICAgKiBj
c3MvQ1NTRnVuY3Rpb25WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25WYWx1
ZTo6Y3JlYXRlKToKKyAgICAgICAgKENTU0Z1bmN0aW9uVmFsdWUpOgorICAgICAgICBBZGRlZCBh
IG5ldyBjb25zdHJ1Y3Rvci4gVGhpcyBlbmFibGVzIHVzIHRvIHJldHVybiBtaW5tYXgoLi4uLCAu
Li4pIHdoZW4gcXVlcmllZAorICAgICAgICBmcm9tIEphdmFTY3JpcHQuIEkgY291bGRuJ3QgZmlu
ZCBhIGJldHRlciB3YXkgdG8gc2VyaWFsaXplIGluc2lkZSBDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24KKyAgICAgICAgc28gdGhhdCBpdCBwcm9wZXJseSBtYXRjaCB0aGUgZnVuY3Rpb24gb3V0
cHV0LgorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTWluTWF4KToKKyAgICAgICAgQWRkZWQgcGFyc2luZyBm
b3IgdGhlIG5ldyBzeW50YXguIFdlIGNvbnZlcnQgdGhlIDIgdmFsdWVzIGludG8gYSBQYWlyIGlm
IHdlIG1hbmFnZSB0bworICAgICAgICBwYXJzZSBib3RoIHZhbHVlcyBjb3JyZWN0bHkuCisKKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVH
cmlkVHJhY2tNaW5NYXgpOgorICAgICAgICBVcGRhdGVkIHRvIGhhbmRsZSBhIFBhaXIgLSBmb3Ig
bWlubWF4IC0gYW5kIHNldCB0aGUgMiB2YWx1ZXMgb24gR3JpZFRyYWNrU2l6ZS4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MpOgorICAgICAgICBVcGRhdGVkIHRv
IGNoZWNrIHRoZSBzdHlsZS4gRm9yIG5vdywgd2UgZG9uJ3QgaGFuZGxlIG1pbm1heCB2YWx1ZXMu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6R3JpZFRyYWNrU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmlkVHJhY2tTaXplOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6
ZTo6c2V0TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1pblRyYWNr
QnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjptYXhUcmFja0JyZWFk
dGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6c2V0TWluTWF4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om9wZXJhdG9yPT0pOgorICAgICAgICBVcGRhdGVk
IHRoZSBjbGFzcyB0byBoYW5kbGUgbWlubWF4IHZhbHVlcy4gVGhpcyBtZWFucyB0aGF0IHdlIG5v
dyBhbHdheXMgc3RvcmUKKyAgICAgICAgMiB2YWx1ZXMgKHRoZSA8bGVuZ3RoPiBjYXNlIGJlaW5n
IGEgc3Vic2V0IG9mIG1pbm1heCwgaG93ZXZlciB3ZSBrZXB0IHRoZSBkaXN0aW5jdGlvbgorICAg
ICAgICB0byBiZSBhYmxlIHRvIHJlY29uc3RydWN0IGEgPGxlbmd0aD4gZm9yIGdldENvbXB1dGVk
U3R5bGUpLgorCiAyMDEyLTExLTMwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNzkwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDBjNWJkYmU0ZDgwMzg2OWUyNjA2YWIxZjQzZmY2NjFkMTMyN2NjOTguLjNmNWY2MTJl
ZDgwMjNjNzQ5ZmY3ZGYzZDBmZmYxYzBjMGRiY2I3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0Jhc2ljU2hh
cGVzLmgiCiAjaW5jbHVkZSAiQ1NTQm9yZGVySW1hZ2UuaCIKKyNpbmNsdWRlICJDU1NGdW5jdGlv
blZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCkBAIC05ODMsMTgg
Kzk4NCwyOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OnZhbHVlRm9yRmlsdGVyKGNvbnN0IFJlbmRlck9iagogfQogI2VuZGlmCiAKLXN0YXRpYyBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgoY29uc3QgR3JpZFRy
YWNrU2l6ZSYgdHJhY2tTaXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCitzdGF0aWMgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tCcmVhZHRoKGNvbnN0IExlbmd0aCYg
dHJhY2tCcmVhZHRoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCiB7Ci0gICAgaWYgKHRyYWNr
U2l6ZS5sZW5ndGgoKS5pc1BlcmNlbnQoKSkKLSAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZVZhbHVlKHRyYWNrU2l6ZS5sZW5ndGgoKSk7Ci0gICAgaWYgKHRyYWNrU2l6ZS5sZW5n
dGgoKS5pc0F1dG8oKSkKKyAgICBpZiAodHJhY2tCcmVhZHRoLmlzUGVyY2VudCgpKQorICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUodHJhY2tCcmVhZHRoKTsKKyAgICBp
ZiAodHJhY2tCcmVhZHRoLmlzQXV0bygpKQogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgcmV0dXJuIHpvb21BZGp1
c3RlZFBpeGVsVmFsdWUodHJhY2tTaXplLmxlbmd0aCgpLnZhbHVlKCksIHN0eWxlKTsKKyAgICBy
ZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0cmFja0JyZWFkdGgudmFsdWUoKSwgc3R5bGUp
OwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tNaW5N
YXgoY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5
bGUpCiB7Ci0gICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aCh0cmFja1NpemUsIHN0
eWxlKTsKKyAgICBzd2l0Y2ggKHRyYWNrU2l6ZS50eXBlKCkpIHsKKyAgICBjYXNlIExlbmd0aFRy
YWNrU2l6aW5nOgorICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tCcmVhZHRoKHRyYWNr
U2l6ZS5sZW5ndGgoKSwgc3R5bGUpOworICAgIGNhc2UgTWluTWF4VHJhY2tTaXppbmc6CisgICAg
ICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IG1pbk1heFRyYWNrQnJlYWR0aHMgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgICAgIG1pbk1heFRyYWNrQnJlYWR0aHMt
PmFwcGVuZCh2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tTaXplLm1pblRyYWNrQnJlYWR0
aCgpLCBzdHlsZSkpOworICAgICAgICBtaW5NYXhUcmFja0JyZWFkdGhzLT5hcHBlbmQodmFsdWVG
b3JHcmlkVHJhY2tCcmVhZHRoKHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKSwgc3R5bGUpKTsK
KyAgICAgICAgcmV0dXJuIENTU0Z1bmN0aW9uVmFsdWU6OmNyZWF0ZSgibWlubWF4KCIsIG1pbk1h
eFRyYWNrQnJlYWR0aHMpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gMDsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRy
YWNrR3JvdXAoY29uc3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiB0cmFja1NpemVzLCBjb25zdCBS
ZW5kZXJTdHlsZSogc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVu
Y3Rpb25WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAK
aW5kZXggYmMyNzBkZTY4MmEyNTk0ODk1NGFhNjBjMWVkODEzMzFlYzk0ZjQzZi4uYmMyOTU4NGYz
MTJhMDY1Nzc1Y2I1YzhjMDg0ZDNmNmJjZjhiMTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
dW5jdGlvblZhbHVlLmNwcApAQCAtNDIsNiArNDIsMTMgQEAgQ1NTRnVuY3Rpb25WYWx1ZTo6Q1NT
RnVuY3Rpb25WYWx1ZShDU1NQYXJzZXJGdW5jdGlvbiogZnVuY3Rpb24pCiAgICAgICAgIG1fYXJn
cyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlRnJvbVBhcnNlclZhbHVlTGlzdChmdW5jdGlvbi0+YXJn
cy5nZXQoKSk7CiB9CiAKK0NTU0Z1bmN0aW9uVmFsdWU6OkNTU0Z1bmN0aW9uVmFsdWUoU3RyaW5n
IG5hbWUsIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBhcmdzKQorICAgIDogQ1NTVmFsdWUoRnVu
Y3Rpb25DbGFzcykKKyAgICAsIG1fbmFtZShuYW1lKQorICAgICwgbV9hcmdzKGFyZ3MpCit7Cit9
CisKIFN0cmluZyBDU1NGdW5jdGlvblZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGdW5jdGlvblZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5o
CmluZGV4IDZiN2ZiYzY1ZTRlNGYxYzA3Y2E1MmUxMjNmY2ZkYWVkNTcxOTM2Y2MuLjMxMjE2Njlh
OWI1NjQ1YTlhODM2ZjM3OWY5MmViMWFjNTI2ZDRhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1
bmN0aW9uVmFsdWUuaApAQCAtNDAsMTIgKzQwLDE4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDU1NGdW5jdGlvblZhbHVlKGZ1bmN0aW9uKSk7CiAgICAgfQogCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTRnVuY3Rpb25WYWx1ZT4gY3JlYXRlKFN0cmluZyBuYW1lLCBQ
YXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gYXJncykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQ1NTRnVuY3Rpb25WYWx1ZShuYW1lLCBhcmdzKSk7CisgICAgfQorCiAgICAgU3Ry
aW5nIGN1c3RvbUNzc1RleHQoKSBjb25zdDsKIAogICAgIHZvaWQgcmVwb3J0RGVzY2VuZGFudE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBDU1NGdW5jdGlvblZhbHVlKENTU1BhcnNlckZ1bmN0aW9uKik7CisgICAgZXhwbGljaXQg
Q1NTRnVuY3Rpb25WYWx1ZShTdHJpbmcsIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0Pik7CiAKICAg
ICBTdHJpbmcgbV9uYW1lOwogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IG1fYXJnczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNTI3NTgxN2VjM2FlMjE0NDdhMjIyMTdiMDU3YWEwOTE2
ZmM4Yjk0MC4uMDgyYWI4YzJmMGUzMmY1NWU4ZDU4MWYzZDk4MDllMDY4NGRlNjQ1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ1MzQsNiArNDUzNCwyMiBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VHcmlkVHJhY2tNaW5NYXgoQ1NTVmFsdWVMaXN0KiB2YWx1ZXMpCiAgICAgICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gYXV0b1ZhbHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIHZhbHVlcy0+YXBwZW5kKGF1
dG9WYWx1ZS5yZWxlYXNlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IGVsc2UgaWYg
KGN1cnJlbnRWYWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24gJiYgZXF1YWxJ
Z25vcmluZ0Nhc2UoY3VycmVudFZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgIm1pbm1heCgiKSkgewor
ICAgICAgICAvLyBXZSBvbmx5IGFjY2VwdCB0aGUgZm9sbG93aW5nIGdyYW1tYXI6IG1pbm1heCgg
PHRyYWNrLWJyZWFkdGg+ICwgPHRyYWNrLWJyZWFkdGg+ICkKKyAgICAgICAgQ1NTUGFyc2VyVmFs
dWVMaXN0KiBhcmd1bWVudHMgPSBjdXJyZW50VmFsdWUtPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwor
ICAgICAgICBpZiAoIWFyZ3VtZW50cyB8fCBhcmd1bWVudHMtPnNpemUoKSAhPSAzIHx8ICFpc0Nv
bW1hKGFyZ3VtZW50cy0+dmFsdWVBdCgxKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtaW5UcmFja0JyZWFkdGggPSBwYXJz
ZUdyaWRCcmVhZHRoKGFyZ3VtZW50cy0+dmFsdWVBdCgwKSk7CisgICAgICAgIGlmICghbWluVHJh
Y2tCcmVhZHRoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gbWF4VHJhY2tCcmVhZHRoID0gcGFyc2VHcmlkQnJlYWR0aChhcmd1
bWVudHMtPnZhbHVlQXQoMikpOworICAgICAgICBpZiAoIW1heFRyYWNrQnJlYWR0aCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB2YWx1ZXMtPmFwcGVuZChjcmVhdGVQcmlt
aXRpdmVWYWx1ZVBhaXIobWluVHJhY2tCcmVhZHRoLCBtYXhUcmFja0JyZWFkdGgpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYgKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IHRyYWNrQnJlYWR0aCA9IHBhcnNlR3JpZEJyZWFkdGgoY3VycmVudFZhbHVlKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIzMmRiNjZiZTI3NzBiZDk4MjAz
MDMzMDdhODczZjA3Y2QzYTJiN2UuLjNjZjk2OWQ1YTEyNmVkNmM5ODBlNmMyZGQyMWVjODFiZGI3
ODUxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTI2NzMsMTEgKzI2
NzMsMjIgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrQnJlYWR0aChDU1NQcmltaXRpdmVW
YWx1ZSogcHJpbWl0aXZlVmFsdWUsIFN0eWxlUmVzb2wKIAogc3RhdGljIGJvb2wgY3JlYXRlR3Jp
ZFRyYWNrTWluTWF4KENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSwgU3R5bGVSZXNv
bHZlciogc2VsZWN0b3IsIEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSkKIHsKLSAgICBMZW5ndGgg
d29ya2luZ0xlbmd0aDsKLSAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0JyZWFkdGgocHJpbWl0aXZl
VmFsdWUsIHNlbGVjdG9yLCB3b3JraW5nTGVuZ3RoKSkKKyAgICBQYWlyKiBtaW5NYXhUcmFja0Jy
ZWFkdGggPSBwcmltaXRpdmVWYWx1ZS0+Z2V0UGFpclZhbHVlKCk7CisgICAgaWYgKCFtaW5NYXhU
cmFja0JyZWFkdGgpIHsKKyAgICAgICAgTGVuZ3RoIHdvcmtpbmdMZW5ndGg7CisgICAgICAgIGlm
ICghY3JlYXRlR3JpZFRyYWNrQnJlYWR0aChwcmltaXRpdmVWYWx1ZSwgc2VsZWN0b3IsIHdvcmtp
bmdMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHRyYWNrU2l6
ZS5zZXRMZW5ndGgod29ya2luZ0xlbmd0aCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIExlbmd0aCBtaW5UcmFja0JyZWFkdGg7CisgICAgTGVuZ3RoIG1heFRyYWNrQnJlYWR0
aDsKKyAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0JyZWFkdGgobWluTWF4VHJhY2tCcmVhZHRoLT5m
aXJzdCgpLCBzZWxlY3RvciwgbWluVHJhY2tCcmVhZHRoKSB8fCAhY3JlYXRlR3JpZFRyYWNrQnJl
YWR0aChtaW5NYXhUcmFja0JyZWFkdGgtPnNlY29uZCgpLCBzZWxlY3RvciwgbWF4VHJhY2tCcmVh
ZHRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdHJhY2tTaXplLnNldExlbmd0aCh3
b3JraW5nTGVuZ3RoKTsKKyAgICB0cmFja1NpemUuc2V0TWluTWF4KG1pblRyYWNrQnJlYWR0aCwg
bWF4VHJhY2tCcmVhZHRoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGU3YTM1MWM4NjVmZjc4ZTM1MTlhMmU0NGFjNmU4
OWJlOTAzNmE5MWIuLjI5ZTk5OTZmNjY4MzQ2NmIzZWRiMTgzNGQwY2FjZWUxMDJiMDYyZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE0MSwxMSArMTQxLDE4
IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZWRVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhUcmFj
a1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sCiAgICAgY29uc3QgVmVjdG9yPEdyaWRUcmFja1Np
emU+JiB0cmFja1N0eWxlcyA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzdHlsZSgpLT5n
cmlkQ29sdW1ucygpIDogc3R5bGUoKS0+Z3JpZFJvd3MoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRyYWNrU3R5bGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEdyaWRUcmFjayB0cmFj
azsKLSAgICAgICAgaWYgKHRyYWNrU3R5bGVzW2ldLmxlbmd0aCgpLmlzRml4ZWQoKSkKLSAgICAg
ICAgICAgIHRyYWNrLm1fdXNlZEJyZWFkdGggPSB0cmFja1N0eWxlc1tpXS5sZW5ndGgoKS5nZXRG
bG9hdFZhbHVlKCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgc3dpdGNoICh0cmFja1N0eWxlc1tp
XS50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBMZW5ndGhUcmFja1NpemluZzoKKyAgICAgICAgICAg
IGlmICh0cmFja1N0eWxlc1tpXS5sZW5ndGgoKS5pc0ZpeGVkKCkpCisgICAgICAgICAgICAgICAg
dHJhY2subV91c2VkQnJlYWR0aCA9IHRyYWNrU3R5bGVzW2ldLmxlbmd0aCgpLmdldEZsb2F0VmFs
dWUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNaW5NYXhUcmFja1NpemluZzoK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgbWlubWF4IHRyYWNr
IHNpemluZyAoYnVnIDEwMzMxMSkuCiAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotCisg
ICAgICAgIH0KICAgICAgICAgdHJhY2tzLmFwcGVuZCh0cmFjayk7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKaW5kZXggMWJjMWQw
NmE1Y2U1YjAzMTkyZWE0MDZiNzQ5OWE4YTg2NDk4MGU1NC4uMGI1ZDhiMTZkZmRkZTM1YWY5ZTI4
ZDE5MWZjZTA2ZjQ3MDJjMzczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRUcmFja1NpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZFRyYWNrU2l6ZS5oCkBAIC0zNiw0MCArMzYsNjYgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogZW51bSBHcmlkVHJhY2tTaXplVHlwZSB7Ci0gICAgTGVuZ3RoVHJhY2tTaXppbmcKKyAg
ICBMZW5ndGhUcmFja1NpemluZywKKyAgICBNaW5NYXhUcmFja1NpemluZwogfTsKIAogY2xhc3Mg
R3JpZFRyYWNrU2l6ZSB7CiBwdWJsaWM6CiAgICAgR3JpZFRyYWNrU2l6ZSgpCiAgICAgICAgIDog
bV90eXBlKExlbmd0aFRyYWNrU2l6aW5nKQotICAgICAgICAsIG1fbGVuZ3RoKFVuZGVmaW5lZCkK
KyAgICAgICAgLCBtX21pblRyYWNrQnJlYWR0aChVbmRlZmluZWQpCisgICAgICAgICwgbV9tYXhU
cmFja0JyZWFkdGgoVW5kZWZpbmVkKQogICAgIHsKICAgICB9CiAKICAgICBjb25zdCBMZW5ndGgm
IGxlbmd0aCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IExlbmd0aFRy
YWNrU2l6aW5nKTsKLSAgICAgICAgQVNTRVJUKCFtX2xlbmd0aC5pc1VuZGVmaW5lZCgpKTsKLSAg
ICAgICAgcmV0dXJuIG1fbGVuZ3RoOworICAgICAgICBBU1NFUlQoIW1fbWluVHJhY2tCcmVhZHRo
LmlzVW5kZWZpbmVkKCkpOworICAgICAgICBBU1NFUlQobV9taW5UcmFja0JyZWFkdGggPT0gbV9t
YXhUcmFja0JyZWFkdGgpOworICAgICAgICByZXR1cm4gbV9taW5UcmFja0JyZWFkdGg7CiAgICAg
fQogCiAgICAgdm9pZCBzZXRMZW5ndGgoY29uc3QgTGVuZ3RoJiBsZW5ndGgpCiAgICAgewogICAg
ICAgICBtX3R5cGUgPSBMZW5ndGhUcmFja1NpemluZzsKLSAgICAgICAgbV9sZW5ndGggPSBsZW5n
dGg7CisgICAgICAgIG1fbWluVHJhY2tCcmVhZHRoID0gbGVuZ3RoOworICAgICAgICBtX21heFRy
YWNrQnJlYWR0aCA9IGxlbmd0aDsKKyAgICB9CisKKyAgICBjb25zdCBMZW5ndGgmIG1pblRyYWNr
QnJlYWR0aCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IE1pbk1heFRy
YWNrU2l6aW5nKTsKKyAgICAgICAgQVNTRVJUKCFtX21pblRyYWNrQnJlYWR0aC5pc1VuZGVmaW5l
ZCgpKTsKKyAgICAgICAgcmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoOworICAgIH0KKworICAgIGNv
bnN0IExlbmd0aCYgbWF4VHJhY2tCcmVhZHRoKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX3R5cGUgPT0gTWluTWF4VHJhY2tTaXppbmcpOworICAgICAgICBBU1NFUlQoIW1fbWF4VHJh
Y2tCcmVhZHRoLmlzVW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4gbV9tYXhUcmFja0JyZWFk
dGg7CisgICAgfQorCisgICAgdm9pZCBzZXRNaW5NYXgoY29uc3QgTGVuZ3RoJiBtaW5UcmFja0Jy
ZWFkdGgsIGNvbnN0IExlbmd0aCYgbWF4VHJhY2tCcmVhZHRoKQorICAgIHsKKyAgICAgICAgbV90
eXBlID0gTWluTWF4VHJhY2tTaXppbmc7CisgICAgICAgIG1fbWluVHJhY2tCcmVhZHRoID0gbWlu
VHJhY2tCcmVhZHRoOworICAgICAgICBtX21heFRyYWNrQnJlYWR0aCA9IG1heFRyYWNrQnJlYWR0
aDsKICAgICB9CiAKICAgICBHcmlkVHJhY2tTaXplVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR3JpZFRyYWNrU2l6ZSYgb3Ro
ZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV90eXBlID09IG90aGVyLm1fdHlwZSAm
JiBtX2xlbmd0aCA9PSBvdGhlci5tX2xlbmd0aDsKKyAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBv
dGhlci5tX3R5cGUgJiYgbV9taW5UcmFja0JyZWFkdGggPT0gb3RoZXIubV9taW5UcmFja0JyZWFk
dGggJiYgbV9tYXhUcmFja0JyZWFkdGggPT0gbV9tYXhUcmFja0JyZWFkdGg7CiAgICAgfQogCiBw
cml2YXRlOgogICAgIEdyaWRUcmFja1NpemVUeXBlIG1fdHlwZTsKLSAgICBMZW5ndGggbV9sZW5n
dGg7CisgICAgTGVuZ3RoIG1fbWluVHJhY2tCcmVhZHRoOworICAgIExlbmd0aCBtX21heFRyYWNr
QnJlYWR0aDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDA4MTYzNGU0
OWM4M2E0NzllMThmYTVkMzZjNTVlMzQ3OGM0MGVlLi4zZTU1NTc2MDZmMDEwMGMwZWFjNGEwY2Ix
M2ZmZTZmNWZjMTQ4ODc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEtMzAgIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBHcmlk
IExheW91dF0gSW1wbGVtZW50IENTUyBwYXJzaW5nIGFuZCBoYW5kbGluZyBmb3IgPHRyYWNrLW1p
bm1heD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
Mzc5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0
LXNldC1tdWx0aXBsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0
LXNldC1tdWx0aXBsZS5qczoKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJj
ZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC5qczoKKyAgICAgICAgRXh0ZW5kZWQgdGhlIGZv
bGxvd2luZyB0ZXN0cyB0byBjb3ZlciB0aGUgbmV3IGdyYW1tYXIuCisKIDIwMTItMTEtMzAgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHRoZSAndW5wYXVzZSgpJyBtZXRob2Qgb24gTWVkaWFDb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNl
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNv
bHVtbnMtcm93cy1nZXQtc2V0LWV4cGVjdGVkLnR4dAppbmRleCA3ZTliY2JlMDZkMjZjMWYxOWNl
MTMwODUyOTEwMDVkNmZkMjI4OTJmLi45NGY1YWM4MDhjZTY0MWE4MjI4MDc1MWVkZGY3YjdlMTEz
MmMwNWU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWNvbHVtbnMtcm93cy1nZXQtc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LWV4cGVjdGVkLnR4dApA
QCAtMTQsNiArMTQsOCBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhBdXRvRWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jbwogUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGdyaWRXaXRoQXV0b0VsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtcm93cycpIGlzICdhdXRvJwogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRU1F
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAn
MTAwcHgnCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhFTUVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICcxNTBweCcKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkV2l0aE1pbk1heCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1jb2x1bW5zJykgaXMgJ21pbm1heCgxMCUsIDE1cHgpJworUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGdyaWRXaXRoTWluTWF4LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
d3MnKSBpcyAnbWlubWF4KDIwcHgsIDUwJSknCiAKIFRlc3QgdGhlIGluaXRpYWwgdmFsdWUKIFBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9uZScKQEAgLTI2LDYgKzI4LDE2IEBAIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbnMnKSBpcyAnCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzQwJScKIFBBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMn
KSBpcyAnYXV0bycKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMn
KSBpcyAnbWlubWF4KDU1JSwgNDVweCknCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ21pbm1heCgzMHB4
LCA0MCUpJworCitUZXN0IHNldHRpbmcgZ3JpZC1jb2x1bW5zIGFuZCBncmlkLXJvd3MgYmFjayB0
byBiYWQgbWlubWF4IHZhbHVlIHRocm91Z2ggSlMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9u
ZScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnbm9uZScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9u
ZScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnbm9uZScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnbm9u
ZScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnbm9uZScKIAogVGVzdCBzZXR0aW5nIGdyaWQtY29sdW1u
cyBhbmQgZ3JpZC1yb3dzIGJhY2sgdG8gJ25vbmUnIHRocm91Z2ggSlMKIFBBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVt
bnMnKSBpcyAnMThweCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1t
dWx0aXBsZS1leHBlY3RlZC50eHQKaW5kZXggZjE5MDE2NGFmZTU1Zjc3NGM1ZjdiYTVlOWQwNWI3
OTg5NDRjMjMxYy4uYjNiZjdjMzBmNmE4OWEzN2QwNDE1MzAzMzE3YjA3NjUyM2M4YTM0MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJv
d3MtZ2V0LXNldC1tdWx0aXBsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS1leHBlY3Rl
ZC50eHQKQEAgLTE0LDYgKzE0LDggQEAgUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoRU1F
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHUKIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShncmlkV2l0aEVNRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzE1MHB4IDE3MHB4JwogUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoVGhyZWVJdGVtcywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1j
b2x1bW5zJykgaXMgJzE1cHggYXV0byAxMDBweCcKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlk
V2l0aFRocmVlSXRlbXMsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycp
IGlzICcxMjBweCAxOHB4IGF1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5N
YXhBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykg
aXMgJ21pbm1heCg0NXB4LCAzMCUpIDE1cHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdp
dGhNaW5NYXhBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dz
JykgaXMgJzEyMHB4IG1pbm1heCgzNSUsIDEwcHgpJwogCiBUZXN0IHRoZSBpbml0aWFsIHZhbHVl
CiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ25vbmUnCkBAIC0yOCw2ICszMCw4IEBAIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWNvbHVtbnMnKSBpcyAnCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ2F1dG8gYXV0bycKIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWNvbHVtbnMnKSBpcyAnYXV0byAxNjBweCAyMnB4JwogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICc1NiUg
MTAwcHggYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnMTYwcHggbWlubWF4KDE2cHgsIDIw
cHgpJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93cycpIGlzICdtaW5tYXgoMTAlLCAxNSUpIGF1dG8nCiAKIFRlc3Qg
Z2V0dGluZyB3cm9uZyB2YWx1ZXMgc2V0IGZyb20gQ1NTCiBQQVNTIGdldENvbXB1dGVkU3R5bGUo
Z3JpZFdpdGhOb25lQW5kQXV0bywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1j
b2x1bW5zJykgaXMgJ25vbmUnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRp
cGxlLmh0bWwKaW5kZXggMjU4YjQ4ZTI5MGRiYTdlNGRmZGU3MGM5OWQ0YzYxOWM2ZTM4M2YwZC4u
MDJhNjlmMzQ4ODAwYWQ2ZjM3NTFmMmQyMzU2Njg0Nzk2MDI1NmIwMiAxMDA3NTUKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1t
dWx0aXBsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbApAQCAtNDQsNiArNDQsMTMgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgIC13ZWJraXQtZ3JpZC1yb3dzOiAxMmVtIDE4cHggYXV0
bzsKICAgICBmb250OiAxMHB4IEFoZW07CiB9CisuZ3JpZFdpdGhNaW5NYXhBbmRGaXhlZCB7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ncmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiBtaW5t
YXgoNDVweCwgMzAlKSAxNXB4OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiAxMmVtIG1pbm1heCgz
NSUsIDEwcHgpOworICAgIGZvbnQ6IDEwcHggQWhlbTsKK30KKwogPC9zdHlsZT4KIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgpA
QCAtNTUsNiArNjIsNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpCiA8ZGl2IGNsYXNzPSJncmlk
V2l0aE5vbmVBbmRBdXRvIiBpZD0iZ3JpZFdpdGhOb25lQW5kQXV0byI+PC9kaXY+CiA8ZGl2IGNs
YXNzPSJncmlkV2l0aE5vbmVBbmRGaXhlZCIgaWQ9ImdyaWRXaXRoTm9uZUFuZEZpeGVkIj48L2Rp
dj4KIDxkaXYgY2xhc3M9ImdyaWRXaXRoVGhyZWVJdGVtcyIgaWQ9ImdyaWRXaXRoVGhyZWVJdGVt
cyI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkV2l0aE1pbk1heEFuZEZpeGVkIiBpZD0iZ3JpZFdp
dGhNaW5NYXhBbmRGaXhlZCI+PC9kaXY+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dyaWQtY29s
dW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3Mt
Z2V0LXNldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1
bW5zLXJvd3MtZ2V0LXNldC5odG1sCmluZGV4IDJkNDkzOTNhNzQyYzE1NDE4NmE2NWU1ZmFlZWQy
NTRmOTNmNzYwNWEuLjgxMGNlNGY3MTIxYmUyMzFkODZkMmU0MTdhMTYyMTU4YWM5OTczMWYgMTAw
NzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1y
b3dzLWdldC1zZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9n
cmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0Lmh0bWwKQEAgLTMyLDYgKzMyLDEzIEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKICAgICAtd2Via2l0LWdyaWQtcm93czogMTVlbTsKICAgICBmb250OiAx
MHB4IEFoZW07CiB9CisKKy5ncmlkV2l0aE1pbk1heCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1n
cmlkOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiBtaW5tYXgoMTAlLCAxNXB4KTsKKyAgICAt
d2Via2l0LWdyaWQtcm93czogbWlubWF4KDIwcHgsIDUwJSk7Cit9OworCiA8L3N0eWxlPgogPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CkBAIC00MSw2ICs0OCw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKIDxkaXYgY2xhc3M9
ImdyaWRXaXRoUGVyY2VudCIgaWQ9ImdyaWRXaXRoUGVyY2VudEVsZW1lbnQiPjwvZGl2PgogPGRp
diBjbGFzcz0iZ3JpZFdpdGhBdXRvIiBpZD0iZ3JpZFdpdGhBdXRvRWxlbWVudCI+PC9kaXY+CiA8
ZGl2IGNsYXNzPSJncmlkV2l0aEVNIiBpZD0iZ3JpZFdpdGhFTUVsZW1lbnQiPjwvZGl2PgorPGRp
diBjbGFzcz0iZ3JpZFdpdGhNaW5NYXgiIGlkPSJncmlkV2l0aE1pbk1heCI+PC9kaXY+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
cmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0
LXNldC1tdWx0aXBsZS5qcwppbmRleCBhODEwOGU4NzJjNjBjNjhkYzhhYzdjOWU0NTgxMDcxYWYx
ZDQyYzE1Li5lZWIwMDM4MzFkNDI0NzRhYmU3ZDY0NjgwNmVjMWQ0NjVkYTNiZTA1IDEwMDc1NQot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1
bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5q
cwpAQCAtMjEsNiArMjEsMTAgQEAgdmFyIGdyaWRXaXRoVGhyZWVJdGVtcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJncmlkV2l0aFRocmVlSXRlbXMiKTsKIHNob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGdyaWRXaXRoVGhyZWVJdGVtcywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1jb2x1bW5zJykiLCAiJzE1cHggYXV0byAxMDBweCciKTsKIHNob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGdyaWRXaXRoVGhyZWVJdGVtcywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1yb3dzJykiLCAiJzEyMHB4IDE4cHggYXV0byciKTsKIAordmFyIGdyaWRXaXRoTWlu
TWF4QW5kRml4ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhNaW5NYXhBbmRG
aXhlZCIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5NYXhBbmRGaXhl
ZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ21pbm1h
eCg0NXB4LCAzMCUpIDE1cHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0
aE1pbk1heEFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3Mn
KSIsICInMTIwcHggbWlubWF4KDM1JSwgMTBweCknIik7CisKIGRlYnVnKCIiKTsKIGRlYnVnKCJU
ZXN0IHRoZSBpbml0aWFsIHZhbHVlIik7CiB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwpAQCAtNTcsNiArNjEsMTQgQEAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
Um93cyA9ICI1NiUgMTBlbSBhdXRvIjsKIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIidhdXRv
IDE2MHB4IDIycHgnIik7CiBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInNTYlIDEwMHB4IGF1dG8n
Iik7CiAKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLmZvbnQgPSAiMTBweCBB
aGVtIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiMTZlbSBtaW5tYXgoMTZw
eCwgMjBweCkiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICJtaW5tYXgoMTAlLCAx
NSUpIGF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJzE2MHB4IG1pbm1heCgxNnB4
LCAyMHB4KSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidtaW5tYXgoMTAlLCAxNSUpIGF1
dG8nIik7CisKIGRlYnVnKCIiKTsKIGRlYnVnKCJUZXN0IGdldHRpbmcgd3JvbmcgdmFsdWVzIHNl
dCBmcm9tIENTUyIpOwogdmFyIGdyaWRXaXRoTm9uZUFuZEF1dG8gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZ3JpZFdpdGhOb25lQW5kQXV0byIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1
bW5zLXJvd3MtZ2V0LXNldC5qcwppbmRleCAxZDFhZTM3ZTM3YjVkMDExMzJjOTE4YWM3MDhmNDE0
ODlhZmVlODllLi45MDZhMWMyZWFlYThhMzU3YzAxMWI0NDVhNDE2ZDA5NTFkNGJkZjBjIDEwMDc1
NQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1j
b2x1bW5zLXJvd3MtZ2V0LXNldC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9yZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC5qcwpAQCAtMjEsNiArMjEs
MTAgQEAgdmFyIGdyaWRXaXRoRU1FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdy
aWRXaXRoRU1FbGVtZW50Iik7CiBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEVN
RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAi
JzEwMHB4JyIpOwogc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhFTUVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIicxNTBweCciKTsK
IAordmFyIGdyaWRXaXRoTWluTWF4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRo
TWluTWF4Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aE1pbk1heCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ21pbm1heCgxMCUs
IDE1cHgpJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5NYXgsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidtaW5tYXgoMjBweCwg
NTAlKSciKTsKKwogZGVidWcoIiIpOwogZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFsdWUiKTsK
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC00OSw2ICs1
Myw0MiBAQCBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gImF1dG8iOwogc2hvdWxkQmUo
ImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1jb2x1bW5zJykiLCAiJ2F1dG8nIik7CiBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInYXV0
byciKTsKIAorZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENv
bHVtbnMgPSAibWlubWF4KDU1JSwgNDVweCkiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93
cyA9ICJtaW5tYXgoMzBweCwgNDAlKSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbWlu
bWF4KDU1JSwgNDVweCknIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbWlubWF4KDMwcHgs
IDQwJSknIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHNldHRpbmcgZ3JpZC1jb2x1bW5z
IGFuZCBncmlkLXJvd3MgYmFjayB0byBiYWQgbWlubWF4IHZhbHVlIHRocm91Z2ggSlMiKTsKK2Vs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7CisvLyBObyBjb21tYS4KK2VsZW1lbnQuc3R5bGUud2Via2l0R3Jp
ZENvbHVtbnMgPSAibWlubWF4KDEwcHggMjBweCkiOworLy8gT25seSAxIGFyZ3VtZW50IHByb3Zp
ZGVkLgorZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICJtaW5tYXgoMTBweCkiOworc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIs
ICInbm9uZSciKTsKKworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKy8vIE5lc3RlZCBtaW5tYXguCitl
bGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIm1pbm1heChtaW5tYXgoMTBweCwgMjBw
eCksIDIwcHgpIjsKKy8vIE9ubHkgMiBhcmd1bWVudHMgYXJlIGFsbG93ZWQuCitlbGVtZW50LnN0
eWxlLndlYmtpdEdyaWRSb3dzID0gIm1pbm1heCgxMHB4LCAyMHB4LCAzMHB4KSI7CitzaG91bGRC
ZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidu
b25lJyIpOworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworLy8gTm8gYnJlYWR0aCB2YWx1ZS4KK2Vs
ZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAibWlubWF4KCkiOworLy8gTm8gY29tbWEu
CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm1pbm1heCgzMHB4IDMwJSAzMGVtKSI7
CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93
cycpIiwgIidub25lJyIpOworCiBkZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCBzZXR0aW5nIGdyaWQt
Y29sdW1ucyBhbmQgZ3JpZC1yb3dzIGJhY2sgdG8gJ25vbmUnIHRocm91Z2ggSlMiKTsKIGVsZW1l
bnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiMThweCI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177566</attachid>
            <date>2012-12-04 14:36:05 -0800</date>
            <delta_ts>2012-12-04 14:38:35 -0800</delta_ts>
            <desc>Rebaselined patch with extra testing, fixed a tiny coding style violation (no else after return).</desc>
            <filename>bug-103799-20121204143330.patch</filename>
            <type>text/plain</type>
            <size>30685</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFjODllZjJhYjZjNjA1
YzIxZmM2MjBkMzY1MzBmOTZiYTVkOTgyMS4uYzI1NDM5MDJjNzMzMDBkMzI5YmZjMjM4MzAyZDk1
OWViNTJiOWY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1IEBACiAyMDEyLTEyLTA0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEltcGxlbWVudCBDU1MgcGFyc2luZyBhbmQgaGFuZGxpbmcgZm9yIDx0cmFjay1t
aW5tYXg+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM3OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGNoYW5nZSBhZGRzIHN1cHBvcnQgZm9yOgorICAgICAgICA8dHJhY2stbWlubWF4PiA9PiBt
aW5tYXgoIDx0cmFjay1icmVhZHRoPiAsIDx0cmFjay1icmVhZHRoPiApIHwgYXV0byB8IDx0cmFj
ay1icmVhZHRoPgorICAgICAgICAobm90ZSB0aGF0IHdlIGFscmVhZHkgc3VwcG9ydGVkIGF1dG8g
fCA8dHJhY2stYnJlYWR0aD4pLgorCisgICAgICAgIFRoZSBjaGFuZ2UgaXMgbW9zdGx5IG1lY2hh
bmljYWwsIHRoZSBvbmx5IG5ld25lc3MgaXMgdGhhdCBHcmlkVHJhY2tTaXplIHdhcyB1cGRhdGVk
IHRvCisgICAgICAgIGhvbGQgMiBMZW5ndGhzIGludGVybmFsbHkgYW5kIHdlIG1hcCB0aGUgc2lu
Z2xlIExlbmd0aCBjYXNlIHRvIDIgYnkgZHVwbGljYXRpbmcgdGhlIHZhbHVlCisgICAgICAgIGFz
IHRoaXMgbWF0Y2hlcyB0aGUgcmVuZGVyaW5nIGFsZ29yaXRobSBpbiB0aGUgc3BlYy4KKworICAg
ICAgICBUZXN0czogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNl
dC1tdWx0aXBsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNv
dXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5qcworCisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2
YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgpOgorICAgICAgICBDaGFuZ2VkIHRoZSBmdW5jdGlvbiB0
byBkbyB0aGUgY29udmVyc2lvbiBvZiBvbmUgdHJhY2sgYnJlYWR0aCAob25lIExlbmd0aCkuCisg
ICAgICAgIFRoaXMgd2FzIGZvcmdvdHRlbiBpbiB0aGUgcHJlcGFyYXRvcnkgY2hhbmdlIGluIGJ1
ZyAxMDM3MDMuCisKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrTWluTWF4KToK
KyAgICAgICAgQ29udmVydCB0aGUgdmFsdWUgYmFjayB1c2luZyB2YWx1ZUZvckdyaWRUcmFja0Jy
ZWFkdGguCisKKyAgICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGdW5jdGlvblZhbHVlOjpDU1NGdW5jdGlvblZhbHVlKToKKyAgICAgICAgKiBj
c3MvQ1NTRnVuY3Rpb25WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25WYWx1
ZTo6Y3JlYXRlKToKKyAgICAgICAgKENTU0Z1bmN0aW9uVmFsdWUpOgorICAgICAgICBBZGRlZCBh
IG5ldyBjb25zdHJ1Y3Rvci4gVGhpcyBlbmFibGVzIHVzIHRvIHJldHVybiBtaW5tYXgoLi4uLCAu
Li4pIHdoZW4gcXVlcmllZAorICAgICAgICBmcm9tIEphdmFTY3JpcHQuIEkgY291bGRuJ3QgZmlu
ZCBhIGJldHRlciB3YXkgdG8gc2VyaWFsaXplIGluc2lkZSBDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24KKyAgICAgICAgc28gdGhhdCBpdCBwcm9wZXJseSBtYXRjaCB0aGUgZnVuY3Rpb24gb3V0
cHV0LgorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTWluTWF4KToKKyAgICAgICAgQWRkZWQgcGFyc2luZyBm
b3IgdGhlIG5ldyBzeW50YXguIFdlIGNvbnZlcnQgdGhlIDIgdmFsdWVzIGludG8gYSBQYWlyIGlm
IHdlIG1hbmFnZSB0bworICAgICAgICBwYXJzZSBib3RoIHZhbHVlcyBjb3JyZWN0bHkuCisKKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVH
cmlkVHJhY2tNaW5NYXgpOgorICAgICAgICBVcGRhdGVkIHRvIGhhbmRsZSBhIFBhaXIgLSBmb3Ig
bWlubWF4IC0gYW5kIHNldCB0aGUgMiB2YWx1ZXMgb24gR3JpZFRyYWNrU2l6ZS4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MpOgorICAgICAgICBVcGRhdGVkIHRv
IGNoZWNrIHRoZSBzdHlsZS4gRm9yIG5vdywgd2UgZG9uJ3QgaGFuZGxlIG1pbm1heCB2YWx1ZXMu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6R3JpZFRyYWNrU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmlkVHJhY2tTaXplOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6
ZTo6c2V0TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om1pblRyYWNr
QnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXplOjptYXhUcmFja0JyZWFk
dGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6ZTo6c2V0TWluTWF4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemU6Om9wZXJhdG9yPT0pOgorICAgICAgICBVcGRhdGVk
IHRoZSBjbGFzcyB0byBoYW5kbGUgbWlubWF4IHZhbHVlcy4gVGhpcyBtZWFucyB0aGF0IHdlIG5v
dyBhbHdheXMgc3RvcmUKKyAgICAgICAgMiB2YWx1ZXMgKHRoZSA8bGVuZ3RoPiBjYXNlIGJlaW5n
IGEgc3Vic2V0IG9mIG1pbm1heCwgaG93ZXZlciB3ZSBrZXB0IHRoZSBkaXN0aW5jdGlvbgorICAg
ICAgICB0byBiZSBhYmxlIHRvIHJlY29uc3RydWN0IGEgPGxlbmd0aD4gZm9yIGdldENvbXB1dGVk
U3R5bGUpLgorCisyMDEyLTEyLTA0ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJr
aXQub3JnPgorCiAgICAgICAgIEhlYXAtdXNlLWFmdGVyLWZyZWUgaW4gV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnBhaW50TGlzdCBbTWF0aE1MXQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAwNzY0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggN2EwNmIwMDk5MzcxZjcxYzQwMDFj
N2Y5MGQ0NTc2YWNhYTMzNDM1ZC4uMGQ5YjQzOTFiOGEyNmZjMWMxMTc3NzYzODg4MjdhN2RkZWQ4
NTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDU1NBc3BlY3RSYXRpb1Zh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTQmFzaWNTaGFwZXMuaCIKICNpbmNsdWRlICJDU1NCb3JkZXJJ
bWFnZS5oIgorI2luY2x1ZGUgIkNTU0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NMaW5l
Qm94Q29udGFpblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKQEAgLTk5OSwxOCArMTAwMCwyOCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnZhbHVlRm9yRmlsdGVyKGNvbnN0IFJl
bmRlck9iagogfQogI2VuZGlmCiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZv
ckdyaWRUcmFja0JyZWFkdGgoY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplLCBjb25zdCBS
ZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclZpZXcgKnJlbmRlclZpZXcpCitzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tCcmVhZHRoKGNvbnN0IExlbmd0aCYgdHJh
Y2tCcmVhZHRoLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclZpZXcgKnJlbmRlclZp
ZXcpCiB7Ci0gICAgaWYgKHRyYWNrU2l6ZS5sZW5ndGgoKS5pc0F1dG8oKSkKKyAgICBpZiAodHJh
Y2tCcmVhZHRoLmlzQXV0bygpKQogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgaWYgKHRyYWNrU2l6ZS5sZW5ndGgo
KS5pc1ZpZXdwb3J0UGVyY2VudGFnZSgpKQotICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4
ZWxWYWx1ZSh2YWx1ZUZvckxlbmd0aCh0cmFja1NpemUubGVuZ3RoKCksIDAsIHJlbmRlclZpZXcp
LCBzdHlsZSk7Ci0gICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgodHJh
Y2tTaXplLmxlbmd0aCgpLCBzdHlsZSk7CisgICAgaWYgKHRyYWNrQnJlYWR0aC5pc1ZpZXdwb3J0
UGVyY2VudGFnZSgpKQorICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh2YWx1
ZUZvckxlbmd0aCh0cmFja0JyZWFkdGgsIDAsIHJlbmRlclZpZXcpLCBzdHlsZSk7CisgICAgcmV0
dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgodHJhY2tCcmVhZHRoLCBzdHlsZSk7
CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja01pbk1h
eChjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSwgUmVuZGVyVmlldyogcmVuZGVyVmlldykKIHsKLSAgICByZXR1cm4gdmFsdWVGb3JHcmlkVHJh
Y2tCcmVhZHRoKHRyYWNrU2l6ZSwgc3R5bGUsIHJlbmRlclZpZXcpOworICAgIHN3aXRjaCAodHJh
Y2tTaXplLnR5cGUoKSkgeworICAgIGNhc2UgTGVuZ3RoVHJhY2tTaXppbmc6CisgICAgICAgIHJl
dHVybiB2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tTaXplLmxlbmd0aCgpLCBzdHlsZSwg
cmVuZGVyVmlldyk7CisgICAgY2FzZSBNaW5NYXhUcmFja1NpemluZzoKKyAgICAgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gbWluTWF4VHJhY2tCcmVhZHRocyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRl
Q29tbWFTZXBhcmF0ZWQoKTsKKyAgICAgICAgbWluTWF4VHJhY2tCcmVhZHRocy0+YXBwZW5kKHZh
bHVlRm9yR3JpZFRyYWNrQnJlYWR0aCh0cmFja1NpemUubWluVHJhY2tCcmVhZHRoKCksIHN0eWxl
LCByZW5kZXJWaWV3KSk7CisgICAgICAgIG1pbk1heFRyYWNrQnJlYWR0aHMtPmFwcGVuZCh2YWx1
ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tTaXplLm1heFRyYWNrQnJlYWR0aCgpLCBzdHlsZSwg
cmVuZGVyVmlldykpOworICAgICAgICByZXR1cm4gQ1NTRnVuY3Rpb25WYWx1ZTo6Y3JlYXRlKCJt
aW5tYXgoIiwgbWluTWF4VHJhY2tCcmVhZHRocyk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
dmFsdWVGb3JHcmlkVHJhY2tHcm91cChjb25zdCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNr
U2l6ZXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyVmlldyogcmVuZGVyVmlldykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAppbmRleCBiYzI3MGRlNjgyYTI1
OTQ4OTU0YWE2MGMxZWQ4MTMzMWVjOTRmNDNmLi5iYzI5NTg0ZjMxMmEwNjU3NzVjYjVjOGMwODRk
M2Y2YmNmOGIxM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25W
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCkBA
IC00Miw2ICs0MiwxMyBAQCBDU1NGdW5jdGlvblZhbHVlOjpDU1NGdW5jdGlvblZhbHVlKENTU1Bh
cnNlckZ1bmN0aW9uKiBmdW5jdGlvbikKICAgICAgICAgbV9hcmdzID0gQ1NTVmFsdWVMaXN0Ojpj
cmVhdGVGcm9tUGFyc2VyVmFsdWVMaXN0KGZ1bmN0aW9uLT5hcmdzLmdldCgpKTsKIH0KIAorQ1NT
RnVuY3Rpb25WYWx1ZTo6Q1NTRnVuY3Rpb25WYWx1ZShTdHJpbmcgbmFtZSwgUGFzc1JlZlB0cjxD
U1NWYWx1ZUxpc3Q+IGFyZ3MpCisgICAgOiBDU1NWYWx1ZShGdW5jdGlvbkNsYXNzKQorICAgICwg
bV9uYW1lKG5hbWUpCisgICAgLCBtX2FyZ3MoYXJncykKK3sKK30KKwogU3RyaW5nIENTU0Z1bmN0
aW9uVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVz
dWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmgKaW5kZXggNmI3ZmJjNjVlNGU0
ZjFjMDdjYTUyZTEyM2ZjZmRhZWQ1NzE5MzZjYy4uNGNjYjQ3NzZmZDAyMWVlNDYzNmJmOGY5ZDcw
NjViMTIwZTVjMjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9u
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5oCkBAIC00
MCwxMiArNDAsMTggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Z1
bmN0aW9uVmFsdWUoZnVuY3Rpb24pKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NGdW5jdGlvblZhbHVlPiBjcmVhdGUoU3RyaW5nIG5hbWUsIFBhc3NSZWZQdHI8Q1NTVmFsdWVM
aXN0PiBhcmdzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NGdW5jdGlv
blZhbHVlKG5hbWUsIGFyZ3MpKTsKKyAgICB9CisKICAgICBTdHJpbmcgY3VzdG9tQ3NzVGV4dCgp
IGNvbnN0OwogCiAgICAgdm9pZCByZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENTU0Z1bmN0aW9uVmFs
dWUoQ1NTUGFyc2VyRnVuY3Rpb24qKTsKKyAgICBDU1NGdW5jdGlvblZhbHVlKFN0cmluZywgUGFz
c1JlZlB0cjxDU1NWYWx1ZUxpc3Q+KTsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gbV9hcmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA4OGM1
OWE4N2YwYTliYmUzZTU5YzY5YmI4MGJlMzY5OTczYTVhODUzLi4yY2Q5NGExMTIwNDEyNjQ2YWIz
MWE5NjVmYjllN2ZmMWIwYjM5NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDUz
Nyw4ICs0NTM3LDI1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja01pbk1heChDU1NW
YWx1ZUxpc3QqIHZhbHVlcykKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSogY3VycmVudFZhbHVlID0g
bV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKICAgICBpZiAoY3VycmVudFZhbHVlLT5pZCA9PSBDU1NW
YWx1ZUF1dG8pIHsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBhdXRvVmFsdWUg
PSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKLSAg
ICAgICAgdmFsdWVzLT5hcHBlbmQoYXV0b1ZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIHZhbHVl
cy0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1
dG8pKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGN1cnJlbnRWYWx1
ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24gJiYgZXF1YWxJZ25vcmluZ0Nhc2Uo
Y3VycmVudFZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgIm1pbm1heCgiKSkgeworICAgICAgICAvLyBU
aGUgc3BlYyBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZ3JhbW1hcjogbWlubWF4KCA8dHJhY2stYnJl
YWR0aD4gLCA8dHJhY2stYnJlYWR0aD4gKQorICAgICAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFy
Z3VtZW50cyA9IGN1cnJlbnRWYWx1ZS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CisgICAgICAgIGlm
ICghYXJndW1lbnRzIHx8IGFyZ3VtZW50cy0+c2l6ZSgpICE9IDMgfHwgIWlzQ29tbWEoYXJndW1l
bnRzLT52YWx1ZUF0KDEpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1pblRyYWNrQnJlYWR0aCA9IHBhcnNlR3JpZEJyZWFk
dGgoYXJndW1lbnRzLT52YWx1ZUF0KDApKTsKKyAgICAgICAgaWYgKCFtaW5UcmFja0JyZWFkdGgp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBtYXhUcmFja0JyZWFkdGggPSBwYXJzZUdyaWRCcmVhZHRoKGFyZ3VtZW50cy0+dmFs
dWVBdCgyKSk7CisgICAgICAgIGlmICghbWF4VHJhY2tCcmVhZHRoKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIHZhbHVlcy0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZVZhbHVl
UGFpcihtaW5UcmFja0JyZWFkdGgsIG1heFRyYWNrQnJlYWR0aCkpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA0OWU0
Nzc2YThhMDZlNGQ1NmNiNDI1OTY4YzU4OWYyZWJhNjEzMDhjLi4xYjc5NDlhMGU3ODg5MzJmYjMw
ZGY1NWU1NmM2ZTg2YmZjZWQ5MmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC0yNjg4LDExICsyNjg4LDIyIEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0JyZWFk
dGgoQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlLCBTdHlsZVJlc29sCiAKIHN0YXRp
YyBib29sIGNyZWF0ZUdyaWRUcmFja01pbk1heChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUsIFN0eWxlUmVzb2x2ZXIqIHNlbGVjdG9yLCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUp
CiB7Ci0gICAgTGVuZ3RoIHdvcmtpbmdMZW5ndGg7Ci0gICAgaWYgKCFjcmVhdGVHcmlkVHJhY2tC
cmVhZHRoKHByaW1pdGl2ZVZhbHVlLCBzZWxlY3Rvciwgd29ya2luZ0xlbmd0aCkpCisgICAgUGFp
ciogbWluTWF4VHJhY2tCcmVhZHRoID0gcHJpbWl0aXZlVmFsdWUtPmdldFBhaXJWYWx1ZSgpOwor
ICAgIGlmICghbWluTWF4VHJhY2tCcmVhZHRoKSB7CisgICAgICAgIExlbmd0aCB3b3JraW5nTGVu
Z3RoOworICAgICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja0JyZWFkdGgocHJpbWl0aXZlVmFsdWUs
IHNlbGVjdG9yLCB3b3JraW5nTGVuZ3RoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICB0cmFja1NpemUuc2V0TGVuZ3RoKHdvcmtpbmdMZW5ndGgpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBMZW5ndGggbWluVHJhY2tCcmVhZHRoOworICAgIExlbmd0
aCBtYXhUcmFja0JyZWFkdGg7CisgICAgaWYgKCFjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKG1pbk1h
eFRyYWNrQnJlYWR0aC0+Zmlyc3QoKSwgc2VsZWN0b3IsIG1pblRyYWNrQnJlYWR0aCkgfHwgIWNy
ZWF0ZUdyaWRUcmFja0JyZWFkdGgobWluTWF4VHJhY2tCcmVhZHRoLT5zZWNvbmQoKSwgc2VsZWN0
b3IsIG1heFRyYWNrQnJlYWR0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHRyYWNr
U2l6ZS5zZXRMZW5ndGgod29ya2luZ0xlbmd0aCk7CisgICAgdHJhY2tTaXplLnNldE1pbk1heCht
aW5UcmFja0JyZWFkdGgsIG1heFRyYWNrQnJlYWR0aCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAzMzFhOThlNDEwNDFh
NWZiMTg4NWIwYmQ1OWI0YzBiMWQwMGI1MjNmLi4wOWY0ZTc1MjBlZDZkMWQzMmQ2YzFhMDZmMDg0
Mjg0MjcxZDIyYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBA
IC0xNDEsMTMgKzE0MSwyMSBAQCB2b2lkIFJlbmRlckdyaWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhP
ZkdyaWRUcmFja3MoVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLAogICAgIGNvbnN0IFZl
Y3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTdHlsZXMgPSAoZGlyZWN0aW9uID09IEZvckNvbHVt
bnMpID8gc3R5bGUoKS0+Z3JpZENvbHVtbnMoKSA6IHN0eWxlKCktPmdyaWRSb3dzKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFja1N0eWxlcy5zaXplKCk7ICsraSkgewogICAgICAg
ICBHcmlkVHJhY2sgdHJhY2s7Ci0gICAgICAgIExlbmd0aCB0cmFja0xlbmd0aCA9IHRyYWNrU3R5
bGVzW2ldLmxlbmd0aCgpOwotICAgICAgICAvLyBGSVhNRTogd2Ugc3RpbCBuZWVkIHRvIHN1cHBv
cnQgY2FsYygpIGhlcmUgKGJ1ZyAxMDM3NjEpCi0gICAgICAgIGlmICh0cmFja0xlbmd0aC5pc0Zp
eGVkKCkgfHwgdHJhY2tMZW5ndGguaXNQZXJjZW50KCkgfHwgdHJhY2tMZW5ndGguaXNWaWV3cG9y
dFBlcmNlbnRhZ2UoKSkKLSAgICAgICAgICAgIHRyYWNrLm1fdXNlZEJyZWFkdGggPSB2YWx1ZUZv
ckxlbmd0aCh0cmFja0xlbmd0aCwgZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBsb2dpY2FsV2lk
dGgoKSA6IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodChNYWluT3JQcmVmZXJyZWRTaXplLCBz
dHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkpLCB2aWV3KCkpOwotICAgICAgICBlbHNlCisgICAgICAg
IHN3aXRjaCAodHJhY2tTdHlsZXNbaV0udHlwZSgpKSB7CisgICAgICAgIGNhc2UgTGVuZ3RoVHJh
Y2tTaXppbmc6IHsKKyAgICAgICAgICAgIExlbmd0aCB0cmFja0xlbmd0aCA9IHRyYWNrU3R5bGVz
W2ldLmxlbmd0aCgpOworICAgICAgICAgICAgLy8gRklYTUU6IHdlIHN0aWwgbmVlZCB0byBzdXBw
b3J0IGNhbGMoKSBoZXJlIChidWcgMTAzNzYxKQorICAgICAgICAgICAgaWYgKHRyYWNrTGVuZ3Ro
LmlzRml4ZWQoKSB8fCB0cmFja0xlbmd0aC5pc1BlcmNlbnQoKSB8fCB0cmFja0xlbmd0aC5pc1Zp
ZXdwb3J0UGVyY2VudGFnZSgpKQorICAgICAgICAgICAgICAgIHRyYWNrLm1fdXNlZEJyZWFkdGgg
PSB2YWx1ZUZvckxlbmd0aCh0cmFja0xlbmd0aCwgZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBs
b2dpY2FsV2lkdGgoKSA6IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodChNYWluT3JQcmVmZXJy
ZWRTaXplLCBzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkpLCB2aWV3KCkpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgTWluTWF4VHJhY2tTaXppbmc6CisgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIG1pbm1heCB0cmFjayBzaXppbmcg
KGJ1ZyAxMDMzMTEpLgogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLQorICAgICAgICB9
CiAgICAgICAgIHRyYWNrcy5hcHBlbmQodHJhY2spOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCmluZGV4IDFiYzFkMDZhNWNlNWIw
MzE5MmVhNDA2Yjc0OTlhOGE4NjQ5ODBlNTQuLjBiNWQ4YjE2ZGZkZGUzNWFmOWUyOGQxOTFmY2Uw
NmY0NzAyYzM3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkVHJhY2tTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRU
cmFja1NpemUuaApAQCAtMzYsNDAgKzM2LDY2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVu
dW0gR3JpZFRyYWNrU2l6ZVR5cGUgewotICAgIExlbmd0aFRyYWNrU2l6aW5nCisgICAgTGVuZ3Ro
VHJhY2tTaXppbmcsCisgICAgTWluTWF4VHJhY2tTaXppbmcKIH07CiAKIGNsYXNzIEdyaWRUcmFj
a1NpemUgewogcHVibGljOgogICAgIEdyaWRUcmFja1NpemUoKQogICAgICAgICA6IG1fdHlwZShM
ZW5ndGhUcmFja1NpemluZykKLSAgICAgICAgLCBtX2xlbmd0aChVbmRlZmluZWQpCisgICAgICAg
ICwgbV9taW5UcmFja0JyZWFkdGgoVW5kZWZpbmVkKQorICAgICAgICAsIG1fbWF4VHJhY2tCcmVh
ZHRoKFVuZGVmaW5lZCkKICAgICB7CiAgICAgfQogCiAgICAgY29uc3QgTGVuZ3RoJiBsZW5ndGgo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBMZW5ndGhUcmFja1Npemlu
Zyk7Ci0gICAgICAgIEFTU0VSVCghbV9sZW5ndGguaXNVbmRlZmluZWQoKSk7Ci0gICAgICAgIHJl
dHVybiBtX2xlbmd0aDsKKyAgICAgICAgQVNTRVJUKCFtX21pblRyYWNrQnJlYWR0aC5pc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgQVNTRVJUKG1fbWluVHJhY2tCcmVhZHRoID09IG1fbWF4VHJhY2tC
cmVhZHRoKTsKKyAgICAgICAgcmV0dXJuIG1fbWluVHJhY2tCcmVhZHRoOwogICAgIH0KIAogICAg
IHZvaWQgc2V0TGVuZ3RoKGNvbnN0IExlbmd0aCYgbGVuZ3RoKQogICAgIHsKICAgICAgICAgbV90
eXBlID0gTGVuZ3RoVHJhY2tTaXppbmc7Ci0gICAgICAgIG1fbGVuZ3RoID0gbGVuZ3RoOworICAg
ICAgICBtX21pblRyYWNrQnJlYWR0aCA9IGxlbmd0aDsKKyAgICAgICAgbV9tYXhUcmFja0JyZWFk
dGggPSBsZW5ndGg7CisgICAgfQorCisgICAgY29uc3QgTGVuZ3RoJiBtaW5UcmFja0JyZWFkdGgo
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBNaW5NYXhUcmFja1Npemlu
Zyk7CisgICAgICAgIEFTU0VSVCghbV9taW5UcmFja0JyZWFkdGguaXNVbmRlZmluZWQoKSk7Cisg
ICAgICAgIHJldHVybiBtX21pblRyYWNrQnJlYWR0aDsKKyAgICB9CisKKyAgICBjb25zdCBMZW5n
dGgmIG1heFRyYWNrQnJlYWR0aCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBl
ID09IE1pbk1heFRyYWNrU2l6aW5nKTsKKyAgICAgICAgQVNTRVJUKCFtX21heFRyYWNrQnJlYWR0
aC5pc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIG1fbWF4VHJhY2tCcmVhZHRoOworICAg
IH0KKworICAgIHZvaWQgc2V0TWluTWF4KGNvbnN0IExlbmd0aCYgbWluVHJhY2tCcmVhZHRoLCBj
b25zdCBMZW5ndGgmIG1heFRyYWNrQnJlYWR0aCkKKyAgICB7CisgICAgICAgIG1fdHlwZSA9IE1p
bk1heFRyYWNrU2l6aW5nOworICAgICAgICBtX21pblRyYWNrQnJlYWR0aCA9IG1pblRyYWNrQnJl
YWR0aDsKKyAgICAgICAgbV9tYXhUcmFja0JyZWFkdGggPSBtYXhUcmFja0JyZWFkdGg7CiAgICAg
fQogCiAgICAgR3JpZFRyYWNrU2l6ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsg
fQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdyaWRUcmFja1NpemUmIG90aGVyKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdHlwZSA9PSBvdGhlci5tX3R5cGUgJiYgbV9sZW5n
dGggPT0gb3RoZXIubV9sZW5ndGg7CisgICAgICAgIHJldHVybiBtX3R5cGUgPT0gb3RoZXIubV90
eXBlICYmIG1fbWluVHJhY2tCcmVhZHRoID09IG90aGVyLm1fbWluVHJhY2tCcmVhZHRoICYmIG1f
bWF4VHJhY2tCcmVhZHRoID09IG1fbWF4VHJhY2tCcmVhZHRoOwogICAgIH0KIAogcHJpdmF0ZToK
ICAgICBHcmlkVHJhY2tTaXplVHlwZSBtX3R5cGU7Ci0gICAgTGVuZ3RoIG1fbGVuZ3RoOworICAg
IExlbmd0aCBtX21pblRyYWNrQnJlYWR0aDsKKyAgICBMZW5ndGggbV9tYXhUcmFja0JyZWFkdGg7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGQwYzNmOTIzMjMyNzU4NzNk
ZjY3NGNlMTIzM2QzZDdhYjQ1ZjdjOC4uNjZjNjk4MjQ2NTdkNjlmZTQ5YzdkNGRmNDQyYTYxNzgz
NjlkNjU2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTA0ICBKdWxpZW4gQ2hhZmZy
YWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRd
IEltcGxlbWVudCBDU1MgcGFyc2luZyBhbmQgaGFuZGxpbmcgZm9yIDx0cmFjay1taW5tYXg+Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM3OTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVs
dGlwbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0Lmh0bWw6CisgICAgICAgICogZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVs
dGlwbGUuanM6CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQuanM6CisgICAgICAgIEV4dGVuZGVkIHRoZSBmb2xsb3dpbmcg
dGVzdHMgdG8gY292ZXIgdGhlIG5ldyBncmFtbWFyLgorCiAyMDEyLTEyLTA0ICBSb2dlciBGb25n
ICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gU2tpcCBmbGFr
eSAiZmFrZSBtb3VzZSBtb3ZlIHRlc3RzIiBvbiBXaW5kb3dzIHBvcnQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29s
dW1ucy1yb3dzLWdldC1zZXQtZXhwZWN0ZWQudHh0CmluZGV4IDkwMWFjMDBkOWQ1YTU3NjgxZjk1
YTM1MTc1YWE2NzViOWJhMzE3ZWQuLjg4MmEyM2EwMDRmZmE2ODRmNzg5ZTQ1NmUyNGNlNjc3YTVk
MDExODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
Y29sdW1ucy1yb3dzLWdldC1zZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtZXhwZWN0ZWQudHh0CkBA
IC0xNiw2ICsxNiw5IEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEVNRWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1CiBQQVNTIGdldENvbXB1dGVk
U3R5bGUoZ3JpZFdpdGhFTUVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtcm93cycpIGlzICcxNTBweCcKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFZpZXdQ
b3J0UGVyY2VudGFnZUVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1ucycpIGlzICc2NHB4JwogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoVmlld1Bv
cnRQZXJjZW50YWdlRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1y
b3dzJykgaXMgJzYwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5NYXgsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdtaW5tYXgoMTAl
LCAxNXB4KScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aE1pbk1heCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ21pbm1heCgyMHB4LCA1MCUpJwor
CiBUZXN0IGdldHRpbmcgd3JvbmcgdmFsdWVzIGZvciAtd2Via2l0LWdyaWQtY29sdW1ucyBhbmQg
LXdlYmtpdC1ncmlkLXJvd3MgdGhyb3VnaCBDU1MgKHRoZXkgc2hvdWxkIHJlc29sdmUgdG8gdGhl
IGRlZmF1bHQ6ICdub25lJykKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpdENvbnRl
bnRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBp
cyAnbm9uZScKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpdENvbnRlbnRFbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSBpcyAnbm9uZScKQEAg
LTM1LDYgKzM4LDIwIEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnCiBQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykg
aXMgJ2F1dG8nCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJzgwcHgnCiBQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykg
aXMgJzE1MHB4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdtaW5tYXgoNTUlLCA0NXB4KScKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLXJvd3MnKSBpcyAnbWlubWF4KDMwcHgsIDQwJSknCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykg
aXMgJ21pbm1heCgyMjBweCwgNDhweCknCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ21pbm1heCg4MHB4
LCA1MHB4KScKKworVGVzdCBzZXR0aW5nIGdyaWQtY29sdW1ucyBhbmQgZ3JpZC1yb3dzIHRvIGJh
ZCBtaW5tYXggdmFsdWUgdGhyb3VnaCBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJwor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJwor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJwor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJwor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIGlzICdub25lJwogCiBUZXN0IHNldHRpbmcgZ3JpZC1jb2x1bW5zIGFu
ZCBncmlkLXJvd3MgYmFjayB0byAnbm9uZScgdGhyb3VnaCBKUwogUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycp
IGlzICcxOHB4JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRp
cGxlLWV4cGVjdGVkLnR4dAppbmRleCBmMjBiYjdmMWRjMzk5NmEwMDhhNDAxNmE1MzlmYzMxZmQ5
ODhmYzlkLi5hZjA0YWIyMTRhMGExZDRlM2Q1MTFkYjI1OWUzYjlkNmY2ZTk5NmM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1n
ZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLWV4cGVjdGVkLnR4
dApAQCAtMTgsNiArMTgsOCBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhQZXJjZW50
QW5kVmlld3BvcnRQZXJjZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLQogUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGdyaWRXaXRoUGVyY2VudEFuZFZpZXdwb3J0UGVyY2VudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzM1JSAxNjhweCcKIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkV2l0aEZpdENvbnRlbnRBbmRGaXRBdmFpbGFibGUsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIGlzICdub25lJwogUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGdyaWRXaXRoRml0Q29udGVudEFuZEZpdEF2YWlsYWJsZSwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ25vbmUnCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZ3JpZFdpdGhNaW5NYXhBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW5zJykgaXMgJ21pbm1heCg0NXB4LCAzMCUpIDE1cHgnCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5NYXhBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzEyMHB4IG1pbm1heCgzNSUsIDEwcHgpJwogCiBUZXN0
IHRoZSBpbml0aWFsIHZhbHVlCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ25vbmUnCkBAIC0zMiw2
ICszNCw4IEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnCiBQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJ2F1
dG8gYXV0bycKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnYXV0byAxNjBweCAyMnB4JwogUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtcm93cycpIGlzICc1NiUgMTAwcHggYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSBpcyAnMTYw
cHggbWlubWF4KDE2cHgsIDIwcHgpJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICdtaW5tYXgoMTAlLCAx
NSUpIGF1dG8nCiAKIFRlc3QgZ2V0dGluZyB3cm9uZyB2YWx1ZXMgc2V0IGZyb20gQ1NTCiBQQVNT
IGdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhOb25lQW5kQXV0bywgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykgaXMgJ25vbmUnCkBAIC01NCw2ICs1OCw4IEBAIFBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbnMnKSBpcyAnCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykgaXMgJzUlIDUxMHB4JwogUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1ucycpIGlzICdub25lJwogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJworUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1ucycpIGlzICdub25lJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIGlzICdub25lJwogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQt
c2V0LW11bHRpcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmh0bWwKaW5kZXggZjg4MzMzZmU3NWE1MmQ0
YWMzYzVlM2ZjZGI0MjAxNmQyNDgyY2UzOC4uZTdkY2Y4NzA2ZDQwZGY4ZmZhNmRmZDBjY2E2Y2Iw
MzMxOGU1YTcwMyAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUu
aHRtbApAQCAtNTQsNiArNTQsMTIgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIC13ZWJr
aXQtZ3JpZC1jb2x1bW5zOiAtd2Via2l0LWNvbnRlbnQtYXZhaWxhYmxlOwogICAgIC13ZWJraXQt
Z3JpZC1yb3dzOiAtd2Via2l0LWZpdGNvbnRlbnQgLXdlYmtpdC1maXQtYXZhaWxhYmxlOwogfQor
LmdyaWRXaXRoTWluTWF4QW5kRml4ZWQgeworICAgIGRpc3BsYXk6IC13ZWJraXQtZ3JpZDsKKyAg
ICAtd2Via2l0LWdyaWQtY29sdW1uczogbWlubWF4KDQ1cHgsIDMwJSkgMTVweDsKKyAgICAtd2Vi
a2l0LWdyaWQtcm93czogMTJlbSBtaW5tYXgoMzUlLCAxMHB4KTsKKyAgICBmb250OiAxMHB4IEFo
ZW07Cit9CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC02Nyw2ICs3Myw3IEBAIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKIDxkaXYgY2xhc3M9ImdyaWRXaXRoVGhyZWVJdGVtcyIgaWQ9ImdyaWRXaXRoVGhy
ZWVJdGVtcyI+PC9kaXY+CiA8ZGl2IGNsYXNzPSJncmlkV2l0aFBlcmNlbnRBbmRWaWV3cG9ydFBl
cmNlbnQiIGlkPSJncmlkV2l0aFBlcmNlbnRBbmRWaWV3cG9ydFBlcmNlbnQiPjwvZGl2PgogPGRp
diBjbGFzcz0iZ3JpZFdpdGhGaXRDb250ZW50QW5kRml0QXZhaWxhYmxlIiBpZD0iZ3JpZFdpdGhG
aXRDb250ZW50QW5kRml0QXZhaWxhYmxlIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWRXaXRoTWlu
TWF4QW5kRml4ZWQiIGlkPSJncmlkV2l0aE1pbk1heEFuZEZpeGVkIj48L2Rpdj4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC1tdWx0aXBsZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0Lmh0bWwKaW5kZXggYzcwZDlj
YzQwNzYyMzUzMzdlYmFkOThiZmY2OTE4ZGIyZjBjYzVlYS4uMjA0YjNkODFkYTYwYTFiMmE2MGVm
YWZhMTFhNWVkODI5ZjI3ZGNmOSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQuaHRtbApAQCAt
NDIsNiArNDIsMTAgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIC13ZWJraXQtZ3JpZC1j
b2x1bW5zOiAtd2Via2l0LWZpdC1hdmFpbGFibGU7CiAgICAgLXdlYmtpdC1ncmlkLXJvd3M6IC13
ZWJraXQtZml0LWF2YWlsYWJsZTsKIH0KKy5ncmlkV2l0aE1pbk1heCB7CisgICAgLXdlYmtpdC1n
cmlkLWNvbHVtbnM6IG1pbm1heCgxMCUsIDE1cHgpOworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiBt
aW5tYXgoMjBweCwgNTAlKTsKK30KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KQEAgLTU0LDYgKzU4LDcgQEAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQogPGRpdiBjbGFzcz0iZ3JpZCBncmlkV2l0aFZpZXdQb3J0
UGVyY2VudGFnZSIgaWQ9ImdyaWRXaXRoVmlld1BvcnRQZXJjZW50YWdlRWxlbWVudCI+PC9kaXY+
CiA8ZGl2IGNsYXNzPSJncmlkIGdyaWRXaXRoRml0Q29udGVudCIgaWQ9ImdyaWRXaXRoRml0Q29u
dGVudEVsZW1lbnQiPjwvZGl2PgogPGRpdiBjbGFzcz0iZ3JpZCBncmlkV2l0aEZpdEF2YWlsYWJs
ZSIgaWQ9ImdyaWRXaXRoRml0QXZhaWxhYmxlRWxlbWVudCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJn
cmlkIGdyaWRXaXRoTWluTWF4IiBpZD0iZ3JpZFdpdGhNaW5NYXgiPjwvZGl2PgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291
cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LW11bHRpcGxlLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQt
bXVsdGlwbGUuanMKaW5kZXggMTRmZmYxNjg5ZjRhYWUyNzAyNzc2Njk1NTY4NTM2MWIyODA0Yzll
Mi4uNzVjZDk5NDU4MDIxMTZiZWI2ODExNGRhNGI4YTdmNzgxMzFjMDZmMCAxMDA3NTUKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1y
b3dzLWdldC1zZXQtbXVsdGlwbGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvcmVzb3VyY2VzL2dyaWQtY29sdW1ucy1yb3dzLWdldC1zZXQtbXVsdGlwbGUuanMKQEAg
LTI5LDYgKzI5LDEwIEBAIHZhciBncmlkV2l0aEZpdENvbnRlbnRBbmRGaXRBdmFpbGFibGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhGaXRDb250CiBzaG91bGRCZSgiZ2V0Q29t
cHV0ZWRTdHlsZShncmlkV2l0aEZpdENvbnRlbnRBbmRGaXRBdmFpbGFibGUsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIidub25lJyIpOwogc2hvdWxkQmUo
ImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhGaXRDb250ZW50QW5kRml0QXZhaWxhYmxlLCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsKIAordmFy
IGdyaWRXaXRoTWluTWF4QW5kRml4ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdp
dGhNaW5NYXhBbmRGaXhlZCIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhN
aW5NYXhBbmRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5z
JykiLCAiJ21pbm1heCg0NXB4LCAzMCUpIDE1cHgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShncmlkV2l0aE1pbk1heEFuZEZpeGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLXJvd3MnKSIsICInMTIwcHggbWlubWF4KDM1JSwgMTBweCknIik7CisKIGRlYnVnKCIi
KTsKIGRlYnVnKCJUZXN0IHRoZSBpbml0aWFsIHZhbHVlIik7CiB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpAQCAtNjUsNiArNjksMTQgQEAgZWxlbWVudC5zdHls
ZS53ZWJraXRHcmlkUm93cyA9ICI1NiUgMTBlbSBhdXRvIjsKIHNob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1u
cycpIiwgIidhdXRvIDE2MHB4IDIycHgnIik7CiBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInNTYl
IDEwMHB4IGF1dG8nIik7CiAKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLmZv
bnQgPSAiMTBweCBBaGVtIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAiMTZl
bSBtaW5tYXgoMTZweCwgMjBweCkiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9ICJt
aW5tYXgoMTAlLCAxNSUpIGF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJzE2MHB4
IG1pbm1heCgxNnB4LCAyMHB4KSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidtaW5tYXgo
MTAlLCAxNSUpIGF1dG8nIik7CisKIGRlYnVnKCIiKTsKIGRlYnVnKCJUZXN0IGdldHRpbmcgd3Jv
bmcgdmFsdWVzIHNldCBmcm9tIENTUyIpOwogdmFyIGdyaWRXaXRoTm9uZUFuZEF1dG8gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhOb25lQW5kQXV0byIpOwpAQCAtMTI1LDMgKzEz
NywxMCBAQCBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIi13ZWJraXQtZml0LWNv
bnRlbnQgLXdlYmtpdC1maXQtY29udGVudCI7CiBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dz
ID0gIi13ZWJraXQtZml0LWF2YWlsYWJsZSAtd2Via2l0LWZpdC1hdmFpbGFibGUiOwogc2hvdWxk
QmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7CiBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICIn
bm9uZSciKTsKKworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3Jp
ZENvbHVtbnMgPSAiYXV0byBtaW5tYXgoMTZweCwgYXV0bykiOworZWxlbWVudC5zdHlsZS53ZWJr
aXRHcmlkUm93cyA9ICJtaW5tYXgoYXV0bywgMTUlKSAxMHZ3IjsKK3Nob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29s
dW1ucycpIiwgIidub25lJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJ25vbmUnIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3Jp
ZC1jb2x1bW5zLXJvd3MtZ2V0LXNldC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L3Jlc291cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LmpzCmluZGV4IGNiMTZjYzFi
N2ZmN2Q5YjMwZDc0NzViNTkzNjUzMjM5ZDdlMzIxZGUuLjA1NGQxOTkwMzkyOThkNmYzOTI5NDVh
OTQwNDM5ODAxNzAzY2JiMGUgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L3Jlc291cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1nZXQtc2V0LmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLWNvbHVtbnMtcm93cy1n
ZXQtc2V0LmpzCkBAIC0yNSw2ICsyNSwxMSBAQCB2YXIgZ3JpZFdpdGhWaWV3UG9ydFBlcmNlbnRh
Z2VFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRoVmlld1Bvcgogc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhWaWV3UG9ydFBlcmNlbnRhZ2VFbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInNjRweCci
KTsKIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoVmlld1BvcnRQZXJjZW50YWdl
RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzYw
cHgnIik7CiAKK3ZhciBncmlkV2l0aE1pbk1heCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJn
cmlkV2l0aE1pbk1heCIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5N
YXgsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIidtaW5t
YXgoMTAlLCAxNXB4KSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTWlu
TWF4LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbWlubWF4
KDIwcHgsIDUwJSknIik7CisKK2RlYnVnKCIiKTsKIGRlYnVnKCJUZXN0IGdldHRpbmcgd3Jvbmcg
dmFsdWVzIGZvciAtd2Via2l0LWdyaWQtY29sdW1ucyBhbmQgLXdlYmtpdC1ncmlkLXJvd3MgdGhy
b3VnaCBDU1MgKHRoZXkgc2hvdWxkIHJlc29sdmUgdG8gdGhlIGRlZmF1bHQ6ICdub25lJykiKTsK
IHZhciBncmlkV2l0aEZpdENvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImdyaWRXaXRoRml0Q29udGVudEVsZW1lbnQiKTsKIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGdyaWRXaXRoRml0Q29udGVudEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1ucycpIiwgIidub25lJyIpOwpAQCAtNjksNiArNzQsNTggQEAgZWxlbWVudC5z
dHlsZS53ZWJraXRHcmlkUm93cyA9ICIyNXZoIjsKIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwg
Iic4MHB4JyIpOwogc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3dzJykiLCAiJzE1MHB4JyIpOwogCitlbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICJtaW5tYXgo
NTUlLCA0NXB4KSI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm1pbm1heCgzMHB4
LCA0MCUpIjsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1ucycpIiwgIidtaW5tYXgoNTUlLCA0NXB4KSci
KTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidtaW5tYXgoMzBweCwgNDAlKSciKTsKKworZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlbGVtZW50KTsKK2VsZW1lbnQuc3R5bGUuZm9udCA9ICIxMHB4IEFoZW0iOworZWxl
bWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1ucyA9ICJtaW5tYXgoMjJlbSwgOHZoKSI7CitlbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm1pbm1heCgxMHZ3LCA1ZW0pIjsKK3Nob3VsZEJl
KCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1ucycpIiwgIidtaW5tYXgoMjIwcHgsIDQ4cHgpJyIpOworc2hvdWxkQmUoImdl
dENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1yb3dzJykiLCAiJ21pbm1heCg4MHB4LCA1MHB4KSciKTsKKworZGVidWcoIiIpOworZGVidWco
IlRlc3Qgc2V0dGluZyBncmlkLWNvbHVtbnMgYW5kIGdyaWQtcm93cyB0byBiYWQgbWlubWF4IHZh
bHVlIHRocm91Z2ggSlMiKTsKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisvLyBObyBjb21tYS4KK2Vs
ZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAibWlubWF4KDEwcHggMjBweCkiOworLy8g
T25seSAxIGFyZ3VtZW50IHByb3ZpZGVkLgorZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93cyA9
ICJtaW5tYXgoMTBweCkiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW5zJykiLCAiJ25vbmUnIik7Citz
aG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvd3MnKSIsICInbm9uZSciKTsKKworZWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
Ky8vIE5lc3RlZCBtaW5tYXguCitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5zID0gIm1p
bm1heChtaW5tYXgoMTBweCwgMjBweCksIDIwcHgpIjsKKy8vIE9ubHkgMiBhcmd1bWVudHMgYXJl
IGFsbG93ZWQuCitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm1pbm1heCgxMHB4LCAy
MHB4LCAzMHB4KSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3Vs
ZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtcm93cycpIiwgIidub25lJyIpOworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworLy8g
Tm8gYnJlYWR0aCB2YWx1ZS4KK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbnMgPSAibWlu
bWF4KCkiOworLy8gTm8gY29tbWEuCitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3dzID0gIm1p
bm1heCgzMHB4IDMwJSAzMGVtKSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbnMnKSIsICInbm9uZSci
KTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidub25lJyIpOworCitlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1l
bnQpOworLy8gQXV0byBpcyBub3QgYWxsb3dlZCBpbnNpZGUgbWlubWF4LgorZWxlbWVudC5zdHls
ZS53ZWJraXRHcmlkQ29sdW1ucyA9ICJtaW5tYXgoYXV0bywgOHZoKSI7CitlbGVtZW50LnN0eWxl
LndlYmtpdEdyaWRSb3dzID0gIm1pbm1heCgxMHZ3LCBhdXRvKSI7CitzaG91bGRCZSgiZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbnMnKSIsICInbm9uZSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93cycpIiwgIidub25lJyIpOwor
CiBkZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCBzZXR0aW5nIGdyaWQtY29sdW1ucyBhbmQgZ3JpZC1y
b3dzIGJhY2sgdG8gJ25vbmUnIHRocm91Z2ggSlMiKTsKIGVsZW1lbnQuc3R5bGUud2Via2l0R3Jp
ZENvbHVtbnMgPSAiMThweCI7Cg==
</data>
<flag name="review"
          id="193769"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>