<?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>97134</bug_id>
          
          <creation_ts>2012-09-19 14:14:30 -0700</creation_ts>
          <short_desc>Add optional keywords &apos;luminance&apos;/&apos;alpha&apos; for &apos;mask-image&apos; property to CSSParser</short_desc>
          <delta_ts>2014-03-04 06:17:16 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc>http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#the-mask-image</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>21502</dependson>
    
    <dependson>103021</dependson>
          <blocked>95389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>achicu</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>tabatkins</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>723822</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-19 14:14:30 -0700</bug_when>
    <thetext>The CSS Masking specification adds the optional value &lt;mask-type&gt; to &apos;mask-image&apos;:

&lt;mask-image&gt;#

with

&lt;mask-image&gt; = [&lt;image&gt; | none] &lt;mask-type&gt;?

&lt;mask-type&gt; = luminance | alpha

This allows switching to a different masking operation per image. All masks are &quot;transformed&quot; to alpha masks, drawn over each other and used as one alpha mask. Luminance masks are used by a lot of designers because tools from Corel and Adobe (possibly Inkscape and Gimp as well) create these kind of masks.

This bug report just addresses adding the keywords to the CSS parser. Since the keywords are optional and the fallback is alpha, this won&apos;t break existing content that relies on CSS masking today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728692</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-26 09:59:08 -0700</bug_when>
    <thetext>*** Bug 97695 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770801</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-19 09:04:21 -0800</bug_when>
    <thetext>There was a discussion to change the syntax of the &apos;mask-image&apos; property on www-style with the topic &quot;Re: Ambiguities in fill:url() / stroke:url() syntax&quot;[1].

The proposal says that the syntax should look like this:

mask-image: [&lt;mask-source&gt; [alpha | luminance]? ] | [&lt;mask-image&gt; [alpha | luminance]?]#


The problem is the definition of &lt;mask-source&gt; and &lt;mask-image&gt;. Both use &lt;url&gt;, but the meaning differs. While &lt;mask-source&gt; means that it references a &lt;mask&gt; element for masking, &lt;mask-image&gt; references an CSS image for masking.

The outcome of the discussion is, that we differ on the syntax of the URL if we take image or &lt;mask&gt; referencing. If the URL has a fragment identifier, we will parse it as &lt;mask-source&gt; and the fragment identifier references a &lt;mask&gt; element. If it doesn&apos;t have a fragment identifier, it is a CSS image. Since we decide on the URL, we can&apos;t differ if the resource with a fragment is actually an SVG document with &lt;mask&gt; element. Means url(image.png#frag) would be assumed to be an SVG image with &lt;mask&gt; element.

I will upload a patch to discuss this strategy shortly.


Adding more CSS people who may want to be involved in the review and the decision.

[1] http://lists.w3.org/Archives/Public/www-style/2012Oct/0766.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770815</commentid>
    <comment_count>3</comment_count>
      <attachid>174997</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-19 09:36:47 -0800</bug_when>
    <thetext>Created attachment 174997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976908</commentid>
    <comment_count>4</comment_count>
      <attachid>174997</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 11:05:37 -0800</bug_when>
    <thetext>Comment on attachment 174997
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986787</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-03-04 06:17:16 -0800</bug_when>
    <thetext>This is its own property now and already implemented.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174997</attachid>
            <date>2012-11-19 09:36:47 -0800</date>
            <delta_ts>2014-02-05 11:05:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97134-20121119093440.patch</filename>
            <type>text/plain</type>
            <size>44697</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRhYzg2NmMwOGYyZGJi
MmQ2ODliZTJhZTE1Y2JiMGU1M2JmZTBiOC4uOTVjOGExMjYzNmIyOTEyNDA3ODBkYzBlMzM0NTBj
NTc4MWRkODhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTExLTE5ICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG9wdGlvbmFsIGtleXdv
cmRzICdsdW1pbmFuY2UnLydhbHBoYScgZm9yICdtYXNrLWltYWdlJyBwcm9wZXJ0eSB0byBDU1NQ
YXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
MTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IHN5bnRheCBvZiAnLXdlYmtpdC1tYXNrLWltYWdlJyBjaGFuZ2VkIGFmdGVyIGEgcmVxdWVzdCBv
biB0aGUgd3d3LXN0eWxlIG1haWxpbmcgbGlzdC4gKFNlZSBkaXNjdXNzaW9uCisgICAgICAgIGlu
IHRoZSBidWcgcmVwb3J0LikKKworICAgICAgICAgICAgbWFzay1pbWFnZTogWzxtYXNrLXNvdXJj
ZT4gW2FscGhhIHwgbHVtaW5hbmNlXT8gXSB8IFs8bWFzay1pbWFnZT4gW2FscGhhIHwgbHVtaW5h
bmNlXT9dIworCisKKyAgICAgICAgVGhlIHByb2JsZW0gaXMgdGhlIGRlZmluaXRpb24gb2YgPG1h
c2stc291cmNlPiBhbmQgPG1hc2staW1hZ2U+LiBCb3RoIHVzZSA8dXJsPiwgYnV0IHRoZSBtZWFu
aW5nIGRpZmZlcnMuCisgICAgICAgIFdoaWxlIDxtYXNrLXNvdXJjZT4gbWVhbnMgdGhhdCBpdCBy
ZWZlcmVuY2VzIGEgPG1hc2s+IGVsZW1lbnQgZm9yIG1hc2tpbmcsIDxtYXNrLWltYWdlPiByZWZl
cmVuY2VzIGFuCisgICAgICAgIENTUyBpbWFnZSBmb3IgbWFza2luZy4KKworICAgICAgICBUaGUg
b3V0Y29tZSBvZiB0aGUgZGlzY3Vzc2lvbiBpcywgdGhhdCB3ZSBkaWZmZXIgb24gdGhlIHN5bnRh
eCBvZiB0aGUgVVJMIGlmIHdlIHRha2UgaW1hZ2Ugb3IgPG1hc2s+IHJlZmVyZW5jaW5nLgorICAg
ICAgICBJZiB0aGUgVVJMIGhhcyBhIGZyYWdtZW50IGlkZW50aWZpZXIsIHdlIHdpbGwgcGFyc2Ug
aXQgYXMgPG1hc2stc291cmNlPiBhbmQgdGhlIGZyYWdtZW50IGlkZW50aWZpZXIgcmVmZXJlbmNl
cyBhCisgICAgICAgIDxtYXNrPiBlbGVtZW50LiBJZiBpdCBkb2Vzbid0IGhhdmUgYSBmcmFnbWVu
dCBpZGVudGlmaWVyLCBpdCBpcyBhIENTUyBpbWFnZS4gU2luY2Ugd2UgZGVjaWRlIG9uIHRoZSBV
UkwsIHdlIGNhbid0CisgICAgICAgIGRpZmZlciBpZiB0aGUgcmVzb3VyY2Ugd2l0aCBhIGZyYWdt
ZW50IGlzIGFjdHVhbGx5IGFuIFNWRyBkb2N1bWVudCB3aXRoIDxtYXNrPiBlbGVtZW50LiBNZWFu
cyB1cmwoaW1hZ2UucG5nI2ZyYWcpCisgICAgICAgIHdpbGwgYmUgYXNzdW1lZCB0byBiZSBhbiBT
VkcgaW1hZ2Ugd2l0aCA8bWFzaz4gZWxlbWVudCBhbmQgbWFza2luZyB3aWxsIG5vdCBvY2N1ci4K
KworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gbmVlZGVkIHNvbWUgc3BlY2lhbCBjYXNpbmcg
b2YgJy13ZWJraXQtbWFzay1pbWFnZScuIFRoZSBwYXJzaW5nIGFuZCBzdHlsZSBidWlsZGluZyBt
dXN0IGRpZmZlcgorICAgICAgICBmcm9tICdiYWNrZ3JvdW5kLWltYWdlJyBub3cuCisKKyAgICAg
ICAgVGhlIG5ldyBzeW50YXggaXMgc3RpbGwgbW9zdGx5IGJhY2t3YXJkcyBjb21wYXRpYmxlIHRv
IHRoZSBvbGQgYmVoYXZpb3Igb2YgJy13ZWJraXQtbWFzay1pbWFnZScsIHdpdGggdGhlIGV4Y2Vw
dGlvbgorICAgICAgICBtZW50aW9uZWQgYWJvdmUuCisKKyAgICAgICAgVGVzdDogZmFzdC9tYXNr
aW5nL3BhcnNpbmctbWFzay1pbWFnZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDogU3BlY2lhbCBjb2RlIGZvciBDU1NQcm9wb2VydHlXZWJraXRN
YXNrSW1hZ2UgdG8gaGFuZGxlIHR3byB2YWx1ZXMuCisgICAgICAgIChXZWJDb3JlOjpDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOiBEaXR0by4KKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VNYXNrSW1hZ2UpOiBBZGQgbmV3IHBhcnNlciBmb3IgQ1NTUHJvcG9lcnR5V2Via2l0TWFza0lt
YWdlIHRvIHBhcnNlIHRoZSBkaWZmZXJlbnQKKyAgICAgICAgICAgICAgICBjb21iaW5hdGlvbiBh
cyBkaXNjdXNzZWQgYWJvdmUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VGaWxsUHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmg6CisgICAgICAgIChDU1NQYXJzZXIpOgorICAgICAgICAqIGNzcy9DU1NUb1N0eWxl
TWFwLmNwcDogQWRkIG5ldyBtYXBwZXIgZm9yIG1hc2tpbmcgYmVjYXVzZSBvZiB0aGUgbmV3IHZh
bHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcE1hc2spOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuaDoKKyAgICAgICAgKENT
U1RvU3R5bGVNYXApOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAo
QXBwbHlQcm9wZXJ0eU1hc2tJbWFnZSk6IEFkZCBuZXcgQXBwbHlQcm9wZXJ0eU1hc2tJbWFnZSBj
bGFzcyBmb3IgaGFuZGxpbmcgaW5oZXJpdGFuY2UgYW5kIGFwcGx5aW5nIG9mCisgICAgICAgICAg
ICAgICAgdmFsdWVzIG9uIENTU1Byb3BvZXJ0eVdlYmtpdE1hc2tJbWFnZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5UHJvcGVydHlNYXNrSW1hZ2U6OmFwcGx5SW5oZXJpdFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXNrSW1hZ2U6OmFwcGx5SW5pdGlhbFZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXNrSW1hZ2U6OmFwcGx5VmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eU1hc2tJbWFnZTo6Y3JlYXRlSGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlcjo6U3R5
bGVCdWlsZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcDogU2F2
ZSByZWZlcmVuY2UgZm9yIDxtYXNrPiBlbGVtZW50IGFzIHdlbGwgYXMgbHVtaW5hbmNlL2FscGhh
IGtleXdvcmQuCisgICAgICAgIChTYW1lU2l6ZUFzRmlsbExheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGxMYXllcjo6RmlsbExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6
b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6Ok1hc2tSZWZlcmVuY2U6Ok1hc2tSZWZlcmVuY2UpOgorICAgICAgICAoTWFza1JlZmVy
ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpNYXNrUmVmZXJlbmNlOjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1hc2tSZWZlcmVuY2U6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Om1hc2tSZWZlcmVuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjptYXNrVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmlzTWFza1JlZmVyZW5jZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5
ZXI6OmlzTWFza1R5cGVTZXQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRNYXNr
UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0TWFza1R5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tSZWZlcmVuY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGxMYXllcjo6aW5pdGlhbE1hc2tSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
bExheWVyOjppbml0aWFsTWFza1R5cGUpOgorICAgICAgICAoRmlsbExheWVyKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDogTW92ZSBtYXNrLXR5cGUg
ZW51bSBmcm9tIFNWRyBjb2RlIHRvIENTUyBjb2RlLgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZURlZnMuaDogRGl0dG8uCisKIDIwMTItMTEtMTcgIEJhbGF6cyBLZWxl
bWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtDb29yZGluYXRlZCBHcmFwaGlj
c10gUmVzdW1lZCBhbmltYXRpb25zIGxlYXZlIGFuIG9ic29sYXRlIEdyYXBoaWNzTGF5ZXJBbmlt
YXRpb24gYmVoaW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCmluZGV4IGFmYjAwZDEzMmI2NGIxZjMzMDNiZTAwOGFmM2I1MGVhMTJk
NTdjZWUuLjNkYWVjNWExOTFmMDI2YjQxNDQxM2RiZGExYWI3MGU5MzQ0OTlmOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBA
IC0xNDc4LDkgKzE0NzgsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogCiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3I6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFs
dWVQb29sKCkuY3JlYXRlQ29sb3JWYWx1ZShtX2FsbG93VmlzaXRlZFN0eWxlPyBzdHlsZS0+dmlz
aXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5yZ2IoKSA6IHN0
eWxlLT5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kSW1hZ2U6Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrSW1hZ2U6
IHsKLSAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0gcHJvcGVydHlJRCA9PSBD
U1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFnZSA/IHN0eWxlLT5tYXNrTGF5ZXJzKCkgOiBzdHlsZS0+
YmFja2dyb3VuZExheWVycygpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZElt
YWdlOiB7CisgICAgICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGxheWVycyA9IHN0eWxlLT5iYWNr
Z3JvdW5kTGF5ZXJzKCk7CiAgICAgICAgICAgICBpZiAoIWxheWVycykKICAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9u
ZSk7CiAKQEAgLTE1MDAsNiArMTQ5OSw1NSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogICAgICAgICB9
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrSW1hZ2U6IHsKKyAgICAgICAgICAg
IGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0gc3R5bGUtPm1hc2tMYXllcnMoKTsKKyAgICAgICAg
ICAgIGlmICghbGF5ZXJzKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5j
cmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKKworICAgICAgICAgICAgaWYgKCFs
YXllcnMtPm5leHQoKSkgeworICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWU7
CisgICAgICAgICAgICAgICAgaWYgKGxheWVycy0+aW1hZ2UoKSkKKyAgICAgICAgICAgICAgICAg
ICAgdmFsdWUgPSBsYXllcnMtPmltYWdlKCktPmNzc1ZhbHVlKCk7CisgICAgICAgICAgICAgICAg
ZWxzZSBpZiAobGF5ZXJzLT5pc01hc2tSZWZlcmVuY2VTZXQoKSkKKyAgICAgICAgICAgICAgICAg
ICAgdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGxheWVycy0+bWFza1JlZmVyZW5j
ZSgpLnVybCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKKworICAgICAgICAgICAgICAgIGlmIChsYXllcnMt
PmlzTWFza1R5cGVTZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVM
aXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAg
ICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBp
ZiAobGF5ZXJzLT5tYXNrVHlwZSgpID09IE1UX0FMUEhBKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZUFscGhhKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVMdW1pbmFuY2UpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3Q7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVl
TGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgRmls
bExheWVyKiBjdXJyTGF5ZXIgPSBsYXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3Vyckxh
eWVyLT5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlOwor
ICAgICAgICAgICAgICAgIGlmIChjdXJyTGF5ZXItPmltYWdlKCkpCisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlID0gY3VyckxheWVyLT5pbWFnZSgpLT5jc3NWYWx1ZSgpOworICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKGN1cnJMYXllci0+aXNNYXNrUmVmZXJlbmNlU2V0KCkpCisgICAgICAgICAg
ICAgICAgICAgIHZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShjdXJyTGF5ZXItPm1h
c2tSZWZlcmVuY2UoKS51cmwsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3NzVmFsdWVQb29sKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7CisKKyAgICAgICAgICAgICAgICBp
ZiAoY3VyckxheWVyLT5pc01hc2tUeXBlU2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgUmVm
UHRyPENTU1ZhbHVlTGlzdD4gbGlzdDIgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJh
dGVkKCk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QyLT5hcHBlbmQodmFsdWUpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoY3VyckxheWVyLT5tYXNrVHlwZSgpID09IE1UX0FMUEhBKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbGlzdDItPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBbHBoYSkpOworICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Mi0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUx1bWluYW5jZSkpOworICAgICAgICAgICAgICAg
ICAgICBsaXN0LT5hcHBlbmQobGlzdDIpOworICAgICAgICAgICAgICAgIH0gZWxzZSAKKyAgICAg
ICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5QmFja2dyb3VuZFNpemU6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRC
YWNrZ3JvdW5kU2l6ZToKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tTaXplOiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGM1MjBhMzEwNzEwNDRmNjg5N2UyYTViNjRi
MzY3MDE1ZTkxMjEyOWQuLjMyNGE0ZTQzNjliMzhhMDE1ZGQ2Mjk0ZGRlOTFkMzFmYzBhZDZlNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zNTYwLDYgKzM1NjAsNzEgQEAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUJhY2tncm91bmRDb2xvcigpCiAgICAgcmV0
dXJuIHBhcnNlQ29sb3IoKTsKIH0KIAorYm9vbCBDU1NQYXJzZXI6OnBhcnNlTWFza0ltYWdlKENT
U1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZSwgYm9v
bCYgbWFza0ltYWdlUmVmZXJlbmNlLCBib29sIG1hc2tJbWFnZVZpc2l0ZWQpCit7CisgICAgaWYg
KHZhbHVlTGlzdC0+Y3VycmVudCgpLT5pZCA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgdmFs
dWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgUmVmUHRyPENTU1ZhbHVlPiBuZXdW
YWx1ZTsKKyAgICBpZiAodmFsdWVMaXN0LT5jdXJyZW50KCktPnVuaXQgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19VUkkpIHsKKyAgICAgICAgS1VSTCB1cmwgPSBjb21wbGV0ZVVSTCh2YWx1ZUxp
c3QtPmN1cnJlbnQoKS0+c3RyaW5nKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBpZiAodXJs
Lmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7CisgICAgICAgICAgICBpZiAobWFza0ltYWdlVmlz
aXRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBuZXdWYWx1
ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodXJsLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1VSSSk7CisgICAgICAgICAgICBtYXNrSW1hZ2VSZWZlcmVuY2UgPSB0cnVlOworICAgICAgICB9
IGVsc2UKKyNlbmRpZgorICAgICAgICAgICAgbmV3VmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVh
dGUodXJsKTsKKyAgICB9IGVsc2UgaWYgKGlzR2VuZXJhdGVkSW1hZ2VWYWx1ZSh2YWx1ZUxpc3Qt
PmN1cnJlbnQoKSkpIHsKKyAgICAgICAgaWYgKCFwYXJzZUdlbmVyYXRlZEltYWdlKHZhbHVlTGlz
dCwgbmV3VmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIEVOQUJMRShDU1Nf
SU1BR0VfU0VUKQorICAgIH0gZWxzZSBpZiAodmFsdWVMaXN0LT5jdXJyZW50KCktPnVuaXQgPT0g
Q1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uICYmIGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlTGlzdC0+
Y3VycmVudCgpLT5mdW5jdGlvbi0+bmFtZSwgIi13ZWJraXQtaW1hZ2Utc2V0KCIpKSB7CisgICAg
ICAgIG5ld1ZhbHVlID0gcGFyc2VJbWFnZVNldChtX3ZhbHVlTGlzdC5nZXQoKSk7CisgICAgICAg
IGlmICghbmV3VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9
IGVsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisKKyAgICBDU1NQYXJzZXJWYWx1ZSogbmV4
dFZhbHVlID0gdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgaWYgKCFuZXh0VmFsdWUpIHsKKyAgICAg
ICAgdmFsdWUgPSBuZXdWYWx1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKGlzQ29tbWEobmV4dFZhbHVlKSkgeworICAgICAgICB2YWx1ZUxpc3QtPnByZXZpb3VzKCk7
CisgICAgICAgIHZhbHVlID0gbmV3VmFsdWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbmV3VmFsdWUyOworICAgIGlmIChuZXh0VmFsdWUtPmlk
ID09IENTU1ZhbHVlTHVtaW5hbmNlKQorICAgICAgICBuZXdWYWx1ZTIgPSBjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVMdW1pbmFuY2UpOworICAgIGVsc2UgaWYg
KG5leHRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVBbHBoYSkKKyAgICAgICAgbmV3VmFsdWUyID0gY3Nz
VmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWxwaGEpOworICAgIGVs
c2UgeworICAgICAgICAvLyBXZSBjb3VsZCBiZSBpbiB0aGUgbWlkZGxlIG9mICctd2Via2l0LW1h
c2snIHByb3BlcnR5IHBhcnNpbmcuCisgICAgICAgIHZhbHVlTGlzdC0+cHJldmlvdXMoKTsKKyAg
ICB9CisKKyAgICBpZiAobmV3VmFsdWUyKSB7CisgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+
IG1hc2tJbWFnZVZhbHVlTGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQo
KTsKKyAgICAgICAgbWFza0ltYWdlVmFsdWVMaXN0LT5hcHBlbmQobmV3VmFsdWUpOworICAgICAg
ICBtYXNrSW1hZ2VWYWx1ZUxpc3QtPmFwcGVuZChuZXdWYWx1ZTIpOworICAgICAgICB2YWx1ZSA9
IG1hc2tJbWFnZVZhbHVlTGlzdDsKKyAgICB9IGVsc2UKKyAgICAgICAgdmFsdWUgPSBuZXdWYWx1
ZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIENTU1BhcnNlcjo6cGFyc2VGaWxsSW1h
Z2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVl
KQogewogICAgIGlmICh2YWx1ZUxpc3QtPmN1cnJlbnQoKS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7
CkBAIC0zODE4LDYgKzM4ODMsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGaWxsUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wSWQsIENTU1Byb3BlcnR5SUQmIHByb3BJZDEsCiAgICAgICAgIHBy
b3BJZDIgPSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRZOwogICAgIH0KIAorICAgIGJvb2wg
bWFza0ltYWdlVmlzaXRlZCA9IGZhbHNlOworICAgIGJvb2wgbWFza0ltYWdlUmVmZXJlbmNlID0g
ZmFsc2U7CiAgICAgd2hpbGUgKCh2YWwgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSkgewogICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IGN1cnJWYWx1ZTsKICAgICAgICAgUmVmUHRyPENTU1ZhbHVl
PiBjdXJyVmFsdWUyOwpAQCAtMzg0MywxMCArMzkxMCwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VGaWxsUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIENTU1Byb3BlcnR5SUQmIHByb3BJ
ZDEsCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZToKLSAgICAgICAg
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0ltYWdlOgogICAgICAgICAgICAgICAg
ICAgICBpZiAocGFyc2VGaWxsSW1hZ2UobV92YWx1ZUxpc3QuZ2V0KCksIGN1cnJWYWx1ZSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a0ltYWdlOgorICAgICAgICAgICAgICAgICAgICBpZiAobWFza0ltYWdlUmVmZXJlbmNlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAv
LyBJZiAtd2Via2l0LW1hc2staW1hZ2UgaXMgYSByZWZlcmVuY2UsIHRoZW4gaXQgbXVzdCBoYXZl
IGp1c3Qgb25lIHNlcXVlbmNlLgorICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VNYXNrSW1h
Z2UobV92YWx1ZUxpc3QuZ2V0KCksIGN1cnJWYWx1ZSwgbWFza0ltYWdlUmVmZXJlbmNlLCBtYXNr
SW1hZ2VWaXNpdGVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0
KCk7CisgICAgICAgICAgICAgICAgICAgIG1hc2tJbWFnZVZpc2l0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QmFja2dyb3VuZENsaXA6CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEJhY2tncm91bmRPcmlnaW46CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tDbGlwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDUxODFmOWVjZDg3MDIxNGFiYzc4
NTA0ZjYxMWZjM2ZmYzYxZjZlYzkuLjJkMzUyY2JjZjBkMjE1N2U5YWY0MzMzNDhkYzZmMzM5YWE1
MzJkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6
CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VCYWNrZ3JvdW5kQ29sb3IoKTsKIAogICAg
IGJvb2wgcGFyc2VGaWxsSW1hZ2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgUmVmUHRyPENTU1ZhbHVl
PiYpOworICAgIGJvb2wgcGFyc2VNYXNrSW1hZ2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiwgUmVmUHRy
PENTU1ZhbHVlPiYsIGJvb2wmLCBib29sKTsKIAogICAgIGVudW0gRmlsbFBvc2l0aW9uRmxhZyB7
IEludmFsaWRGaWxsUG9zaXRpb24gPSAwLCBBbWJpZ3VvdXNGaWxsUG9zaXRpb24gPSAxLCBYRmls
bFBvc2l0aW9uID0gMiwgWUZpbGxQb3NpdGlvbiA9IDQgfTsKICAgICBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZUZpbGxQb3NpdGlvbkNvbXBvbmVudChDU1NQYXJzZXJWYWx1ZUxpc3QqLCB1bnNp
Z25lZCYgY3VtdWxhdGl2ZUZsYWdzLCBGaWxsUG9zaXRpb25GbGFnJiBpbmRpdmlkdWFsRmxhZyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKaW5kZXggMWUwODMzNGUyOTdmYzE5YmVj
M2M0NTBkMzI5YjZmZTJjZTYwNjRiNS4uNDczZmNiZWE0ZTVjYTA3ZWQ3YTI2ZDVkYWQ0ODkyZDNj
ZmEyZmI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcApAQCAtMTQwLDYgKzE0
MCwzNyBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEZpbGxJbWFnZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5LCBGaWxsTGF5ZXIqIGxheWVyLCBDU1NWYQogICAgIGxheWVyLT5zZXRJbWFnZShzdHls
ZUltYWdlKHByb3BlcnR5LCB2YWx1ZSkpOwogfQogCit2b2lkIENTU1RvU3R5bGVNYXA6Om1hcE1h
c2soQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZh
bHVlcykKK3sKKyAgICBDU1NWYWx1ZSogdmFsdWUgPSB2YWx1ZXMtPmlzVmFsdWVMaXN0KCkgPyBz
dGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZXMpLT5pdGVtKDApIDogdmFsdWVzOworCisg
ICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpKQorICAgICAgICBsYXllci0+c2V0Q29tcG9z
aXRlKEZpbGxMYXllcjo6aW5pdGlhbEZpbGxDb21wb3NpdGUobGF5ZXItPnR5cGUoKSkpOworICAg
IGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSk7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNVUkkoKSkgeworICAgICAg
ICAgICAgS1VSTCB1cmwgPSBtX3Jlc29sdmVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChwcmlt
aXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CisgICAgICAgICAgICBNYXNrUmVmZXJlbmNl
IHJlZmVyZW5jZTsKKyAgICAgICAgICAgIHJlZmVyZW5jZS51cmwgPSB1cmw7CisgICAgICAgICAg
ICByZWZlcmVuY2UuZnJhZ21lbnQgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgICAg
ICAgICBsYXllci0+c2V0TWFza1JlZmVyZW5jZShyZWZlcmVuY2UpOworICAgICAgICAgICAgbGF5
ZXItPmNsZWFySW1hZ2UoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBsYXllci0+c2V0
SW1hZ2Uoc3R5bGVJbWFnZShwcm9wZXJ0eSwgdmFsdWUpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
bGF5ZXItPnNldEltYWdlKHN0eWxlSW1hZ2UocHJvcGVydHksIHZhbHVlKSk7CisKKyAgICBpZiAo
IXZhbHVlcy0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1NTVmFsdWUq
IHZhbHVlMiA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlcyktPml0ZW0oMSk7Cisg
ICAgaWYgKCF2YWx1ZTItPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlMiA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4odmFsdWUyKTsKKyAgICBsYXllci0+c2V0TWFza1R5cGUoKnByaW1pdGl2
ZVZhbHVlMik7Cit9CisKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFJlcGVhdFgoQ1NTUHJv
cGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQogewogICAgIGlmICh2
YWx1ZS0+aXNJbml0aWFsVmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1RvU3R5bGVNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKaW5k
ZXggNmJhYjQwYmZjZDc3ZTEyNWFiMDhmMDA4ZjEwZTdhM2U2ODI3OTE0ZS4uYTViZDA3MzVmNzc5
YzA5ZjVjMmYwYWY0ODQ4ZjZhYzlmYmZlOTk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvU3R5bGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1h
cC5oCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcEFuaW1hdGlvblByb3Bl
cnR5KEFuaW1hdGlvbiosIENTU1ZhbHVlKik7CiAgICAgdm9pZCBtYXBBbmltYXRpb25UaW1pbmdG
dW5jdGlvbihBbmltYXRpb24qLCBDU1NWYWx1ZSopOwogCisgICAgdm9pZCBtYXBNYXNrKENTU1By
b3BlcnR5SUQsIEZpbGxMYXllciosIENTU1ZhbHVlKik7CisKICAgICB2b2lkIG1hcE5pbmVQaWVj
ZUltYWdlKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKiwgTmluZVBpZWNlSW1hZ2UmKTsKICAgICB2
b2lkIG1hcE5pbmVQaWVjZUltYWdlU2xpY2UoQ1NTVmFsdWUqLCBOaW5lUGllY2VJbWFnZSYpOwog
ICAgIExlbmd0aEJveCBtYXBOaW5lUGllY2VJbWFnZVF1YWQoQ1NTVmFsdWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlci5jcHAKaW5kZXggZWQ4ODY0MGE0OGFlMzc0OWJhNjYxYTU4NzMyNmUw
ZTBiM2NlNGQ5ZC4uNDAwNDc2Y2MzZTI3NGUyMDJmMjg2ODdmMTljMmRjYWUyNWU2OTk3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTQ5MCw2ICs0OTAsOTEgQEAgc3RydWN0
IEZpbGxMYXllckFjY2Vzc29yVHlwZXM8U3R5bGVJbWFnZSo+IHsKICAgICB0eXBlZGVmIFN0eWxl
SW1hZ2UqIEdldHRlcjsKIH07CiAKK2NsYXNzIEFwcGx5UHJvcGVydHlNYXNrSW1hZ2UgeworcHVi
bGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0
eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAgICBGaWxsTGF5ZXIqIGN1
cnJDaGlsZCA9IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmFjY2Vzc01hc2tMYXllcnMoKTsKKyAg
ICAgICAgRmlsbExheWVyKiBwcmV2Q2hpbGQgPSAwOworICAgICAgICBjb25zdCBGaWxsTGF5ZXIq
IGN1cnJQYXJlbnQgPSBzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT5tYXNrTGF5ZXJzKCk7
CisgICAgICAgIHdoaWxlIChjdXJyUGFyZW50ICYmIGN1cnJQYXJlbnQtPmlzSW1hZ2VTZXQoKSkg
eworICAgICAgICAgICAgaWYgKCFjdXJyQ2hpbGQpIHsKKyAgICAgICAgICAgICAgICAvKiBOZWVk
IHRvIG1ha2UgYSBuZXcgbGF5ZXIuKi8KKyAgICAgICAgICAgICAgICBjdXJyQ2hpbGQgPSBuZXcg
RmlsbExheWVyKE1hc2tGaWxsTGF5ZXIpOworICAgICAgICAgICAgICAgIHByZXZDaGlsZC0+c2V0
TmV4dChjdXJyQ2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VyckNoaWxkLT5z
ZXRJbWFnZShjdXJyUGFyZW50LT5pbWFnZSgpKTsKKyAgICAgICAgICAgIGN1cnJDaGlsZC0+c2V0
TWFza1R5cGUoY3VyclBhcmVudC0+bWFza1R5cGUoKSk7CisgICAgICAgICAgICBwcmV2Q2hpbGQg
PSBjdXJyQ2hpbGQ7CisgICAgICAgICAgICBjdXJyQ2hpbGQgPSBwcmV2Q2hpbGQtPm5leHQoKTsK
KyAgICAgICAgICAgIGN1cnJQYXJlbnQgPSBjdXJyUGFyZW50LT5uZXh0KCk7CisgICAgICAgIH0K
KworICAgICAgICB3aGlsZSAoY3VyclBhcmVudCAmJiBjdXJyUGFyZW50LT5pc01hc2tSZWZlcmVu
Y2VTZXQoKSkgeworICAgICAgICAgICAgaWYgKCFjdXJyQ2hpbGQpIHsKKyAgICAgICAgICAgICAg
ICAvKiBOZWVkIHRvIG1ha2UgYSBuZXcgbGF5ZXIuKi8KKyAgICAgICAgICAgICAgICBjdXJyQ2hp
bGQgPSBuZXcgRmlsbExheWVyKE1hc2tGaWxsTGF5ZXIpOworICAgICAgICAgICAgICAgIHByZXZD
aGlsZC0+c2V0TmV4dChjdXJyQ2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3Vy
ckNoaWxkLT5jbGVhckltYWdlKCk7CisgICAgICAgICAgICBjdXJyQ2hpbGQtPnNldE1hc2tSZWZl
cmVuY2UoY3VyclBhcmVudC0+bWFza1JlZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIGN1cnJDaGls
ZC0+c2V0TWFza1R5cGUoY3VyclBhcmVudC0+bWFza1R5cGUoKSk7CisgICAgICAgICAgICBwcmV2
Q2hpbGQgPSBjdXJyQ2hpbGQ7CisgICAgICAgICAgICBjdXJyQ2hpbGQgPSBwcmV2Q2hpbGQtPm5l
eHQoKTsKKyAgICAgICAgICAgIGN1cnJQYXJlbnQgPSBjdXJyUGFyZW50LT5uZXh0KCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHdoaWxlIChjdXJyQ2hpbGQpIHsKKyAgICAgICAgICAg
IC8qIFJlc2V0IGFueSByZW1haW5pbmcgbGF5ZXJzIHRvIG5vdCBoYXZlIHRoZSBwcm9wZXJ0eSBz
ZXQuICovCisgICAgICAgICAgICBjdXJyQ2hpbGQtPmNsZWFySW1hZ2UoKTsKKyAgICAgICAgICAg
IGN1cnJDaGlsZCA9IGN1cnJDaGlsZC0+bmV4dCgpOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVz
b2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAgICBGaWxsTGF5ZXIqIGN1cnJDaGls
ZCA9IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmFjY2Vzc01hc2tMYXllcnMoKTsKKyAgICAgICAg
Y3VyckNoaWxkLT5zZXRJbWFnZShjdXJyQ2hpbGQtPmluaXRpYWxGaWxsSW1hZ2UoTWFza0ZpbGxM
YXllcikpOworICAgICAgICBmb3IgKGN1cnJDaGlsZCA9IGN1cnJDaGlsZC0+bmV4dCgpOyBjdXJy
Q2hpbGQ7IGN1cnJDaGlsZCA9IGN1cnJDaGlsZC0+bmV4dCgpKQorICAgICAgICAgICAgY3VyckNo
aWxkLT5jbGVhckltYWdlKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFs
dWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUq
IHZhbHVlKQorICAgIHsKKyAgICAgICAgRmlsbExheWVyKiBjdXJyQ2hpbGQgPSBzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLT5hY2Nlc3NNYXNrTGF5ZXJzKCk7CisgICAgICAgIEZpbGxMYXllciogcHJl
dkNoaWxkID0gMDsKKyAgICAgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpCisjaWYgRU5BQkxF
KENTU19JTUFHRV9TRVQpCisgICAgICAgICAgICAmJiAhdmFsdWUtPmlzSW1hZ2VTZXRWYWx1ZSgp
CisjZW5kaWYKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgLyogV2FsayBlYWNoIHZhbHVl
IGFuZCBwdXQgaXQgaW50byBhIGxheWVyLCBjcmVhdGluZyBuZXcgbGF5ZXJzIGFzIG5lZWRlZC4g
Ki8KKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NT
VmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHZhbHVlTGlzdC0+bGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICghY3VyckNo
aWxkKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gbWFrZSBhIG5ldyBsYXllciB0
byBob2xkIHRoaXMgdmFsdWUgKi8KKyAgICAgICAgICAgICAgICAgICAgY3VyckNoaWxkID0gbmV3
IEZpbGxMYXllcihNYXNrRmlsbExheWVyKTsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNoaWxk
LT5zZXROZXh0KGN1cnJDaGlsZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IENTU1ZhbHVlKiB2ID0gdmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpOworICAg
ICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlTWFwKCktPm1hcE1hc2soQ1NTUHJvcGVy
dHlXZWJraXRNYXNrSW1hZ2UsIGN1cnJDaGlsZCwgdik7CisgICAgICAgICAgICAgICAgcHJldkNo
aWxkID0gY3VyckNoaWxkOworICAgICAgICAgICAgICAgIGN1cnJDaGlsZCA9IGN1cnJDaGlsZC0+
bmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3R5bGVNYXAoKS0+bWFwTWFzayhDU1NQcm9wZXJ0eVdlYmtpdE1hc2tJbWFn
ZSwgY3VyckNoaWxkLCB2YWx1ZSk7CisgICAgICAgICAgICBjdXJyQ2hpbGQgPSBjdXJyQ2hpbGQt
Pm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoY3VyckNoaWxkKSB7CisgICAgICAg
ICAgICAvKiBSZXNldCBhbGwgcmVtYWluaW5nIGxheWVycyB0byBub3QgaGF2ZSB0aGUgcHJvcGVy
dHkgc2V0LiAqLworICAgICAgICAgICAgY3VyckNoaWxkLT5jbGVhckltYWdlKCk7CisgICAgICAg
ICAgICBjdXJyQ2hpbGQgPSBjdXJyQ2hpbGQtPm5leHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKSB7IHJldHVybiBQ
cm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZh
cHBseVZhbHVlKTsgfQorfTsKKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQsCiAgICAgICAgICAgQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlkLAogICAgICAgICAgIEVGaWxsTGF5ZXJUeXBlIGZpbGxMYXll
clR5cGUsCkBAIC0yMDIzLDcgKzIxMDgsNyBAQCBTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcigp
CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdlV2lk
dGgsIEFwcGx5UHJvcGVydHlCb3JkZXJJbWFnZU1vZGlmaWVyPEJvcmRlck1hc2ssIFdpZHRoPjo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRNYXNrQ2xpcCwgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxFRmlsbEJveCwgQ1NTUHJvcGVydHlX
ZWJraXRNYXNrQ2xpcCwgTWFza0ZpbGxMYXllciwgJlJlbmRlclN0eWxlOjphY2Nlc3NNYXNrTGF5
ZXJzLCAmUmVuZGVyU3R5bGU6Om1hc2tMYXllcnMsICZGaWxsTGF5ZXI6OmlzQ2xpcFNldCwgJkZp
bGxMYXllcjo6Y2xpcCwgJkZpbGxMYXllcjo6c2V0Q2xpcCwgJkZpbGxMYXllcjo6Y2xlYXJDbGlw
LCAmRmlsbExheWVyOjppbml0aWFsRmlsbENsaXAsICZDU1NUb1N0eWxlTWFwOjptYXBGaWxsQ2xp
cD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
V2Via2l0TWFza0NvbXBvc2l0ZSwgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxDb21wb3NpdGVPcGVy
YXRvciwgQ1NTUHJvcGVydHlXZWJraXRNYXNrQ29tcG9zaXRlLCBNYXNrRmlsbExheWVyLCAmUmVu
ZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXllcnMsICZSZW5kZXJTdHlsZTo6bWFza0xheWVycywgJkZp
bGxMYXllcjo6aXNDb21wb3NpdGVTZXQsICZGaWxsTGF5ZXI6OmNvbXBvc2l0ZSwgJkZpbGxMYXll
cjo6c2V0Q29tcG9zaXRlLCAmRmlsbExheWVyOjpjbGVhckNvbXBvc2l0ZSwgJkZpbGxMYXllcjo6
aW5pdGlhbEZpbGxDb21wb3NpdGUsICZDU1NUb1N0eWxlTWFwOjptYXBGaWxsQ29tcG9zaXRlPjo6
Y3JlYXRlSGFuZGxlcigpKTsKLSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRNYXNrSW1hZ2UsIEFwcGx5UHJvcGVydHlGaWxsTGF5ZXI8U3R5bGVJbWFnZSosIENTU1Byb3Bl
cnR5V2Via2l0TWFza0ltYWdlLCBNYXNrRmlsbExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01h
c2tMYXllcnMsICZSZW5kZXJTdHlsZTo6bWFza0xheWVycywgJkZpbGxMYXllcjo6aXNJbWFnZVNl
dCwgJkZpbGxMYXllcjo6aW1hZ2UsICZGaWxsTGF5ZXI6OnNldEltYWdlLCAmRmlsbExheWVyOjpj
bGVhckltYWdlLCAmRmlsbExheWVyOjppbml0aWFsRmlsbEltYWdlLCAmQ1NTVG9TdHlsZU1hcDo6
bWFwRmlsbEltYWdlPjo6Y3JlYXRlSGFuZGxlcigpKTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRNYXNrSW1hZ2UsIEFwcGx5UHJvcGVydHlNYXNrSW1hZ2U6OmNyZWF0
ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0TWFz
a09yaWdpbiwgQXBwbHlQcm9wZXJ0eUZpbGxMYXllcjxFRmlsbEJveCwgQ1NTUHJvcGVydHlXZWJr
aXRNYXNrT3JpZ2luLCBNYXNrRmlsbExheWVyLCAmUmVuZGVyU3R5bGU6OmFjY2Vzc01hc2tMYXll
cnMsICZSZW5kZXJTdHlsZTo6bWFza0xheWVycywgJkZpbGxMYXllcjo6aXNPcmlnaW5TZXQsICZG
aWxsTGF5ZXI6Om9yaWdpbiwgJkZpbGxMYXllcjo6c2V0T3JpZ2luLCAmRmlsbExheWVyOjpjbGVh
ck9yaWdpbiwgJkZpbGxMYXllcjo6aW5pdGlhbEZpbGxPcmlnaW4sICZDU1NUb1N0eWxlTWFwOjpt
YXBGaWxsT3JpZ2luPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb24sIEFwcGx5UHJvcGVydHlFeHBhbmRpbmc8U3Vw
cHJlc3NWYWx1ZSwgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25YLCBDU1NQcm9wZXJ0eVdl
YmtpdE1hc2tQb3NpdGlvblk+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFu
ZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblgsIEFwcGx5UHJvcGVydHlGaWxsTGF5
ZXI8TGVuZ3RoLCBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblgsIE1hc2tGaWxsTGF5ZXIs
ICZSZW5kZXJTdHlsZTo6YWNjZXNzTWFza0xheWVycywgJlJlbmRlclN0eWxlOjptYXNrTGF5ZXJz
LCAmRmlsbExheWVyOjppc1hQb3NpdGlvblNldCwgJkZpbGxMYXllcjo6eFBvc2l0aW9uLCAmRmls
bExheWVyOjpzZXRYUG9zaXRpb24sICZGaWxsTGF5ZXI6OmNsZWFyWFBvc2l0aW9uLCAmRmlsbExh
eWVyOjppbml0aWFsRmlsbFhQb3NpdGlvbiwgJkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxYUG9zaXRp
b24+OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmNwcAppbmRleCAxOTVhMDVjNWRkMTNhYTQzOTcwZmJkYzdlNmU5MGVlYjA3YzQ0
NTUwLi42Mzk4MTRmOTg1MjY0NDI3MTE0NzhmMzczYjAzMzBhOWUxNjJkMmI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtMzQsNiArMzQsOCBA
QCBzdHJ1Y3QgU2FtZVNpemVBc0ZpbGxMYXllciB7CiAKICAgICBMZW5ndGhTaXplIG1fc2l6ZUxl
bmd0aDsKIAorICAgIE1hc2tSZWZlcmVuY2UgbV9tYXNrUmVmZXJlbmNlOworCiAgICAgdW5zaWdu
ZWQgbV9iaXRmaWVsZHM7CiB9OwogCkBAIC00NSw2ICs0Nyw3IEBAIEZpbGxMYXllcjo6RmlsbExh
eWVyKEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAgICAgLCBtX3hQb3NpdGlvbihGaWxsTGF5ZXI6Omlu
aXRpYWxGaWxsWFBvc2l0aW9uKHR5cGUpKQogICAgICwgbV95UG9zaXRpb24oRmlsbExheWVyOjpp
bml0aWFsRmlsbFlQb3NpdGlvbih0eXBlKSkKICAgICAsIG1fc2l6ZUxlbmd0aChGaWxsTGF5ZXI6
OmluaXRpYWxGaWxsU2l6ZUxlbmd0aCh0eXBlKSkKKyAgICAsIG1fbWFza1JlZmVyZW5jZShGaWxs
TGF5ZXI6OmluaXRpYWxNYXNrUmVmZXJlbmNlKHR5cGUpKQogICAgICwgbV9hdHRhY2htZW50KEZp
bGxMYXllcjo6aW5pdGlhbEZpbGxBdHRhY2htZW50KHR5cGUpKQogICAgICwgbV9jbGlwKEZpbGxM
YXllcjo6aW5pdGlhbEZpbGxDbGlwKHR5cGUpKQogICAgICwgbV9vcmlnaW4oRmlsbExheWVyOjpp
bml0aWFsRmlsbE9yaWdpbih0eXBlKSkKQEAgLTUyLDYgKzU1LDcgQEAgRmlsbExheWVyOjpGaWxs
TGF5ZXIoRUZpbGxMYXllclR5cGUgdHlwZSkKICAgICAsIG1fcmVwZWF0WShGaWxsTGF5ZXI6Omlu
aXRpYWxGaWxsUmVwZWF0WSh0eXBlKSkKICAgICAsIG1fY29tcG9zaXRlKEZpbGxMYXllcjo6aW5p
dGlhbEZpbGxDb21wb3NpdGUodHlwZSkpCiAgICAgLCBtX3NpemVUeXBlKFNpemVOb25lKQorICAg
ICwgbV9tYXNrVHlwZShNVF9BTFBIQSkKICAgICAsIG1faW1hZ2VTZXQoZmFsc2UpCiAgICAgLCBt
X2F0dGFjaG1lbnRTZXQoZmFsc2UpCiAgICAgLCBtX2NsaXBTZXQoZmFsc2UpCkBAIC02Miw2ICs2
Niw4IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKEVGaWxsTGF5ZXJUeXBlIHR5cGUpCiAgICAgLCBt
X3lQb3NTZXQoZmFsc2UpCiAgICAgLCBtX2NvbXBvc2l0ZVNldCh0eXBlID09IE1hc2tGaWxsTGF5
ZXIpCiAgICAgLCBtX3R5cGUodHlwZSkKKyAgICAsIG1fbWFza1JlZmVyZW5jZVNldChmYWxzZSkK
KyAgICAsIG1fbWFza1R5cGVTZXQoZmFsc2UpCiB7CiB9CiAKQEAgLTcxLDYgKzc3LDcgQEAgRmls
bExheWVyOjpGaWxsTGF5ZXIoY29uc3QgRmlsbExheWVyJiBvKQogICAgICwgbV94UG9zaXRpb24o
by5tX3hQb3NpdGlvbikKICAgICAsIG1feVBvc2l0aW9uKG8ubV95UG9zaXRpb24pCiAgICAgLCBt
X3NpemVMZW5ndGgoby5tX3NpemVMZW5ndGgpCisgICAgLCBtX21hc2tSZWZlcmVuY2Uoby5tX21h
c2tSZWZlcmVuY2UpCiAgICAgLCBtX2F0dGFjaG1lbnQoby5tX2F0dGFjaG1lbnQpCiAgICAgLCBt
X2NsaXAoby5tX2NsaXApCiAgICAgLCBtX29yaWdpbihvLm1fb3JpZ2luKQpAQCAtNzgsNiArODUs
NyBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihjb25zdCBGaWxsTGF5ZXImIG8pCiAgICAgLCBtX3Jl
cGVhdFkoby5tX3JlcGVhdFkpCiAgICAgLCBtX2NvbXBvc2l0ZShvLm1fY29tcG9zaXRlKQogICAg
ICwgbV9zaXplVHlwZShvLm1fc2l6ZVR5cGUpCisgICAgLCBtX21hc2tUeXBlKE1UX0FMUEhBKQog
ICAgICwgbV9pbWFnZVNldChvLm1faW1hZ2VTZXQpCiAgICAgLCBtX2F0dGFjaG1lbnRTZXQoby5t
X2F0dGFjaG1lbnRTZXQpCiAgICAgLCBtX2NsaXBTZXQoby5tX2NsaXBTZXQpCkBAIC04OCw2ICs5
Niw4IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKGNvbnN0IEZpbGxMYXllciYgbykKICAgICAsIG1f
eVBvc1NldChvLm1feVBvc1NldCkKICAgICAsIG1fY29tcG9zaXRlU2V0KG8ubV9jb21wb3NpdGVT
ZXQpCiAgICAgLCBtX3R5cGUoby5tX3R5cGUpCisgICAgLCBtX21hc2tSZWZlcmVuY2VTZXQoby5t
X21hc2tSZWZlcmVuY2VTZXQpCisgICAgLCBtX21hc2tUeXBlU2V0KG8ubV9tYXNrVHlwZVNldCkK
IHsKIH0KIApAQCAtMTE0LDYgKzEyNCw3IEBAIEZpbGxMYXllciYgRmlsbExheWVyOjpvcGVyYXRv
cj0oY29uc3QgRmlsbExheWVyJiBvKQogICAgIG1fcmVwZWF0WCA9IG8ubV9yZXBlYXRYOwogICAg
IG1fcmVwZWF0WSA9IG8ubV9yZXBlYXRZOwogICAgIG1fc2l6ZVR5cGUgPSBvLm1fc2l6ZVR5cGU7
CisgICAgbV9tYXNrVHlwZSA9IG8ubV9tYXNrVHlwZTsKIAogICAgIG1faW1hZ2VTZXQgPSBvLm1f
aW1hZ2VTZXQ7CiAgICAgbV9hdHRhY2htZW50U2V0ID0gby5tX2F0dGFjaG1lbnRTZXQ7CkBAIC0x
MjcsNiArMTM4LDggQEAgRmlsbExheWVyJiBGaWxsTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBGaWxs
TGF5ZXImIG8pCiAgICAgCiAgICAgbV90eXBlID0gby5tX3R5cGU7CiAKKyAgICBtX21hc2tSZWZl
cmVuY2UgPSBvLm1fbWFza1JlZmVyZW5jZTsKKwogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAt
MTM0LDExICsxNDcsMTEgQEAgYm9vbCBGaWxsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3QgRmlsbExh
eWVyJiBvKSBjb25zdAogewogICAgIC8vIFdlIGRvIG5vdCBjaGVjayB0aGUgImlzU2V0IiBib29s
ZWFucyBmb3IgZWFjaCBwcm9wZXJ0eSwgc2luY2UgdGhvc2UgYXJlIG9ubHkgdXNlZCBkdXJpbmcg
aW5pdGlhbCBjb25zdHJ1Y3Rpb24KICAgICAvLyB0byBwcm9wYWdhdGUgcGF0dGVybnMgaW50byBs
YXllcnMuICBBbGwgbGF5ZXIgY29tcGFyaXNvbnMgaGFwcGVuIGFmdGVyIHZhbHVlcyBoYXZlIGFs
bCBiZWVuIGZpbGxlZCBpbiBhbnl3YXkuCi0gICAgcmV0dXJuIFN0eWxlSW1hZ2U6OmltYWdlc0Vx
dWl2YWxlbnQobV9pbWFnZS5nZXQoKSwgby5tX2ltYWdlLmdldCgpKSAmJiBtX3hQb3NpdGlvbiA9
PSBvLm1feFBvc2l0aW9uICYmIG1feVBvc2l0aW9uID09IG8ubV95UG9zaXRpb24gJiYKLSAgICAg
ICAgICAgbV9hdHRhY2htZW50ID09IG8ubV9hdHRhY2htZW50ICYmIG1fY2xpcCA9PSBvLm1fY2xp
cCAmJiAKLSAgICAgICAgICAgbV9jb21wb3NpdGUgPT0gby5tX2NvbXBvc2l0ZSAmJiBtX29yaWdp
biA9PSBvLm1fb3JpZ2luICYmIG1fcmVwZWF0WCA9PSBvLm1fcmVwZWF0WCAmJgotICAgICAgICAg
ICBtX3JlcGVhdFkgPT0gby5tX3JlcGVhdFkgJiYgbV9zaXplVHlwZSA9PSBvLm1fc2l6ZVR5cGUg
JiYgbV9zaXplTGVuZ3RoID09IG8ubV9zaXplTGVuZ3RoICYmIAotICAgICAgICAgICBtX3R5cGUg
PT0gby5tX3R5cGUgJiYgKChtX25leHQgJiYgby5tX25leHQpID8gKm1fbmV4dCA9PSAqby5tX25l
eHQgOiBtX25leHQgPT0gby5tX25leHQpOworICAgIHJldHVybiBTdHlsZUltYWdlOjppbWFnZXNF
cXVpdmFsZW50KG1faW1hZ2UuZ2V0KCksIG8ubV9pbWFnZS5nZXQoKSkgJiYgbV94UG9zaXRpb24g
PT0gby5tX3hQb3NpdGlvbiAmJiBtX3lQb3NpdGlvbiA9PSBvLm1feVBvc2l0aW9uCisgICAgICAg
ICYmIG1fYXR0YWNobWVudCA9PSBvLm1fYXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAK
KyAgICAgICAgJiYgbV9jb21wb3NpdGUgPT0gby5tX2NvbXBvc2l0ZSAmJiBtX29yaWdpbiA9PSBv
Lm1fb3JpZ2luICYmIG1fcmVwZWF0WCA9PSBvLm1fcmVwZWF0WAorICAgICAgICAmJiBtX3JlcGVh
dFkgPT0gby5tX3JlcGVhdFkgJiYgbV9zaXplVHlwZSA9PSBvLm1fc2l6ZVR5cGUgJiYgbV9tYXNr
VHlwZSA9PSBvLm1fbWFza1R5cGUgJiYgbV9zaXplTGVuZ3RoID09IG8ubV9zaXplTGVuZ3RoCisg
ICAgICAgICYmIG1fdHlwZSA9PSBvLm1fdHlwZSAmJiBtX21hc2tSZWZlcmVuY2UgPT0gby5tX21h
c2tSZWZlcmVuY2UgJiYgKChtX25leHQgJiYgby5tX25leHQpID8gKm1fbmV4dCA9PSAqby5tX25l
eHQgOiBtX25leHQgPT0gby5tX25leHQpOwogfQogCiB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0
UHJvcGVydGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgK
aW5kZXggN2YxY2ViMTQ4MDE3ZmE0OTA1YzQyMjIyN2IyZThlN2M2NGY4ODJmYS4uNmFjNDQxNGE3
NWYxMGQyOWM4YTI2ZGM3ZjQ5NGQ2YzM3NDc0M2FiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtNTksNiArNTksMjQgQEAgc3RydWN0IEZpbGxTaXpl
IHsKICAgICBMZW5ndGhTaXplIHNpemU7CiB9OwogCitzdHJ1Y3QgTWFza1JlZmVyZW5jZSB7Cisg
ICAgTWFza1JlZmVyZW5jZSgpCisgICAgeworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBNYXNrUmVmZXJlbmNlJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHVybCA9
PSBvLnVybCAmJiBmcmFnbWVudCA9PSBvLmZyYWdtZW50OworICAgIH0KKyAgICBib29sIG9wZXJh
dG9yIT0oY29uc3QgTWFza1JlZmVyZW5jZSYgbykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biAhKCp0aGlzID09IG8pOworICAgIH0KKworICAgIFN0cmluZyB1cmw7CisgICAgU3RyaW5nIGZy
YWdtZW50OworfTsKKwogY2xhc3MgRmlsbExheWVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKQEAgLTc3LDYgKzk1LDggQEAgcHVibGljOgogICAgIExlbmd0aFNpemUg
c2l6ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZUxlbmd0aDsgfQogICAgIEVGaWxsU2l6
ZVR5cGUgc2l6ZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbFNpemVUeXBl
PihtX3NpemVUeXBlKTsgfQogICAgIEZpbGxTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBGaWxs
U2l6ZShzdGF0aWNfY2FzdDxFRmlsbFNpemVUeXBlPihtX3NpemVUeXBlKSwgbV9zaXplTGVuZ3Ro
KTsgfQorICAgIE1hc2tSZWZlcmVuY2UgbWFza1JlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWFza1JlZmVyZW5jZTsgfQorICAgIEVNYXNrVHlwZSBtYXNrVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVNYXNrVHlwZT4obV9tYXNrVHlwZSk7IH0KIAogICAgIGNvbnN0IEZpbGxM
YXllciogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dDsgfQogICAgIEZpbGxMYXllciogbmV4
dCgpIHsgcmV0dXJuIG1fbmV4dDsgfQpAQCAtOTEsNiArMTExLDggQEAgcHVibGljOgogICAgIGJv
b2wgaXNSZXBlYXRZU2V0KCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRZU2V0OyB9CiAgICAgYm9v
bCBpc0NvbXBvc2l0ZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRlU2V0OyB9CiAgICAg
Ym9vbCBpc1NpemVTZXQoKSBjb25zdCB7IHJldHVybiBtX3NpemVUeXBlICE9IFNpemVOb25lOyB9
CisgICAgYm9vbCBpc01hc2tSZWZlcmVuY2VTZXQoKSBjb25zdCB7IHJldHVybiBtX21hc2tSZWZl
cmVuY2VTZXQ7IH0KKyAgICBib29sIGlzTWFza1R5cGVTZXQoKSBjb25zdCB7IHJldHVybiBtX21h
c2tUeXBlU2V0OyB9CiAgICAgCiAgICAgdm9pZCBzZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1h
Z2U+IGkpIHsgbV9pbWFnZSA9IGk7IG1faW1hZ2VTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRY
UG9zaXRpb24oTGVuZ3RoIGwpIHsgbV94UG9zaXRpb24gPSBsOyBtX3hQb3NTZXQgPSB0cnVlOyB9
CkBAIC0xMDQsNiArMTI2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2l6ZVR5cGUoRUZpbGxT
aXplVHlwZSBiKSB7IG1fc2l6ZVR5cGUgPSBiOyB9CiAgICAgdm9pZCBzZXRTaXplTGVuZ3RoKExl
bmd0aFNpemUgbCkgeyBtX3NpemVMZW5ndGggPSBsOyB9CiAgICAgdm9pZCBzZXRTaXplKEZpbGxT
aXplIGYpIHsgbV9zaXplVHlwZSA9IGYudHlwZTsgbV9zaXplTGVuZ3RoID0gZi5zaXplOyB9Cisg
ICAgdm9pZCBzZXRNYXNrUmVmZXJlbmNlKE1hc2tSZWZlcmVuY2UgbSkgeyBtX21hc2tSZWZlcmVu
Y2UgPSBtOyBtX21hc2tSZWZlcmVuY2VTZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRNYXNrVHlw
ZShFTWFza1R5cGUgbSkgeyBtX21hc2tUeXBlID0gbTsgbV9tYXNrVHlwZVNldCA9IHRydWU7IH0K
ICAgICAKICAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsgbV9pbWFnZVNl
dCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3NpdGlvbigpIHsgbV94UG9zU2V0ID0gZmFs
c2U7IH0KQEAgLTExNSw2ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclJlcGVhdFko
KSB7IG1fcmVwZWF0WVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhckNvbXBvc2l0ZSgpIHsg
bV9jb21wb3NpdGVTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJTaXplKCkgeyBtX3NpemVU
eXBlID0gU2l6ZU5vbmU7IH0KKyAgICB2b2lkIGNsZWFyTWFza1JlZmVyZW5jZSgpIHsgbV9tYXNr
UmVmZXJlbmNlU2V0ID0gZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFyTWFza1R5cGUoKSB7IG1fbWFz
a1R5cGVTZXQgPSBmYWxzZTsgfQogCiAgICAgdm9pZCBzZXROZXh0KEZpbGxMYXllciogbikgeyBp
ZiAobV9uZXh0ICE9IG4pIHsgZGVsZXRlIG1fbmV4dDsgbV9uZXh0ID0gbjsgfSB9CiAKQEAgLTE2
MSw2ICsxODcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFhQb3Np
dGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMCwgUGVyY2VudCk7IH0KICAg
ICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxGaWxsWVBvc2l0aW9uKEVGaWxsTGF5ZXJUeXBlKSB7IHJl
dHVybiBMZW5ndGgoMC4wLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0
aWFsRmlsbEltYWdlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIE1h
c2tSZWZlcmVuY2UgaW5pdGlhbE1hc2tSZWZlcmVuY2UoRUZpbGxMYXllclR5cGUpIHsgcmV0dXJu
IE1hc2tSZWZlcmVuY2UoKTsgfQorICAgIHN0YXRpYyBFTWFza1R5cGUgaW5pdGlhbE1hc2tUeXBl
KEVNYXNrVHlwZSkgeyByZXR1cm4gTVRfQUxQSEE7IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgUmVuZGVyU3R5bGU7CkBAIC0xNzYsNiArMjA0LDggQEAgcHJpdmF0ZToKIAogICAgIExl
bmd0aFNpemUgbV9zaXplTGVuZ3RoOwogCisgICAgTWFza1JlZmVyZW5jZSBtX21hc2tSZWZlcmVu
Y2U7CisKICAgICB1bnNpZ25lZCBtX2F0dGFjaG1lbnQgOiAyOyAvLyBFRmlsbEF0dGFjaG1lbnQK
ICAgICB1bnNpZ25lZCBtX2NsaXAgOiAyOyAvLyBFRmlsbEJveAogICAgIHVuc2lnbmVkIG1fb3Jp
Z2luIDogMjsgLy8gRUZpbGxCb3gKQEAgLTE4Myw2ICsyMTMsNyBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fcmVwZWF0WSA6IDM7IC8vIEVGaWxsUmVwZWF0CiAgICAgdW5zaWduZWQgbV9jb21w
b3NpdGUgOiA0OyAvLyBDb21wb3NpdGVPcGVyYXRvcgogICAgIHVuc2lnbmVkIG1fc2l6ZVR5cGUg
OiAyOyAvLyBFRmlsbFNpemVUeXBlCisgICAgdW5zaWduZWQgbV9tYXNrVHlwZSA6IDI7IC8vIEVN
YXNrVHlwZQogICAgIAogICAgIHVuc2lnbmVkIG1faW1hZ2VTZXQgOiAxOwogICAgIHVuc2lnbmVk
IG1fYXR0YWNobWVudFNldCA6IDE7CkBAIC0xOTUsNiArMjI2LDEwIEBAIHByaXZhdGU6CiAgICAg
dW5zaWduZWQgbV9jb21wb3NpdGVTZXQgOiAxOwogICAgIAogICAgIHVuc2lnbmVkIG1fdHlwZSA6
IDE7IC8vIEVGaWxsTGF5ZXJUeXBlCisKKyAgICB1bnNpZ25lZCBtX21hc2tSZWZlcmVuY2VTZXQg
OiAxOworICAgIHVuc2lnbmVkIG1fbWFza1R5cGVTZXQgOiAxOworCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDcyZTBjNGMzMzliZjE3YTQ4MmRhNjhiZjM4MGEz
YzNkYTE5NzE0OGYuLjRjOGNiNTAwNGVjYTI4M2YzOTAxNDZiMWI0ZmU4ZjVjYWMyNDZkM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCkBAIC0xMDEsNiArMTAxLDggQEAgZW51bSBFRmxvYXQgewogICAgIE5vRmxvYXQs
IExlZnRGbG9hdCwgUmlnaHRGbG9hdAogfTsKIAorZW51bSBFTWFza1R5cGUgeyBNVF9MVU1JTkFO
Q0UsIE1UX0FMUEhBIH07CisKIGVudW0gRU1hcmdpbkNvbGxhcHNlIHsgTUNPTExBUFNFLCBNU0VQ
QVJBVEUsIE1ESVNDQVJEIH07CiAKIC8vIEJveCBkZWNvcmF0aW9uIGF0dHJpYnV0ZXMuIE5vdCBp
bmhlcml0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZH
UmVuZGVyU3R5bGVEZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVu
ZGVyU3R5bGVEZWZzLmgKaW5kZXggZTczMDhjYTk5ZmZlYzEwNDY4MjM4NzcwNmVhNjI4YjUzZWRl
ZmE4YS4uOTMxZGJlM2Y5ZTQwNjUxMWFmMWE5NDAwZGMxYzU4YTE3NzAyZTg1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaApA
QCAtODMsMTEgKzgzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBWRV9OT05fU0NB
TElOR19TVFJPS0UKICAgICB9OwogCi0gICAgZW51bSBFTWFza1R5cGUgewotICAgICAgICBNVF9M
VU1JTkFOQ0UsCi0gICAgICAgIE1UX0FMUEhBCi0gICAgfTsKLQogICAgIGNsYXNzIENTU1ZhbHVl
OwogICAgIGNsYXNzIENTU1ZhbHVlTGlzdDsKICAgICBjbGFzcyBTVkdQYWludDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAy
YjRkZGVlMjJlNzFkODdkNTVhZDViMTY5YzIxODA2YzM0NjM1MDg3Li5lM2U2M2JjN2U5NmJlYTQ4
ZmUzNTYyZTlkNGRjNzZhZTA2Y2E3MDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEt
MTkgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgb3B0aW9u
YWwga2V5d29yZHMgJ2x1bWluYW5jZScvJ2FscGhhJyBmb3IgJ21hc2staW1hZ2UnIHByb3BlcnR5
IHRvIENTU1BhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTcxMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGVzdHMgZm9yIG5ldyAnLXdlYmtpdC1tYXNrLWltYWdlJyBwcm9wZXJ0eS4KKwor
ICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLW1hc2staW1hZ2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWltYWdlLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTExLTE3ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWltYWdlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MDJkZGQxYjRlZGMxNTI0ZTZiOWQ2NmQ5NTRmZGZjNGM2ZTdjMzk1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1pbWFnZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NiBAQAorVGVzdCB0aGF0IC13ZWJraXQtbWFzay1pbWFn
ZSBkaWZmZXJzIG9uIHBhcnNpbmcgYW5kIC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2lt
YWdlLnBuZykiKSBpcyAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSIKK1BBU1MgaW5uZXJTdHlsZSgi
LXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZyksIHVybChmaWxlOi8v
L2ltYWdlLnBuZykiKSBpcyAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8vaW1h
Z2UucG5nKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxl
Oi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiKSBpcyAi
dXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBo
YSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2lt
YWdlLnBuZykgbHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIikgaXMgInVy
bChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFs
cGhhIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8v
aW1hZ2UucG5nKSBsdW1pbmFuY2UsIHVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlIikg
aXMgInVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5w
bmcpIGx1bWluYW5jZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVy
bChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBuZykiKSBpcyAi
dXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSIKK1BB
U1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBu
ZyksIHVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiKSBpcyAidXJsKGZpbGU6Ly8vaW1hZ2Uu
cG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdl
YmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlLCB1cmwo
ZmlsZTovLy9pbWFnZS5wbmcpIikgaXMgInVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNl
LCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2st
aW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBs
dW1pbmFuY2UiKSBpcyAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uu
cG5nKSBsdW1pbmFuY2UiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1
cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykiKSBpcyAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2Zy
YWcpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8v
aW1hZ2Uuc3ZnI2ZyYWcpLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcpIikgaXMgbnVsbAorUEFTUyBj
b21wdXRlZFN0eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3Zn
I2ZyYWcpLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5
bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykgbHVt
aW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcpIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0
eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIGx1
bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0
eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSwgdXJsKGZp
bGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Vi
a2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSwgdXJsKGZpbGU6Ly8vaW1h
Z2Uuc3ZnI2ZyYWcpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1p
bWFnZSIsICJub25lLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykiKSBpcyBudWxsCitQQVNT
IGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJub25lLCB1cmwoZmlsZTovLy9p
bWFnZS5zdmcjZnJhZykiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNr
LWltYWdlIiwgIm5vbmUsIHVybChmaWxlOi8vL2ltYWdlLnN2ZyNmcmFnKSwgbm9uZSIpIGlzIG51
bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgIm5vbmUsIHVybChm
aWxlOi8vL2ltYWdlLnN2ZyNmcmFnKSwgbm9uZSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxl
KCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSwgdXJsKGZpbGU6
Ly8vaW1hZ2Uuc3ZnI2ZyYWcpLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcpIikgaXMgbnVsbAorUEFT
UyBjb21wdXRlZFN0eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uu
c3ZnKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcp
IikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwo
ZmlsZTovLy9pbWFnZS5zdmcjZnJhZykiKSBpcyAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcp
IgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1h
Z2Uuc3ZnI2ZyYWcpIGx1bWluYW5jZSIpIGlzICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykg
bHVtaW5hbmNlIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZp
bGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIGFscGhhIikgaXMgInVybChmaWxlOi8vL2ltYWdlLnN2ZyNm
cmFnKSBhbHBoYSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgIm5vbmUi
KSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgIm5vbmUg
YWxwaGEiKSBpcyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIs
ICJub25lIGFscGhhIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtbWFzay1p
bWFnZSIsICJub25lIGx1bWluYW5jZSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdl
YmtpdC1tYXNrLWltYWdlIiwgIm5vbmUgbHVtaW5hbmNlIikgaXMgIm5vbmUiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIikg
aXMgInVybChmaWxlOi8vL2ltYWdlLnBuZykiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQt
bWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpLCB1cmwoZmlsZTovLy9pbWFnZS5w
bmcpIikgaXMgInVybChmaWxlOi8vL2ltYWdlLnBuZyksIHVybChmaWxlOi8vL2ltYWdlLnBuZyki
CitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9p
bWFnZS5wbmcpIGFscGhhLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIikgaXMgInVybChm
aWxlOi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFn
ZS5wbmcpIGx1bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSIpIGlzICJ1cmwo
ZmlsZTovLy9pbWFnZS5wbmcpIGx1bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBo
YSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8v
L2ltYWdlLnBuZykgbHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1bWluYW5jZSIp
IGlzICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2Uu
cG5nKSBsdW1pbmFuY2UiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIs
ICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIikg
aXMgInVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBuZyki
CitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9p
bWFnZS5wbmcpLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIikgaXMgInVybChmaWxlOi8v
L2ltYWdlLnBuZyksIHVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1bWlu
YW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSIpIGlzICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcp
IGx1bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
LXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZyksIHVybChmaWxlOi8v
L2ltYWdlLnBuZykgbHVtaW5hbmNlIikgaXMgInVybChmaWxlOi8vL2ltYWdlLnBuZyksIHVybChm
aWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0
LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIikgaXMgInVybChmaWxl
Oi8vL2ltYWdlLnN2ZyNmcmFnKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLWlt
YWdlIiwgIm5vbmUiKSBpcyAibm9uZSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1tYXNr
LWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnN2ZyNmcmFnKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uu
c3ZnKSIpIGlzICJub25lIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LW1hc2staW1hZ2Ui
LCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIGx1bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1h
Z2Uuc3ZnKSIpIGlzICJub25lIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LW1hc2staW1h
Z2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcp
IikgaXMgIm5vbmUiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtbWFzay1pbWFnZSIsICJu
b25lLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykiKSBpcyAibm9uZSIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgiLXdlYmtpdC1tYXNrLWltYWdlIiwgIm5vbmUsIHVybChmaWxlOi8vL2ltYWdlLnN2
ZyNmcmFnKSwgbm9uZSIpIGlzICJub25lIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LW1h
c2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3Zn
I2ZyYWcpLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcpIikgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tYXNraW5nL3BhcnNpbmctbWFzay1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxYTBhN2Y1
MzBmZjQwYjU4YTVjNDk5MWU0NjMzNGE5ZGI1Mjc1ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1tYXNrLWltYWdlLmh0bWwKQEAgLTAsMCArMSw5
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzdHlsZT4KKyogeyBmb250LXNpemU6IDE2
cHg7IH0KK2RpdiB7IGZvbnQtc2l6ZTogOHB4OyB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IC13ZWJraXQtbWFzay1pbWFnZSBkaWZmZXJzIG9uIHBh
cnNpbmcgPG1hc2stc291cmNlPiBhbmQgPG1hc2staW1hZ2U+LicpOworCitmdW5jdGlvbiBjb21w
dXRlZFN0eWxlKHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7Cisg
ICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgdmFyIGNvbXB1
dGVkVmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0
eSk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgIHJldHVybiBjb21w
dXRlZFZhbHVlOworfQorCitmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkgewor
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc3R5
bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICByZXR1cm4gZGl2LnN0eWxlLmdl
dFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJv
cGVydHksIHZhbHVlLCBleHBlY3RlZCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29t
cHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3Rl
ZCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGV4cGVjdGVkID09PSBudWxsKQorICAgICAgICBzaG91bGRCZU51bGwoJ2lubmVy
U3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJyk7CisgICAgZWxzZQor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSAr
ICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiBuZWdhdGl2
ZVRlc3QocHJvcGVydHksIHZhbHVlKSB7CisgICAgdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwg
bnVsbCk7CisgICAgdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgJ25vbmUnKTsKK30KKwor
Ly8gQ2hlY2sgaW1hZ2UgdmFsdWVzIGluIGNvbWJpbmF0aW9uIHdpdGggbWFzay10eXBlLgordGVz
dElubmVyKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSIsICJ1
cmwoZmlsZTovLy9pbWFnZS5wbmcpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtbWFzay1pbWFnZSIs
ICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIiwgInVybChm
aWxlOi8vL2ltYWdlLnBuZyksIHVybChmaWxlOi8vL2ltYWdlLnBuZykiKTsKK3Rlc3RJbm5lcigi
LXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChm
aWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSwg
dXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSIpOwordGVzdElubmVyKCItd2Via2l0LW1hc2st
aW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UsIHVybChmaWxlOi8vL2lt
YWdlLnBuZykgYWxwaGEiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UsIHVybChm
aWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1tYXNrLWltYWdl
IiwgInVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5w
bmcpIGx1bWluYW5jZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1bWluYW5jZSwgdXJsKGZp
bGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1tYXNrLWlt
YWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBu
ZykiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5n
KSIpOwordGVzdElubmVyKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uu
cG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBhbHBoYSIsICJ1cmwoZmlsZTovLy9pbWFnZS5w
bmcpLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQt
bWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1bWluYW5jZSwgdXJsKGZpbGU6
Ly8vaW1hZ2UucG5nKSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1bWluYW5jZSwgdXJsKGZp
bGU6Ly8vaW1hZ2UucG5nKSIpOwordGVzdElubmVyKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJs
KGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UiLCAi
dXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2Ui
KTsKKworLy8gQ2hlY2sgZnJhZ21lbnQgaWRlbnRpZmllciBiZWhhdmlvci4gSnVzdCBvbmUgZnJh
Z21lbnQgaWRlbnRpZmllciBpcyBhY2NlcHRlZC4gSWYgZnJhZ21lbnQgaWRlbnRpZmllciwgbm8g
b3RoZXIgdmFsdWUgZm9yIG1hc2staW1hZ2UgaXMgdmFsaWQuCit0ZXN0SW5uZXIoIi13ZWJraXQt
bWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykiLCAidXJsKGZpbGU6Ly8v
aW1hZ2Uuc3ZnI2ZyYWcpIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1
cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZyksIHVybChmaWxlOi8vL2ltYWdlLnN2ZykiKTsKK25l
Z2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnN2ZyNm
cmFnKSBsdW1pbmFuY2UsIHVybChmaWxlOi8vL2ltYWdlLnN2ZykiKTsKK25lZ2F0aXZlVGVzdCgi
LXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnN2ZyksIHVybChmaWxlOi8v
L2ltYWdlLnN2ZyNmcmFnKSIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0LW1hc2staW1hZ2UiLCAi
bm9uZSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIik7CituZWdhdGl2ZVRlc3QoIi13ZWJr
aXQtbWFzay1pbWFnZSIsICJub25lLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZyksIG5vbmUi
KTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdl
LnN2ZyksIHVybChmaWxlOi8vL2ltYWdlLnN2ZyNmcmFnKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3Zn
KSIpOworCisvLyBDaGVjayBmcmFnbWVudCBpZGVudGlmaWVyIHdpdGggCit0ZXN0SW5uZXIoIi13
ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykiLCAidXJsKGZp
bGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtbWFzay1pbWFnZSIs
ICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZykgbHVtaW5hbmNlIiwgInVybChmaWxlOi8vL2lt
YWdlLnN2ZyNmcmFnKSBsdW1pbmFuY2UiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1tYXNrLWltYWdl
IiwgInVybChmaWxlOi8vL2ltYWdlLnN2ZyNmcmFnKSBhbHBoYSIsICJ1cmwoZmlsZTovLy9pbWFn
ZS5zdmcjZnJhZykgYWxwaGEiKTsKKwordGVzdElubmVyKCItd2Via2l0LW1hc2staW1hZ2UiLCAi
bm9uZSIsICJub25lIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzay1pbWFnZSIsICJub25l
IGFscGhhIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtbWFzay1pbWFnZSIsICJub25lIGx1bWlu
YW5jZSIpOworCisKKy8vIENoZWNrIGltYWdlIHZhbHVlcyBpbiBjb21iaW5hdGlvbiB3aXRoIG1h
c2stdHlwZS4KK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8v
L2ltYWdlLnBuZykiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSIpOwordGVzdENvbXB1dGVkKCIt
d2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8v
aW1hZ2UucG5nKSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpLCB1cmwoZmlsZTovLy9pbWFnZS5w
bmcpIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9p
bWFnZS5wbmcpIGFscGhhLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIiwgInVybChmaWxl
Oi8vL2ltYWdlLnBuZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBuZykgYWxwaGEiKTsKK3Rl
c3RDb21wdXRlZCgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZykg
bHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIiwgInVybChmaWxlOi8vL2lt
YWdlLnBuZykgbHVtaW5hbmNlLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGFscGhhIik7Cit0ZXN0
Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5wbmcpIGx1
bWluYW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UiLCAidXJsKGZpbGU6Ly8v
aW1hZ2UucG5nKSBsdW1pbmFuY2UsIHVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlIik7
Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5w
bmcpIGFscGhhLCB1cmwoZmlsZTovLy9pbWFnZS5wbmcpIiwgInVybChmaWxlOi8vL2ltYWdlLnBu
ZykgYWxwaGEsIHVybChmaWxlOi8vL2ltYWdlLnBuZykiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtp
dC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBuZyksIHVybChmaWxlOi8vL2ltYWdl
LnBuZykgYWxwaGEiLCAidXJsKGZpbGU6Ly8vaW1hZ2UucG5nKSwgdXJsKGZpbGU6Ly8vaW1hZ2Uu
cG5nKSBhbHBoYSIpOwordGVzdENvbXB1dGVkKCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZp
bGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UsIHVybChmaWxlOi8vL2ltYWdlLnBuZykiLCAidXJs
KGZpbGU6Ly8vaW1hZ2UucG5nKSBsdW1pbmFuY2UsIHVybChmaWxlOi8vL2ltYWdlLnBuZykiKTsK
K3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1tYXNrLWltYWdlIiwgInVybChmaWxlOi8vL2ltYWdlLnBu
ZyksIHVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlIiwgInVybChmaWxlOi8vL2ltYWdl
LnBuZyksIHVybChmaWxlOi8vL2ltYWdlLnBuZykgbHVtaW5hbmNlIik7CisKKy8vIENoZWNrIGZy
YWdtZW50IGlkZW50aWZpZXIgYmVoYXZpb3IuIEp1c3Qgb25lIGZyYWdtZW50IGlkZW50aWZpZXIg
aXMgYWNjZXB0ZWQuIElmIGZyYWdtZW50IGlkZW50aWZpZXIsIG5vIG90aGVyIHZhbHVlIGZvciBt
YXNrLWltYWdlIGlzIHZhbGlkLgordGVzdENvbXB1dGVkKCItd2Via2l0LW1hc2staW1hZ2UiLCAi
dXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIiwgInVybChmaWxlOi8vL2ltYWdlLnN2ZyNmcmFn
KSIpOwordGVzdENvbXB1dGVkKCItd2Via2l0LW1hc2staW1hZ2UiLCAibm9uZSIsICJub25lIik7
Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5z
dmcjZnJhZyksIHVybChmaWxlOi8vL2ltYWdlLnN2ZykiLCAibm9uZSIpOwordGVzdENvbXB1dGVk
KCItd2Via2l0LW1hc2staW1hZ2UiLCAidXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIGx1bWlu
YW5jZSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnKSIsICJub25lIik7Cit0ZXN0Q29tcHV0ZWQoIi13
ZWJraXQtbWFzay1pbWFnZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcpLCB1cmwoZmlsZTovLy9p
bWFnZS5zdmcjZnJhZykiLCAibm9uZSIpOwordGVzdENvbXB1dGVkKCItd2Via2l0LW1hc2staW1h
Z2UiLCAibm9uZSwgdXJsKGZpbGU6Ly8vaW1hZ2Uuc3ZnI2ZyYWcpIiwgIm5vbmUiKTsKK3Rlc3RD
b21wdXRlZCgiLXdlYmtpdC1tYXNrLWltYWdlIiwgIm5vbmUsIHVybChmaWxlOi8vL2ltYWdlLnN2
ZyNmcmFnKSwgbm9uZSIsICJub25lIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtbWFzay1pbWFn
ZSIsICJ1cmwoZmlsZTovLy9pbWFnZS5zdmcpLCB1cmwoZmlsZTovLy9pbWFnZS5zdmcjZnJhZyks
IHVybChmaWxlOi8vL2ltYWdlLnN2ZykiLCAibm9uZSIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>