<?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>133040</bug_id>
          
          <creation_ts>2014-05-17 19:48:28 -0700</creation_ts>
          <short_desc>Migrate layout ascents and descents to LayoutUnits instead of ints</short_desc>
          <delta_ts>2021-08-01 21:56:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010028</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-05-17 19:48:28 -0700</bug_when>
    <thetext>Migrate layout ascents and descents to LayoutUnit instead of ints</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010030</commentid>
    <comment_count>1</comment_count>
      <attachid>231645</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-05-17 20:17:29 -0700</bug_when>
    <thetext>Created attachment 231645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010036</commentid>
    <comment_count>2</comment_count>
      <attachid>231645</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-05-17 21:53:15 -0700</bug_when>
    <thetext>Comment on attachment 231645
Patch

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

&gt; Source/WebCore/rendering/InlineFlowBox.cpp:872
&gt; +    LayoutUnit strokeOverflow = static_cast&lt;int&gt;(ceilf(lineStyle.textStrokeWidth() / 2.0f));

missing FIXME here.
In general, I transition to LayoutUntits from int/float when I change the functionality as well. int type is a straightforward indication that a particular function/class has not been converted yet to subpixel. Functions with integral LayoutUnits tricked me a few times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013232</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-03 22:08:03 -0700</bug_when>
    <thetext>Split out into https://bugs.webkit.org/show_bug.cgi?id=133501</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746765</commentid>
    <comment_count>4</comment_count>
      <attachid>425084</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-03 01:47:59 -0700</bug_when>
    <thetext>Created attachment 425084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747060</commentid>
    <comment_count>5</comment_count>
      <attachid>425188</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-05 12:40:32 -0700</bug_when>
    <thetext>Created attachment 425188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747065</commentid>
    <comment_count>6</comment_count>
      <attachid>425188</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-04-05 12:53:44 -0700</bug_when>
    <thetext>Comment on attachment 425188
Patch

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

&gt; Source/WebCore/rendering/RootInlineBox.cpp:819
&gt; +            LayoutUnit usedFontAscent = fontMetrics.ascent(baselineType());

It&apos;s up to you but as I mentioned in the previous patch I&apos;d prefer uniform initialization (and mention in the changelog that ascent/descent values are still integral).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747313</commentid>
    <comment_count>7</comment_count>
      <attachid>425252</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-06 00:37:22 -0700</bug_when>
    <thetext>Created attachment 425252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747349</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-06 03:49:38 -0700</bug_when>
    <thetext>Committed r275502: &lt;https://commits.webkit.org/r275502&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425252.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747351</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-06 03:50:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/76261027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747421</commentid>
    <comment_count>10</comment_count>
      <attachid>425188</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-06 07:41:37 -0700</bug_when>
    <thetext>Comment on attachment 425188
Patch

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

&gt;&gt; Source/WebCore/rendering/RootInlineBox.cpp:819
&gt;&gt; +            LayoutUnit usedFontAscent = fontMetrics.ascent(baselineType());
&gt; 
&gt; It&apos;s up to you but as I mentioned in the previous patch I&apos;d prefer uniform initialization (and mention in the changelog that ascent/descent values are still integral).

Sure, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747425</commentid>
    <comment_count>11</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-04-06 07:53:44 -0700</bug_when>
    <thetext>(In reply to Rob Buis from comment #10)
&gt; Comment on attachment 425188 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425188&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RootInlineBox.cpp:819
&gt; &gt;&gt; +            LayoutUnit usedFontAscent = fontMetrics.ascent(baselineType());
&gt; &gt; 
&gt; &gt; It&apos;s up to you but as I mentioned in the previous patch I&apos;d prefer uniform initialization (and mention in the changelog that ascent/descent values are still integral).
&gt; 
&gt; Sure, done.
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747438</commentid>
    <comment_count>12</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-06 08:27:18 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747439</commentid>
    <comment_count>13</comment_count>
      <attachid>425281</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-06 08:27:21 -0700</bug_when>
    <thetext>Created attachment 425281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779564</commentid>
    <comment_count>14</comment_count>
      <attachid>425281</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-26 14:11:19 -0700</bug_when>
    <thetext>Comment on attachment 425281
Patch

What about 0_lu vs. LayoutUnit() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780372</commentid>
    <comment_count>15</comment_count>
      <attachid>434520</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-07-29 07:32:43 -0700</bug_when>
    <thetext>Created attachment 434520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780411</commentid>
    <comment_count>16</comment_count>
      <attachid>434530</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-07-29 09:50:57 -0700</bug_when>
    <thetext>Created attachment 434530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780431</commentid>
    <comment_count>17</comment_count>
      <attachid>434530</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-29 10:36:46 -0700</bug_when>
    <thetext>Comment on attachment 434530
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Migrate GlyphOverflow to LayoutUnits instead of ints.

This is missing rationale.

Why are we doing this if it has no detectable effect? Does it make some future change possible? Does it make something more efficient? Does it make code more elegant? If it does have a good effect, then why no tests?

&gt; Source/WebCore/rendering/LegacyInlineFlowBox.cpp:936
&gt; +    LayoutUnit topGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow-&gt;bottom : glyphOverflow-&gt;top) : 0_lu;

Is it critical to use LayoutUnit rather than auto in these places? I ask because &quot;staying as a LayoutUnit&quot; is one kind of thing. Converting to LayoutUnit is another. Maybe this is conversion to LayoutUnit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780451</commentid>
    <comment_count>18</comment_count>
      <attachid>434530</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-29 11:08:39 -0700</bug_when>
    <thetext>Comment on attachment 434530
Patch

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

&gt; Source/WebCore/style/InlineTextBoxStyle.cpp:100
&gt; -static inline void extendIntToFloat(int&amp; extendMe, float extendTo)
&gt; +static inline void extendIntToFloat(LayoutUnit&amp; extendMe, float extendTo)

This name does not make sense now. We are extending &apos;LayoutUnit&apos; not &apos;int&apos;.

But I think this function should be written as two methods of GlyphOverflow since it is only called for the &apos;top&apos; and &apos;bottom&apos; members of GlyphOverflow.

struct GlyphOverflow {
    void extendTop(float extendTo)
    {
        top = ...
    }

    void extendBottom(float extendTo)
    {
        bottom = ...
    }
};

And instead of calling:
    extendIntToFloat(overflowResult.top, -underlineOffset);

We can say:
    overflowResult.extendTop(-underlineOffset);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780472</commentid>
    <comment_count>19</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-29 11:37:30 -0700</bug_when>
    <thetext>Very exciting!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781073</commentid>
    <comment_count>20</comment_count>
      <attachid>434697</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-07-31 07:04:04 -0700</bug_when>
    <thetext>Created attachment 434697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781076</commentid>
    <comment_count>21</comment_count>
      <attachid>434530</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-07-31 09:18:13 -0700</bug_when>
    <thetext>Comment on attachment 434530
Patch

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

&gt;&gt; Source/WebCore/style/InlineTextBoxStyle.cpp:100
&gt;&gt; +static inline void extendIntToFloat(LayoutUnit&amp; extendMe, float extendTo)
&gt; 
&gt; This name does not make sense now. We are extending &apos;LayoutUnit&apos; not &apos;int&apos;.
&gt; 
&gt; But I think this function should be written as two methods of GlyphOverflow since it is only called for the &apos;top&apos; and &apos;bottom&apos; members of GlyphOverflow.
&gt; 
&gt; struct GlyphOverflow {
&gt;     void extendTop(float extendTo)
&gt;     {
&gt;         top = ...
&gt;     }
&gt; 
&gt;     void extendBottom(float extendTo)
&gt;     {
&gt;         bottom = ...
&gt;     }
&gt; };
&gt; 
&gt; And instead of calling:
&gt;     extendIntToFloat(overflowResult.top, -underlineOffset);
&gt; 
&gt; We can say:
&gt;     overflowResult.extendTop(-underlineOffset);

I like it! Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781083</commentid>
    <comment_count>22</comment_count>
      <attachid>434700</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-07-31 09:55:02 -0700</bug_when>
    <thetext>Created attachment 434700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781131</commentid>
    <comment_count>23</comment_count>
      <attachid>434715</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-08-01 02:27:06 -0700</bug_when>
    <thetext>Created attachment 434715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781159</commentid>
    <comment_count>24</comment_count>
      <attachid>434530</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-08-01 13:45:52 -0700</bug_when>
    <thetext>Comment on attachment 434530
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Migrate GlyphOverflow to LayoutUnits instead of ints.
&gt; 
&gt; This is missing rationale.
&gt; 
&gt; Why are we doing this if it has no detectable effect? Does it make some future change possible? Does it make something more efficient? Does it make code more elegant? If it does have a good effect, then why no tests?

I added a bit to the changelog.

&gt;&gt; Source/WebCore/rendering/LegacyInlineFlowBox.cpp:936
&gt;&gt; +    LayoutUnit topGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow-&gt;bottom : glyphOverflow-&gt;top) : 0_lu;
&gt; 
&gt; Is it critical to use LayoutUnit rather than auto in these places? I ask because &quot;staying as a LayoutUnit&quot; is one kind of thing. Converting to LayoutUnit is another. Maybe this is conversion to LayoutUnit?

I think auto is fine indeed since most of these are not conversions, just assignments with expressions all strictly dealing with LayoutUnits. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781192</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-01 21:56:07 -0700</bug_when>
    <thetext>Committed r280525 (240157@main): &lt;https://commits.webkit.org/240157@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434715.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231645</attachid>
            <date>2014-05-17 20:17:29 -0700</date>
            <delta_ts>2021-04-03 01:47:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20140517201657.patch</filename>
            <type>text/plain</type>
            <size>32816</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI3NWRjYjUyMTA1ZWJm
MzkyYmFlOTMzNThjNzdhNmMyZTJjYTE2Mi4uMWNhY2Q2NjVmNzgyZWEyODRlZGNlNDkzZGI3M2Uw
MWRmNzE1ODg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE0LTA1LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPGxpdGhlcnVtQGdtYWlsLmNvbT4KKworICAgICAgICBNaWdyYXRlIGxh
eW91dCBhc2NlbnRzIGFuZCBkZXNjZW50cyB0byBMYXlvdXRVbml0IGluc3RlYWQgb2YgaW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDQwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHVyaW5nIGxh
eW91dCwgd2Uga2VlcCB0cmFjayBvZiB0aGUgYXNjZW50IGFuZCBkZXNjZW50IGZvciBJbmxpbmVC
b3hlcy4gSG93ZXZlciwKKyAgICAgICAgdGhpcyBib29ra2VlcGluZyBpcyBjdXJyZW50bHkgZG9u
ZSB1c2luZyBpbnRzLCByYXRoZXIgdGhhbiBMYXlvdXRVbml0cy4gVGhpcworICAgICAgICBpbmNs
dWRlcyBtaWdyYXRpbmcgdGhlIEdseXBoT3ZlcmZsb3cgc3RydWN0LgorCisgICAgICAgIE5vdGUg
dGhhdCB0aGlzIHBhdGNoIGFwcGxpZXMgdGhlIG5lY2Vzc2FyeSByb3VuZGluZyB0byBub3QgYWN0
dWFsbHkgY2hhbmdlIGFueQorICAgICAgICBiZWhhdmlvciAobWVhbmluZzogYWxsIHRoZSBMYXlv
dXRVbml0cyBhcmUgd2hvbGUgbnVtYmVycykuIEkgaGF2ZSBhbm5vdGF0ZWQKKyAgICAgICAgdGhl
c2UgbG9jYXRpb25zIHdpdGggRklYTUVzIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGVtIHdoZW4g
d2UgYXJlIGNvbWZvcnRhYmxlCisgICAgICAgIHJlYmFzZWxpbmluZyB0ZXN0cy4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFsc28gYXBwbGllcyBzb21lIGNsZWFudXAgdG8gSW5saW5lQm94IGxheW91
dCBmdW5jdGlvbnMgdG8gdGFrZQorICAgICAgICByZWZlcmVuY2VzIGluc3RlYWQgb2YgcG9pbnRl
cnMgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSBuZWNlc3Nh
cnkgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250Lmg6IEdseXBoT3ZlcmZsb3cgc2hvdWxkIHVzZSBMYXlvdXRVbml0
cyBpbnN0ZWFkIG9mIGludHMuCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6YWRqdXN0TWF4QXNjZW50QW5kRGVz
Y2VudCk6IFNpbXBseSBjaGFuZ2UgdGhlIGZ1bmN0aW9uCisgICAgICAgIHNpZ25hdHVyZSB0byB0
YWtlIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cy4KKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6IFJlZGVmaW5lIGFzY2VudCBhbmQg
ZGVzY2VudAorICAgICAgICB2YXJpYWJsZXMgdG8gdXNlIExheW91dFVuaXRzLiBJbiBhZGRpdGlv
biwgbWFrZSB0aGUgZnVuY3Rpb24gdGFrZSBhIHJlZmVyZW5jZSB0bworICAgICAgICB0aGUgUm9v
dElubGluZUJveCBpbnN0ZWFkIG9mIGEgcG9pbnRlci4gVGhpcyBmdW5jdGlvbiBkb2VzIHNvbWUg
cm91bmRpbmcuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5C
bG9ja0RpcmVjdGlvbik6IFNpbXBseSBjaGFuZ2UgdGhlIGZ1bmN0aW9uCisgICAgICAgIHNpZ25h
dHVyZSB0byB0YWtlIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cy4KKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyk6IFVzZSBMYXlvdXRV
bml0cyB0aHJvdWdob3V0CisgICAgICAgIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBpbnRzLiBJ
biBhZGRpdGlvbiwgbWFrZSB0aGUgZnVuY3Rpb24gdGFrZSBhIHJlZmVyZW5jZSB0bworICAgICAg
ICB0aGUgSW5saW5lVGV4dEJveCBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmNvbXB1dGVPdmVyZmxvdyk6IFVwZGF0ZSBjYWxsIHRvIGFkZFRl
eHRCb3hWaXN1YWxPdmVyZmxvdworICAgICAgICB0byBwYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQg
b2YgYSBwb2ludGVyLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94Lmg6IFVwZGF0
ZSBmdW5jdGlvbiBzaWduYXR1cmVzIHRvIHRha2UgTGF5b3V0VW5pdHMgYW5kCisgICAgICAgIHJl
ZmVyZW5jZXMuCisgICAgICAgICogcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24pOiBS
ZWRlZmluZSBhc2NlbnQgYW5kIGRlc2NlbnQKKyAgICAgICAgdmFyaWFibGVzIHRvIHVzZSBMYXlv
dXRVbml0cyBpbnN0ZWFkIG9mIGludHMuIEluIGFkZGl0aW9uLCB1cGRhdGUgY2FsbCB0bworICAg
ICAgICBjb21wdXRlTG9naWNhbEJveEhlaWdodHMgdG8gcGFzcyBhIHJlZmVyZW5jZSBpbnN0ZWFk
IG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OnNldEFzY2VudEFuZERlc2NlbnQpOiBT
aW1wbHkgY2hhbmdlIHRoZSBmdW5jdGlvbgorICAgICAgICBzaWduYXR1cmUgdG8gdGFrZSBMYXlv
dXRVbml0cyBpbnN0ZWFkIG9mIGludHMuCisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94
Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KTogUmVkZWZpbmUgYXNjZW50IGFuZCBkZXNjZW50Cisg
ICAgICAgIHZhcmlhYmxlcyB0byB1c2UgTGF5b3V0VW5pdHMuIEluIGFkZGl0aW9uLCBtYWtlIHRo
ZSBmdW5jdGlvbiB0YWtlIGEgcmVmZXJlbmNlIHRvCisgICAgICAgIHRoZSBJbmxpbmVCb3ggaW5z
dGVhZCBvZiBhIHBvaW50ZXIuIFRoaXMgZnVuY3Rpb24gZG9lcyBzb21lIHJvdW5kaW5nLgorICAg
ICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6aW5jbHVkZUxlYWRpbmdGb3JCb3gpOiBNYWtl
IHRoZSBmdW5jdGlvbiB0YWtlIGEgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgYSBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6aW5jbHVkZUZvbnRGb3JCb3gp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmluY2x1ZGVHbHlwaHNG
b3JCb3gpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmluY2x1ZGVN
YXJnaW5Gb3JCb3gpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5o
OiBNb3ZlIGZ1bmN0aW9ucyB0aGF0IGFyZSBub3QgZXh0ZXJuYWxseSBjYWxsZWQgaW50bworICAg
ICAgICBhIHByaXZhdGU6IHNlY3Rpb24uIEluIGFkZGl0aW9uLCB1cGRhdGUgZnVuY3Rpb24gc2ln
bmF0dXJlcyB0byB0YWtlIHJlZmVyZW5jZXMKKyAgICAgICAgaW5zdGVhZCBvZiBwb2ludGVycyBh
bmQgTGF5b3V0VW5pdHMgaW5zdGVhZCBvZiBpbnRzLgorCiAyMDE0LTA1LTE2ICBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNjcm9sbFZpZXc6
OnZpc2libGVDb250ZW50UmVjdEludGVybmFsIGlzIGJ5cGFzc2luZyB0aGUgaU9TIGNvZGUgZm9y
IHVub2JzY3VyZWRDb250ZW50UmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5oCmluZGV4IDBkYTU4NDY3ZDVlMjg5M2Q4OTkyMDRmOTk2NTAzNGVjNGMzNjM4ODkuLmRmZWVi
ZmM4NThmYzk5NWY4Yjg4MzI2YmI2NjRlNmJlMjE4NTFiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEYXNoQXJy
YXkuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250R2x5cGhz
LmgiCisjaW5jbHVkZSAiTGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRl
ICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKQEAgLTY5LDEw
ICs3MCwxMCBAQCBzdHJ1Y3QgR2x5cGhPdmVyZmxvdyB7CiAgICAgewogICAgIH0KIAotICAgIGlu
dCBsZWZ0OwotICAgIGludCByaWdodDsKLSAgICBpbnQgdG9wOwotICAgIGludCBib3R0b207Cisg
ICAgTGF5b3V0VW5pdCBsZWZ0OworICAgIExheW91dFVuaXQgcmlnaHQ7CisgICAgTGF5b3V0VW5p
dCB0b3A7CisgICAgTGF5b3V0VW5pdCBib3R0b207CiAgICAgYm9vbCBjb21wdXRlQm91bmRzOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IGZm
YjA3ZjNmNjg3MDkyMmE1ODU5NTY2OTg3NDExMTE5MzhlNTBiOWYuLjcxOTRkMTA4ZDFkMGNiNjE5
NzM1YmQ4MGFiZmFhYjk4NTZkN2IwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5jcHAKQEAgLTQ5MCw3ICs0OTAsNyBAQCBzdGF0aWMgYm9vbCB2ZXJ0aWNhbEFs
aWduQXBwbGllcyhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJldHVybiAhcmVu
ZGVyZXIuaXNUZXh0KCkgfHwgcmVuZGVyZXIucGFyZW50KCktPmlzSW5saW5lKCkgfHwgcmVuZGVy
ZXIucGFyZW50KCktPmlzVGFibGVDZWxsKCk7CiB9CiAKLXZvaWQgSW5saW5lRmxvd0JveDo6YWRq
dXN0TWF4QXNjZW50QW5kRGVzY2VudChpbnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNjZW50LCBp
bnQgbWF4UG9zaXRpb25Ub3AsIGludCBtYXhQb3NpdGlvbkJvdHRvbSkKK3ZvaWQgSW5saW5lRmxv
d0JveDo6YWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChMYXlvdXRVbml0JiBtYXhBc2NlbnQsIExh
eW91dFVuaXQmIG1heERlc2NlbnQsIExheW91dFVuaXQgbWF4UG9zaXRpb25Ub3AsIExheW91dFVu
aXQgbWF4UG9zaXRpb25Cb3R0b20pCiB7CiAgICAgZm9yIChJbmxpbmVCb3gqIGN1cnIgPSBmaXJz
dENoaWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgLy8g
VGhlIGNvbXB1dGVkIGxpbmVoZWlnaHQgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgZm9yIHRoZQpAQCAt
NTE4LDEwICs1MTgsMTAgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjphZGp1c3RNYXhBc2NlbnRBbmRE
ZXNjZW50KGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGkKICAgICB9CiB9CiAKLXZv
aWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gq
IHJvb3RCb3gsIExheW91dFVuaXQmIG1heFBvc2l0aW9uVG9wLCBMYXlvdXRVbml0JiBtYXhQb3Np
dGlvbkJvdHRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGJvb2wmIHNldE1heEFzY2VudCwgYm9v
bCYgc2V0TWF4RGVzY2VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAm
IHRleHRCb3hEYXRhTWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgVmVydGljYWxQb3NpdGlvbkNhY2hlJiB2
ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUpCit2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2Fs
Qm94SGVpZ2h0cyhSb290SW5saW5lQm94JiByb290Qm94LCBMYXlvdXRVbml0JiBtYXhQb3NpdGlv
blRvcCwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Cb3R0b20sCisgICAgTGF5b3V0VW5pdCYgbWF4
QXNjZW50LCBMYXlvdXRVbml0JiBtYXhEZXNjZW50LCBib29sJiBzZXRNYXhBc2NlbnQsIGJvb2wm
IHNldE1heERlc2NlbnQsCisgICAgYm9vbCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJmbG93QW5kRmFs
bGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAsCisgICAgRm9udEJhc2VsaW5lIGJhc2VsaW5l
VHlwZSwgVmVydGljYWxQb3NpdGlvbkNhY2hlJiB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUpCiB7CiAg
ICAgLy8gVGhlIHByaW1hcnkgcHVycG9zZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGNvbXB1dGUg
dGhlIG1heGltYWwgYXNjZW50IGFuZCBkZXNjZW50IHZhbHVlcyBmb3IKICAgICAvLyBhIGxpbmUu
IFRoZXNlIHZhbHVlcyBhcmUgY29tcHV0ZWQgYmFzZWQgb2ZmIHRoZSBibG9jaydzIGxpbmUtYm94
LWNvbnRhaW4gcHJvcGVydHksIHdoaWNoIGluZGljYXRlcwpAQCAtNTQ0LDkgKzU0NCw5IEBAIHZv
aWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gq
IHJvb3RCb3gsIExheW91dFVuaXQmCiAgICAgCiAgICAgaWYgKGlzUm9vdElubGluZUJveCgpKSB7
CiAgICAgICAgIC8vIEV4YW1pbmUgb3VyIHJvb3QgYm94LgotICAgICAgICBpbnQgYXNjZW50ID0g
MDsKLSAgICAgICAgaW50IGRlc2NlbnQgPSAwOwotICAgICAgICByb290Qm94LT5hc2NlbnRBbmRE
ZXNjZW50Rm9yQm94KHJvb3RCb3gsIHRleHRCb3hEYXRhTWFwLCBhc2NlbnQsIGRlc2NlbnQsIGFm
ZmVjdHNBc2NlbnQsIGFmZmVjdHNEZXNjZW50KTsKKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQg
PSAwOworICAgICAgICBMYXlvdXRVbml0IGRlc2NlbnQgPSAwOworICAgICAgICByb290Qm94LmFz
Y2VudEFuZERlc2NlbnRGb3JCb3gocm9vdEJveCwgdGV4dEJveERhdGFNYXAsIGFzY2VudCwgZGVz
Y2VudCwgYWZmZWN0c0FzY2VudCwgYWZmZWN0c0Rlc2NlbnQpOwogICAgICAgICBpZiAoc3RyaWN0
TW9kZSB8fCBoYXNUZXh0Q2hpbGRyZW4oKSB8fCAoIWNoZWNrQ2hpbGRyZW4gJiYgaGFzVGV4dERl
c2NlbmRhbnRzKCkpKSB7CiAgICAgICAgICAgICBpZiAobWF4QXNjZW50IDwgYXNjZW50IHx8ICFz
ZXRNYXhBc2NlbnQpIHsKICAgICAgICAgICAgICAgICBtYXhBc2NlbnQgPSBhc2NlbnQ7CkBAIC01
NzQsMTEgKzU3NCwxMSBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVp
Z2h0cyhSb290SW5saW5lQm94KiByb290Qm94LCBMYXlvdXRVbml0JgogICAgICAgICAvLyBUaGUg
dmVydGljYWxQb3NpdGlvbkZvckJveCBmdW5jdGlvbiByZXR1cm5zIHRoZSBkaXN0YW5jZSBiZXR3
ZWVuIHRoZSBjaGlsZCBib3gncyBiYXNlbGluZQogICAgICAgICAvLyBhbmQgdGhlIHJvb3QgYm94
J3MgYmFzZWxpbmUuICBUaGUgdmFsdWUgaXMgbmVnYXRpdmUgaWYgdGhlIGNoaWxkIGJveCdzIGJh
c2VsaW5lIGlzIGFib3ZlIHRoZQogICAgICAgICAvLyByb290IGJveCdzIGJhc2VsaW5lLCBhbmQg
aXQgaXMgcG9zaXRpdmUgaWYgdGhlIGNoaWxkIGJveCdzIGJhc2VsaW5lIGlzIGJlbG93IHRoZSBy
b290IGJveCdzIGJhc2VsaW5lLgotICAgICAgICBjdXJyLT5zZXRMb2dpY2FsVG9wKHJvb3RCb3gt
PnZlcnRpY2FsUG9zaXRpb25Gb3JCb3goY3VyciwgdmVydGljYWxQb3NpdGlvbkNhY2hlKSk7Cisg
ICAgICAgIGN1cnItPnNldExvZ2ljYWxUb3Aocm9vdEJveC52ZXJ0aWNhbFBvc2l0aW9uRm9yQm94
KGN1cnIsIHZlcnRpY2FsUG9zaXRpb25DYWNoZSkpOwogICAgICAgICAKLSAgICAgICAgaW50IGFz
Y2VudCA9IDA7Ci0gICAgICAgIGludCBkZXNjZW50ID0gMDsKLSAgICAgICAgcm9vdEJveC0+YXNj
ZW50QW5kRGVzY2VudEZvckJveChjdXJyLCB0ZXh0Qm94RGF0YU1hcCwgYXNjZW50LCBkZXNjZW50
LCBhZmZlY3RzQXNjZW50LCBhZmZlY3RzRGVzY2VudCk7CisgICAgICAgIExheW91dFVuaXQgYXNj
ZW50ID0gMDsKKyAgICAgICAgTGF5b3V0VW5pdCBkZXNjZW50ID0gMDsKKyAgICAgICAgcm9vdEJv
eC5hc2NlbnRBbmREZXNjZW50Rm9yQm94KCpjdXJyLCB0ZXh0Qm94RGF0YU1hcCwgYXNjZW50LCBk
ZXNjZW50LCBhZmZlY3RzQXNjZW50LCBhZmZlY3RzRGVzY2VudCk7CiAKICAgICAgICAgTGF5b3V0
VW5pdCBib3hIZWlnaHQgPSBhc2NlbnQgKyBkZXNjZW50OwogICAgICAgICBpZiAoY3Vyci0+dmVy
dGljYWxBbGlnbigpID09IFRPUCAmJiB2ZXJ0aWNhbEFsaWduQXBwbGllcyhjdXJyLT5yZW5kZXJl
cigpKSkgewpAQCAtNTk1LDggKzU5NSwxMCBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVM
b2dpY2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94KiByb290Qm94LCBMYXlvdXRVbml0JgogICAg
ICAgICAgICAgLy8gbWVhbnMgaXMgdGhhdCBhc2NlbnQgYW5kIGRlc2NlbnQgKGluY2x1ZGluZyBs
ZWFkaW5nKSwgY2FuIGVuZCB1cCBiZWluZyBuZWdhdGl2ZS4gIFRoZSBzZXRNYXhBc2NlbnQgYW5k
CiAgICAgICAgICAgICAvLyBzZXRNYXhEZXNjZW50IGJvb2xlYW5zIGFyZSB1c2VkIHRvIGVuc3Vy
ZSB0aGF0IHdlJ3JlIHdpbGxpbmcgdG8gaW5pdGlhbGx5IHNldCBtYXhBc2NlbnQvRGVzY2VudCB0
byBuZWdhdGl2ZQogICAgICAgICAgICAgLy8gdmFsdWVzLgotICAgICAgICAgICAgYXNjZW50IC09
IGN1cnItPmxvZ2ljYWxUb3AoKTsKLSAgICAgICAgICAgIGRlc2NlbnQgKz0gY3Vyci0+bG9naWNh
bFRvcCgpOworICAgICAgICAgICAgLy8gRklYTUU6IChzdWJwaXhlbCkgUmVtb3ZlIHRoZXNlIGZs
b29yKCkgYW5kIGNlaWwoKSBjYWxscyB3aGVuIHdlIGFyZSBjb21mb3J0YWJsZSByZWJhc2VsaW5p
bmcgdGVzdHMKKyAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbFRvcCA9IGN1cnItPmxvZ2lj
YWxUb3AoKTsKKyAgICAgICAgICAgIGFzY2VudCAtPSBsb2dpY2FsVG9wLmNlaWwoKTsKKyAgICAg
ICAgICAgIGRlc2NlbnQgKz0gbG9naWNhbFRvcC5mbG9vcigpOwogICAgICAgICAgICAgaWYgKGFm
ZmVjdHNBc2NlbnQgJiYgKG1heEFzY2VudCA8IGFzY2VudCB8fCAhc2V0TWF4QXNjZW50KSkgewog
ICAgICAgICAgICAgICAgIG1heEFzY2VudCA9IGFzY2VudDsKICAgICAgICAgICAgICAgICBzZXRN
YXhBc2NlbnQgPSB0cnVlOwpAQCAtNjE1LDggKzYxNyw4IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6
Y29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gqIHJvb3RCb3gsIExheW91dFVu
aXQmCiAgICAgfQogfQogCi12b2lkIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGly
ZWN0aW9uKExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IG1heEhlaWdodCwgaW50IG1heEFzY2Vu
dCwgYm9vbCBzdHJpY3RNb2RlLCBMYXlvdXRVbml0JiBsaW5lVG9wLCBMYXlvdXRVbml0JiBsaW5l
Qm90dG9tLCBib29sJiBzZXRMaW5lVG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMYXlvdXRVbml0JiBsaW5lVG9wSW5jbHVkaW5nTWFyZ2lucywgTGF5
b3V0VW5pdCYgbGluZUJvdHRvbUluY2x1ZGluZ01hcmdpbnMsIGJvb2wmIGhhc0Fubm90YXRpb25z
QmVmb3JlLCBib29sJiBoYXNBbm5vdGF0aW9uc0FmdGVyLCBGb250QmFzZWxpbmUgYmFzZWxpbmVU
eXBlKQordm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihMYXlv
dXRVbml0IHRvcCwgTGF5b3V0VW5pdCBtYXhIZWlnaHQsIExheW91dFVuaXQgbWF4QXNjZW50LCBi
b29sIHN0cmljdE1vZGUsIExheW91dFVuaXQmIGxpbmVUb3AsIExheW91dFVuaXQmIGxpbmVCb3R0
b20sIGJvb2wmIHNldExpbmVUb3AsCisgICAgTGF5b3V0VW5pdCYgbGluZVRvcEluY2x1ZGluZ01h
cmdpbnMsIExheW91dFVuaXQmIGxpbmVCb3R0b21JbmNsdWRpbmdNYXJnaW5zLCBib29sJiBoYXNB
bm5vdGF0aW9uc0JlZm9yZSwgYm9vbCYgaGFzQW5ub3RhdGlvbnNBZnRlciwgRm9udEJhc2VsaW5l
IGJhc2VsaW5lVHlwZSkKIHsKICAgICBib29sIGlzUm9vdEJveCA9IGlzUm9vdElubGluZUJveCgp
OwogICAgIGlmIChpc1Jvb3RCb3gpIHsKQEAgLTg1MSwzNSArODUzLDM1IEBAIGlubGluZSB2b2lk
IElubGluZUZsb3dCb3g6OmFkZEJvcmRlck91dHNldFZpc3VhbE92ZXJmbG93KExheW91dFJlY3Qm
IGxvZ2ljYWxWaXN1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dp
Y2FsUmlnaHRWaXN1YWxPdmVyZmxvdyAtIGxvZ2ljYWxMZWZ0VmlzdWFsT3ZlcmZsb3csIGxvZ2lj
YWxCb3R0b21WaXN1YWxPdmVyZmxvdyAtIGxvZ2ljYWxUb3BWaXN1YWxPdmVyZmxvdyk7CiB9CiAK
LWlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhJbmxp
bmVUZXh0Qm94KiB0ZXh0Qm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4
dEJveERhdGFNYXAsIExheW91dFJlY3QmIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdykKK2lubGluZSB2
b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhJbmxpbmVUZXh0Qm94
JiB0ZXh0Qm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFN
YXAsIExheW91dFJlY3QmIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdykKIHsKLSAgICBpZiAodGV4dEJv
eC0+a25vd25Ub0hhdmVOb092ZXJmbG93KCkpCisgICAgaWYgKHRleHRCb3gua25vd25Ub0hhdmVO
b092ZXJmbG93KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBs
aW5lU3R5bGUgPSB0aGlzLT5saW5lU3R5bGUoKTsKICAgICAKLSAgICBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSB0ZXh0Qm94RGF0YU1hcC5maW5kKHRleHRC
b3gpOworICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwOjppdGVyYXRvciBpdCA9
IHRleHRCb3hEYXRhTWFwLmZpbmQoJnRleHRCb3gpOwogICAgIEdseXBoT3ZlcmZsb3cqIGdseXBo
T3ZlcmZsb3cgPSBpdCA9PSB0ZXh0Qm94RGF0YU1hcC5lbmQoKSA/IDAgOiAmaXQtPnZhbHVlLnNl
Y29uZDsKICAgICBib29sIGlzRmxpcHBlZExpbmUgPSBsaW5lU3R5bGUuaXNGbGlwcGVkTGluZXNX
cml0aW5nTW9kZSgpOwogCi0gICAgaW50IHRvcEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyAo
aXNGbGlwcGVkTGluZSA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IGdseXBoT3ZlcmZsb3ctPnRv
cCkgOiAwOwotICAgIGludCBib3R0b21HbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxp
cHBlZExpbmUgPyBnbHlwaE92ZXJmbG93LT50b3AgOiBnbHlwaE92ZXJmbG93LT5ib3R0b20pIDog
MDsKLSAgICBpbnQgbGVmdEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93
LT5sZWZ0IDogMDsKLSAgICBpbnQgcmlnaHRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5
cGhPdmVyZmxvdy0+cmlnaHQgOiAwOworICAgIExheW91dFVuaXQgdG9wR2x5cGhFZGdlID0gZ2x5
cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogZ2x5
cGhPdmVyZmxvdy0+dG9wKSA6IExheW91dFVuaXQoKTsKKyAgICBMYXlvdXRVbml0IGJvdHRvbUds
eXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGluZSA/IGdseXBoT3ZlcmZsb3ct
PnRvcCA6IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSkgOiBMYXlvdXRVbml0KCk7CisgICAgTGF5b3V0
VW5pdCBsZWZ0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQg
OiBMYXlvdXRVbml0KCk7CisgICAgTGF5b3V0VW5pdCByaWdodEdseXBoRWRnZSA9IGdseXBoT3Zl
cmZsb3cgPyBnbHlwaE92ZXJmbG93LT5yaWdodCA6IExheW91dFVuaXQoKTsKIAotICAgIGludCBz
dHJva2VPdmVyZmxvdyA9IHN0YXRpY19jYXN0PGludD4oY2VpbGYobGluZVN0eWxlLnRleHRTdHJv
a2VXaWR0aCgpIC8gMi4wZikpOwotICAgIGludCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92
ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwotICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ry
b2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7Ci0gICAgaW50IGxlZnRHbHlwaE92ZXJmbG93
ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVmdEdseXBoRWRnZTsKLSAgICBpbnQgcmlnaHRHbHlwaE92
ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyByaWdodEdseXBoRWRnZTsKKyAgICBMYXlvdXRVbml0
IHN0cm9rZU92ZXJmbG93ID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsZihsaW5lU3R5bGUudGV4dFN0
cm9rZVdpZHRoKCkgLyAyLjBmKSk7CisgICAgTGF5b3V0VW5pdCB0b3BHbHlwaE92ZXJmbG93ID0g
LXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOworICAgIExheW91dFVuaXQgYm90dG9tR2x5
cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93ICsgYm90dG9tR2x5cGhFZGdlOworICAgIExheW91
dFVuaXQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSBsZWZ0R2x5cGhFZGdl
OworICAgIExheW91dFVuaXQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBy
aWdodEdseXBoRWRnZTsKIAogICAgIGJvb2wgZW1waGFzaXNNYXJrSXNBYm92ZTsKLSAgICBpZiAo
bGluZVN0eWxlLnRleHRFbXBoYXNpc01hcmsoKSAhPSBUZXh0RW1waGFzaXNNYXJrTm9uZSAmJiB0
ZXh0Qm94LT5lbXBoYXNpc01hcmtFeGlzdHNBbmRJc0Fib3ZlKGxpbmVTdHlsZSwgZW1waGFzaXNN
YXJrSXNBYm92ZSkpIHsKKyAgICBpZiAobGluZVN0eWxlLnRleHRFbXBoYXNpc01hcmsoKSAhPSBU
ZXh0RW1waGFzaXNNYXJrTm9uZSAmJiB0ZXh0Qm94LmVtcGhhc2lzTWFya0V4aXN0c0FuZElzQWJv
dmUobGluZVN0eWxlLCBlbXBoYXNpc01hcmtJc0Fib3ZlKSkgewogICAgICAgICBpbnQgZW1waGFz
aXNNYXJrSGVpZ2h0ID0gbGluZVN0eWxlLmZvbnQoKS5lbXBoYXNpc01hcmtIZWlnaHQobGluZVN0
eWxlLnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7CiAgICAgICAgIGlmIChlbXBoYXNpc01hcmtJ
c0Fib3ZlID09ICFsaW5lU3R5bGUuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpKQotICAgICAg
ICAgICAgdG9wR2x5cGhPdmVyZmxvdyA9IHN0ZDo6bWluKHRvcEdseXBoT3ZlcmZsb3csIC1lbXBo
YXNpc01hcmtIZWlnaHQpOworICAgICAgICAgICAgdG9wR2x5cGhPdmVyZmxvdyA9IHN0ZDo6bWlu
KHRvcEdseXBoT3ZlcmZsb3csIExheW91dFVuaXQoLWVtcGhhc2lzTWFya0hlaWdodCkpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBib3R0b21HbHlwaE92ZXJmbG93ID0gc3RkOjptYXgoYm90
dG9tR2x5cGhPdmVyZmxvdywgZW1waGFzaXNNYXJrSGVpZ2h0KTsKKyAgICAgICAgICAgIGJvdHRv
bUdseXBoT3ZlcmZsb3cgPSBzdGQ6Om1heChib3R0b21HbHlwaE92ZXJmbG93LCBMYXlvdXRVbml0
KGVtcGhhc2lzTWFya0hlaWdodCkpOwogICAgIH0KIAogICAgIC8vIElmIGxldHRlci1zcGFjaW5n
IGlzIG5lZ2F0aXZlLCB3ZSBzaG91bGQgZmFjdG9yIHRoYXQgaW50byByaWdodCBsYXlvdXQgb3Zl
cmZsb3cuIChFdmVuIGluIFJUTCwgbGV0dGVyLXNwYWNpbmcgaXMKQEAgLTkwMCwxNSArOTAyLDE1
IEBAIGlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhJ
bmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBHbHlwCiAgICAgTGF5b3V0VW5pdCBjaGlsZE92ZXJmbG93
TG9naWNhbExlZnQgPSBzdGQ6Om1pbjxMYXlvdXRVbml0Pih0ZXh0U2hhZG93TG9naWNhbExlZnQg
KyBsZWZ0R2x5cGhPdmVyZmxvdywgbGVmdEdseXBoT3ZlcmZsb3cpOwogICAgIExheW91dFVuaXQg
Y2hpbGRPdmVyZmxvd0xvZ2ljYWxSaWdodCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+KHRleHRTaGFk
b3dMb2dpY2FsUmlnaHQgKyByaWdodEdseXBoT3ZlcmZsb3csIHJpZ2h0R2x5cGhPdmVyZmxvdyk7
CiAKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BWaXN1YWxPdmVyZmxvdyA9IHN0ZDo6bWluKHRl
eHRCb3gtPnBpeGVsU25hcHBlZExvZ2ljYWxUb3AoKSArIGNoaWxkT3ZlcmZsb3dMb2dpY2FsVG9w
LCBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cueSgpKTsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0
b21WaXN1YWxPdmVyZmxvdyA9IHN0ZDo6bWF4KHRleHRCb3gtPnBpeGVsU25hcHBlZExvZ2ljYWxC
b3R0b20oKSArIGNoaWxkT3ZlcmZsb3dMb2dpY2FsQm90dG9tLCBsb2dpY2FsVmlzdWFsT3ZlcmZs
b3cubWF4WSgpKTsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0VmlzdWFsT3ZlcmZsb3cgPSBz
dGQ6Om1pbih0ZXh0Qm94LT5waXhlbFNuYXBwZWRMb2dpY2FsTGVmdCgpICsgY2hpbGRPdmVyZmxv
d0xvZ2ljYWxMZWZ0LCBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cueCgpKTsKLSAgICBMYXlvdXRVbml0
IGxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93ID0gc3RkOjptYXgodGV4dEJveC0+cGl4ZWxTbmFw
cGVkTG9naWNhbFJpZ2h0KCkgKyBjaGlsZE92ZXJmbG93TG9naWNhbFJpZ2h0LCBsb2dpY2FsVmlz
dWFsT3ZlcmZsb3cubWF4WCgpKTsKKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BWaXN1YWxPdmVy
ZmxvdyA9IHN0ZDo6bWluKHRleHRCb3gucGl4ZWxTbmFwcGVkTG9naWNhbFRvcCgpICsgY2hpbGRP
dmVyZmxvd0xvZ2ljYWxUb3AsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy55KCkpOworICAgIExheW91
dFVuaXQgbG9naWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93ID0gc3RkOjptYXgodGV4dEJveC5waXhl
bFNuYXBwZWRMb2dpY2FsQm90dG9tKCkgKyBjaGlsZE92ZXJmbG93TG9naWNhbEJvdHRvbSwgbG9n
aWNhbFZpc3VhbE92ZXJmbG93Lm1heFkoKSk7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdFZp
c3VhbE92ZXJmbG93ID0gc3RkOjptaW4odGV4dEJveC5waXhlbFNuYXBwZWRMb2dpY2FsTGVmdCgp
ICsgY2hpbGRPdmVyZmxvd0xvZ2ljYWxMZWZ0LCBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cueCgpKTsK
KyAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93ID0gc3RkOjptYXgodGV4
dEJveC5waXhlbFNuYXBwZWRMb2dpY2FsUmlnaHQoKSArIGNoaWxkT3ZlcmZsb3dMb2dpY2FsUmln
aHQsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy5tYXhYKCkpOwogICAgIAogICAgIGxvZ2ljYWxWaXN1
YWxPdmVyZmxvdyA9IExheW91dFJlY3QobG9naWNhbExlZnRWaXN1YWxPdmVyZmxvdywgbG9naWNh
bFRvcFZpc3VhbE92ZXJmbG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9naWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3cgLSBsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93
LCBsb2dpY2FsQm90dG9tVmlzdWFsT3ZlcmZsb3cgLSBsb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3cp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgdGV4dEJveC0+c2V0
TG9naWNhbE92ZXJmbG93UmVjdChsb2dpY2FsVmlzdWFsT3ZlcmZsb3cpOworICAgIHRleHRCb3gu
c2V0TG9naWNhbE92ZXJmbG93UmVjdChsb2dpY2FsVmlzdWFsT3ZlcmZsb3cpOwogfQogCiBpbmxp
bmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRSZXBsYWNlZENoaWxkT3ZlcmZsb3coY29uc3QgSW5s
aW5lQm94KiBpbmxpbmVCb3gsIExheW91dFJlY3QmIGxvZ2ljYWxMYXlvdXRPdmVyZmxvdywgTGF5
b3V0UmVjdCYgbG9naWNhbFZpc3VhbE92ZXJmbG93KQpAQCAtOTU5LDcgKzk2MSw3IEBAIHZvaWQg
SW5saW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lQm90dG9tLCBHCiAgICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigpLmlzVGV4dCgp
KSB7CiAgICAgICAgICAgICBJbmxpbmVUZXh0Qm94KiB0ZXh0ID0gdG9JbmxpbmVUZXh0Qm94KGN1
cnIpOwogICAgICAgICAgICAgTGF5b3V0UmVjdCB0ZXh0Qm94T3ZlcmZsb3coZW5jbG9zaW5nTGF5
b3V0UmVjdCh0ZXh0LT5sb2dpY2FsRnJhbWVSZWN0KCkpKTsKLSAgICAgICAgICAgIGFkZFRleHRC
b3hWaXN1YWxPdmVyZmxvdyh0ZXh0LCB0ZXh0Qm94RGF0YU1hcCwgdGV4dEJveE92ZXJmbG93KTsK
KyAgICAgICAgICAgIGFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdygqdGV4dCwgdGV4dEJveERhdGFN
YXAsIHRleHRCb3hPdmVyZmxvdyk7CiAgICAgICAgICAgICBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cu
dW5pdGUodGV4dEJveE92ZXJmbG93KTsKICAgICAgICAgfSBlbHNlIGlmIChjdXJyLT5yZW5kZXJl
cigpLmlzUmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgIElubGluZUZsb3dCb3gqIGZsb3cg
PSB0b0lubGluZUZsb3dCb3goY3Vycik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guaAppbmRleCBkZTAxNTIwMTJkYjkxMDcyNDExMDM5YzA5YzMxNTRmMGQzZGM5OTA4Li4w
YzQwNjkzYzNjY2FkYWIwMzBlOWVkYTkwN2FkMTUzYTBiMTllNzIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKQEAgLTE4NiwxMyArMTg2LDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGNsZWFyS25vd25Ub0hhdmVOb092ZXJmbG93KCk7CiAgICAgfQogCi0gICAg
dm9pZCBjb21wdXRlTG9naWNhbEJveEhlaWdodHMoUm9vdElubGluZUJveCosIExheW91dFVuaXQm
IG1heFBvc2l0aW9uVG9wLCBMYXlvdXRVbml0JiBtYXhQb3NpdGlvbkJvdHRvbSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNjZW50
LCBib29sJiBzZXRNYXhBc2NlbnQsIGJvb2wmIHNldE1heERlc2NlbnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJmbG93QW5kRmFs
bGJhY2tGb250c01hcCYsIEZvbnRCYXNlbGluZSwgVmVydGljYWxQb3NpdGlvbkNhY2hlJik7Ci0g
ICAgdm9pZCBhZGp1c3RNYXhBc2NlbnRBbmREZXNjZW50KGludCYgbWF4QXNjZW50LCBpbnQmIG1h
eERlc2NlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhQb3Np
dGlvblRvcCwgaW50IG1heFBvc2l0aW9uQm90dG9tKTsKLSAgICB2b2lkIHBsYWNlQm94ZXNJbkJs
b2NrRGlyZWN0aW9uKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBtYXhIZWlnaHQs
IGludCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9kZSwgTGF5b3V0VW5pdCYgbGluZVRvcCwgTGF5
b3V0VW5pdCYgbGluZUJvdHRvbSwgYm9vbCYgc2V0TGluZVRvcCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExheW91dFVuaXQmIGxpbmVUb3BJbmNsdWRpbmdNYXJnaW5zLCBM
YXlvdXRVbml0JiBsaW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgYm9vbCYgaGFzQW5ub3RhdGlv
bnNCZWZvcmUsIGJvb2wmIGhhc0Fubm90YXRpb25zQWZ0ZXIsIEZvbnRCYXNlbGluZSk7CisgICAg
dm9pZCBjb21wdXRlTG9naWNhbEJveEhlaWdodHMoUm9vdElubGluZUJveCYsIExheW91dFVuaXQm
IG1heFBvc2l0aW9uVG9wLCBMYXlvdXRVbml0JiBtYXhQb3NpdGlvbkJvdHRvbSwKKyAgICAgICAg
TGF5b3V0VW5pdCYgbWF4QXNjZW50LCBMYXlvdXRVbml0JiBtYXhEZXNjZW50LCBib29sJiBzZXRN
YXhBc2NlbnQsIGJvb2wmIHNldE1heERlc2NlbnQsCisgICAgICAgIGJvb2wgc3RyaWN0TW9kZSwg
R2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBGb250QmFzZWxpbmUsIFZlcnRpY2Fs
UG9zaXRpb25DYWNoZSYpOworICAgIHZvaWQgYWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChMYXlv
dXRVbml0JiBtYXhBc2NlbnQsIExheW91dFVuaXQmIG1heERlc2NlbnQsCisgICAgICAgIExheW91
dFVuaXQgbWF4UG9zaXRpb25Ub3AsIExheW91dFVuaXQgbWF4UG9zaXRpb25Cb3R0b20pOworICAg
IHZvaWQgcGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
YXlvdXRVbml0IG1heEhlaWdodCwgTGF5b3V0VW5pdCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9k
ZSwgTGF5b3V0VW5pdCYgbGluZVRvcCwgTGF5b3V0VW5pdCYgbGluZUJvdHRvbSwgYm9vbCYgc2V0
TGluZVRvcCwKKyAgICAgICAgTGF5b3V0VW5pdCYgbGluZVRvcEluY2x1ZGluZ01hcmdpbnMsIExh
eW91dFVuaXQmIGxpbmVCb3R0b21JbmNsdWRpbmdNYXJnaW5zLCBib29sJiBoYXNBbm5vdGF0aW9u
c0JlZm9yZSwgYm9vbCYgaGFzQW5ub3RhdGlvbnNBZnRlciwgRm9udEJhc2VsaW5lKTsKICAgICB2
b2lkIGZsaXBMaW5lc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRV
bml0IGxpbmVCb3R0b20pOwogICAgIGJvb2wgcmVxdWlyZXNJZGVvZ3JhcGhpY0Jhc2VsaW5lKGNv
bnN0IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJikgY29uc3Q7CiAKQEAgLTI5OSw3
ICsyOTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRCb3hTaGFkb3dWaXN1YWxPdmVyZmxv
dyhMYXlvdXRSZWN0JiBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cpOwogICAgIHZvaWQgYWRkQm9yZGVy
T3V0c2V0VmlzdWFsT3ZlcmZsb3coTGF5b3V0UmVjdCYgbG9naWNhbFZpc3VhbE92ZXJmbG93KTsK
LSAgICB2b2lkIGFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhJbmxpbmVUZXh0Qm94KiwgR2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBMYXlvdXRSZWN0JiBsb2dpY2FsVmlzdWFsT3Zl
cmZsb3cpOworICAgIHZvaWQgYWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KElubGluZVRleHRCb3gm
LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYsIExheW91dFJlY3QmIGxvZ2ljYWxW
aXN1YWxPdmVyZmxvdyk7CiAgICAgdm9pZCBhZGRSZXBsYWNlZENoaWxkT3ZlcmZsb3coY29uc3Qg
SW5saW5lQm94KiwgTGF5b3V0UmVjdCYgbG9naWNhbExheW91dE92ZXJmbG93LCBMYXlvdXRSZWN0
JiBsb2dpY2FsVmlzdWFsT3ZlcmZsb3cpOwogICAgIHZvaWQgY29uc3RyYWluVG9MaW5lVG9wQW5k
Qm90dG9tSWZOZWVkZWQoTGF5b3V0UmVjdCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUm9vdElubGluZUJveC5jcHAKaW5kZXggZGM2ZTVkODEzMDJmYjBhNzljNmMzYWM2NGQx
NzRhNTdkM2EzYjkxYi4uNDc4MGQ0Y2JkZjExZDQyYjEzZGM3NWMxZTk2MmE1NjZhYTlkYjYwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtMjYyLDgg
KzI2Miw4IEBAIExheW91dFVuaXQgUm9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmxvY2tEaXJl
Y3Rpb24oTGF5b3V0VW5pdCBoZWlnaHRPZkJsb2NrLCBHCiAKICAgICBMYXlvdXRVbml0IG1heFBv
c2l0aW9uVG9wID0gMDsKICAgICBMYXlvdXRVbml0IG1heFBvc2l0aW9uQm90dG9tID0gMDsKLSAg
ICBpbnQgbWF4QXNjZW50ID0gMDsKLSAgICBpbnQgbWF4RGVzY2VudCA9IDA7CisgICAgTGF5b3V0
VW5pdCBtYXhBc2NlbnQgPSAwOworICAgIExheW91dFVuaXQgbWF4RGVzY2VudCA9IDA7CiAgICAg
Ym9vbCBzZXRNYXhBc2NlbnQgPSBmYWxzZTsKICAgICBib29sIHNldE1heERlc2NlbnQgPSBmYWxz
ZTsKIApAQCAtMjcyLDcgKzI3Miw3IEBAIExheW91dFVuaXQgUm9vdElubGluZUJveDo6YWxpZ25C
b3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCBoZWlnaHRPZkJsb2NrLCBHCiAKICAgICBt
X2Jhc2VsaW5lVHlwZSA9IHJlcXVpcmVzSWRlb2dyYXBoaWNCYXNlbGluZSh0ZXh0Qm94RGF0YU1h
cCkgPyBJZGVvZ3JhcGhpY0Jhc2VsaW5lIDogQWxwaGFiZXRpY0Jhc2VsaW5lOwogCi0gICAgY29t
cHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKHRoaXMsIG1heFBvc2l0aW9uVG9wLCBtYXhQb3NpdGlvbkJv
dHRvbSwgbWF4QXNjZW50LCBtYXhEZXNjZW50LCBzZXRNYXhBc2NlbnQsIHNldE1heERlc2NlbnQs
IG5vUXVpcmtzTW9kZSwKKyAgICBjb21wdXRlTG9naWNhbEJveEhlaWdodHMoKnRoaXMsIG1heFBv
c2l0aW9uVG9wLCBtYXhQb3NpdGlvbkJvdHRvbSwgbWF4QXNjZW50LCBtYXhEZXNjZW50LCBzZXRN
YXhBc2NlbnQsIHNldE1heERlc2NlbnQsIG5vUXVpcmtzTW9kZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dEJveERhdGFNYXAsIGJhc2VsaW5lVHlwZSgpLCB2ZXJ0aWNhbFBvc2l0
aW9uQ2FjaGUpOwogCiAgICAgaWYgKG1heEFzY2VudCArIG1heERlc2NlbnQgPCBzdGQ6Om1heCht
YXhQb3NpdGlvblRvcCwgbWF4UG9zaXRpb25Cb3R0b20pKQpAQCAtNzk3LDcgKzc5Nyw3IEBAIExh
eW91dFJlY3QgUm9vdElubGluZUJveDo6cGFkZGVkTGF5b3V0T3ZlcmZsb3dSZWN0KExheW91dFVu
aXQgZW5kUGFkZGluZykgY29uc3QKICAgICByZXR1cm4gbGluZUxheW91dE92ZXJmbG93OwogfQog
Ci1zdGF0aWMgdm9pZCBzZXRBc2NlbnRBbmREZXNjZW50KGludCYgYXNjZW50LCBpbnQmIGRlc2Nl
bnQsIGludCBuZXdBc2NlbnQsIGludCBuZXdEZXNjZW50LCBib29sJiBhc2NlbnREZXNjZW50U2V0
KQorc3RhdGljIHZvaWQgc2V0QXNjZW50QW5kRGVzY2VudChMYXlvdXRVbml0JiBhc2NlbnQsIExh
eW91dFVuaXQmIGRlc2NlbnQsIExheW91dFVuaXQgbmV3QXNjZW50LCBMYXlvdXRVbml0IG5ld0Rl
c2NlbnQsIGJvb2wmIGFzY2VudERlc2NlbnRTZXQpCiB7CiAgICAgaWYgKCFhc2NlbnREZXNjZW50
U2V0KSB7CiAgICAgICAgIGFzY2VudERlc2NlbnRTZXQgPSB0cnVlOwpAQCAtODA5LDE3ICs4MDks
MTggQEAgc3RhdGljIHZvaWQgc2V0QXNjZW50QW5kRGVzY2VudChpbnQmIGFzY2VudCwgaW50JiBk
ZXNjZW50LCBpbnQgbmV3QXNjZW50LCBpbnQgbmUKICAgICB9CiB9CiAKLXZvaWQgUm9vdElubGlu
ZUJveDo6YXNjZW50QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gqIGJveCwgR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLCBpbnQmIGFzY2VudCwgaW50JiBk
ZXNjZW50LAordm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGlu
ZUJveCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFN
YXAsIExheW91dFVuaXQmIGFzY2VudCwgTGF5b3V0VW5pdCYgZGVzY2VudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBhZmZlY3RzQXNjZW50LCBib29s
JiBhZmZlY3RzRGVzY2VudCkgY29uc3QKIHsKICAgICBib29sIGFzY2VudERlc2NlbnRTZXQgPSBm
YWxzZTsKIAogICAgIC8vIFJlcGxhY2VkIGJveGVzIHdpbGwgcmV0dXJuIDAgZm9yIHRoZSBsaW5l
LWhlaWdodCBpZiBsaW5lLWJveC1jb250YWluIHNheXMgdGhleSBhcmUKICAgICAvLyBub3QgdG8g
YmUgaW5jbHVkZWQuCi0gICAgaWYgKGJveC0+cmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkpIHsKKyAg
ICBpZiAoYm94LnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIGlmIChsaW5lU3R5
bGUoKS5saW5lQm94Q29udGFpbigpICYgTGluZUJveENvbnRhaW5SZXBsYWNlZCkgewotICAgICAg
ICAgICAgYXNjZW50ID0gYm94LT5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsKLSAg
ICAgICAgICAgIGRlc2NlbnQgPSBib3gtPmxpbmVIZWlnaHQoKSAtIGFzY2VudDsKKyAgICAgICAg
ICAgIGFzY2VudCA9IGJveC5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiAoc3VicGl4ZWwpIHJlbW92ZSB0aGlzIGZsb29yKCkgY2FsbCB3aGVu
IHdlIGFyZSBjb21mb3J0YWJsZSByZWJhc2VsaW5pbmcgdGVzdHMKKyAgICAgICAgICAgIGRlc2Nl
bnQgPSBib3gubGluZUhlaWdodCgpLmZsb29yKCkgLSBhc2NlbnQ7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIC8vIFJlcGxhY2VkIGVsZW1lbnRzIGFsd2F5cyBhZmZlY3QgYm90aCB0aGUgYXNj
ZW50IGFuZCBkZXNjZW50LgogICAgICAgICAgICAgYWZmZWN0c0FzY2VudCA9IHRydWU7CkBAIC04
MjgsMTAgKzgyOSwxMCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JC
b3goSW5saW5lQm94KiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIHVzZWRGb250cyA9
IDA7Ci0gICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IDA7Ci0gICAgaWYgKGJveC0+
aXNJbmxpbmVUZXh0Qm94KCkpIHsKLSAgICAgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9u
dHNNYXA6Oml0ZXJhdG9yIGl0ID0gdGV4dEJveERhdGFNYXAuZmluZCh0b0lubGluZVRleHRCb3go
Ym94KSk7CisgICAgVmVjdG9yPGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qIHVzZWRGb250cyA9IG51
bGxwdHI7CisgICAgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IG51bGxwdHI7CisgICAg
aWYgKGJveC5pc0lubGluZVRleHRCb3goKSkgeworICAgICAgICBHbHlwaE92ZXJmbG93QW5kRmFs
bGJhY2tGb250c01hcDo6aXRlcmF0b3IgaXQgPSB0ZXh0Qm94RGF0YU1hcC5maW5kKHRvSW5saW5l
VGV4dEJveCgmYm94KSk7CiAgICAgICAgIHVzZWRGb250cyA9IGl0ID09IHRleHRCb3hEYXRhTWFw
LmVuZCgpID8gMCA6ICZpdC0+dmFsdWUuZmlyc3Q7CiAgICAgICAgIGdseXBoT3ZlcmZsb3cgPSBp
dCA9PSB0ZXh0Qm94RGF0YU1hcC5lbmQoKSA/IDAgOiAmaXQtPnZhbHVlLnNlY29uZDsKICAgICB9
CkBAIC04NDIsOSArODQzLDkgQEAgdm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50
Rm9yQm94KElubGluZUJveCogYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGIKICAgICBib29sIHNl
dFVzZWRGb250ID0gZmFsc2U7CiAgICAgYm9vbCBzZXRVc2VkRm9udFdpdGhMZWFkaW5nID0gZmFs
c2U7CiAKLSAgICBjb25zdCBSZW5kZXJTdHlsZSYgYm94TGluZVN0eWxlID0gYm94LT5saW5lU3R5
bGUoKTsKKyAgICBjb25zdCBSZW5kZXJTdHlsZSYgYm94TGluZVN0eWxlID0gYm94LmxpbmVTdHls
ZSgpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAodXNlZEZvbnRzICYmICF1c2VkRm9udHMt
PmlzRW1wdHkoKSAmJiAoaW5jbHVkZUZvbnQgfHwgKGJveExpbmVTdHlsZS5saW5lSGVpZ2h0KCku
aXNOZWdhdGl2ZSgpICYmIGluY2x1ZGVMZWFkaW5nKSkgJiYgIWJveC0+cmVuZGVyZXIoKS5kb2N1
bWVudCgpLnNldHRpbmdzKCktPmFsd2F5c1VzZUJhc2VsaW5lT2ZQcmltYXJ5Rm9udCgpKSB7Cisg
ICAgaWYgKHVzZWRGb250cyAmJiAhdXNlZEZvbnRzLT5pc0VtcHR5KCkgJiYgKGluY2x1ZGVGb250
IHx8IChib3hMaW5lU3R5bGUubGluZUhlaWdodCgpLmlzTmVnYXRpdmUoKSAmJiBpbmNsdWRlTGVh
ZGluZykpICYmICFib3gucmVuZGVyZXIoKS5kb2N1bWVudCgpLnNldHRpbmdzKCktPmFsd2F5c1Vz
ZUJhc2VsaW5lT2ZQcmltYXJ5Rm9udCgpKSB7CiAjZWxzZQogICAgIGlmICh1c2VkRm9udHMgJiYg
IXVzZWRGb250cy0+aXNFbXB0eSgpICYmIChpbmNsdWRlRm9udCB8fCAoYm94TGluZVN0eWxlLmxp
bmVIZWlnaHQoKS5pc05lZ2F0aXZlKCkgJiYgaW5jbHVkZUxlYWRpbmcpKSkgewogI2VuZGlmCkBA
IC04NjUsNDggKzg2Niw0OCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRG
b3JCb3goSW5saW5lQm94KiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYgogICAgICAgICAgICAg
ICAgIHNldFVzZWRGb250V2l0aExlYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKCFhZmZlY3RzQXNjZW50KQotICAgICAgICAgICAgICAgIGFmZmVjdHNBc2NlbnQg
PSB1c2VkRm9udEFzY2VudCAtIGJveC0+bG9naWNhbFRvcCgpID4gMDsKKyAgICAgICAgICAgICAg
ICBhZmZlY3RzQXNjZW50ID0gdXNlZEZvbnRBc2NlbnQgLSBib3gubG9naWNhbFRvcCgpID4gMDsK
ICAgICAgICAgICAgIGlmICghYWZmZWN0c0Rlc2NlbnQpCi0gICAgICAgICAgICAgICAgYWZmZWN0
c0Rlc2NlbnQgPSB1c2VkRm9udERlc2NlbnQgKyBib3gtPmxvZ2ljYWxUb3AoKSA+IDA7CisgICAg
ICAgICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSB1c2VkRm9udERlc2NlbnQgKyBib3gubG9naWNh
bFRvcCgpID4gMDsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIElmIGxlYWRpbmcgaXMgaW5j
bHVkZWQgZm9yIHRoZSBib3gsIHRoZW4gd2UgY29tcHV0ZSB0aGF0IGJveC4KICAgICBpZiAoaW5j
bHVkZUxlYWRpbmcgJiYgIXNldFVzZWRGb250V2l0aExlYWRpbmcpIHsKLSAgICAgICAgaW50IGFz
Y2VudFdpdGhMZWFkaW5nID0gYm94LT5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsK
LSAgICAgICAgaW50IGRlc2NlbnRXaXRoTGVhZGluZyA9IGJveC0+bGluZUhlaWdodCgpIC0gYXNj
ZW50V2l0aExlYWRpbmc7CisgICAgICAgIGludCBhc2NlbnRXaXRoTGVhZGluZyA9IGJveC5iYXNl
bGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsKKyAgICAgICAgaW50IGRlc2NlbnRXaXRoTGVh
ZGluZyA9IGJveC5saW5lSGVpZ2h0KCkgLSBhc2NlbnRXaXRoTGVhZGluZzsKICAgICAgICAgc2V0
QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGFzY2VudFdpdGhMZWFkaW5nLCBkZXNj
ZW50V2l0aExlYWRpbmcsIGFzY2VudERlc2NlbnRTZXQpOwogICAgICAgICAKICAgICAgICAgLy8g
RXhhbWluZSB0aGUgZm9udCBib3ggZm9yIGlubGluZSBmbG93cyBhbmQgdGV4dCBib3hlcyB0byBz
ZWUgaWYgYW55IHBhcnQgb2YgaXQgaXMgYWJvdmUgdGhlIGJhc2VsaW5lLgogICAgICAgICAvLyBJ
ZiB0aGUgdG9wIG9mIG91ciBmb250IGJveCByZWxhdGl2ZSB0byB0aGUgcm9vdCBib3ggYmFzZWxp
bmUgaXMgYWJvdmUgdGhlIHJvb3QgYm94IGJhc2VsaW5lLCB0aGVuCiAgICAgICAgIC8vIHdlIGFy
ZSBjb250cmlidXRpbmcgdG8gdGhlIG1heEFzY2VudCB2YWx1ZS4gRGVzY2VudCBpcyBzaW1pbGFy
LiBJZiBhbnkgcGFydCBvZiBvdXIgZm9udCBib3ggaXMgYmVsb3cKICAgICAgICAgLy8gdGhlIHJv
b3QgYm94J3MgYmFzZWxpbmUsIHRoZW4gd2UgY29udHJpYnV0ZSB0byB0aGUgbWF4RGVzY2VudCB2
YWx1ZS4KLSAgICAgICAgYWZmZWN0c0FzY2VudCA9IGFzY2VudFdpdGhMZWFkaW5nIC0gYm94LT5s
b2dpY2FsVG9wKCkgPiAwOwotICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGRlc2NlbnRXaXRoTGVh
ZGluZyArIGJveC0+bG9naWNhbFRvcCgpID4gMDsgCisgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBh
c2NlbnRXaXRoTGVhZGluZyAtIGJveC5sb2dpY2FsVG9wKCkgPiAwOworICAgICAgICBhZmZlY3Rz
RGVzY2VudCA9IGRlc2NlbnRXaXRoTGVhZGluZyArIGJveC5sb2dpY2FsVG9wKCkgPiAwOwogICAg
IH0KICAgICAKICAgICBpZiAoaW5jbHVkZUZvbnRGb3JCb3goYm94KSAmJiAhc2V0VXNlZEZvbnQp
IHsKICAgICAgICAgaW50IGZvbnRBc2NlbnQgPSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5h
c2NlbnQoYmFzZWxpbmVUeXBlKCkpOwogICAgICAgICBpbnQgZm9udERlc2NlbnQgPSBib3hMaW5l
U3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKICAgICAgICAgc2V0
QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGZvbnRBc2NlbnQsIGZvbnREZXNjZW50
LCBhc2NlbnREZXNjZW50U2V0KTsKLSAgICAgICAgYWZmZWN0c0FzY2VudCA9IGZvbnRBc2NlbnQg
LSBib3gtPmxvZ2ljYWxUb3AoKSA+IDA7Ci0gICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZm9udERl
c2NlbnQgKyBib3gtPmxvZ2ljYWxUb3AoKSA+IDA7IAorICAgICAgICBhZmZlY3RzQXNjZW50ID0g
Zm9udEFzY2VudCAtIGJveC5sb2dpY2FsVG9wKCkgPiAwOworICAgICAgICBhZmZlY3RzRGVzY2Vu
dCA9IGZvbnREZXNjZW50ICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgfQogCiAgICAgaWYg
KGluY2x1ZGVHbHlwaHNGb3JCb3goYm94KSAmJiBnbHlwaE92ZXJmbG93ICYmIGdseXBoT3ZlcmZs
b3ctPmNvbXB1dGVCb3VuZHMpIHsKICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQs
IGRlc2NlbnQsIGdseXBoT3ZlcmZsb3ctPnRvcCwgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBhc2Nl
bnREZXNjZW50U2V0KTsKLSAgICAgICAgYWZmZWN0c0FzY2VudCA9IGdseXBoT3ZlcmZsb3ctPnRv
cCAtIGJveC0+bG9naWNhbFRvcCgpID4gMDsKLSAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBnbHlw
aE92ZXJmbG93LT5ib3R0b20gKyBib3gtPmxvZ2ljYWxUb3AoKSA+IDA7IAotICAgICAgICBnbHlw
aE92ZXJmbG93LT50b3AgPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT50b3AsIHN0ZDo6bWF4KDAs
IGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChi
YXNlbGluZVR5cGUoKSkpKTsKLSAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjpt
aW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBzdGQ6Om1heCgwLCBnbHlwaE92ZXJmbG93LT5ib3R0
b20gLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkp
OworICAgICAgICBhZmZlY3RzQXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94LmxvZ2lj
YWxUb3AoKSA+IDA7CisgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+Ym90
dG9tICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9
IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoTGF5b3V0VW5pdCgpLCBnbHlw
aE92ZXJmbG93LT50b3AgLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxp
bmVUeXBlKCkpKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IHN0ZDo6bWluKGds
eXBoT3ZlcmZsb3ctPmJvdHRvbSwgc3RkOjptYXgoTGF5b3V0VW5pdCgpLCBnbHlwaE92ZXJmbG93
LT5ib3R0b20gLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlw
ZSgpKSkpOwogICAgIH0KIAogICAgIGlmIChpbmNsdWRlTWFyZ2luRm9yQm94KGJveCkpIHsKICAg
ICAgICAgTGF5b3V0VW5pdCBhc2NlbnRXaXRoTWFyZ2luID0gYm94TGluZVN0eWxlLmZvbnRNZXRy
aWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKICAgICAgICAgTGF5b3V0VW5pdCBkZXNjZW50
V2l0aE1hcmdpbiA9IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVU
eXBlKCkpOwotICAgICAgICBpZiAoYm94LT5wYXJlbnQoKSAmJiAhYm94LT5yZW5kZXJlcigpLmlz
VGV4dE9yTGluZUJyZWFrKCkpIHsKLSAgICAgICAgICAgIGFzY2VudFdpdGhNYXJnaW4gKz0gYm94
LT5ib3hNb2RlbE9iamVjdCgpLT5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBib3gtPmJveE1v
ZGVsT2JqZWN0KCktPm1hcmdpbkJlZm9yZSgpOwotICAgICAgICAgICAgZGVzY2VudFdpdGhNYXJn
aW4gKz0gYm94LT5ib3hNb2RlbE9iamVjdCgpLT5ib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSArIGJv
eC0+Ym94TW9kZWxPYmplY3QoKS0+bWFyZ2luQWZ0ZXIoKTsKKyAgICAgICAgaWYgKGJveC5wYXJl
bnQoKSAmJiAhYm94LnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSkgeworICAgICAgICAg
ICAgYXNjZW50V2l0aE1hcmdpbiArPSBib3guYm94TW9kZWxPYmplY3QoKS0+Ym9yZGVyQW5kUGFk
ZGluZ0JlZm9yZSgpICsgYm94LmJveE1vZGVsT2JqZWN0KCktPm1hcmdpbkJlZm9yZSgpOworICAg
ICAgICAgICAgZGVzY2VudFdpdGhNYXJnaW4gKz0gYm94LmJveE1vZGVsT2JqZWN0KCktPmJvcmRl
ckFuZFBhZGRpbmdBZnRlcigpICsgYm94LmJveE1vZGVsT2JqZWN0KCktPm1hcmdpbkFmdGVyKCk7
CiAgICAgICAgIH0KICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQs
IGFzY2VudFdpdGhNYXJnaW4sIGRlc2NlbnRXaXRoTWFyZ2luLCBhc2NlbnREZXNjZW50U2V0KTsK
ICAgICAgICAgCkBAIC05ODksMjEgKzk5MCwyMSBAQCBMYXlvdXRVbml0IFJvb3RJbmxpbmVCb3g6
OnZlcnRpY2FsUG9zaXRpb25Gb3JCb3goSW5saW5lQm94KiBib3gsIFZlcnRpY2FsUG9zaXRpbwog
ICAgIHJldHVybiB2ZXJ0aWNhbFBvc2l0aW9uOwogfQogCi1ib29sIFJvb3RJbmxpbmVCb3g6Omlu
Y2x1ZGVMZWFkaW5nRm9yQm94KElubGluZUJveCogYm94KSBjb25zdAorYm9vbCBSb290SW5saW5l
Qm94OjppbmNsdWRlTGVhZGluZ0ZvckJveChJbmxpbmVCb3gmIGJveCkgY29uc3QKIHsKLSAgICBp
ZiAoYm94LT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSB8fCAoYm94LT5yZW5kZXJlcigpLmlzVGV4
dE9yTGluZUJyZWFrKCkgJiYgIWJveC0+YmVoYXZlc0xpa2VUZXh0KCkpKQorICAgIGlmIChib3gu
cmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkgfHwgKGJveC5yZW5kZXJlcigpLmlzVGV4dE9yTGluZUJy
ZWFrKCkgJiYgIWJveC5iZWhhdmVzTGlrZVRleHQoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIExpbmVCb3hDb250YWluIGxpbmVCb3hDb250YWluID0gcmVuZGVyZXIoKS5zdHlsZSgp
LmxpbmVCb3hDb250YWluKCk7Ci0gICAgcmV0dXJuIChsaW5lQm94Q29udGFpbiAmIExpbmVCb3hD
b250YWluSW5saW5lKSB8fCAoYm94ID09IHRoaXMgJiYgKGxpbmVCb3hDb250YWluICYgTGluZUJv
eENvbnRhaW5CbG9jaykpOworICAgIHJldHVybiAobGluZUJveENvbnRhaW4gJiBMaW5lQm94Q29u
dGFpbklubGluZSkgfHwgKCZib3ggPT0gdGhpcyAmJiAobGluZUJveENvbnRhaW4gJiBMaW5lQm94
Q29udGFpbkJsb2NrKSk7CiB9CiAKLWJvb2wgUm9vdElubGluZUJveDo6aW5jbHVkZUZvbnRGb3JC
b3goSW5saW5lQm94KiBib3gpIGNvbnN0Citib29sIFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVGb250
Rm9yQm94KElubGluZUJveCYgYm94KSBjb25zdAogewotICAgIGlmIChib3gtPnJlbmRlcmVyKCku
aXNSZXBsYWNlZCgpIHx8IChib3gtPnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSAmJiAh
Ym94LT5iZWhhdmVzTGlrZVRleHQoKSkpCisgICAgaWYgKGJveC5yZW5kZXJlcigpLmlzUmVwbGFj
ZWQoKSB8fCAoYm94LnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSAmJiAhYm94LmJlaGF2
ZXNMaWtlVGV4dCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIGlmICghYm94
LT5iZWhhdmVzTGlrZVRleHQoKSAmJiBib3gtPmlzSW5saW5lRmxvd0JveCgpICYmICF0b0lubGlu
ZUZsb3dCb3goYm94KS0+aGFzVGV4dENoaWxkcmVuKCkpCisgICAgaWYgKCFib3guYmVoYXZlc0xp
a2VUZXh0KCkgJiYgYm94LmlzSW5saW5lRmxvd0JveCgpICYmICF0b0lubGluZUZsb3dCb3goJmJv
eCktPmhhc1RleHRDaGlsZHJlbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBG
b3Igbm93IG1hcCAiZ2x5cGhzIiB0byAiZm9udCIgaW4gdmVydGljYWwgdGV4dCBtb2RlIHVudGls
IHRoZSBib3VuZHMgcmV0dXJuZWQgYnkgZ2x5cGhzIGFyZW4ndCBnYXJiYWdlLgpAQCAtMTAxMSwx
MiArMTAxMiwxMiBAQCBib29sIFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVGb250Rm9yQm94KElubGlu
ZUJveCogYm94KSBjb25zdAogICAgIHJldHVybiAobGluZUJveENvbnRhaW4gJiBMaW5lQm94Q29u
dGFpbkZvbnQpIHx8ICghaXNIb3Jpem9udGFsKCkgJiYgKGxpbmVCb3hDb250YWluICYgTGluZUJv
eENvbnRhaW5HbHlwaHMpKTsKIH0KIAotYm9vbCBSb290SW5saW5lQm94OjppbmNsdWRlR2x5cGhz
Rm9yQm94KElubGluZUJveCogYm94KSBjb25zdAorYm9vbCBSb290SW5saW5lQm94OjppbmNsdWRl
R2x5cGhzRm9yQm94KElubGluZUJveCYgYm94KSBjb25zdAogewotICAgIGlmIChib3gtPnJlbmRl
cmVyKCkuaXNSZXBsYWNlZCgpIHx8IChib3gtPnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWso
KSAmJiAhYm94LT5iZWhhdmVzTGlrZVRleHQoKSkpCisgICAgaWYgKGJveC5yZW5kZXJlcigpLmlz
UmVwbGFjZWQoKSB8fCAoYm94LnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSAmJiAhYm94
LmJlaGF2ZXNMaWtlVGV4dCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIGlm
ICghYm94LT5iZWhhdmVzTGlrZVRleHQoKSAmJiBib3gtPmlzSW5saW5lRmxvd0JveCgpICYmICF0
b0lubGluZUZsb3dCb3goYm94KS0+aGFzVGV4dENoaWxkcmVuKCkpCisgICAgaWYgKCFib3guYmVo
YXZlc0xpa2VUZXh0KCkgJiYgYm94LmlzSW5saW5lRmxvd0JveCgpICYmICF0b0lubGluZUZsb3dC
b3goJmJveCktPmhhc1RleHRDaGlsZHJlbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBGSVhNRTogV2UgY2FuJ3QgZml0IHRvIGdseXBocyB5ZXQgZm9yIHZlcnRpY2FsIHRleHQs
IHNpbmNlIHRoZSBib3VuZHMgcmV0dXJuZWQgYXJlIGdhcmJhZ2UuCkBAIC0xMDI0LDkgKzEwMjUs
OSBAQCBib29sIFJvb3RJbmxpbmVCb3g6OmluY2x1ZGVHbHlwaHNGb3JCb3goSW5saW5lQm94KiBi
b3gpIGNvbnN0CiAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbCgpICYmIChsaW5lQm94Q29udGFpbiAm
IExpbmVCb3hDb250YWluR2x5cGhzKTsKIH0KIAotYm9vbCBSb290SW5saW5lQm94OjppbmNsdWRl
TWFyZ2luRm9yQm94KElubGluZUJveCogYm94KSBjb25zdAorYm9vbCBSb290SW5saW5lQm94Ojpp
bmNsdWRlTWFyZ2luRm9yQm94KElubGluZUJveCYgYm94KSBjb25zdAogewotICAgIGlmIChib3gt
PnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpIHx8IChib3gtPnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5l
QnJlYWsoKSAmJiAhYm94LT5iZWhhdmVzTGlrZVRleHQoKSkpCisgICAgaWYgKGJveC5yZW5kZXJl
cigpLmlzUmVwbGFjZWQoKSB8fCAoYm94LnJlbmRlcmVyKCkuaXNUZXh0T3JMaW5lQnJlYWsoKSAm
JiAhYm94LmJlaGF2ZXNMaWtlVGV4dCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
TGluZUJveENvbnRhaW4gbGluZUJveENvbnRhaW4gPSByZW5kZXJlcigpLnN0eWxlKCkubGluZUJv
eENvbnRhaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5s
aW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCmluZGV4
IDY4MWEwY2E3ZTU4Njg0MDljZmJlZjc5MDQ1YzgyZmE2NTMwYTU4YzYuLjI3ZmE2NGFhMjdlNGY2
NjRlYTEzMGE5MzQwMmIzN2Q2MGNiZTdlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jv
b3RJbmxpbmVCb3guaApAQCAtMTU4LDEyICsxNTgsOCBAQCBwdWJsaWM6CiAKICAgICBMYXlvdXRS
ZWN0IHBhZGRlZExheW91dE92ZXJmbG93UmVjdChMYXlvdXRVbml0IGVuZFBhZGRpbmcpIGNvbnN0
OwogCi0gICAgdm9pZCBhc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCosIEdseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgaW50JiBhc2NlbnQsIGludCYgZGVzY2VudCwgYm9v
bCYgYWZmZWN0c0FzY2VudCwgYm9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0OworICAgIHZvaWQg
YXNjZW50QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJh
Y2tGb250c01hcCYsIExheW91dFVuaXQmIGFzY2VudCwgTGF5b3V0VW5pdCYgZGVzY2VudCwgYm9v
bCYgYWZmZWN0c0FzY2VudCwgYm9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0OwogICAgIExheW91
dFVuaXQgdmVydGljYWxQb3NpdGlvbkZvckJveChJbmxpbmVCb3gqLCBWZXJ0aWNhbFBvc2l0aW9u
Q2FjaGUmKTsKLSAgICBib29sIGluY2x1ZGVMZWFkaW5nRm9yQm94KElubGluZUJveCopIGNvbnN0
OwotICAgIGJvb2wgaW5jbHVkZUZvbnRGb3JCb3goSW5saW5lQm94KikgY29uc3Q7Ci0gICAgYm9v
bCBpbmNsdWRlR2x5cGhzRm9yQm94KElubGluZUJveCopIGNvbnN0OwotICAgIGJvb2wgaW5jbHVk
ZU1hcmdpbkZvckJveChJbmxpbmVCb3gqKSBjb25zdDsKICAgICBib29sIGZpdHNUb0dseXBocygp
IGNvbnN0OwogICAgIGJvb2wgaW5jbHVkZXNSb290TGluZUJveEZvbnRPckxlYWRpbmcoKSBjb25z
dDsKICAgICAKQEAgLTE5Niw2ICsxOTIsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNSb290SW5saW5lQm94KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCisgICAgYm9vbCBpbmNsdWRlTGVhZGluZ0ZvckJveChJbmxpbmVCb3gmKSBjb25z
dDsKKyAgICBib29sIGluY2x1ZGVGb250Rm9yQm94KElubGluZUJveCYpIGNvbnN0OworICAgIGJv
b2wgaW5jbHVkZUdseXBoc0ZvckJveChJbmxpbmVCb3gmKSBjb25zdDsKKyAgICBib29sIGluY2x1
ZGVNYXJnaW5Gb3JCb3goSW5saW5lQm94JikgY29uc3Q7CisKICAgICBMYXlvdXRVbml0IGxpbmVT
bmFwQWRqdXN0bWVudChMYXlvdXRVbml0IGRlbHRhID0gMCkgY29uc3Q7CiAKICAgICBMYXlvdXRV
bml0IGJlZm9yZUFubm90YXRpb25zQWRqdXN0bWVudCgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425084</attachid>
            <date>2021-04-03 01:47:59 -0700</date>
            <delta_ts>2021-04-05 12:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210403104758.patch</filename>
            <type>text/plain</type>
            <size>11502</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRhNDE5YTRhZDA1YzE2
NDdiOGMwZDBmNWU1NDFkOWRhNjgzY2VlMi4uY2Y5ZWU2ZmM4NWNkYzg4NjEzZDcyZDdiYTZlYWFk
YTNiNzZkYjlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTAzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBsYXlvdXQgYXNjZW50
cyBhbmQgZGVzY2VudHMgdG8gTGF5b3V0VW5pdHMgaW5zdGVhZCBvZiBpbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93
Qm94OjphZGp1c3RNYXhBc2NlbnRBbmREZXNjZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6CisgICAgICAgICogcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9ja0RpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRBc2NlbnRBbmREZXNjZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3ggY29uc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94Lmg6CisKIDIwMjEtMDQtMDIgIENocmlz
IExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCB0ZXh0IHJlbmRl
cmluZyBvbiBPZmZzY3JlZW5DYW52YXMgaW4gYSBXb3JrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCAyNjdlOTI3Y2RkZjVlNGY5MzJlNzcwMjFjMDcw
MjM1N2JhY2YzMDNiLi5kMzUwOTQzYjQyOGUxODFkMDNhMWY3ODYwYTE2OTZmNmQzNWQxNmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC00OTksNyAr
NDk5LDcgQEAgc3RhdGljIGJvb2wgdmVydGljYWxBbGlnbkFwcGxpZXMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKICAgICByZXR1cm4gKHBhcmVudFJlbmRlcmVyLmlzSW5saW5lKCkgJiYg
cGFyZW50UmVuZGVyZXIuc3R5bGUoKS5kaXNwbGF5KCkgIT0gRGlzcGxheVR5cGU6OklubGluZUJs
b2NrKSB8fCBwYXJlbnRSZW5kZXJlci5pc1RhYmxlQ2VsbCgpOwogfQogCi12b2lkIElubGluZUZs
b3dCb3g6OmFkanVzdE1heEFzY2VudEFuZERlc2NlbnQoaW50JiBtYXhBc2NlbnQsIGludCYgbWF4
RGVzY2VudCwgaW50IG1heFBvc2l0aW9uVG9wLCBpbnQgbWF4UG9zaXRpb25Cb3R0b20pCit2b2lk
IElubGluZUZsb3dCb3g6OmFkanVzdE1heEFzY2VudEFuZERlc2NlbnQoTGF5b3V0VW5pdCYgbWF4
QXNjZW50LCBMYXlvdXRVbml0JiBtYXhEZXNjZW50LCBMYXlvdXRVbml0IG1heFBvc2l0aW9uVG9w
LCBMYXlvdXRVbml0IG1heFBvc2l0aW9uQm90dG9tKQogewogICAgIGZvciAoSW5saW5lQm94KiBj
aGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkg
ewogICAgICAgICAvLyBUaGUgY29tcHV0ZWQgbGluZWhlaWdodCBuZWVkcyB0byBiZSBleHRlbmRl
ZCBmb3IgdGhlCkBAIC01MjgsNyArNTI4LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjphZGp1c3RN
YXhBc2NlbnRBbmREZXNjZW50KGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGkKIH0K
IAogdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaWdodHMoUm9vdElubGlu
ZUJveCYgcm9vdEJveCwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Ub3AsIExheW91dFVuaXQmIG1h
eFBvc2l0aW9uQm90dG9tLAotICAgIGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGJv
b2wmIHNldE1heEFzY2VudCwgYm9vbCYgc2V0TWF4RGVzY2VudCwKKyAgICBMYXlvdXRVbml0JiBt
YXhBc2NlbnQsIExheW91dFVuaXQmIG1heERlc2NlbnQsIGJvb2wmIHNldE1heEFzY2VudCwgYm9v
bCYgc2V0TWF4RGVzY2VudCwKICAgICBib29sIHN0cmljdE1vZGUsIEdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCwKICAgICBGb250QmFzZWxpbmUgYmFzZWxp
bmVUeXBlLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmIHZlcnRpY2FsUG9zaXRpb25DYWNoZSkKIHsK
QEAgLTU1Myw4ICs1NTMsOCBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94
SGVpZ2h0cyhSb290SW5saW5lQm94JiByb290Qm94LCBMYXlvdXRVbml0JgogICAgIAogICAgIGlm
IChpc1Jvb3RJbmxpbmVCb3goKSkgewogICAgICAgICAvLyBFeGFtaW5lIG91ciByb290IGJveC4K
LSAgICAgICAgaW50IGFzY2VudCA9IDA7Ci0gICAgICAgIGludCBkZXNjZW50ID0gMDsKKyAgICAg
ICAgTGF5b3V0VW5pdCBhc2NlbnQ7CisgICAgICAgIExheW91dFVuaXQgZGVzY2VudDsKICAgICAg
ICAgcm9vdEJveC5hc2NlbnRBbmREZXNjZW50Rm9yQm94KHJvb3RCb3gsIHRleHRCb3hEYXRhTWFw
LCBhc2NlbnQsIGRlc2NlbnQsIGFmZmVjdHNBc2NlbnQsIGFmZmVjdHNEZXNjZW50KTsKICAgICAg
ICAgaWYgKHN0cmljdE1vZGUgfHwgaGFzVGV4dENoaWxkcmVuKCkgfHwgKCFjaGVja0NoaWxkcmVu
ICYmIGhhc1RleHREZXNjZW5kYW50cygpKSkgewogICAgICAgICAgICAgaWYgKG1heEFzY2VudCA8
IGFzY2VudCB8fCAhc2V0TWF4QXNjZW50KSB7CkBAIC01ODYsOCArNTg2LDggQEAgdm9pZCBJbmxp
bmVGbG93Qm94Ojpjb21wdXRlTG9naWNhbEJveEhlaWdodHMoUm9vdElubGluZUJveCYgcm9vdEJv
eCwgTGF5b3V0VW5pdCYKICAgICAgICAgLy8gcm9vdCBib3gncyBiYXNlbGluZSwgYW5kIGl0IGlz
IHBvc2l0aXZlIGlmIHRoZSBjaGlsZCBib3gncyBiYXNlbGluZSBpcyBiZWxvdyB0aGUgcm9vdCBi
b3gncyBiYXNlbGluZS4KICAgICAgICAgY2hpbGQtPnNldExvZ2ljYWxUb3Aocm9vdEJveC52ZXJ0
aWNhbFBvc2l0aW9uRm9yQm94KGNoaWxkLCB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUpKTsKICAgICAg
ICAgCi0gICAgICAgIGludCBhc2NlbnQgPSAwOwotICAgICAgICBpbnQgZGVzY2VudCA9IDA7Cisg
ICAgICAgIExheW91dFVuaXQgYXNjZW50OworICAgICAgICBMYXlvdXRVbml0IGRlc2NlbnQ7CiAg
ICAgICAgIHJvb3RCb3guYXNjZW50QW5kRGVzY2VudEZvckJveCgqY2hpbGQsIHRleHRCb3hEYXRh
TWFwLCBhc2NlbnQsIGRlc2NlbnQsIGFmZmVjdHNBc2NlbnQsIGFmZmVjdHNEZXNjZW50KTsKIAog
ICAgICAgICBMYXlvdXRVbml0IGJveEhlaWdodCA9IGFzY2VudCArIGRlc2NlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAppbmRleCA3YzIyOGJjYjhkMmJlY2QwNDQw
NTE2ZDJjNjRkZTE2YTNkNjlkZGMwLi43NWQzMTc4MzU5NDAwNzhiNTgwYzU2NWM3NTU2MzBmMjRj
YTkzNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0Jv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKQEAgLTE4
NiwxMCArMTg2LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIGNvbXB1dGVMb2dpY2Fs
Qm94SGVpZ2h0cyhSb290SW5saW5lQm94JiwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Ub3AsIExh
eW91dFVuaXQmIG1heFBvc2l0aW9uQm90dG9tLAotICAgICAgICBpbnQmIG1heEFzY2VudCwgaW50
JiBtYXhEZXNjZW50LCBib29sJiBzZXRNYXhBc2NlbnQsIGJvb2wmIHNldE1heERlc2NlbnQsCisg
ICAgICAgIExheW91dFVuaXQmIG1heEFzY2VudCwgTGF5b3V0VW5pdCYgbWF4RGVzY2VudCwgYm9v
bCYgc2V0TWF4QXNjZW50LCBib29sJiBzZXRNYXhEZXNjZW50LAogICAgICAgICBib29sIHN0cmlj
dE1vZGUsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgRm9udEJhc2VsaW5lLCBW
ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmKTsKLSAgICB2b2lkIGFkanVzdE1heEFzY2VudEFuZERlc2Nl
bnQoaW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVzY2VudCwKLSAgICAgICAgaW50IG1heFBvc2l0
aW9uVG9wLCBpbnQgbWF4UG9zaXRpb25Cb3R0b20pOworICAgIHZvaWQgYWRqdXN0TWF4QXNjZW50
QW5kRGVzY2VudChMYXlvdXRVbml0JiBtYXhBc2NlbnQsIExheW91dFVuaXQmIG1heERlc2NlbnQs
CisgICAgICAgIExheW91dFVuaXQgbWF4UG9zaXRpb25Ub3AsIExheW91dFVuaXQgbWF4UG9zaXRp
b25Cb3R0b20pOwogICAgIHZvaWQgcGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IG1heEhlaWdodCwgaW50IG1heEFzY2VudCwgYm9vbCBz
dHJpY3RNb2RlLCBMYXlvdXRVbml0JiBsaW5lVG9wLCBMYXlvdXRVbml0JiBsaW5lQm90dG9tLCBi
b29sJiBzZXRMaW5lVG9wLAogICAgICAgICBMYXlvdXRVbml0JiBsaW5lVG9wSW5jbHVkaW5nTWFy
Z2lucywgTGF5b3V0VW5pdCYgbGluZUJvdHRvbUluY2x1ZGluZ01hcmdpbnMsIGJvb2wmIGhhc0Fu
bm90YXRpb25zQmVmb3JlLCBib29sJiBoYXNBbm5vdGF0aW9uc0FmdGVyLCBGb250QmFzZWxpbmUp
OwogICAgIHZvaWQgZmxpcExpbmVzSW5CbG9ja0RpcmVjdGlvbihMYXlvdXRVbml0IGxpbmVUb3As
IExheW91dFVuaXQgbGluZUJvdHRvbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElu
bGluZUJveC5jcHAKaW5kZXggNjQ5MTEzMGNjZGNiNTY2ZWVjYTZmZjg3YTk1OGVlYmYxOTgxZDUy
Yy4uZjJmMDZlNzMzMjdkMTg4NGIxNTFiM2U3ZDUzMTAwMTMxZjgwNmNhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcApAQCAtMjQ1LDggKzI0NSw4IEBAIExh
eW91dFVuaXQgUm9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0
VW5pdCBoZWlnaHRPZkJsb2NrLCBHCiAKICAgICBMYXlvdXRVbml0IG1heFBvc2l0aW9uVG9wOwog
ICAgIExheW91dFVuaXQgbWF4UG9zaXRpb25Cb3R0b207Ci0gICAgaW50IG1heEFzY2VudCA9IDA7
Ci0gICAgaW50IG1heERlc2NlbnQgPSAwOworICAgIExheW91dFVuaXQgbWF4QXNjZW50OworICAg
IExheW91dFVuaXQgbWF4RGVzY2VudDsKICAgICBib29sIHNldE1heEFzY2VudCA9IGZhbHNlOwog
ICAgIGJvb2wgc2V0TWF4RGVzY2VudCA9IGZhbHNlOwogCkBAIC03NjYsNyArNzY2LDcgQEAgTGF5
b3V0UmVjdCBSb290SW5saW5lQm94OjpwYWRkZWRMYXlvdXRPdmVyZmxvd1JlY3QoTGF5b3V0VW5p
dCBlbmRQYWRkaW5nKSBjb25zdAogICAgIHJldHVybiBsaW5lTGF5b3V0T3ZlcmZsb3c7CiB9CiAK
LXN0YXRpYyB2b2lkIHNldEFzY2VudEFuZERlc2NlbnQoaW50JiBhc2NlbnQsIGludCYgZGVzY2Vu
dCwgaW50IG5ld0FzY2VudCwgaW50IG5ld0Rlc2NlbnQsIGJvb2wmIGFzY2VudERlc2NlbnRTZXQp
CitzdGF0aWMgdm9pZCBzZXRBc2NlbnRBbmREZXNjZW50KExheW91dFVuaXQmIGFzY2VudCwgTGF5
b3V0VW5pdCYgZGVzY2VudCwgTGF5b3V0VW5pdCBuZXdBc2NlbnQsIExheW91dFVuaXQgbmV3RGVz
Y2VudCwgYm9vbCYgYXNjZW50RGVzY2VudFNldCkKIHsKICAgICBpZiAoIWFzY2VudERlc2NlbnRT
ZXQpIHsKICAgICAgICAgYXNjZW50RGVzY2VudFNldCA9IHRydWU7CkBAIC03NzgsNyArNzc4LDcg
QEAgc3RhdGljIHZvaWQgc2V0QXNjZW50QW5kRGVzY2VudChpbnQmIGFzY2VudCwgaW50JiBkZXNj
ZW50LCBpbnQgbmV3QXNjZW50LCBpbnQgbmUKICAgICB9CiB9CiAKLXZvaWQgUm9vdElubGluZUJv
eDo6YXNjZW50QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLCBpbnQmIGFzY2VudCwgaW50JiBkZXNj
ZW50LAordm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJv
eCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAs
IExheW91dFVuaXQmIGFzY2VudCwgTGF5b3V0VW5pdCYgZGVzY2VudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBhZmZlY3RzQXNjZW50LCBib29sJiBh
ZmZlY3RzRGVzY2VudCkgY29uc3QKIHsKICAgICBib29sIGFzY2VudERlc2NlbnRTZXQgPSBmYWxz
ZTsKQEAgLTgxNiwxMSArODE2LDExIEBAIHZvaWQgUm9vdElubGluZUJveDo6YXNjZW50QW5kRGVz
Y2VudEZvckJveChJbmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiCiAgICAgICAg
IHVzZWRGb250cy0+YXBwZW5kKCZib3hMaW5lU3R5bGUuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9u
dCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBmb250IDogKnVzZWRGb250cykgewogICAgICAgICAg
ICAgYXV0byYgZm9udE1ldHJpY3MgPSBmb250LT5mb250TWV0cmljcygpOwotICAgICAgICAgICAg
aW50IHVzZWRGb250QXNjZW50ID0gZm9udE1ldHJpY3MuYXNjZW50KGJhc2VsaW5lVHlwZSgpKTsK
LSAgICAgICAgICAgIGludCB1c2VkRm9udERlc2NlbnQgPSBmb250TWV0cmljcy5kZXNjZW50KGJh
c2VsaW5lVHlwZSgpKTsKLSAgICAgICAgICAgIGludCBoYWxmTGVhZGluZyA9IChmb250TWV0cmlj
cy5saW5lU3BhY2luZygpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMjsKLSAgICAgICAgICAg
IGludCB1c2VkRm9udEFzY2VudEFuZExlYWRpbmcgPSB1c2VkRm9udEFzY2VudCArIGhhbGZMZWFk
aW5nOwotICAgICAgICAgICAgaW50IHVzZWRGb250RGVzY2VudEFuZExlYWRpbmcgPSBmb250TWV0
cmljcy5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRBc2NlbnRBbmRMZWFkaW5nOworICAgICAgICAg
ICAgTGF5b3V0VW5pdCB1c2VkRm9udEFzY2VudCA9IGZvbnRNZXRyaWNzLmFzY2VudChiYXNlbGlu
ZVR5cGUoKSk7CisgICAgICAgICAgICBMYXlvdXRVbml0IHVzZWRGb250RGVzY2VudCA9IGZvbnRN
ZXRyaWNzLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpOworICAgICAgICAgICAgTGF5b3V0VW5pdCBo
YWxmTGVhZGluZyA9IChmb250TWV0cmljcy5saW5lU3BhY2luZygpIC0gZm9udE1ldHJpY3MuaGVp
Z2h0KCkpIC8gMjsKKyAgICAgICAgICAgIExheW91dFVuaXQgdXNlZEZvbnRBc2NlbnRBbmRMZWFk
aW5nID0gdXNlZEZvbnRBc2NlbnQgKyBoYWxmTGVhZGluZzsKKyAgICAgICAgICAgIExheW91dFVu
aXQgdXNlZEZvbnREZXNjZW50QW5kTGVhZGluZyA9IGZvbnRNZXRyaWNzLmxpbmVTcGFjaW5nKCkg
LSB1c2VkRm9udEFzY2VudEFuZExlYWRpbmc7CiAgICAgICAgICAgICBpZiAoaW5jbHVkZUZvbnQp
IHsKICAgICAgICAgICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2VudCwgZGVzY2VudCwg
dXNlZEZvbnRBc2NlbnQsIHVzZWRGb250RGVzY2VudCwgYXNjZW50RGVzY2VudFNldCk7CiAgICAg
ICAgICAgICAgICAgc2V0VXNlZEZvbnQgPSB0cnVlOwpAQCAtODM4LDggKzgzOCw4IEBAIHZvaWQg
Um9vdElubGluZUJveDo6YXNjZW50QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmIGJveCwgR2x5
cGhPdmVyZmxvd0FuZEZhbGxiCiAKICAgICAvLyBJZiBsZWFkaW5nIGlzIGluY2x1ZGVkIGZvciB0
aGUgYm94LCB0aGVuIHdlIGNvbXB1dGUgdGhhdCBib3guCiAgICAgaWYgKGluY2x1ZGVMZWFkaW5n
ICYmICFzZXRVc2VkRm9udFdpdGhMZWFkaW5nKSB7Ci0gICAgICAgIGludCBhc2NlbnRXaXRoTGVh
ZGluZyA9IGJveC5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsKLSAgICAgICAgaW50
IGRlc2NlbnRXaXRoTGVhZGluZyA9IGJveC5saW5lSGVpZ2h0KCkgLSBhc2NlbnRXaXRoTGVhZGlu
ZzsKKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnRXaXRoTGVhZGluZyA9IGJveC5iYXNlbGluZVBv
c2l0aW9uKGJhc2VsaW5lVHlwZSgpKTsKKyAgICAgICAgTGF5b3V0VW5pdCBkZXNjZW50V2l0aExl
YWRpbmcgPSBib3gubGluZUhlaWdodCgpIC0gYXNjZW50V2l0aExlYWRpbmc7CiAgICAgICAgIHNl
dEFzY2VudEFuZERlc2NlbnQoYXNjZW50LCBkZXNjZW50LCBhc2NlbnRXaXRoTGVhZGluZywgZGVz
Y2VudFdpdGhMZWFkaW5nLCBhc2NlbnREZXNjZW50U2V0KTsKICAgICAgICAgCiAgICAgICAgIC8v
IEV4YW1pbmUgdGhlIGZvbnQgYm94IGZvciBpbmxpbmUgZmxvd3MgYW5kIHRleHQgYm94ZXMgdG8g
c2VlIGlmIGFueSBwYXJ0IG9mIGl0IGlzIGFib3ZlIHRoZSBiYXNlbGluZS4KQEAgLTg1MSw4ICs4
NTEsOCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3goSW5saW5l
Qm94JiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYgogICAgIH0KICAgICAKICAgICBpZiAoaW5j
bHVkZUZvbnRGb3JCb3goYm94KSAmJiAhc2V0VXNlZEZvbnQpIHsKLSAgICAgICAgaW50IGZvbnRB
c2NlbnQgPSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkp
OwotICAgICAgICBpbnQgZm9udERlc2NlbnQgPSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5k
ZXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKKyAgICAgICAgTGF5b3V0VW5pdCBmb250QXNjZW50ID0g
Ym94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKKyAgICAg
ICAgTGF5b3V0VW5pdCBmb250RGVzY2VudCA9IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRl
c2NlbnQoYmFzZWxpbmVUeXBlKCkpOwogICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2Vu
dCwgZGVzY2VudCwgZm9udEFzY2VudCwgZm9udERlc2NlbnQsIGFzY2VudERlc2NlbnRTZXQpOwog
ICAgICAgICBhZmZlY3RzQXNjZW50ID0gZm9udEFzY2VudCAtIGJveC5sb2dpY2FsVG9wKCkgPiAw
OwogICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGZvbnREZXNjZW50ICsgYm94LmxvZ2ljYWxUb3Ao
KSA+IDA7CkBAIC04NjgsOCArODY4LDggQEAgdm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRBbmRE
ZXNjZW50Rm9yQm94KElubGluZUJveCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGIKICAgICAK
ICAgICBpZiAoaW5jbHVkZUluaXRpYWxMZXR0ZXJGb3JCb3goYm94KSkgewogICAgICAgICBib29s
IGNhblVzZUdseXBocyA9IGdseXBoT3ZlcmZsb3cgJiYgZ2x5cGhPdmVyZmxvdy0+Y29tcHV0ZUJv
dW5kczsKLSAgICAgICAgaW50IGxldHRlckFzY2VudCA9IGJhc2VsaW5lVHlwZSgpID09IEFscGhh
YmV0aWNCYXNlbGluZSA/IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmNhcEhlaWdodCgpIDog
KGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGJveExpbmVTdHlsZS5mb250TWV0
cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpOwotICAgICAgICBpbnQgbGV0dGVyRGVzY2Vu
dCA9IGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IChib3guaXNSb290SW5s
aW5lQm94KCkgPyAwIDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGlu
ZVR5cGUoKSkpOworICAgICAgICBMYXlvdXRVbml0IGxldHRlckFzY2VudCA9IGJhc2VsaW5lVHlw
ZSgpID09IEFscGhhYmV0aWNCYXNlbGluZSA/IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmNh
cEhlaWdodCgpIDogKGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGJveExpbmVT
dHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpOworICAgICAgICBMYXlv
dXRVbml0IGxldHRlckRlc2NlbnQgPSBjYW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJmbG93LT5ib3R0
b20gOiAoYm94LmlzUm9vdElubGluZUJveCgpID8gMCA6IGJveExpbmVTdHlsZS5mb250TWV0cmlj
cygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKTsKICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2Vu
dChhc2NlbnQsIGRlc2NlbnQsIGxldHRlckFzY2VudCwgbGV0dGVyRGVzY2VudCwgYXNjZW50RGVz
Y2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBsZXR0ZXJBc2NlbnQgLSBib3gubG9n
aWNhbFRvcCgpID4gMDsKICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBsZXR0ZXJEZXNjZW50ICsg
Ym94LmxvZ2ljYWxUb3AoKSA+IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVC
b3guaAppbmRleCA5Mjk0MDk2YzFkNTkwN2Y5ODBmMThhZGMwZDlhZjIxNmE2YTc5Yjc3Li45Y2Fk
NmFiY2U1Njg3MzcyZDgzY2QzMTE3OWY2ZDYyNDkzMjVkODNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAKICAg
ICBMYXlvdXRSZWN0IHBhZGRlZExheW91dE92ZXJmbG93UmVjdChMYXlvdXRVbml0IGVuZFBhZGRp
bmcpIGNvbnN0OwogCi0gICAgdm9pZCBhc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCYs
IEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgaW50JiBhc2NlbnQsIGludCYgZGVz
Y2VudCwgYm9vbCYgYWZmZWN0c0FzY2VudCwgYm9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0Owor
ICAgIHZvaWQgYXNjZW50QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmLCBHbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcCYsIExheW91dFVuaXQmIGFzY2VudCwgTGF5b3V0VW5pdCYgZGVz
Y2VudCwgYm9vbCYgYWZmZWN0c0FzY2VudCwgYm9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0Owog
ICAgIExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbkZvckJveChJbmxpbmVCb3gqLCBWZXJ0aWNh
bFBvc2l0aW9uQ2FjaGUmKTsKICAgICBib29sIGZpdHNUb0dseXBocygpIGNvbnN0OwogICAgIGJv
b2wgaW5jbHVkZXNSb290TGluZUJveEZvbnRPckxlYWRpbmcoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425188</attachid>
            <date>2021-04-05 12:40:32 -0700</date>
            <delta_ts>2021-04-06 00:37:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210405214031.patch</filename>
            <type>text/plain</type>
            <size>11582</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZmRjYzBkZWVkYmI0
NDFlOGI3MWEyZTliYjQ5OTliY2IwZjQ2Ni4uMWM3ODRiMTA1YjMzMDVkOGJmZmNhZDkxOWQxNTk2
Nzg0ZGE5ZWVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTA1ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBsYXlvdXQgYXNjZW50
cyBhbmQgZGVzY2VudHMgdG8gTGF5b3V0VW5pdHMgaW5zdGVhZCBvZiBpbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaWdyYXRlIGxheW91dCBhc2Nl
bnRzIGFuZCBkZXNjZW50cyB0byBMYXlvdXRVbml0cyBpbnN0ZWFkIG9mIGludHMuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVGbG93Qm94OjphZGp1c3RNYXhBc2NlbnRBbmREZXNjZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6CisgICAgICAgICogcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9j
a0RpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRBc2NlbnRBbmREZXNjZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3ggY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94Lmg6CisKIDIwMjEtMDQtMDIg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGVuZGluZ0ltYWdl
Qml0bWFwIGdldHMgY3JlYXRlZCBvbiBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IDI2N2U5
MjdjZGRmNWU0ZjkzMmU3NzAyMWMwNzAyMzU3YmFjZjMwM2IuLmQzNTA5NDNiNDI4ZTE4MWQwM2Ex
Zjc4NjBhMTY5NmY2ZDM1ZDE2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAKQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgYm9vbCB2ZXJ0aWNhbEFsaWdu
QXBwbGllcyhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJldHVybiAocGFyZW50
UmVuZGVyZXIuaXNJbmxpbmUoKSAmJiBwYXJlbnRSZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKSAh
PSBEaXNwbGF5VHlwZTo6SW5saW5lQmxvY2spIHx8IHBhcmVudFJlbmRlcmVyLmlzVGFibGVDZWxs
KCk7CiB9CiAKLXZvaWQgSW5saW5lRmxvd0JveDo6YWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChp
bnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNjZW50LCBpbnQgbWF4UG9zaXRpb25Ub3AsIGludCBt
YXhQb3NpdGlvbkJvdHRvbSkKK3ZvaWQgSW5saW5lRmxvd0JveDo6YWRqdXN0TWF4QXNjZW50QW5k
RGVzY2VudChMYXlvdXRVbml0JiBtYXhBc2NlbnQsIExheW91dFVuaXQmIG1heERlc2NlbnQsIExh
eW91dFVuaXQgbWF4UG9zaXRpb25Ub3AsIExheW91dFVuaXQgbWF4UG9zaXRpb25Cb3R0b20pCiB7
CiAgICAgZm9yIChJbmxpbmVCb3gqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dE9uTGluZSgpKSB7CiAgICAgICAgIC8vIFRoZSBjb21wdXRlZCBsaW5laGVp
Z2h0IG5lZWRzIHRvIGJlIGV4dGVuZGVkIGZvciB0aGUKQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lk
IElubGluZUZsb3dCb3g6OmFkanVzdE1heEFzY2VudEFuZERlc2NlbnQoaW50JiBtYXhBc2NlbnQs
IGludCYgbWF4RGVzY2VudCwgaQogfQogCiB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dp
Y2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94JiByb290Qm94LCBMYXlvdXRVbml0JiBtYXhQb3Np
dGlvblRvcCwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Cb3R0b20sCi0gICAgaW50JiBtYXhBc2Nl
bnQsIGludCYgbWF4RGVzY2VudCwgYm9vbCYgc2V0TWF4QXNjZW50LCBib29sJiBzZXRNYXhEZXNj
ZW50LAorICAgIExheW91dFVuaXQmIG1heEFzY2VudCwgTGF5b3V0VW5pdCYgbWF4RGVzY2VudCwg
Ym9vbCYgc2V0TWF4QXNjZW50LCBib29sJiBzZXRNYXhEZXNjZW50LAogICAgIGJvb2wgc3RyaWN0
TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLAog
ICAgIEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYgdmVy
dGljYWxQb3NpdGlvbkNhY2hlKQogewpAQCAtNTUzLDggKzU1Myw4IEBAIHZvaWQgSW5saW5lRmxv
d0JveDo6Y29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gmIHJvb3RCb3gsIExh
eW91dFVuaXQmCiAgICAgCiAgICAgaWYgKGlzUm9vdElubGluZUJveCgpKSB7CiAgICAgICAgIC8v
IEV4YW1pbmUgb3VyIHJvb3QgYm94LgotICAgICAgICBpbnQgYXNjZW50ID0gMDsKLSAgICAgICAg
aW50IGRlc2NlbnQgPSAwOworICAgICAgICBMYXlvdXRVbml0IGFzY2VudDsKKyAgICAgICAgTGF5
b3V0VW5pdCBkZXNjZW50OwogICAgICAgICByb290Qm94LmFzY2VudEFuZERlc2NlbnRGb3JCb3go
cm9vdEJveCwgdGV4dEJveERhdGFNYXAsIGFzY2VudCwgZGVzY2VudCwgYWZmZWN0c0FzY2VudCwg
YWZmZWN0c0Rlc2NlbnQpOwogICAgICAgICBpZiAoc3RyaWN0TW9kZSB8fCBoYXNUZXh0Q2hpbGRy
ZW4oKSB8fCAoIWNoZWNrQ2hpbGRyZW4gJiYgaGFzVGV4dERlc2NlbmRhbnRzKCkpKSB7CiAgICAg
ICAgICAgICBpZiAobWF4QXNjZW50IDwgYXNjZW50IHx8ICFzZXRNYXhBc2NlbnQpIHsKQEAgLTU4
Niw4ICs1ODYsOCBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0
cyhSb290SW5saW5lQm94JiByb290Qm94LCBMYXlvdXRVbml0JgogICAgICAgICAvLyByb290IGJv
eCdzIGJhc2VsaW5lLCBhbmQgaXQgaXMgcG9zaXRpdmUgaWYgdGhlIGNoaWxkIGJveCdzIGJhc2Vs
aW5lIGlzIGJlbG93IHRoZSByb290IGJveCdzIGJhc2VsaW5lLgogICAgICAgICBjaGlsZC0+c2V0
TG9naWNhbFRvcChyb290Qm94LnZlcnRpY2FsUG9zaXRpb25Gb3JCb3goY2hpbGQsIHZlcnRpY2Fs
UG9zaXRpb25DYWNoZSkpOwogICAgICAgICAKLSAgICAgICAgaW50IGFzY2VudCA9IDA7Ci0gICAg
ICAgIGludCBkZXNjZW50ID0gMDsKKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQ7CisgICAgICAg
IExheW91dFVuaXQgZGVzY2VudDsKICAgICAgICAgcm9vdEJveC5hc2NlbnRBbmREZXNjZW50Rm9y
Qm94KCpjaGlsZCwgdGV4dEJveERhdGFNYXAsIGFzY2VudCwgZGVzY2VudCwgYWZmZWN0c0FzY2Vu
dCwgYWZmZWN0c0Rlc2NlbnQpOwogCiAgICAgICAgIExheW91dFVuaXQgYm94SGVpZ2h0ID0gYXNj
ZW50ICsgZGVzY2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCmlu
ZGV4IDdjMjI4YmNiOGQyYmVjZDA0NDA1MTZkMmM2NGRlMTZhM2Q2OWRkYzAuLjc1ZDMxNzgzNTk0
MDA3OGI1ODBjNTY1Yzc1NTYzMGYyNGNhOTM0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guaApAQCAtMTg2LDEwICsxODYsMTAgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIHZvaWQgY29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gmLCBMYXlvdXRV
bml0JiBtYXhQb3NpdGlvblRvcCwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Cb3R0b20sCi0gICAg
ICAgIGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGJvb2wmIHNldE1heEFzY2VudCwg
Ym9vbCYgc2V0TWF4RGVzY2VudCwKKyAgICAgICAgTGF5b3V0VW5pdCYgbWF4QXNjZW50LCBMYXlv
dXRVbml0JiBtYXhEZXNjZW50LCBib29sJiBzZXRNYXhBc2NlbnQsIGJvb2wmIHNldE1heERlc2Nl
bnQsCiAgICAgICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9u
dHNNYXAmLCBGb250QmFzZWxpbmUsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYpOwotICAgIHZvaWQg
YWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChpbnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNjZW50
LAotICAgICAgICBpbnQgbWF4UG9zaXRpb25Ub3AsIGludCBtYXhQb3NpdGlvbkJvdHRvbSk7Cisg
ICAgdm9pZCBhZGp1c3RNYXhBc2NlbnRBbmREZXNjZW50KExheW91dFVuaXQmIG1heEFzY2VudCwg
TGF5b3V0VW5pdCYgbWF4RGVzY2VudCwKKyAgICAgICAgTGF5b3V0VW5pdCBtYXhQb3NpdGlvblRv
cCwgTGF5b3V0VW5pdCBtYXhQb3NpdGlvbkJvdHRvbSk7CiAgICAgdm9pZCBwbGFjZUJveGVzSW5C
bG9ja0RpcmVjdGlvbihMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbWF4SGVpZ2h0
LCBpbnQgbWF4QXNjZW50LCBib29sIHN0cmljdE1vZGUsIExheW91dFVuaXQmIGxpbmVUb3AsIExh
eW91dFVuaXQmIGxpbmVCb3R0b20sIGJvb2wmIHNldExpbmVUb3AsCiAgICAgICAgIExheW91dFVu
aXQmIGxpbmVUb3BJbmNsdWRpbmdNYXJnaW5zLCBMYXlvdXRVbml0JiBsaW5lQm90dG9tSW5jbHVk
aW5nTWFyZ2lucywgYm9vbCYgaGFzQW5ub3RhdGlvbnNCZWZvcmUsIGJvb2wmIGhhc0Fubm90YXRp
b25zQWZ0ZXIsIEZvbnRCYXNlbGluZSk7CiAgICAgdm9pZCBmbGlwTGluZXNJbkJsb2NrRGlyZWN0
aW9uKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRleCA2NDkxMTMwY2NkY2I1NjZl
ZWNhNmZmODdhOTU4ZWViZjE5ODFkNTJjLi5mMmYwNmU3MzMyN2QxODg0YjE1MWIzZTdkNTMxMDAx
MzFmODA2Y2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3Bw
CkBAIC0yNDUsOCArMjQ1LDggQEAgTGF5b3V0VW5pdCBSb290SW5saW5lQm94OjphbGlnbkJveGVz
SW5CbG9ja0RpcmVjdGlvbihMYXlvdXRVbml0IGhlaWdodE9mQmxvY2ssIEcKIAogICAgIExheW91
dFVuaXQgbWF4UG9zaXRpb25Ub3A7CiAgICAgTGF5b3V0VW5pdCBtYXhQb3NpdGlvbkJvdHRvbTsK
LSAgICBpbnQgbWF4QXNjZW50ID0gMDsKLSAgICBpbnQgbWF4RGVzY2VudCA9IDA7CisgICAgTGF5
b3V0VW5pdCBtYXhBc2NlbnQ7CisgICAgTGF5b3V0VW5pdCBtYXhEZXNjZW50OwogICAgIGJvb2wg
c2V0TWF4QXNjZW50ID0gZmFsc2U7CiAgICAgYm9vbCBzZXRNYXhEZXNjZW50ID0gZmFsc2U7CiAK
QEAgLTc2Niw3ICs3NjYsNyBAQCBMYXlvdXRSZWN0IFJvb3RJbmxpbmVCb3g6OnBhZGRlZExheW91
dE92ZXJmbG93UmVjdChMYXlvdXRVbml0IGVuZFBhZGRpbmcpIGNvbnN0CiAgICAgcmV0dXJuIGxp
bmVMYXlvdXRPdmVyZmxvdzsKIH0KIAotc3RhdGljIHZvaWQgc2V0QXNjZW50QW5kRGVzY2VudChp
bnQmIGFzY2VudCwgaW50JiBkZXNjZW50LCBpbnQgbmV3QXNjZW50LCBpbnQgbmV3RGVzY2VudCwg
Ym9vbCYgYXNjZW50RGVzY2VudFNldCkKK3N0YXRpYyB2b2lkIHNldEFzY2VudEFuZERlc2NlbnQo
TGF5b3V0VW5pdCYgYXNjZW50LCBMYXlvdXRVbml0JiBkZXNjZW50LCBMYXlvdXRVbml0IG5ld0Fz
Y2VudCwgTGF5b3V0VW5pdCBuZXdEZXNjZW50LCBib29sJiBhc2NlbnREZXNjZW50U2V0KQogewog
ICAgIGlmICghYXNjZW50RGVzY2VudFNldCkgewogICAgICAgICBhc2NlbnREZXNjZW50U2V0ID0g
dHJ1ZTsKQEAgLTc3OCw3ICs3NzgsNyBAQCBzdGF0aWMgdm9pZCBzZXRBc2NlbnRBbmREZXNjZW50
KGludCYgYXNjZW50LCBpbnQmIGRlc2NlbnQsIGludCBuZXdBc2NlbnQsIGludCBuZQogICAgIH0K
IH0KIAotdm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJv
eCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAs
IGludCYgYXNjZW50LCBpbnQmIGRlc2NlbnQsCit2b2lkIFJvb3RJbmxpbmVCb3g6OmFzY2VudEFu
ZERlc2NlbnRGb3JCb3goSW5saW5lQm94JiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCwgTGF5b3V0VW5pdCYgYXNjZW50LCBMYXlvdXRVbml0JiBk
ZXNjZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wm
IGFmZmVjdHNBc2NlbnQsIGJvb2wmIGFmZmVjdHNEZXNjZW50KSBjb25zdAogewogICAgIGJvb2wg
YXNjZW50RGVzY2VudFNldCA9IGZhbHNlOwpAQCAtODE2LDExICs4MTYsMTEgQEAgdm9pZCBSb290
SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCYgYm94LCBHbHlwaE92
ZXJmbG93QW5kRmFsbGIKICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoJmJveExpbmVTdHlsZS5m
b250Q2FzY2FkZSgpLnByaW1hcnlGb250KCkpOwogICAgICAgICBmb3IgKGF1dG8mIGZvbnQgOiAq
dXNlZEZvbnRzKSB7CiAgICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IGZvbnQtPmZvbnRN
ZXRyaWNzKCk7Ci0gICAgICAgICAgICBpbnQgdXNlZEZvbnRBc2NlbnQgPSBmb250TWV0cmljcy5h
c2NlbnQoYmFzZWxpbmVUeXBlKCkpOwotICAgICAgICAgICAgaW50IHVzZWRGb250RGVzY2VudCA9
IGZvbnRNZXRyaWNzLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpOwotICAgICAgICAgICAgaW50IGhh
bGZMZWFkaW5nID0gKGZvbnRNZXRyaWNzLmxpbmVTcGFjaW5nKCkgLSBmb250TWV0cmljcy5oZWln
aHQoKSkgLyAyOwotICAgICAgICAgICAgaW50IHVzZWRGb250QXNjZW50QW5kTGVhZGluZyA9IHVz
ZWRGb250QXNjZW50ICsgaGFsZkxlYWRpbmc7Ci0gICAgICAgICAgICBpbnQgdXNlZEZvbnREZXNj
ZW50QW5kTGVhZGluZyA9IGZvbnRNZXRyaWNzLmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udEFzY2Vu
dEFuZExlYWRpbmc7CisgICAgICAgICAgICBMYXlvdXRVbml0IHVzZWRGb250QXNjZW50ID0gZm9u
dE1ldHJpY3MuYXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKKyAgICAgICAgICAgIExheW91dFVuaXQg
dXNlZEZvbnREZXNjZW50ID0gZm9udE1ldHJpY3MuZGVzY2VudChiYXNlbGluZVR5cGUoKSk7Cisg
ICAgICAgICAgICBMYXlvdXRVbml0IGhhbGZMZWFkaW5nID0gKGZvbnRNZXRyaWNzLmxpbmVTcGFj
aW5nKCkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyOworICAgICAgICAgICAgTGF5b3V0VW5p
dCB1c2VkRm9udEFzY2VudEFuZExlYWRpbmcgPSB1c2VkRm9udEFzY2VudCArIGhhbGZMZWFkaW5n
OworICAgICAgICAgICAgTGF5b3V0VW5pdCB1c2VkRm9udERlc2NlbnRBbmRMZWFkaW5nID0gZm9u
dE1ldHJpY3MubGluZVNwYWNpbmcoKSAtIHVzZWRGb250QXNjZW50QW5kTGVhZGluZzsKICAgICAg
ICAgICAgIGlmIChpbmNsdWRlRm9udCkgewogICAgICAgICAgICAgICAgIHNldEFzY2VudEFuZERl
c2NlbnQoYXNjZW50LCBkZXNjZW50LCB1c2VkRm9udEFzY2VudCwgdXNlZEZvbnREZXNjZW50LCBh
c2NlbnREZXNjZW50U2V0KTsKICAgICAgICAgICAgICAgICBzZXRVc2VkRm9udCA9IHRydWU7CkBA
IC04MzgsOCArODM4LDggQEAgdm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9y
Qm94KElubGluZUJveCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGIKIAogICAgIC8vIElmIGxl
YWRpbmcgaXMgaW5jbHVkZWQgZm9yIHRoZSBib3gsIHRoZW4gd2UgY29tcHV0ZSB0aGF0IGJveC4K
ICAgICBpZiAoaW5jbHVkZUxlYWRpbmcgJiYgIXNldFVzZWRGb250V2l0aExlYWRpbmcpIHsKLSAg
ICAgICAgaW50IGFzY2VudFdpdGhMZWFkaW5nID0gYm94LmJhc2VsaW5lUG9zaXRpb24oYmFzZWxp
bmVUeXBlKCkpOwotICAgICAgICBpbnQgZGVzY2VudFdpdGhMZWFkaW5nID0gYm94LmxpbmVIZWln
aHQoKSAtIGFzY2VudFdpdGhMZWFkaW5nOworICAgICAgICBMYXlvdXRVbml0IGFzY2VudFdpdGhM
ZWFkaW5nID0gYm94LmJhc2VsaW5lUG9zaXRpb24oYmFzZWxpbmVUeXBlKCkpOworICAgICAgICBM
YXlvdXRVbml0IGRlc2NlbnRXaXRoTGVhZGluZyA9IGJveC5saW5lSGVpZ2h0KCkgLSBhc2NlbnRX
aXRoTGVhZGluZzsKICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQs
IGFzY2VudFdpdGhMZWFkaW5nLCBkZXNjZW50V2l0aExlYWRpbmcsIGFzY2VudERlc2NlbnRTZXQp
OwogICAgICAgICAKICAgICAgICAgLy8gRXhhbWluZSB0aGUgZm9udCBib3ggZm9yIGlubGluZSBm
bG93cyBhbmQgdGV4dCBib3hlcyB0byBzZWUgaWYgYW55IHBhcnQgb2YgaXQgaXMgYWJvdmUgdGhl
IGJhc2VsaW5lLgpAQCAtODUxLDggKzg1MSw4IEBAIHZvaWQgUm9vdElubGluZUJveDo6YXNjZW50
QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiCiAg
ICAgfQogICAgIAogICAgIGlmIChpbmNsdWRlRm9udEZvckJveChib3gpICYmICFzZXRVc2VkRm9u
dCkgewotICAgICAgICBpbnQgZm9udEFzY2VudCA9IGJveExpbmVTdHlsZS5mb250TWV0cmljcygp
LmFzY2VudChiYXNlbGluZVR5cGUoKSk7Ci0gICAgICAgIGludCBmb250RGVzY2VudCA9IGJveExp
bmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpOworICAgICAgICBM
YXlvdXRVbml0IGZvbnRBc2NlbnQgPSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQo
YmFzZWxpbmVUeXBlKCkpOworICAgICAgICBMYXlvdXRVbml0IGZvbnREZXNjZW50ID0gYm94TGlu
ZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSk7CiAgICAgICAgIHNl
dEFzY2VudEFuZERlc2NlbnQoYXNjZW50LCBkZXNjZW50LCBmb250QXNjZW50LCBmb250RGVzY2Vu
dCwgYXNjZW50RGVzY2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBmb250QXNjZW50
IC0gYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZm9udERl
c2NlbnQgKyBib3gubG9naWNhbFRvcCgpID4gMDsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2b2lkIFJv
b3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3goSW5saW5lQm94JiBib3gsIEdseXBo
T3ZlcmZsb3dBbmRGYWxsYgogICAgIAogICAgIGlmIChpbmNsdWRlSW5pdGlhbExldHRlckZvckJv
eChib3gpKSB7CiAgICAgICAgIGJvb2wgY2FuVXNlR2x5cGhzID0gZ2x5cGhPdmVyZmxvdyAmJiBn
bHlwaE92ZXJmbG93LT5jb21wdXRlQm91bmRzOwotICAgICAgICBpbnQgbGV0dGVyQXNjZW50ID0g
YmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRpY0Jhc2VsaW5lID8gYm94TGluZVN0eWxlLmZvbnRN
ZXRyaWNzKCkuY2FwSGVpZ2h0KCkgOiAoY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+dG9w
IDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSk7Ci0g
ICAgICAgIGludCBsZXR0ZXJEZXNjZW50ID0gY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tIDogKGJveC5pc1Jvb3RJbmxpbmVCb3goKSA/IDAgOiBib3hMaW5lU3R5bGUuZm9udE1l
dHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSk7CisgICAgICAgIExheW91dFVuaXQgbGV0
dGVyQXNjZW50ID0gYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRpY0Jhc2VsaW5lID8gYm94TGlu
ZVN0eWxlLmZvbnRNZXRyaWNzKCkuY2FwSGVpZ2h0KCkgOiAoY2FuVXNlR2x5cGhzID8gZ2x5cGhP
dmVyZmxvdy0+dG9wIDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5l
VHlwZSgpKSk7CisgICAgICAgIExheW91dFVuaXQgbGV0dGVyRGVzY2VudCA9IGNhblVzZUdseXBo
cyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IChib3guaXNSb290SW5saW5lQm94KCkgPyAwIDog
Ym94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpOwogICAg
ICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2VudCwgZGVzY2VudCwgbGV0dGVyQXNjZW50LCBs
ZXR0ZXJEZXNjZW50LCBhc2NlbnREZXNjZW50U2V0KTsKICAgICAgICAgYWZmZWN0c0FzY2VudCA9
IGxldHRlckFzY2VudCAtIGJveC5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICBhZmZlY3RzRGVz
Y2VudCA9IGxldHRlckRlc2NlbnQgKyBib3gubG9naWNhbFRvcCgpID4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCmluZGV4IDkyOTQwOTZjMWQ1OTA3Zjk4MGYxOGFk
YzBkOWFmMjE2YTZhNzliNzcuLjljYWQ2YWJjZTU2ODczNzJkODNjZDMxMTc5ZjZkNjI0OTMyNWQ4
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaApAQCAtMTYwLDcg
KzE2MCw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFJlY3QgcGFkZGVkTGF5b3V0T3ZlcmZsb3dS
ZWN0KExheW91dFVuaXQgZW5kUGFkZGluZykgY29uc3Q7CiAKLSAgICB2b2lkIGFzY2VudEFuZERl
c2NlbnRGb3JCb3goSW5saW5lQm94JiwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAm
LCBpbnQmIGFzY2VudCwgaW50JiBkZXNjZW50LCBib29sJiBhZmZlY3RzQXNjZW50LCBib29sJiBh
ZmZlY3RzRGVzY2VudCkgY29uc3Q7CisgICAgdm9pZCBhc2NlbnRBbmREZXNjZW50Rm9yQm94KElu
bGluZUJveCYsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiwgTGF5b3V0VW5pdCYg
YXNjZW50LCBMYXlvdXRVbml0JiBkZXNjZW50LCBib29sJiBhZmZlY3RzQXNjZW50LCBib29sJiBh
ZmZlY3RzRGVzY2VudCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbFBvc2l0aW9uRm9y
Qm94KElubGluZUJveCosIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYpOwogICAgIGJvb2wgZml0c1Rv
R2x5cGhzKCkgY29uc3Q7CiAgICAgYm9vbCBpbmNsdWRlc1Jvb3RMaW5lQm94Rm9udE9yTGVhZGlu
ZygpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425252</attachid>
            <date>2021-04-06 00:37:22 -0700</date>
            <delta_ts>2021-04-06 08:27:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210406093721.patch</filename>
            <type>text/plain</type>
            <size>11646</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE4Y2M1NDRiOWYxYjMw
YTc0NmFkNGIxZTA1MWY5NmE1MDQ2OWE2MC4uNjQwZTRiYzllMTAwNTRjZjBmYWQyMjc3ODBlNzZj
MDM0ZWFkY2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA0LTA2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBsYXlvdXQgYXNjZW50
cyBhbmQgZGVzY2VudHMgdG8gTGF5b3V0VW5pdHMgaW5zdGVhZCBvZiBpbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuCisKKyAgICAgICAgTWlncmF0ZSBsYXlvdXQgYXNjZW50
cyBhbmQgZGVzY2VudHMgdG8gTGF5b3V0VW5pdHMgaW5zdGVhZCBvZiBpbnRzLgorICAgICAgICBU
aGUgYWN0dWFsIGFzY2VudC9kZXNjZW50IHZhbHVlcyBhcmUgc3RpbGwgaW50ZWdyYWwuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVGbG93Qm94OjphZGp1c3RNYXhBc2NlbnRBbmREZXNjZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyk6CisgICAgICAgICog
cmVuZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5C
bG9ja0RpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRBc2NlbnRBbmREZXNjZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3gg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94Lmg6CisKIDIwMjEtMDQt
MDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2Fz
dGVkIHZlY3RvciBjYXBhY2l0eSBpbiBDU1NTZWdtZW50ZWRGb250RmFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IDI2N2U5MjdjZGRmNWU0ZjkzMmU3
NzAyMWMwNzAyMzU3YmFjZjMwM2IuLmQzNTA5NDNiNDI4ZTE4MWQwM2ExZjc4NjBhMTY5NmY2ZDM1
ZDE2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKQEAg
LTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgYm9vbCB2ZXJ0aWNhbEFsaWduQXBwbGllcyhjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogICAgIHJldHVybiAocGFyZW50UmVuZGVyZXIuaXNJbmxp
bmUoKSAmJiBwYXJlbnRSZW5kZXJlci5zdHlsZSgpLmRpc3BsYXkoKSAhPSBEaXNwbGF5VHlwZTo6
SW5saW5lQmxvY2spIHx8IHBhcmVudFJlbmRlcmVyLmlzVGFibGVDZWxsKCk7CiB9CiAKLXZvaWQg
SW5saW5lRmxvd0JveDo6YWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChpbnQmIG1heEFzY2VudCwg
aW50JiBtYXhEZXNjZW50LCBpbnQgbWF4UG9zaXRpb25Ub3AsIGludCBtYXhQb3NpdGlvbkJvdHRv
bSkKK3ZvaWQgSW5saW5lRmxvd0JveDo6YWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChMYXlvdXRV
bml0JiBtYXhBc2NlbnQsIExheW91dFVuaXQmIG1heERlc2NlbnQsIExheW91dFVuaXQgbWF4UG9z
aXRpb25Ub3AsIExheW91dFVuaXQgbWF4UG9zaXRpb25Cb3R0b20pCiB7CiAgICAgZm9yIChJbmxp
bmVCb3gqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dE9u
TGluZSgpKSB7CiAgICAgICAgIC8vIFRoZSBjb21wdXRlZCBsaW5laGVpZ2h0IG5lZWRzIHRvIGJl
IGV4dGVuZGVkIGZvciB0aGUKQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6
OmFkanVzdE1heEFzY2VudEFuZERlc2NlbnQoaW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVzY2Vu
dCwgaQogfQogCiB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhS
b290SW5saW5lQm94JiByb290Qm94LCBMYXlvdXRVbml0JiBtYXhQb3NpdGlvblRvcCwgTGF5b3V0
VW5pdCYgbWF4UG9zaXRpb25Cb3R0b20sCi0gICAgaW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVz
Y2VudCwgYm9vbCYgc2V0TWF4QXNjZW50LCBib29sJiBzZXRNYXhEZXNjZW50LAorICAgIExheW91
dFVuaXQmIG1heEFzY2VudCwgTGF5b3V0VW5pdCYgbWF4RGVzY2VudCwgYm9vbCYgc2V0TWF4QXNj
ZW50LCBib29sJiBzZXRNYXhEZXNjZW50LAogICAgIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLAogICAgIEZvbnRCYXNlbGlu
ZSBiYXNlbGluZVR5cGUsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYgdmVydGljYWxQb3NpdGlvbkNh
Y2hlKQogewpAQCAtNTUzLDggKzU1Myw4IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxv
Z2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gmIHJvb3RCb3gsIExheW91dFVuaXQmCiAgICAg
CiAgICAgaWYgKGlzUm9vdElubGluZUJveCgpKSB7CiAgICAgICAgIC8vIEV4YW1pbmUgb3VyIHJv
b3QgYm94LgotICAgICAgICBpbnQgYXNjZW50ID0gMDsKLSAgICAgICAgaW50IGRlc2NlbnQgPSAw
OworICAgICAgICBMYXlvdXRVbml0IGFzY2VudDsKKyAgICAgICAgTGF5b3V0VW5pdCBkZXNjZW50
OwogICAgICAgICByb290Qm94LmFzY2VudEFuZERlc2NlbnRGb3JCb3gocm9vdEJveCwgdGV4dEJv
eERhdGFNYXAsIGFzY2VudCwgZGVzY2VudCwgYWZmZWN0c0FzY2VudCwgYWZmZWN0c0Rlc2NlbnQp
OwogICAgICAgICBpZiAoc3RyaWN0TW9kZSB8fCBoYXNUZXh0Q2hpbGRyZW4oKSB8fCAoIWNoZWNr
Q2hpbGRyZW4gJiYgaGFzVGV4dERlc2NlbmRhbnRzKCkpKSB7CiAgICAgICAgICAgICBpZiAobWF4
QXNjZW50IDwgYXNjZW50IHx8ICFzZXRNYXhBc2NlbnQpIHsKQEAgLTU4Niw4ICs1ODYsOCBAQCB2
b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhSb290SW5saW5lQm94
JiByb290Qm94LCBMYXlvdXRVbml0JgogICAgICAgICAvLyByb290IGJveCdzIGJhc2VsaW5lLCBh
bmQgaXQgaXMgcG9zaXRpdmUgaWYgdGhlIGNoaWxkIGJveCdzIGJhc2VsaW5lIGlzIGJlbG93IHRo
ZSByb290IGJveCdzIGJhc2VsaW5lLgogICAgICAgICBjaGlsZC0+c2V0TG9naWNhbFRvcChyb290
Qm94LnZlcnRpY2FsUG9zaXRpb25Gb3JCb3goY2hpbGQsIHZlcnRpY2FsUG9zaXRpb25DYWNoZSkp
OwogICAgICAgICAKLSAgICAgICAgaW50IGFzY2VudCA9IDA7Ci0gICAgICAgIGludCBkZXNjZW50
ID0gMDsKKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQ7CisgICAgICAgIExheW91dFVuaXQgZGVz
Y2VudDsKICAgICAgICAgcm9vdEJveC5hc2NlbnRBbmREZXNjZW50Rm9yQm94KCpjaGlsZCwgdGV4
dEJveERhdGFNYXAsIGFzY2VudCwgZGVzY2VudCwgYWZmZWN0c0FzY2VudCwgYWZmZWN0c0Rlc2Nl
bnQpOwogCiAgICAgICAgIExheW91dFVuaXQgYm94SGVpZ2h0ID0gYXNjZW50ICsgZGVzY2VudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCmluZGV4IDdjMjI4YmNiOGQy
YmVjZDA0NDA1MTZkMmM2NGRlMTZhM2Q2OWRkYzAuLjc1ZDMxNzgzNTk0MDA3OGI1ODBjNTY1Yzc1
NTYzMGYyNGNhOTM0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
aApAQCAtMTg2LDEwICsxODYsMTAgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgY29tcHV0
ZUxvZ2ljYWxCb3hIZWlnaHRzKFJvb3RJbmxpbmVCb3gmLCBMYXlvdXRVbml0JiBtYXhQb3NpdGlv
blRvcCwgTGF5b3V0VW5pdCYgbWF4UG9zaXRpb25Cb3R0b20sCi0gICAgICAgIGludCYgbWF4QXNj
ZW50LCBpbnQmIG1heERlc2NlbnQsIGJvb2wmIHNldE1heEFzY2VudCwgYm9vbCYgc2V0TWF4RGVz
Y2VudCwKKyAgICAgICAgTGF5b3V0VW5pdCYgbWF4QXNjZW50LCBMYXlvdXRVbml0JiBtYXhEZXNj
ZW50LCBib29sJiBzZXRNYXhBc2NlbnQsIGJvb2wmIHNldE1heERlc2NlbnQsCiAgICAgICAgIGJv
b2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmLCBGb250QmFz
ZWxpbmUsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYpOwotICAgIHZvaWQgYWRqdXN0TWF4QXNjZW50
QW5kRGVzY2VudChpbnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNjZW50LAotICAgICAgICBpbnQg
bWF4UG9zaXRpb25Ub3AsIGludCBtYXhQb3NpdGlvbkJvdHRvbSk7CisgICAgdm9pZCBhZGp1c3RN
YXhBc2NlbnRBbmREZXNjZW50KExheW91dFVuaXQmIG1heEFzY2VudCwgTGF5b3V0VW5pdCYgbWF4
RGVzY2VudCwKKyAgICAgICAgTGF5b3V0VW5pdCBtYXhQb3NpdGlvblRvcCwgTGF5b3V0VW5pdCBt
YXhQb3NpdGlvbkJvdHRvbSk7CiAgICAgdm9pZCBwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihM
YXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbWF4SGVpZ2h0LCBpbnQgbWF4QXNjZW50
LCBib29sIHN0cmljdE1vZGUsIExheW91dFVuaXQmIGxpbmVUb3AsIExheW91dFVuaXQmIGxpbmVC
b3R0b20sIGJvb2wmIHNldExpbmVUb3AsCiAgICAgICAgIExheW91dFVuaXQmIGxpbmVUb3BJbmNs
dWRpbmdNYXJnaW5zLCBMYXlvdXRVbml0JiBsaW5lQm90dG9tSW5jbHVkaW5nTWFyZ2lucywgYm9v
bCYgaGFzQW5ub3RhdGlvbnNCZWZvcmUsIGJvb2wmIGhhc0Fubm90YXRpb25zQWZ0ZXIsIEZvbnRC
YXNlbGluZSk7CiAgICAgdm9pZCBmbGlwTGluZXNJbkJsb2NrRGlyZWN0aW9uKExheW91dFVuaXQg
bGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9Sb290SW5saW5lQm94LmNwcAppbmRleCA2NDkxMTMwY2NkY2I1NjZlZWNhNmZmODdhOTU4ZWVi
ZjE5ODFkNTJjLi44MDcxNjE3NjkxODQzMzdjYmM2YjRjYjYzYThkZjAwMTY5N2RhYjFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCkBAIC0yNDUsOCArMjQ1
LDggQEAgTGF5b3V0VW5pdCBSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9ja0RpcmVjdGlv
bihMYXlvdXRVbml0IGhlaWdodE9mQmxvY2ssIEcKIAogICAgIExheW91dFVuaXQgbWF4UG9zaXRp
b25Ub3A7CiAgICAgTGF5b3V0VW5pdCBtYXhQb3NpdGlvbkJvdHRvbTsKLSAgICBpbnQgbWF4QXNj
ZW50ID0gMDsKLSAgICBpbnQgbWF4RGVzY2VudCA9IDA7CisgICAgTGF5b3V0VW5pdCBtYXhBc2Nl
bnQ7CisgICAgTGF5b3V0VW5pdCBtYXhEZXNjZW50OwogICAgIGJvb2wgc2V0TWF4QXNjZW50ID0g
ZmFsc2U7CiAgICAgYm9vbCBzZXRNYXhEZXNjZW50ID0gZmFsc2U7CiAKQEAgLTc2Niw3ICs3NjYs
NyBAQCBMYXlvdXRSZWN0IFJvb3RJbmxpbmVCb3g6OnBhZGRlZExheW91dE92ZXJmbG93UmVjdChM
YXlvdXRVbml0IGVuZFBhZGRpbmcpIGNvbnN0CiAgICAgcmV0dXJuIGxpbmVMYXlvdXRPdmVyZmxv
dzsKIH0KIAotc3RhdGljIHZvaWQgc2V0QXNjZW50QW5kRGVzY2VudChpbnQmIGFzY2VudCwgaW50
JiBkZXNjZW50LCBpbnQgbmV3QXNjZW50LCBpbnQgbmV3RGVzY2VudCwgYm9vbCYgYXNjZW50RGVz
Y2VudFNldCkKK3N0YXRpYyB2b2lkIHNldEFzY2VudEFuZERlc2NlbnQoTGF5b3V0VW5pdCYgYXNj
ZW50LCBMYXlvdXRVbml0JiBkZXNjZW50LCBMYXlvdXRVbml0IG5ld0FzY2VudCwgTGF5b3V0VW5p
dCBuZXdEZXNjZW50LCBib29sJiBhc2NlbnREZXNjZW50U2V0KQogewogICAgIGlmICghYXNjZW50
RGVzY2VudFNldCkgewogICAgICAgICBhc2NlbnREZXNjZW50U2V0ID0gdHJ1ZTsKQEAgLTc3OCw3
ICs3NzgsNyBAQCBzdGF0aWMgdm9pZCBzZXRBc2NlbnRBbmREZXNjZW50KGludCYgYXNjZW50LCBp
bnQmIGRlc2NlbnQsIGludCBuZXdBc2NlbnQsIGludCBuZQogICAgIH0KIH0KIAotdm9pZCBSb290
SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCYgYm94LCBHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAsIGludCYgYXNjZW50LCBp
bnQmIGRlc2NlbnQsCit2b2lkIFJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3go
SW5saW5lQm94JiBib3gsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94
RGF0YU1hcCwgTGF5b3V0VW5pdCYgYXNjZW50LCBMYXlvdXRVbml0JiBkZXNjZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGFmZmVjdHNBc2NlbnQs
IGJvb2wmIGFmZmVjdHNEZXNjZW50KSBjb25zdAogewogICAgIGJvb2wgYXNjZW50RGVzY2VudFNl
dCA9IGZhbHNlOwpAQCAtODE2LDExICs4MTYsMTEgQEAgdm9pZCBSb290SW5saW5lQm94Ojphc2Nl
bnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGIK
ICAgICAgICAgdXNlZEZvbnRzLT5hcHBlbmQoJmJveExpbmVTdHlsZS5mb250Q2FzY2FkZSgpLnBy
aW1hcnlGb250KCkpOwogICAgICAgICBmb3IgKGF1dG8mIGZvbnQgOiAqdXNlZEZvbnRzKSB7CiAg
ICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IGZvbnQtPmZvbnRNZXRyaWNzKCk7Ci0gICAg
ICAgICAgICBpbnQgdXNlZEZvbnRBc2NlbnQgPSBmb250TWV0cmljcy5hc2NlbnQoYmFzZWxpbmVU
eXBlKCkpOwotICAgICAgICAgICAgaW50IHVzZWRGb250RGVzY2VudCA9IGZvbnRNZXRyaWNzLmRl
c2NlbnQoYmFzZWxpbmVUeXBlKCkpOwotICAgICAgICAgICAgaW50IGhhbGZMZWFkaW5nID0gKGZv
bnRNZXRyaWNzLmxpbmVTcGFjaW5nKCkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkgLyAyOwotICAg
ICAgICAgICAgaW50IHVzZWRGb250QXNjZW50QW5kTGVhZGluZyA9IHVzZWRGb250QXNjZW50ICsg
aGFsZkxlYWRpbmc7Ci0gICAgICAgICAgICBpbnQgdXNlZEZvbnREZXNjZW50QW5kTGVhZGluZyA9
IGZvbnRNZXRyaWNzLmxpbmVTcGFjaW5nKCkgLSB1c2VkRm9udEFzY2VudEFuZExlYWRpbmc7Cisg
ICAgICAgICAgICBMYXlvdXRVbml0IHVzZWRGb250QXNjZW50IHsgZm9udE1ldHJpY3MuYXNjZW50
KGJhc2VsaW5lVHlwZSgpKSB9OworICAgICAgICAgICAgTGF5b3V0VW5pdCB1c2VkRm9udERlc2Nl
bnQgeyBmb250TWV0cmljcy5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSB9OworICAgICAgICAgICAg
TGF5b3V0VW5pdCBoYWxmTGVhZGluZyB7IChmb250TWV0cmljcy5saW5lU3BhY2luZygpIC0gZm9u
dE1ldHJpY3MuaGVpZ2h0KCkpIC8gMiB9OworICAgICAgICAgICAgTGF5b3V0VW5pdCB1c2VkRm9u
dEFzY2VudEFuZExlYWRpbmcgeyB1c2VkRm9udEFzY2VudCArIGhhbGZMZWFkaW5nIH07CisgICAg
ICAgICAgICBMYXlvdXRVbml0IHVzZWRGb250RGVzY2VudEFuZExlYWRpbmcgeyBmb250TWV0cmlj
cy5saW5lU3BhY2luZygpIC0gdXNlZEZvbnRBc2NlbnRBbmRMZWFkaW5nIH07CiAgICAgICAgICAg
ICBpZiAoaW5jbHVkZUZvbnQpIHsKICAgICAgICAgICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50
KGFzY2VudCwgZGVzY2VudCwgdXNlZEZvbnRBc2NlbnQsIHVzZWRGb250RGVzY2VudCwgYXNjZW50
RGVzY2VudFNldCk7CiAgICAgICAgICAgICAgICAgc2V0VXNlZEZvbnQgPSB0cnVlOwpAQCAtODM4
LDggKzgzOCw4IEBAIHZvaWQgUm9vdElubGluZUJveDo6YXNjZW50QW5kRGVzY2VudEZvckJveChJ
bmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiCiAKICAgICAvLyBJZiBsZWFkaW5n
IGlzIGluY2x1ZGVkIGZvciB0aGUgYm94LCB0aGVuIHdlIGNvbXB1dGUgdGhhdCBib3guCiAgICAg
aWYgKGluY2x1ZGVMZWFkaW5nICYmICFzZXRVc2VkRm9udFdpdGhMZWFkaW5nKSB7Ci0gICAgICAg
IGludCBhc2NlbnRXaXRoTGVhZGluZyA9IGJveC5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlw
ZSgpKTsKLSAgICAgICAgaW50IGRlc2NlbnRXaXRoTGVhZGluZyA9IGJveC5saW5lSGVpZ2h0KCkg
LSBhc2NlbnRXaXRoTGVhZGluZzsKKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnRXaXRoTGVhZGlu
ZyB7IGJveC5iYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lVHlwZSgpKSB9OworICAgICAgICBMYXlv
dXRVbml0IGRlc2NlbnRXaXRoTGVhZGluZyB7IGJveC5saW5lSGVpZ2h0KCkgLSBhc2NlbnRXaXRo
TGVhZGluZyB9OwogICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2VudCwgZGVzY2VudCwg
YXNjZW50V2l0aExlYWRpbmcsIGRlc2NlbnRXaXRoTGVhZGluZywgYXNjZW50RGVzY2VudFNldCk7
CiAgICAgICAgIAogICAgICAgICAvLyBFeGFtaW5lIHRoZSBmb250IGJveCBmb3IgaW5saW5lIGZs
b3dzIGFuZCB0ZXh0IGJveGVzIHRvIHNlZSBpZiBhbnkgcGFydCBvZiBpdCBpcyBhYm92ZSB0aGUg
YmFzZWxpbmUuCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBSb290SW5saW5lQm94Ojphc2NlbnRB
bmREZXNjZW50Rm9yQm94KElubGluZUJveCYgYm94LCBHbHlwaE92ZXJmbG93QW5kRmFsbGIKICAg
ICB9CiAgICAgCiAgICAgaWYgKGluY2x1ZGVGb250Rm9yQm94KGJveCkgJiYgIXNldFVzZWRGb250
KSB7Ci0gICAgICAgIGludCBmb250QXNjZW50ID0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCku
YXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKLSAgICAgICAgaW50IGZvbnREZXNjZW50ID0gYm94TGlu
ZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSk7CisgICAgICAgIExh
eW91dFVuaXQgZm9udEFzY2VudCB7IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChi
YXNlbGluZVR5cGUoKSkgfTsKKyAgICAgICAgTGF5b3V0VW5pdCBmb250RGVzY2VudCB7IGJveExp
bmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpIH07CiAgICAgICAg
IHNldEFzY2VudEFuZERlc2NlbnQoYXNjZW50LCBkZXNjZW50LCBmb250QXNjZW50LCBmb250RGVz
Y2VudCwgYXNjZW50RGVzY2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBmb250QXNj
ZW50IC0gYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZm9u
dERlc2NlbnQgKyBib3gubG9naWNhbFRvcCgpID4gMDsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2b2lk
IFJvb3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3goSW5saW5lQm94JiBib3gsIEds
eXBoT3ZlcmZsb3dBbmRGYWxsYgogICAgIAogICAgIGlmIChpbmNsdWRlSW5pdGlhbExldHRlckZv
ckJveChib3gpKSB7CiAgICAgICAgIGJvb2wgY2FuVXNlR2x5cGhzID0gZ2x5cGhPdmVyZmxvdyAm
JiBnbHlwaE92ZXJmbG93LT5jb21wdXRlQm91bmRzOwotICAgICAgICBpbnQgbGV0dGVyQXNjZW50
ID0gYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRpY0Jhc2VsaW5lID8gYm94TGluZVN0eWxlLmZv
bnRNZXRyaWNzKCkuY2FwSGVpZ2h0KCkgOiAoY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+
dG9wIDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSk7
Ci0gICAgICAgIGludCBsZXR0ZXJEZXNjZW50ID0gY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxv
dy0+Ym90dG9tIDogKGJveC5pc1Jvb3RJbmxpbmVCb3goKSA/IDAgOiBib3hMaW5lU3R5bGUuZm9u
dE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSk7CisgICAgICAgIExheW91dFVuaXQg
bGV0dGVyQXNjZW50IHsgYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRpY0Jhc2VsaW5lID8gYm94
TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuY2FwSGVpZ2h0KCkgOiAoY2FuVXNlR2x5cGhzID8gZ2x5
cGhPdmVyZmxvdy0+dG9wIDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2Vs
aW5lVHlwZSgpKSkgfTsKKyAgICAgICAgTGF5b3V0VW5pdCBsZXR0ZXJEZXNjZW50IHsgY2FuVXNl
R2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogKGJveC5pc1Jvb3RJbmxpbmVCb3goKSA/
IDAgOiBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkg
fTsKICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGxldHRlckFz
Y2VudCwgbGV0dGVyRGVzY2VudCwgYXNjZW50RGVzY2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNB
c2NlbnQgPSBsZXR0ZXJBc2NlbnQgLSBib3gubG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgYWZm
ZWN0c0Rlc2NlbnQgPSBsZXR0ZXJEZXNjZW50ICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAppbmRleCA5Mjk0MDk2YzFkNTkwN2Y5
ODBmMThhZGMwZDlhZjIxNmE2YTc5Yjc3Li45Y2FkNmFiY2U1Njg3MzcyZDgzY2QzMTE3OWY2ZDYy
NDkzMjVkODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAg
LTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAKICAgICBMYXlvdXRSZWN0IHBhZGRlZExheW91dE92
ZXJmbG93UmVjdChMYXlvdXRVbml0IGVuZFBhZGRpbmcpIGNvbnN0OwogCi0gICAgdm9pZCBhc2Nl
bnRBbmREZXNjZW50Rm9yQm94KElubGluZUJveCYsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwJiwgaW50JiBhc2NlbnQsIGludCYgZGVzY2VudCwgYm9vbCYgYWZmZWN0c0FzY2VudCwg
Ym9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0OworICAgIHZvaWQgYXNjZW50QW5kRGVzY2VudEZv
ckJveChJbmxpbmVCb3gmLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYsIExheW91
dFVuaXQmIGFzY2VudCwgTGF5b3V0VW5pdCYgZGVzY2VudCwgYm9vbCYgYWZmZWN0c0FzY2VudCwg
Ym9vbCYgYWZmZWN0c0Rlc2NlbnQpIGNvbnN0OwogICAgIExheW91dFVuaXQgdmVydGljYWxQb3Np
dGlvbkZvckJveChJbmxpbmVCb3gqLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmKTsKICAgICBib29s
IGZpdHNUb0dseXBocygpIGNvbnN0OwogICAgIGJvb2wgaW5jbHVkZXNSb290TGluZUJveEZvbnRP
ckxlYWRpbmcoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425281</attachid>
            <date>2021-04-06 08:27:21 -0700</date>
            <delta_ts>2021-07-29 07:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210406172720.patch</filename>
            <type>text/plain</type>
            <size>8843</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RiNDMzZDUzOTgwYjIz
MDk3NGRiOTVlZTE1NzllMzdjODI3N2Q4ZC4uYWZmNTE3NzdhZmFjNTY5ZWUwNmJlNDIwZjkyZTVi
ODc1NWExY2I4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTA2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgIE1pZ3JhdGUgbGF5b3V0IGFzY2Vu
dHMgYW5kIGRlc2NlbnRzIHRvIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjphZGRUZXh0
Qm94VmlzdWFsT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94IGNvbnN0KToKKyAg
ICAgICAgKiBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZXh0ZW5kSW50VG9GbG9hdCk6CisKIDIwMjEtMDQtMDYgIFN0ZXBoYW4gU3phYm8gIDxzdGVwaGFu
LnN6YWJvQHNvbnkuY29tPgogCiAgICAgICAgIFtQbGF5U3RhdGlvbl0gQ2hhbmdlIG1lZGlhQ29u
dHJvbHNMb2NhbGl6ZWRTdHJpbmdzIHRvIHVzZSB1bmljb2RlIGVzY2FwZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4IDFlZjllNzZmZjE2
ZDQwOGY1Nzc4OGZmYmNmZDg2ZDU3NTU1YWJlMmQuLjhiMGNlZGY2OTNjMWRjMDg4Zjc4OTgyMWU3
MzMwNjcxODJiNWQ4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuaApAQCAtNzQsMTAgKzc0LDEwIEBAIHN0cnVjdCBHbHlwaE92ZXJmbG93IHsK
ICAgICAgICAgcmV0dXJuIGxlZnQgIT0gb3RoZXIubGVmdCB8fCByaWdodCAhPSBvdGhlci5yaWdo
dCB8fCB0b3AgIT0gb3RoZXIudG9wIHx8IGJvdHRvbSAhPSBvdGhlci5ib3R0b207CiAgICAgfQog
Ci0gICAgaW50IGxlZnQgeyAwIH07Ci0gICAgaW50IHJpZ2h0IHsgMCB9OwotICAgIGludCB0b3Ag
eyAwIH07Ci0gICAgaW50IGJvdHRvbSB7IDAgfTsKKyAgICBMYXlvdXRVbml0IGxlZnQ7CisgICAg
TGF5b3V0VW5pdCByaWdodDsKKyAgICBMYXlvdXRVbml0IHRvcDsKKyAgICBMYXlvdXRVbml0IGJv
dHRvbTsKICAgICBib29sIGNvbXB1dGVCb3VuZHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IGQzNTA5NDNiNDI4ZTE4MWQw
M2ExZjc4NjBhMTY5NmY2ZDM1ZDE2ZGUuLmNiNTY4YjI5ZTEyNjI0MjNmZmQyYzk4Yzk4NDIwOGM2
MzA3M2JiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAK
QEAgLTkxOSwyMCArOTE5LDIwIEBAIGlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OmFkZFRleHRC
b3hWaXN1YWxPdmVyZmxvdyhJbmxpbmVUZXh0Qm94JiB0ZXh0Qm94LCBHbHlwCiAgICAgR2x5cGhP
dmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IGl0ID09IHRleHRCb3hEYXRhTWFwLmVuZCgpID8gbnVs
bHB0ciA6ICZpdC0+dmFsdWUuc2Vjb25kOwogICAgIGJvb2wgaXNGbGlwcGVkTGluZSA9IGxpbmVT
dHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCk7CiAKLSAgICBpbnQgdG9wR2x5cGhFZGdl
ID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9t
IDogZ2x5cGhPdmVyZmxvdy0+dG9wKSA6IDA7Ci0gICAgaW50IGJvdHRvbUdseXBoRWRnZSA9IGds
eXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGluZSA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGdseXBo
T3ZlcmZsb3ctPmJvdHRvbSkgOiAwOwotICAgIGludCBsZWZ0R2x5cGhFZGdlID0gZ2x5cGhPdmVy
ZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwOwotICAgIGludCByaWdodEdseXBoRWRnZSA9
IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5yaWdodCA6IDA7CisgICAgTGF5b3V0VW5p
dCB0b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxpcHBlZExpbmUgPyBnbHlwaE92
ZXJmbG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93LT50b3ApIDogTGF5b3V0VW5pdCgpOworICAg
IExheW91dFVuaXQgYm90dG9tR2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRM
aW5lID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKSA6IExheW91
dFVuaXQoKTsKKyAgICBMYXlvdXRVbml0IGxlZnRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8g
Z2x5cGhPdmVyZmxvdy0+bGVmdCA6IExheW91dFVuaXQoKTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0
R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogTGF5b3V0
VW5pdCgpOwogCiAgICAgYXV0byB2aWV3cG9ydFNpemUgPSB0ZXh0Qm94LnJlbmRlcmVyKCkuZnJh
bWUoKS52aWV3KCkgPyB0ZXh0Qm94LnJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCktPnNpemUoKSA6
IEludFNpemUoKTsKICAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGQ6OmNlaWwobGluZVN0eWxl
LmNvbXB1dGVkU3Ryb2tlV2lkdGgodmlld3BvcnRTaXplKSAvIDIuMGYpOwotICAgIGludCB0b3BH
bHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwotICAgIGludCBi
b3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7Ci0g
ICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVmdEdseXBoRWRn
ZTsKLSAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyByaWdodEds
eXBoRWRnZTsKKyAgICBMYXlvdXRVbml0IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZs
b3cgLSB0b3BHbHlwaEVkZ2U7CisgICAgTGF5b3V0VW5pdCBib3R0b21HbHlwaE92ZXJmbG93ID0g
c3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7CisgICAgTGF5b3V0VW5pdCBsZWZ0R2x5
cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIGxlZnRHbHlwaEVkZ2U7CisgICAgTGF5b3V0
VW5pdCByaWdodEdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyArIHJpZ2h0R2x5cGhFZGdl
OwogCiAgICAgaWYgKE9wdGlvbmFsPGJvb2w+IG1hcmtFeGlzdHNBbmRJc0Fib3ZlID0gdGV4dEJv
eC5lbXBoYXNpc01hcmtFeGlzdHNBbmRJc0Fib3ZlKGxpbmVTdHlsZSkpIHsKLSAgICAgICAgaW50
IGVtcGhhc2lzTWFya0hlaWdodCA9IGxpbmVTdHlsZS5mb250Q2FzY2FkZSgpLmVtcGhhc2lzTWFy
a0hlaWdodChsaW5lU3R5bGUudGV4dEVtcGhhc2lzTWFya1N0cmluZygpKTsKKyAgICAgICAgTGF5
b3V0VW5pdCBlbXBoYXNpc01hcmtIZWlnaHQgPSBsaW5lU3R5bGUuZm9udENhc2NhZGUoKS5lbXBo
YXNpc01hcmtIZWlnaHQobGluZVN0eWxlLnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7CiAgICAg
ICAgIGlmICgqbWFya0V4aXN0c0FuZElzQWJvdmUgPT0gIWxpbmVTdHlsZS5pc0ZsaXBwZWRMaW5l
c1dyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICB0b3BHbHlwaE92ZXJmbG93ID0gc3RkOjptaW4o
dG9wR2x5cGhPdmVyZmxvdywgLWVtcGhhc2lzTWFya0hlaWdodCk7CiAgICAgICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCBmZDU3M2FkYTYwYTA1OTBk
MmZlNmZjYzcxZDY0Nzk4ODU5NmNlZDY1Li5hZDRhMmM4MjgwNzI5MDg3ZWNkM2Q5NjAxZmE2NjI0
ODU4NGNiMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0x
MDA5LDcgKzEwMDksNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBGbwogICAgICAgICBtaW5pbXVt
U3VmZml4TGVuZ3RoID0gYWZ0ZXIgPCAwID8gMiA6IGFmdGVyOwogICAgIH0KIAotICAgIE9wdGlv
bmFsPGludD4gZmlyc3RHbHlwaExlZnRPdmVyZmxvdzsKKyAgICBPcHRpb25hbDxMYXlvdXRVbml0
PiBmaXJzdEdseXBoTGVmdE92ZXJmbG93OwogCiAgICAgYm9vbCBicmVha05CU1AgPSBzdHlsZS5h
dXRvV3JhcCgpICYmIHN0eWxlLm5ic3BNb2RlKCkgPT0gTkJTUE1vZGU6OlNwYWNlOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCmluZGV4IDgwNzE2MTc2
OTE4NDMzN2NiYzZiNGNiNjNhOGRmMDAxNjk3ZGFiMWEuLjg5MGIyN2VmNTEyZGFlOWQ0ZWVkMzI1
OGM5NWE4MzYzNDBjOGU2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
b290SW5saW5lQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGlu
ZUJveC5jcHAKQEAgLTg2MiwyMCArODYyLDIwIEBAIHZvaWQgUm9vdElubGluZUJveDo6YXNjZW50
QW5kRGVzY2VudEZvckJveChJbmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiCiAg
ICAgICAgIHNldEFzY2VudEFuZERlc2NlbnQoYXNjZW50LCBkZXNjZW50LCBnbHlwaE92ZXJmbG93
LT50b3AsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgYXNjZW50RGVzY2VudFNldCk7CiAgICAgICAg
IGFmZmVjdHNBc2NlbnQgPSBnbHlwaE92ZXJmbG93LT50b3AgLSBib3gubG9naWNhbFRvcCgpID4g
MDsKICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBnbHlwaE92ZXJmbG93LT5ib3R0b20gKyBib3gu
bG9naWNhbFRvcCgpID4gMDsKLSAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gc3RkOjptaW4o
Z2x5cGhPdmVyZmxvdy0+dG9wLCBzdGQ6Om1heCgwLCBnbHlwaE92ZXJmbG93LT50b3AgLSBib3hM
aW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7Ci0gICAgICAg
IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwg
c3RkOjptYXgoMCwgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIC0gYm94TGluZVN0eWxlLmZvbnRNZXRy
aWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+
dG9wID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBzdGQ6Om1heChMYXlvdXRVbml0KCks
IGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChi
YXNlbGluZVR5cGUoKSkpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjpt
aW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBzdGQ6Om1heChMYXlvdXRVbml0KCksIGdseXBoT3Zl
cmZsb3ctPmJvdHRvbSAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxp
bmVUeXBlKCkpKSk7CiAgICAgfQogICAgIAogICAgIGlmIChpbmNsdWRlSW5pdGlhbExldHRlckZv
ckJveChib3gpKSB7CiAgICAgICAgIGJvb2wgY2FuVXNlR2x5cGhzID0gZ2x5cGhPdmVyZmxvdyAm
JiBnbHlwaE92ZXJmbG93LT5jb21wdXRlQm91bmRzOwotICAgICAgICBMYXlvdXRVbml0IGxldHRl
ckFzY2VudCB7IGJhc2VsaW5lVHlwZSgpID09IEFscGhhYmV0aWNCYXNlbGluZSA/IGJveExpbmVT
dHlsZS5mb250TWV0cmljcygpLmNhcEhlaWdodCgpIDogKGNhblVzZUdseXBocyA/IGdseXBoT3Zl
cmZsb3ctPnRvcCA6IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5
cGUoKSkpIH07Ci0gICAgICAgIExheW91dFVuaXQgbGV0dGVyRGVzY2VudCB7IGNhblVzZUdseXBo
cyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IChib3guaXNSb290SW5saW5lQm94KCkgPyAwIDog
Ym94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpIH07Cisg
ICAgICAgIExheW91dFVuaXQgbGV0dGVyQXNjZW50IHsgYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFi
ZXRpY0Jhc2VsaW5lID8gTGF5b3V0VW5pdChib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5jYXBI
ZWlnaHQoKSkgOiAoY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogTGF5b3V0VW5p
dChib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSkgfTsK
KyAgICAgICAgTGF5b3V0VW5pdCBsZXR0ZXJEZXNjZW50IHsgY2FuVXNlR2x5cGhzID8gZ2x5cGhP
dmVyZmxvdy0+Ym90dG9tIDogKGJveC5pc1Jvb3RJbmxpbmVCb3goKSA/IExheW91dFVuaXQoKSA6
IExheW91dFVuaXQoYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5
cGUoKSkpKSB9OwogICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2VudCwgZGVzY2VudCwg
bGV0dGVyQXNjZW50LCBsZXR0ZXJEZXNjZW50LCBhc2NlbnREZXNjZW50U2V0KTsKICAgICAgICAg
YWZmZWN0c0FzY2VudCA9IGxldHRlckFzY2VudCAtIGJveC5sb2dpY2FsVG9wKCkgPiAwOwogICAg
ICAgICBhZmZlY3RzRGVzY2VudCA9IGxldHRlckRlc2NlbnQgKyBib3gubG9naWNhbFRvcCgpID4g
MDsKICAgICAgICAgaWYgKGNhblVzZUdseXBocykgewotICAgICAgICAgICAgZ2x5cGhPdmVyZmxv
dy0+dG9wID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBzdGQ6Om1heCgwLCBnbHlwaE92
ZXJmbG93LT50b3AgLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVU
eXBlKCkpKSk7Ci0gICAgICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihn
bHlwaE92ZXJmbG93LT5ib3R0b20sIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAt
IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7Cisg
ICAgICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT50
b3AsIHN0ZDo6bWF4KExheW91dFVuaXQoKSwgZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94TGluZVN0
eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOworICAgICAgICAgICAg
Z2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBz
dGQ6Om1heChMYXlvdXRVbml0KCksIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAtIGJveExpbmVTdHls
ZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCmluZGV4
IDExODhhMTMxMDc2Y2QzNTcyMzA4MmQ0ZWRmMzdmNDRlYjExM2QxM2EuLjkyMTU0ZDQ0ODU4ZDg5
MGI1MzkwNWUyOWI2OWI5NzI1Njk5NDdjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5s
aW5lVGV4dEJveFN0eWxlLmNwcApAQCAtOTcsOSArOTcsOSBAQCBXYXZ5U3Ryb2tlUGFyYW1ldGVy
cyBnZXRXYXZ5U3Ryb2tlUGFyYW1ldGVycyhmbG9hdCBmb250U2l6ZSkKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZXh0ZW5kSW50VG9GbG9hdChpbnQmIGV4dGVu
ZE1lLCBmbG9hdCBleHRlbmRUbykKK3N0YXRpYyBpbmxpbmUgdm9pZCBleHRlbmRJbnRUb0Zsb2F0
KExheW91dFVuaXQmIGV4dGVuZE1lLCBmbG9hdCBleHRlbmRUbykKIHsKLSAgICBleHRlbmRNZSA9
IHN0ZDo6bWF4KGV4dGVuZE1lLCBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKGV4dGVuZFRvKSkpOwor
ICAgIGV4dGVuZE1lID0gc3RkOjptYXgoZXh0ZW5kTWUsIExheW91dFVuaXQoY2VpbGYoZXh0ZW5k
VG8pKSk7CiB9CiAKIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhj
b25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlLCBjb25zdCBJbmxpbmVUZXh0Qm94KiBpbmxpbmVU
ZXh0Qm94KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434520</attachid>
            <date>2021-07-29 07:32:43 -0700</date>
            <delta_ts>2021-07-29 09:50:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210729163242.patch</filename>
            <type>text/plain</type>
            <size>8879</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBiOTg3OWZkMDU2ODdi
MzAyNWFkM2NjYzUyN2UyNDE4YmQyYzA0NS4uZWUyOTdkZDA0MjU3YzZhZDZlZTE0YTg2ZjUxNWQx
NWU3MWI4YmVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTI5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBsYXlvdXQgYXNjZW50
cyBhbmQgZGVzY2VudHMgdG8gTGF5b3V0VW5pdHMgaW5zdGVhZCBvZiBpbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdh
Y3lJbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUlubGluZUZsb3dC
b3g6OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL0xlZ2Fj
eVJvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5Um9vdElubGluZUJv
eDo6YXNjZW50QW5kRGVzY2VudEZvckJveCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHN0eWxlL0lubGluZVRleHRCb3hTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpleHRlbmRJbnRUb0Zsb2F0KToKKwogMjAyMS0wNy0yOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2E6OnJvdGF0ZVBpeGVsQnVmZmVyIHNob3VsZCB1cGRhdGUgbV9j
dXJyZW50Um90YXRpb25TZXNzaW9uQW5nbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4IDZlY2EyNDdlYTljOGE5MWQ3MjgxN2E1MTIzY2I3
MzQ1MDJkNzMyYjcuLjVkNWQ1NDk4MWEyMjQxZWUzYTBiMWRhMTkxNWVhNjI5YjAxMjM3OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAt
NzMsMTAgKzczLDEwIEBAIHN0cnVjdCBHbHlwaE92ZXJmbG93IHsKICAgICAgICAgcmV0dXJuIGxl
ZnQgIT0gb3RoZXIubGVmdCB8fCByaWdodCAhPSBvdGhlci5yaWdodCB8fCB0b3AgIT0gb3RoZXIu
dG9wIHx8IGJvdHRvbSAhPSBvdGhlci5ib3R0b207CiAgICAgfQogCi0gICAgaW50IGxlZnQgeyAw
IH07Ci0gICAgaW50IHJpZ2h0IHsgMCB9OwotICAgIGludCB0b3AgeyAwIH07Ci0gICAgaW50IGJv
dHRvbSB7IDAgfTsKKyAgICBMYXlvdXRVbml0IGxlZnQ7CisgICAgTGF5b3V0VW5pdCByaWdodDsK
KyAgICBMYXlvdXRVbml0IHRvcDsKKyAgICBMYXlvdXRVbml0IGJvdHRvbTsKICAgICBib29sIGNv
bXB1dGVCb3VuZHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwCmluZGV4IDA0MTQ0MjI1MGRmYmI0M2EwYmVjYzIx
YzgzNmMzMDMyMjNiNzU4OGIuLjhjNGNkYjE5OWQ5ZGY4MjIyOTMyNWE0YjQ0YjZmNWE3ZTk1ZDc3
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0Jv
eC5jcHAKQEAgLTkzMywyMCArOTMzLDIwIEBAIGlubGluZSB2b2lkIExlZ2FjeUlubGluZUZsb3dC
b3g6OmFkZFRleHRCb3hWaXN1YWxPdmVyZmxvdyhMZWdhY3lJbmxpbmVUZXh0Qm94JiB0CiAgICAg
R2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdyA9IGl0ID09IHRleHRCb3hEYXRhTWFwLmVuZCgp
ID8gbnVsbHB0ciA6ICZpdC0+dmFsdWUuc2Vjb25kOwogICAgIGJvb2wgaXNGbGlwcGVkTGluZSA9
IGxpbmVTdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCk7CiAKLSAgICBpbnQgdG9wR2x5
cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+
Ym90dG9tIDogZ2x5cGhPdmVyZmxvdy0+dG9wKSA6IDA7Ci0gICAgaW50IGJvdHRvbUdseXBoRWRn
ZSA9IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGluZSA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6
IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSkgOiAwOwotICAgIGludCBsZWZ0R2x5cGhFZGdlID0gZ2x5
cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwOwotICAgIGludCByaWdodEdseXBo
RWRnZSA9IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5yaWdodCA6IDA7CisgICAgTGF5
b3V0VW5pdCB0b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxpcHBlZExpbmUgPyBn
bHlwaE92ZXJmbG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93LT50b3ApIDogMF9sdTsKKyAgICBM
YXlvdXRVbml0IGJvdHRvbUdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGlu
ZSA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSkgOiAwX2x1Owor
ICAgIExheW91dFVuaXQgbGVmdEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJm
bG93LT5sZWZ0IDogMF9sdTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhP
dmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMF9sdTsKIAogICAgIGF1dG8gdmlld3Bv
cnRTaXplID0gdGV4dEJveC5yZW5kZXJlcigpLmZyYW1lKCkudmlldygpID8gdGV4dEJveC5yZW5k
ZXJlcigpLmZyYW1lKCkudmlldygpLT5zaXplKCkgOiBJbnRTaXplKCk7CiAgICAgaW50IHN0cm9r
ZU92ZXJmbG93ID0gc3RkOjpjZWlsKGxpbmVTdHlsZS5jb21wdXRlZFN0cm9rZVdpZHRoKHZpZXdw
b3J0U2l6ZSkgLyAyLjBmKTsKLSAgICBpbnQgdG9wR2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVy
ZmxvdyAtIHRvcEdseXBoRWRnZTsKLSAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9r
ZU92ZXJmbG93ICsgYm90dG9tR2x5cGhFZGdlOwotICAgIGludCBsZWZ0R2x5cGhPdmVyZmxvdyA9
IC1zdHJva2VPdmVyZmxvdyAtIGxlZnRHbHlwaEVkZ2U7Ci0gICAgaW50IHJpZ2h0R2x5cGhPdmVy
ZmxvdyA9IHN0cm9rZU92ZXJmbG93ICsgcmlnaHRHbHlwaEVkZ2U7CisgICAgTGF5b3V0VW5pdCB0
b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOworICAgIExh
eW91dFVuaXQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93ICsgYm90dG9tR2x5
cGhFZGdlOworICAgIExheW91dFVuaXQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZs
b3cgLSBsZWZ0R2x5cGhFZGdlOworICAgIExheW91dFVuaXQgcmlnaHRHbHlwaE92ZXJmbG93ID0g
c3Ryb2tlT3ZlcmZsb3cgKyByaWdodEdseXBoRWRnZTsKIAogICAgIGlmIChzdGQ6Om9wdGlvbmFs
PGJvb2w+IG1hcmtFeGlzdHNBbmRJc0Fib3ZlID0gdGV4dEJveC5lbXBoYXNpc01hcmtFeGlzdHNB
bmRJc0Fib3ZlKGxpbmVTdHlsZSkpIHsKLSAgICAgICAgaW50IGVtcGhhc2lzTWFya0hlaWdodCA9
IGxpbmVTdHlsZS5mb250Q2FzY2FkZSgpLmVtcGhhc2lzTWFya0hlaWdodChsaW5lU3R5bGUudGV4
dEVtcGhhc2lzTWFya1N0cmluZygpKTsKKyAgICAgICAgTGF5b3V0VW5pdCBlbXBoYXNpc01hcmtI
ZWlnaHQgPSBsaW5lU3R5bGUuZm9udENhc2NhZGUoKS5lbXBoYXNpc01hcmtIZWlnaHQobGluZVN0
eWxlLnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7CiAgICAgICAgIGlmICgqbWFya0V4aXN0c0Fu
ZElzQWJvdmUgPT0gIWxpbmVTdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkpCiAgICAg
ICAgICAgICB0b3BHbHlwaE92ZXJmbG93ID0gc3RkOjptaW4odG9wR2x5cGhPdmVyZmxvdywgLWVt
cGhhc2lzTWFya0hlaWdodCk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNwcAppbmRleCAzNGVhZDhhOWQ0Zjk5MjQ4N2Rh
ZDUyZmNlNTk5YjYwNGJhMDgyZWRjLi43YTUwOWNiMWZjMmI4OTA4ZTcwMGRmNjg0ZjlmZTk4YTRm
ZmI3YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElu
bGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxp
bmVCb3guY3BwCkBAIC04NjYsMjAgKzg2NiwyMCBAQCB2b2lkIExlZ2FjeVJvb3RJbmxpbmVCb3g6
OmFzY2VudEFuZERlc2NlbnRGb3JCb3goTGVnYWN5SW5saW5lQm94JiBib3gsIEdseXBoT3Zlcgog
ICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2VudCwgZGVzY2VudCwgZ2x5cGhPdmVyZmxv
dy0+dG9wLCBnbHlwaE92ZXJmbG93LT5ib3R0b20sIGFzY2VudERlc2NlbnRTZXQpOwogICAgICAg
ICBhZmZlY3RzQXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94LmxvZ2ljYWxUb3AoKSA+
IDA7CiAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tICsgYm94
LmxvZ2ljYWxUb3AoKSA+IDA7Ci0gICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IHN0ZDo6bWlu
KGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMCwgZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94
TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwotICAgICAg
ICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT5ib3R0b20s
IHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAtIGJveExpbmVTdHlsZS5mb250TWV0
cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ct
PnRvcCA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMF9sdSwgZ2x5cGhP
dmVyZmxvdy0+dG9wIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5l
VHlwZSgpKSkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihnbHlw
aE92ZXJmbG93LT5ib3R0b20sIHN0ZDo6bWF4KDBfbHUsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAt
IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CiAg
ICAgfQogICAgIAogICAgIGlmIChpbmNsdWRlSW5pdGlhbExldHRlckZvckJveChib3gpKSB7CiAg
ICAgICAgIGJvb2wgY2FuVXNlR2x5cGhzID0gZ2x5cGhPdmVyZmxvdyAmJiBnbHlwaE92ZXJmbG93
LT5jb21wdXRlQm91bmRzOwotICAgICAgICBMYXlvdXRVbml0IGxldHRlckFzY2VudCB7IGJhc2Vs
aW5lVHlwZSgpID09IEFscGhhYmV0aWNCYXNlbGluZSA/IGJveExpbmVTdHlsZS5mb250TWV0cmlj
cygpLmNhcEhlaWdodCgpIDogKGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGJv
eExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpIH07Ci0gICAg
ICAgIExheW91dFVuaXQgbGV0dGVyRGVzY2VudCB7IGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZs
b3ctPmJvdHRvbSA6IChib3guaXNSb290SW5saW5lQm94KCkgPyAwIDogYm94TGluZVN0eWxlLmZv
bnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpIH07CisgICAgICAgIExheW91dFVu
aXQgbGV0dGVyQXNjZW50IHsgYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRpY0Jhc2VsaW5lID8g
TGF5b3V0VW5pdChib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5jYXBIZWlnaHQoKSkgOiAoY2Fu
VXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogTGF5b3V0VW5pdChib3hMaW5lU3R5bGUu
Zm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSkgfTsKKyAgICAgICAgTGF5b3V0
VW5pdCBsZXR0ZXJEZXNjZW50IHsgY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9t
IDogKGJveC5pc1Jvb3RJbmxpbmVCb3goKSA/IDBfbHUgOiBMYXlvdXRVbml0KGJveExpbmVTdHls
ZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSkgfTsKICAgICAgICAgc2V0
QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGxldHRlckFzY2VudCwgbGV0dGVyRGVz
Y2VudCwgYXNjZW50RGVzY2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBsZXR0ZXJB
c2NlbnQgLSBib3gubG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBs
ZXR0ZXJEZXNjZW50ICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGlmIChjYW5Vc2VH
bHlwaHMpIHsKLSAgICAgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IHN0ZDo6bWluKGdseXBo
T3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMCwgZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94TGluZVN0
eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwotICAgICAgICAgICAg
Z2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBz
dGQ6Om1heCgwLCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBib3hMaW5lU3R5bGUuZm9udE1ldHJp
Y3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOworICAgICAgICAgICAgZ2x5cGhPdmVyZmxv
dy0+dG9wID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBzdGQ6Om1heCgwX2x1LCBnbHlw
aE92ZXJmbG93LT50b3AgLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxp
bmVUeXBlKCkpKSk7CisgICAgICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1p
bihnbHlwaE92ZXJmbG93LT5ib3R0b20sIHN0ZDo6bWF4KDBfbHUsIGdseXBoT3ZlcmZsb3ctPmJv
dHRvbSAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkp
KSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAppbmRleCA5ZDIzODcxNTM3NTVjNzM3ZWI4OGNkNTQ5YThjNDVlYjNkMTY2NzA5Li45Yzk3
ZTA4YzE5YWI0MzJiN2E2MDFlMmFmMDdmMDQzMmI4MTc1ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCB2b2lkIFJlbmRlclRl
eHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwgSGFzaFNl
dDxjb25zdCBGbwogICAgICAgICBtaW5pbXVtU3VmZml4TGVuZ3RoID0gYWZ0ZXIgPCAwID8gMiA6
IGFmdGVyOwogICAgIH0KIAotICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBmaXJzdEdseXBoTGVmdE92
ZXJmbG93OworICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RHbHlwaExlZnRPdmVy
ZmxvdzsKIAogICAgIGJvb2wgYnJlYWtOQlNQID0gc3R5bGUuYXV0b1dyYXAoKSAmJiBzdHlsZS5u
YnNwTW9kZSgpID09IE5CU1BNb2RlOjpTcGFjZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCmluZGV4IDk4ZDQ4YjVjOTEwZmUwNTRiMjRhZjhjMGUw
OTQ4ZjcyMTkwZGUyYmQuLjlkYmY5NTI4NjQ1MWQ0MDkzYmEwMGVhMGY5NDkwYjIzY2Q5YmI0Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcApAQCAtOTcs
OSArOTcsOSBAQCBXYXZ5U3Ryb2tlUGFyYW1ldGVycyBnZXRXYXZ5U3Ryb2tlUGFyYW1ldGVycyhm
bG9hdCBmb250U2l6ZSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIHZv
aWQgZXh0ZW5kSW50VG9GbG9hdChpbnQmIGV4dGVuZE1lLCBmbG9hdCBleHRlbmRUbykKK3N0YXRp
YyBpbmxpbmUgdm9pZCBleHRlbmRJbnRUb0Zsb2F0KExheW91dFVuaXQmIGV4dGVuZE1lLCBmbG9h
dCBleHRlbmRUbykKIHsKLSAgICBleHRlbmRNZSA9IHN0ZDo6bWF4KGV4dGVuZE1lLCBzdGF0aWNf
Y2FzdDxpbnQ+KGNlaWxmKGV4dGVuZFRvKSkpOworICAgIGV4dGVuZE1lID0gc3RkOjptYXgoZXh0
ZW5kTWUsIExheW91dFVuaXQoY2VpbGYoZXh0ZW5kVG8pKSk7CiB9CiAKIEdseXBoT3ZlcmZsb3cg
dmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxl
LCBjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBpbmxpbmVUZXh0Qm94KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434530</attachid>
            <date>2021-07-29 09:50:57 -0700</date>
            <delta_ts>2021-07-31 07:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210729185056.patch</filename>
            <type>text/plain</type>
            <size>8914</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBiOTg3OWZkMDU2ODdi
MzAyNWFkM2NjYzUyN2UyNDE4YmQyYzA0NS4uZmQzZTljZTUyNzI5ZjI2YTcyOTY3MzI4OGNkNTQw
NDc1NWI4NjQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTI5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93
IHRvIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93IHRvIExheW91dFVu
aXRzIGluc3RlYWQgb2YgaW50cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YXNjYWRlLmg6CisgICAgICAgICogcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92
ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9y
Qm94IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6Cisg
ICAgICAgICogc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmV4dGVuZEludFRvRmxvYXQpOgorCiAyMDIxLTA3LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6
cm90YXRlUGl4ZWxCdWZmZXIgc2hvdWxkIHVwZGF0ZSBtX2N1cnJlbnRSb3RhdGlvblNlc3Npb25B
bmdsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
c2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgK
aW5kZXggNmVjYTI0N2VhOWM4YTkxZDcyODE3YTUxMjNjYjczNDUwMmQ3MzJiNy4uNWQ1ZDU0OTgx
YTIyNDFlZTNhMGIxZGExOTE1ZWE2MjliMDEyMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBAIC03MywxMCArNzMsMTAgQEAgc3RydWN0
IEdseXBoT3ZlcmZsb3cgewogICAgICAgICByZXR1cm4gbGVmdCAhPSBvdGhlci5sZWZ0IHx8IHJp
Z2h0ICE9IG90aGVyLnJpZ2h0IHx8IHRvcCAhPSBvdGhlci50b3AgfHwgYm90dG9tICE9IG90aGVy
LmJvdHRvbTsKICAgICB9CiAKLSAgICBpbnQgbGVmdCB7IDAgfTsKLSAgICBpbnQgcmlnaHQgeyAw
IH07Ci0gICAgaW50IHRvcCB7IDAgfTsKLSAgICBpbnQgYm90dG9tIHsgMCB9OworICAgIExheW91
dFVuaXQgbGVmdDsKKyAgICBMYXlvdXRVbml0IHJpZ2h0OworICAgIExheW91dFVuaXQgdG9wOwor
ICAgIExheW91dFVuaXQgYm90dG9tOwogICAgIGJvb2wgY29tcHV0ZUJvdW5kcyB7IGZhbHNlIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5l
Rmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0Jv
eC5jcHAKaW5kZXggMDQxNDQyMjUwZGZiYjQzYTBiZWNjMjFjODM2YzMwMzIyM2I3NTg4Yi4uOGM0
Y2RiMTk5ZDlkZjgyMjI5MzI1YTRiNDRiNmY1YTdlOTVkNzc4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmNwcApAQCAtOTMzLDIwICs5MzMs
MjAgQEAgaW5saW5lIHZvaWQgTGVnYWN5SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92
ZXJmbG93KExlZ2FjeUlubGluZVRleHRCb3gmIHQKICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92
ZXJmbG93ID0gaXQgPT0gdGV4dEJveERhdGFNYXAuZW5kKCkgPyBudWxscHRyIDogJml0LT52YWx1
ZS5zZWNvbmQ7CiAgICAgYm9vbCBpc0ZsaXBwZWRMaW5lID0gbGluZVN0eWxlLmlzRmxpcHBlZExp
bmVzV3JpdGluZ01vZGUoKTsKIAotICAgIGludCB0b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93
ID8gKGlzRmxpcHBlZExpbmUgPyBnbHlwaE92ZXJmbG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93
LT50b3ApIDogMDsKLSAgICBpbnQgYm90dG9tR2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChp
c0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9t
KSA6IDA7Ci0gICAgaW50IGxlZnRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVy
Zmxvdy0+bGVmdCA6IDA7Ci0gICAgaW50IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/
IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMDsKKyAgICBMYXlvdXRVbml0IHRvcEdseXBoRWRnZSA9
IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGluZSA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6
IGdseXBoT3ZlcmZsb3ctPnRvcCkgOiAwX2x1OworICAgIExheW91dFVuaXQgYm90dG9tR2x5cGhF
ZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+dG9w
IDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKSA6IDBfbHU7CisgICAgTGF5b3V0VW5pdCBsZWZ0R2x5
cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwX2x1OworICAg
IExheW91dFVuaXQgcmlnaHRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxv
dy0+cmlnaHQgOiAwX2x1OwogCiAgICAgYXV0byB2aWV3cG9ydFNpemUgPSB0ZXh0Qm94LnJlbmRl
cmVyKCkuZnJhbWUoKS52aWV3KCkgPyB0ZXh0Qm94LnJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCkt
PnNpemUoKSA6IEludFNpemUoKTsKICAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGQ6OmNlaWwo
bGluZVN0eWxlLmNvbXB1dGVkU3Ryb2tlV2lkdGgodmlld3BvcnRTaXplKSAvIDIuMGYpOwotICAg
IGludCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwot
ICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlw
aEVkZ2U7Ci0gICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVm
dEdseXBoRWRnZTsKLSAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cg
KyByaWdodEdseXBoRWRnZTsKKyAgICBMYXlvdXRVbml0IHRvcEdseXBoT3ZlcmZsb3cgPSAtc3Ry
b2tlT3ZlcmZsb3cgLSB0b3BHbHlwaEVkZ2U7CisgICAgTGF5b3V0VW5pdCBib3R0b21HbHlwaE92
ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7CisgICAgTGF5b3V0VW5p
dCBsZWZ0R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIGxlZnRHbHlwaEVkZ2U7Cisg
ICAgTGF5b3V0VW5pdCByaWdodEdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyArIHJpZ2h0
R2x5cGhFZGdlOwogCiAgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbWFya0V4aXN0c0FuZElz
QWJvdmUgPSB0ZXh0Qm94LmVtcGhhc2lzTWFya0V4aXN0c0FuZElzQWJvdmUobGluZVN0eWxlKSkg
ewotICAgICAgICBpbnQgZW1waGFzaXNNYXJrSGVpZ2h0ID0gbGluZVN0eWxlLmZvbnRDYXNjYWRl
KCkuZW1waGFzaXNNYXJrSGVpZ2h0KGxpbmVTdHlsZS50ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkp
OworICAgICAgICBMYXlvdXRVbml0IGVtcGhhc2lzTWFya0hlaWdodCA9IGxpbmVTdHlsZS5mb250
Q2FzY2FkZSgpLmVtcGhhc2lzTWFya0hlaWdodChsaW5lU3R5bGUudGV4dEVtcGhhc2lzTWFya1N0
cmluZygpKTsKICAgICAgICAgaWYgKCptYXJrRXhpc3RzQW5kSXNBYm92ZSA9PSAhbGluZVN0eWxl
LmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIHRvcEdseXBoT3ZlcmZs
b3cgPSBzdGQ6Om1pbih0b3BHbHlwaE92ZXJmbG93LCAtZW1waGFzaXNNYXJrSGVpZ2h0KTsKICAg
ICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJv
b3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxp
bmVCb3guY3BwCmluZGV4IDM0ZWFkOGE5ZDRmOTkyNDg3ZGFkNTJmY2U1OTliNjA0YmEwODJlZGMu
LjdhNTA5Y2IxZmMyYjg5MDhlNzAwZGY2ODRmOWZlOThhNGZmYjdiMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKQEAgLTg2NiwyMCAr
ODY2LDIwIEBAIHZvaWQgTGVnYWN5Um9vdElubGluZUJveDo6YXNjZW50QW5kRGVzY2VudEZvckJv
eChMZWdhY3lJbmxpbmVCb3gmIGJveCwgR2x5cGhPdmVyCiAgICAgICAgIHNldEFzY2VudEFuZERl
c2NlbnQoYXNjZW50LCBkZXNjZW50LCBnbHlwaE92ZXJmbG93LT50b3AsIGdseXBoT3ZlcmZsb3ct
PmJvdHRvbSwgYXNjZW50RGVzY2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBnbHlw
aE92ZXJmbG93LT50b3AgLSBib3gubG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgYWZmZWN0c0Rl
c2NlbnQgPSBnbHlwaE92ZXJmbG93LT5ib3R0b20gKyBib3gubG9naWNhbFRvcCgpID4gMDsKLSAg
ICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBz
dGQ6Om1heCgwLCBnbHlwaE92ZXJmbG93LT50b3AgLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3Mo
KS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7Ci0gICAgICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRv
bSA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgc3RkOjptYXgoMCwgZ2x5cGhPdmVy
Zmxvdy0+Ym90dG9tIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGlu
ZVR5cGUoKSkpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0gc3RkOjptaW4oZ2x5cGhP
dmVyZmxvdy0+dG9wLCBzdGQ6Om1heCgwX2x1LCBnbHlwaE92ZXJmbG93LT50b3AgLSBib3hMaW5l
U3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CisgICAgICAgIGds
eXBoT3ZlcmZsb3ctPmJvdHRvbSA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgc3Rk
OjptYXgoMF9sdSwgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIC0gYm94TGluZVN0eWxlLmZvbnRNZXRy
aWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGlu
Y2x1ZGVJbml0aWFsTGV0dGVyRm9yQm94KGJveCkpIHsKICAgICAgICAgYm9vbCBjYW5Vc2VHbHlw
aHMgPSBnbHlwaE92ZXJmbG93ICYmIGdseXBoT3ZlcmZsb3ctPmNvbXB1dGVCb3VuZHM7Ci0gICAg
ICAgIExheW91dFVuaXQgbGV0dGVyQXNjZW50IHsgYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRp
Y0Jhc2VsaW5lID8gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuY2FwSGVpZ2h0KCkgOiAoY2Fu
VXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNz
KCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkgfTsKLSAgICAgICAgTGF5b3V0VW5pdCBsZXR0ZXJE
ZXNjZW50IHsgY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogKGJveC5pc1Jv
b3RJbmxpbmVCb3goKSA/IDAgOiBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJh
c2VsaW5lVHlwZSgpKSkgfTsKKyAgICAgICAgTGF5b3V0VW5pdCBsZXR0ZXJBc2NlbnQgeyBiYXNl
bGluZVR5cGUoKSA9PSBBbHBoYWJldGljQmFzZWxpbmUgPyBMYXlvdXRVbml0KGJveExpbmVTdHls
ZS5mb250TWV0cmljcygpLmNhcEhlaWdodCgpKSA6IChjYW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJm
bG93LT50b3AgOiBMYXlvdXRVbml0KGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChi
YXNlbGluZVR5cGUoKSkpKSB9OworICAgICAgICBMYXlvdXRVbml0IGxldHRlckRlc2NlbnQgeyBj
YW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJmbG93LT5ib3R0b20gOiAoYm94LmlzUm9vdElubGluZUJv
eCgpID8gMF9sdSA6IExheW91dFVuaXQoYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2Vu
dChiYXNlbGluZVR5cGUoKSkpKSB9OwogICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KGFzY2Vu
dCwgZGVzY2VudCwgbGV0dGVyQXNjZW50LCBsZXR0ZXJEZXNjZW50LCBhc2NlbnREZXNjZW50U2V0
KTsKICAgICAgICAgYWZmZWN0c0FzY2VudCA9IGxldHRlckFzY2VudCAtIGJveC5sb2dpY2FsVG9w
KCkgPiAwOwogICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGxldHRlckRlc2NlbnQgKyBib3gubG9n
aWNhbFRvcCgpID4gMDsKICAgICAgICAgaWYgKGNhblVzZUdseXBocykgewotICAgICAgICAgICAg
Z2x5cGhPdmVyZmxvdy0+dG9wID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBzdGQ6Om1h
eCgwLCBnbHlwaE92ZXJmbG93LT50b3AgLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2Nl
bnQoYmFzZWxpbmVUeXBlKCkpKSk7Ci0gICAgICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20g
PSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT5ib3R0b20sIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZs
b3ctPmJvdHRvbSAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVU
eXBlKCkpKSk7CisgICAgICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBzdGQ6Om1pbihnbHlw
aE92ZXJmbG93LT50b3AsIHN0ZDo6bWF4KDBfbHUsIGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveExp
bmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKKyAgICAgICAg
ICAgIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPmJvdHRv
bSwgc3RkOjptYXgoMF9sdSwgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIC0gYm94TGluZVN0eWxlLmZv
bnRNZXRyaWNzKCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDlkMjM4NzE1Mzc1
NWM3MzdlYjg4Y2Q1NDlhOGM0NWViM2QxNjY3MDkuLjljOTdlMDhjMTlhYjQzMmI3YTYwMWUyYWYw
N2YwNDMyYjgxNzVlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAK
QEAgLTEwMDgsNyArMTAwOCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMoZmxvYXQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IEZvCiAgICAgICAgIG1p
bmltdW1TdWZmaXhMZW5ndGggPSBhZnRlciA8IDAgPyAyIDogYWZ0ZXI7CiAgICAgfQogCi0gICAg
c3RkOjpvcHRpb25hbDxpbnQ+IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CisgICAgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBmaXJzdEdseXBoTGVmdE92ZXJmbG93OwogCiAgICAgYm9vbCBicmVh
a05CU1AgPSBzdHlsZS5hdXRvV3JhcCgpICYmIHN0eWxlLm5ic3BNb2RlKCkgPT0gTkJTUE1vZGU6
OlNwYWNlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4
dEJveFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5j
cHAKaW5kZXggOThkNDhiNWM5MTBmZTA1NGIyNGFmOGMwZTA5NDhmNzIxOTBkZTJiZC4uOWRiZjk1
Mjg2NDUxZDQwOTNiYTAwZWEwZjk0OTBiMjNjZDliYjRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCkBAIC05Nyw5ICs5Nyw5IEBAIFdhdnlTdHJva2VQ
YXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IGZvbnRTaXplKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBleHRlbmRJbnRUb0Zsb2F0KGlu
dCYgZXh0ZW5kTWUsIGZsb2F0IGV4dGVuZFRvKQorc3RhdGljIGlubGluZSB2b2lkIGV4dGVuZElu
dFRvRmxvYXQoTGF5b3V0VW5pdCYgZXh0ZW5kTWUsIGZsb2F0IGV4dGVuZFRvKQogewotICAgIGV4
dGVuZE1lID0gc3RkOjptYXgoZXh0ZW5kTWUsIHN0YXRpY19jYXN0PGludD4oY2VpbGYoZXh0ZW5k
VG8pKSk7CisgICAgZXh0ZW5kTWUgPSBzdGQ6Om1heChleHRlbmRNZSwgTGF5b3V0VW5pdChjZWls
ZihleHRlbmRUbykpKTsKIH0KIAogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29y
YXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGNvbnN0IExlZ2FjeUlubGluZVRl
eHRCb3gqIGlubGluZVRleHRCb3gpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434697</attachid>
            <date>2021-07-31 07:04:04 -0700</date>
            <delta_ts>2021-07-31 09:54:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210731160402.patch</filename>
            <type>text/plain</type>
            <size>11766</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTljZDM4ZWEwYjFmOWVh
MWY4MWI2Nzk3NWQ2ZGNjNmFmYzY5YWJmNC4uNWYwZDE1M2ZiODcxMjVhNzI3YjgzN2YzNWIxMjkx
MzNmMjg3NWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTMxICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93
IHRvIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93IHRvIExheW91dFVuaXRz
IGluc3RlYWQgb2YgaW50cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmg6CisgICAgICAgICogcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJm
bG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lSb290SW5saW5lQm94Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAg
ICAgICogc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4
dGVuZEludFRvRmxvYXQpOgorCiAyMDIxLTA3LTMxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVl
dWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4MDQ4OC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCmluZGV4
IDZlY2EyNDdlYTljOGE5MWQ3MjgxN2E1MTIzY2I3MzQ1MDJkNzMyYjcuLjZjNTA2NTdiMTkzZGY5
NWI4ZTRkMDMxZWEzZDg5ZjVlYjUyOWIwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAtNjcsMTYgKzY3LDI2IEBAIHN0cnVjdCBHbHlw
aE92ZXJmbG93IHsKICAgICAgICAgYm90dG9tID0gc3RkOjptYXgoYm90dG9tLCBvdGhlci5ib3R0
b20pOwogICAgIH0KIAorICAgIHZvaWQgZXh0ZW5kVG9wKGZsb2F0IGV4dGVuZFRvKQorICAgIHsK
KyAgICAgICAgdG9wID0gc3RkOjptYXgodG9wLCBMYXlvdXRVbml0KGNlaWxmKGV4dGVuZFRvKSkp
OworICAgIH0KKworICAgIHZvaWQgZXh0ZW5kQm90dG9tKGZsb2F0IGV4dGVuZFRvKQorICAgIHsK
KyAgICAgICAgYm90dG9tID0gc3RkOjptYXgoYm90dG9tLCBMYXlvdXRVbml0KGNlaWxmKGV4dGVu
ZFRvKSkpOworICAgIH0KKwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBHbHlwaE92ZXJmbG93
JiBvdGhlcikKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBQcm9iYWJseSBzaG91bGQgbmFtZSB0
aGlzIHJhdGhlciB0aGFuIG1ha2luZyBpdCB0aGUgIT0gb3BlcmF0b3Igc2luY2UgaXQgaWdub3Jl
cyB0aGUgdmFsdWUgb2YgY29tcHV0ZUJvdW5kcy4KICAgICAgICAgcmV0dXJuIGxlZnQgIT0gb3Ro
ZXIubGVmdCB8fCByaWdodCAhPSBvdGhlci5yaWdodCB8fCB0b3AgIT0gb3RoZXIudG9wIHx8IGJv
dHRvbSAhPSBvdGhlci5ib3R0b207CiAgICAgfQogCi0gICAgaW50IGxlZnQgeyAwIH07Ci0gICAg
aW50IHJpZ2h0IHsgMCB9OwotICAgIGludCB0b3AgeyAwIH07Ci0gICAgaW50IGJvdHRvbSB7IDAg
fTsKKyAgICBMYXlvdXRVbml0IGxlZnQ7CisgICAgTGF5b3V0VW5pdCByaWdodDsKKyAgICBMYXlv
dXRVbml0IHRvcDsKKyAgICBMYXlvdXRVbml0IGJvdHRvbTsKICAgICBib29sIGNvbXB1dGVCb3Vu
ZHMgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeUlubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2Fj
eUlubGluZUZsb3dCb3guY3BwCmluZGV4IDA0MTQ0MjI1MGRmYmI0M2EwYmVjYzIxYzgzNmMzMDMy
MjNiNzU4OGIuLjhjNGNkYjE5OWQ5ZGY4MjIyOTMyNWE0YjQ0YjZmNWE3ZTk1ZDc3ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAKQEAg
LTkzMywyMCArOTMzLDIwIEBAIGlubGluZSB2b2lkIExlZ2FjeUlubGluZUZsb3dCb3g6OmFkZFRl
eHRCb3hWaXN1YWxPdmVyZmxvdyhMZWdhY3lJbmxpbmVUZXh0Qm94JiB0CiAgICAgR2x5cGhPdmVy
ZmxvdyogZ2x5cGhPdmVyZmxvdyA9IGl0ID09IHRleHRCb3hEYXRhTWFwLmVuZCgpID8gbnVsbHB0
ciA6ICZpdC0+dmFsdWUuc2Vjb25kOwogICAgIGJvb2wgaXNGbGlwcGVkTGluZSA9IGxpbmVTdHls
ZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCk7CiAKLSAgICBpbnQgdG9wR2x5cGhFZGdlID0g
Z2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDog
Z2x5cGhPdmVyZmxvdy0+dG9wKSA6IDA7Ci0gICAgaW50IGJvdHRvbUdseXBoRWRnZSA9IGdseXBo
T3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGluZSA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGdseXBoT3Zl
cmZsb3ctPmJvdHRvbSkgOiAwOwotICAgIGludCBsZWZ0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxv
dyA/IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwOwotICAgIGludCByaWdodEdseXBoRWRnZSA9IGds
eXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5yaWdodCA6IDA7CisgICAgTGF5b3V0VW5pdCB0
b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxpcHBlZExpbmUgPyBnbHlwaE92ZXJm
bG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93LT50b3ApIDogMF9sdTsKKyAgICBMYXlvdXRVbml0
IGJvdHRvbUdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGluZSA/IGdseXBo
T3ZlcmZsb3ctPnRvcCA6IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSkgOiAwX2x1OworICAgIExheW91
dFVuaXQgbGVmdEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyBnbHlwaE92ZXJmbG93LT5sZWZ0
IDogMF9sdTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/
IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDogMF9sdTsKIAogICAgIGF1dG8gdmlld3BvcnRTaXplID0g
dGV4dEJveC5yZW5kZXJlcigpLmZyYW1lKCkudmlldygpID8gdGV4dEJveC5yZW5kZXJlcigpLmZy
YW1lKCkudmlldygpLT5zaXplKCkgOiBJbnRTaXplKCk7CiAgICAgaW50IHN0cm9rZU92ZXJmbG93
ID0gc3RkOjpjZWlsKGxpbmVTdHlsZS5jb21wdXRlZFN0cm9rZVdpZHRoKHZpZXdwb3J0U2l6ZSkg
LyAyLjBmKTsKLSAgICBpbnQgdG9wR2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIHRv
cEdseXBoRWRnZTsKLSAgICBpbnQgYm90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93
ICsgYm90dG9tR2x5cGhFZGdlOwotICAgIGludCBsZWZ0R2x5cGhPdmVyZmxvdyA9IC1zdHJva2VP
dmVyZmxvdyAtIGxlZnRHbHlwaEVkZ2U7Ci0gICAgaW50IHJpZ2h0R2x5cGhPdmVyZmxvdyA9IHN0
cm9rZU92ZXJmbG93ICsgcmlnaHRHbHlwaEVkZ2U7CisgICAgTGF5b3V0VW5pdCB0b3BHbHlwaE92
ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOworICAgIExheW91dFVuaXQg
Ym90dG9tR2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92ZXJmbG93ICsgYm90dG9tR2x5cGhFZGdlOwor
ICAgIExheW91dFVuaXQgbGVmdEdseXBoT3ZlcmZsb3cgPSAtc3Ryb2tlT3ZlcmZsb3cgLSBsZWZ0
R2x5cGhFZGdlOworICAgIExheW91dFVuaXQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3Zl
cmZsb3cgKyByaWdodEdseXBoRWRnZTsKIAogICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IG1h
cmtFeGlzdHNBbmRJc0Fib3ZlID0gdGV4dEJveC5lbXBoYXNpc01hcmtFeGlzdHNBbmRJc0Fib3Zl
KGxpbmVTdHlsZSkpIHsKLSAgICAgICAgaW50IGVtcGhhc2lzTWFya0hlaWdodCA9IGxpbmVTdHls
ZS5mb250Q2FzY2FkZSgpLmVtcGhhc2lzTWFya0hlaWdodChsaW5lU3R5bGUudGV4dEVtcGhhc2lz
TWFya1N0cmluZygpKTsKKyAgICAgICAgTGF5b3V0VW5pdCBlbXBoYXNpc01hcmtIZWlnaHQgPSBs
aW5lU3R5bGUuZm9udENhc2NhZGUoKS5lbXBoYXNpc01hcmtIZWlnaHQobGluZVN0eWxlLnRleHRF
bXBoYXNpc01hcmtTdHJpbmcoKSk7CiAgICAgICAgIGlmICgqbWFya0V4aXN0c0FuZElzQWJvdmUg
PT0gIWxpbmVTdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICB0
b3BHbHlwaE92ZXJmbG93ID0gc3RkOjptaW4odG9wR2x5cGhPdmVyZmxvdywgLWVtcGhhc2lzTWFy
a0hlaWdodCk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lSb290SW5saW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
ZWdhY3lSb290SW5saW5lQm94LmNwcAppbmRleCAzNGVhZDhhOWQ0Zjk5MjQ4N2RhZDUyZmNlNTk5
YjYwNGJhMDgyZWRjLi43YTUwOWNiMWZjMmI4OTA4ZTcwMGRmNjg0ZjlmZTk4YTRmZmI3YjE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3Bw
CkBAIC04NjYsMjAgKzg2NiwyMCBAQCB2b2lkIExlZ2FjeVJvb3RJbmxpbmVCb3g6OmFzY2VudEFu
ZERlc2NlbnRGb3JCb3goTGVnYWN5SW5saW5lQm94JiBib3gsIEdseXBoT3ZlcgogICAgICAgICBz
ZXRBc2NlbnRBbmREZXNjZW50KGFzY2VudCwgZGVzY2VudCwgZ2x5cGhPdmVyZmxvdy0+dG9wLCBn
bHlwaE92ZXJmbG93LT5ib3R0b20sIGFzY2VudERlc2NlbnRTZXQpOwogICAgICAgICBhZmZlY3Rz
QXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAg
ICAgIGFmZmVjdHNEZXNjZW50ID0gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tICsgYm94LmxvZ2ljYWxU
b3AoKSA+IDA7Ci0gICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IHN0ZDo6bWluKGdseXBoT3Zl
cmZsb3ctPnRvcCwgc3RkOjptYXgoMCwgZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94TGluZVN0eWxl
LmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwotICAgICAgICBnbHlwaE92
ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT5ib3R0b20sIHN0ZDo6bWF4
KDAsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmRl
c2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CisgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IHN0
ZDo6bWluKGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMF9sdSwgZ2x5cGhPdmVyZmxvdy0+
dG9wIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkp
OworICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93
LT5ib3R0b20sIHN0ZDo6bWF4KDBfbHUsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAtIGJveExpbmVT
dHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CiAgICAgfQogICAg
IAogICAgIGlmIChpbmNsdWRlSW5pdGlhbExldHRlckZvckJveChib3gpKSB7CiAgICAgICAgIGJv
b2wgY2FuVXNlR2x5cGhzID0gZ2x5cGhPdmVyZmxvdyAmJiBnbHlwaE92ZXJmbG93LT5jb21wdXRl
Qm91bmRzOwotICAgICAgICBMYXlvdXRVbml0IGxldHRlckFzY2VudCB7IGJhc2VsaW5lVHlwZSgp
ID09IEFscGhhYmV0aWNCYXNlbGluZSA/IGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmNhcEhl
aWdodCgpIDogKGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IGJveExpbmVTdHls
ZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpIH07Ci0gICAgICAgIExheW91
dFVuaXQgbGV0dGVyRGVzY2VudCB7IGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRv
bSA6IChib3guaXNSb290SW5saW5lQm94KCkgPyAwIDogYm94TGluZVN0eWxlLmZvbnRNZXRyaWNz
KCkuZGVzY2VudChiYXNlbGluZVR5cGUoKSkpIH07CisgICAgICAgIExheW91dFVuaXQgbGV0dGVy
QXNjZW50IHsgYmFzZWxpbmVUeXBlKCkgPT0gQWxwaGFiZXRpY0Jhc2VsaW5lID8gTGF5b3V0VW5p
dChib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5jYXBIZWlnaHQoKSkgOiAoY2FuVXNlR2x5cGhz
ID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogTGF5b3V0VW5pdChib3hMaW5lU3R5bGUuZm9udE1ldHJp
Y3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSkgfTsKKyAgICAgICAgTGF5b3V0VW5pdCBsZXR0
ZXJEZXNjZW50IHsgY2FuVXNlR2x5cGhzID8gZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIDogKGJveC5p
c1Jvb3RJbmxpbmVCb3goKSA/IDBfbHUgOiBMYXlvdXRVbml0KGJveExpbmVTdHlsZS5mb250TWV0
cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSkgfTsKICAgICAgICAgc2V0QXNjZW50QW5k
RGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGxldHRlckFzY2VudCwgbGV0dGVyRGVzY2VudCwgYXNj
ZW50RGVzY2VudFNldCk7CiAgICAgICAgIGFmZmVjdHNBc2NlbnQgPSBsZXR0ZXJBc2NlbnQgLSBi
b3gubG9naWNhbFRvcCgpID4gMDsKICAgICAgICAgYWZmZWN0c0Rlc2NlbnQgPSBsZXR0ZXJEZXNj
ZW50ICsgYm94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGlmIChjYW5Vc2VHbHlwaHMpIHsK
LSAgICAgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ct
PnRvcCwgc3RkOjptYXgoMCwgZ2x5cGhPdmVyZmxvdy0+dG9wIC0gYm94TGluZVN0eWxlLmZvbnRN
ZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwotICAgICAgICAgICAgZ2x5cGhPdmVy
Zmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBzdGQ6Om1heCgw
LCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNj
ZW50KGJhc2VsaW5lVHlwZSgpKSkpOworICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy0+dG9wID0g
c3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+dG9wLCBzdGQ6Om1heCgwX2x1LCBnbHlwaE92ZXJmbG93
LT50b3AgLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkp
KSk7CisgICAgICAgICAgICBnbHlwaE92ZXJmbG93LT5ib3R0b20gPSBzdGQ6Om1pbihnbHlwaE92
ZXJmbG93LT5ib3R0b20sIHN0ZDo6bWF4KDBfbHUsIGdseXBoT3ZlcmZsb3ctPmJvdHRvbSAtIGJv
eExpbmVTdHlsZS5mb250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSk7CiAgICAg
ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRl
eCA5ZDIzODcxNTM3NTVjNzM3ZWI4OGNkNTQ5YThjNDVlYjNkMTY2NzA5Li45Yzk3ZTA4YzE5YWI0
MzJiN2E2MDFlMmFmMDdmMDQzMmI4MTc1ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1
dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBG
bwogICAgICAgICBtaW5pbXVtU3VmZml4TGVuZ3RoID0gYWZ0ZXIgPCAwID8gMiA6IGFmdGVyOwog
ICAgIH0KIAotICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBmaXJzdEdseXBoTGVmdE92ZXJmbG93Owor
ICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RHbHlwaExlZnRPdmVyZmxvdzsKIAog
ICAgIGJvb2wgYnJlYWtOQlNQID0gc3R5bGUuYXV0b1dyYXAoKSAmJiBzdHlsZS5uYnNwTW9kZSgp
ID09IE5CU1BNb2RlOjpTcGFjZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVU
ZXh0Qm94U3R5bGUuY3BwCmluZGV4IDk4ZDQ4YjVjOTEwZmUwNTRiMjRhZjhjMGUwOTQ4ZjcyMTkw
ZGUyYmQuLjhhOTZjM2YwM2YzMmNkYjYxMDA0NTAxOTI3YWRkZjcyZjg1YjVlMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcApAQCAtOTcsMTEgKzk3LDYg
QEAgV2F2eVN0cm9rZVBhcmFtZXRlcnMgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMoZmxvYXQgZm9u
dFNpemUpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGV4dGVu
ZEludFRvRmxvYXQoaW50JiBleHRlbmRNZSwgZmxvYXQgZXh0ZW5kVG8pCi17Ci0gICAgZXh0ZW5k
TWUgPSBzdGQ6Om1heChleHRlbmRNZSwgc3RhdGljX2Nhc3Q8aW50PihjZWlsZihleHRlbmRUbykp
KTsKLX0KLQogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0
IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqIGlubGlu
ZVRleHRCb3gpCiB7CiAgICAgQVNTRVJUKCFpbmxpbmVUZXh0Qm94IHx8IGlubGluZVRleHRCb3gt
PmxpbmVTdHlsZSgpID09IGxpbmVTdHlsZSk7CkBAIC0xMzQsMTEgKzEyOSwxMSBAQCBHbHlwaE92
ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxp
bmVTdHlsZSwgY29uc3QgTAogICAgICAgICBhdXRvIGRlZmF1bHRHYXAgPSBsaW5lU3R5bGUuY29t
cHV0ZWRGb250U2l6ZSgpIC8gdGV4dERlY29yYXRpb25CYXNlRm9udFNpemU7CiAgICAgICAgIHVu
ZGVybGluZU9mZnNldCArPSBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KGxpbmVTdHlsZS50ZXh0VW5k
ZXJsaW5lUG9zaXRpb24oKSwgbGluZVN0eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQoKSwgbGluZVN0
eWxlLmZvbnRNZXRyaWNzKCksIGlubGluZVRleHRCb3gsIGRlZmF1bHRHYXApOwogICAgICAgICBp
ZiAoZGVjb3JhdGlvblN0eWxlID09IFRleHREZWNvcmF0aW9uU3R5bGU6OldhdnkpIHsKLSAgICAg
ICAgICAgIGV4dGVuZEludFRvRmxvYXQob3ZlcmZsb3dSZXN1bHQuYm90dG9tLCB1bmRlcmxpbmVP
ZmZzZXQgKyB3YXZ5T2Zmc2V0ICsgd2F2eVN0cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50RGlz
dGFuY2UgKyBzdHJva2VUaGlja25lc3MgLSBoZWlnaHQpOwotICAgICAgICAgICAgZXh0ZW5kSW50
VG9GbG9hdChvdmVyZmxvd1Jlc3VsdC50b3AsIC0odW5kZXJsaW5lT2Zmc2V0ICsgd2F2eU9mZnNl
dCAtIHdhdnlTdHJva2VQYXJhbWV0ZXJzLmNvbnRyb2xQb2ludERpc3RhbmNlIC0gc3Ryb2tlVGhp
Y2tuZXNzKSk7CisgICAgICAgICAgICBvdmVyZmxvd1Jlc3VsdC5leHRlbmRCb3R0b20odW5kZXJs
aW5lT2Zmc2V0ICsgd2F2eU9mZnNldCArIHdhdnlTdHJva2VQYXJhbWV0ZXJzLmNvbnRyb2xQb2lu
dERpc3RhbmNlICsgc3Ryb2tlVGhpY2tuZXNzIC0gaGVpZ2h0KTsKKyAgICAgICAgICAgIG92ZXJm
bG93UmVzdWx0LmV4dGVuZFRvcCgtKHVuZGVybGluZU9mZnNldCArIHdhdnlPZmZzZXQgLSB3YXZ5
U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9pbnREaXN0YW5jZSAtIHN0cm9rZVRoaWNrbmVzcykp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZXh0ZW5kSW50VG9GbG9hdChvdmVyZmxv
d1Jlc3VsdC5ib3R0b20sIHVuZGVybGluZU9mZnNldCArIHN0cm9rZVRoaWNrbmVzcyAtIGhlaWdo
dCk7Ci0gICAgICAgICAgICBleHRlbmRJbnRUb0Zsb2F0KG92ZXJmbG93UmVzdWx0LnRvcCwgLXVu
ZGVybGluZU9mZnNldCk7CisgICAgICAgICAgICBvdmVyZmxvd1Jlc3VsdC5leHRlbmRCb3R0b20o
dW5kZXJsaW5lT2Zmc2V0ICsgc3Ryb2tlVGhpY2tuZXNzIC0gaGVpZ2h0KTsKKyAgICAgICAgICAg
IG92ZXJmbG93UmVzdWx0LmV4dGVuZFRvcCgtdW5kZXJsaW5lT2Zmc2V0KTsKICAgICAgICAgfQog
ICAgIH0KICAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uOjpPdmVybGluZSkgewpA
QCAtMTUxLDggKzE0Niw4IEBAIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0
aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlLCBjb25zdCBMCiAgICAgICAgICAgICB3
YXZ5RXhwYW5zaW9uLnNldEJvdHRvbSh3YXZ5U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9pbnRE
aXN0YW5jZSk7CiAgICAgICAgICAgICByZWN0LmV4cGFuZCh3YXZ5RXhwYW5zaW9uKTsKICAgICAg
ICAgfQotICAgICAgICBleHRlbmRJbnRUb0Zsb2F0KG92ZXJmbG93UmVzdWx0LnRvcCwgLXJlY3Qu
eSgpKTsKLSAgICAgICAgZXh0ZW5kSW50VG9GbG9hdChvdmVyZmxvd1Jlc3VsdC5ib3R0b20sIHJl
Y3QubWF4WSgpIC0gaGVpZ2h0KTsKKyAgICAgICAgb3ZlcmZsb3dSZXN1bHQuZXh0ZW5kVG9wKC1y
ZWN0LnkoKSk7CisgICAgICAgIG92ZXJmbG93UmVzdWx0LmV4dGVuZEJvdHRvbShyZWN0Lm1heFko
KSAtIGhlaWdodCk7CiAgICAgfQogICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb246
OkxpbmVUaHJvdWdoKSB7CiAgICAgICAgIEZsb2F0UmVjdCByZWN0KEZsb2F0UG9pbnQoKSwgRmxv
YXRTaXplKDEsIHN0cm9rZVRoaWNrbmVzcykpOwpAQCAtMTY1LDggKzE2MCw4IEBAIEdseXBoT3Zl
cmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGlu
ZVN0eWxlLCBjb25zdCBMCiAgICAgICAgICAgICB3YXZ5RXhwYW5zaW9uLnNldEJvdHRvbSh3YXZ5
U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9pbnREaXN0YW5jZSk7CiAgICAgICAgICAgICByZWN0
LmV4cGFuZCh3YXZ5RXhwYW5zaW9uKTsKICAgICAgICAgfQotICAgICAgICBleHRlbmRJbnRUb0Zs
b2F0KG92ZXJmbG93UmVzdWx0LnRvcCwgLXJlY3QueSgpKTsKLSAgICAgICAgZXh0ZW5kSW50VG9G
bG9hdChvdmVyZmxvd1Jlc3VsdC5ib3R0b20sIHJlY3QubWF4WSgpIC0gaGVpZ2h0KTsKKyAgICAg
ICAgb3ZlcmZsb3dSZXN1bHQuZXh0ZW5kVG9wKC1yZWN0LnkoKSk7CisgICAgICAgIG92ZXJmbG93
UmVzdWx0LmV4dGVuZEJvdHRvbShyZWN0Lm1heFkoKSAtIGhlaWdodCk7CiAgICAgfQogICAgIHJl
dHVybiBvdmVyZmxvd1Jlc3VsdDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434700</attachid>
            <date>2021-07-31 09:55:02 -0700</date>
            <delta_ts>2021-08-01 02:26:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210731185501.patch</filename>
            <type>text/plain</type>
            <size>11938</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTljZDM4ZWEwYjFmOWVh
MWY4MWI2Nzk3NWQ2ZGNjNmFmYzY5YWJmNC4uN2I0MDUzYTg5YzYwYjY2MDkxYjE1ZTc4NTA1N2Zj
NDkzMDRiN2NhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA3LTMxICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93
IHRvIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93IHRvIExheW91dFVuaXRz
IGluc3RlYWQgb2YgaW50cy4gVGhpcworICAgICAgICBpcyBhbm90aGVyIHN0ZXAgaW4gdGhlIGRp
cmVjdGlvbiBvZiBzdWJwaXhlbCBsYXlvdXQvcmVuZGVyaW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5s
aW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lJbmxpbmVGbG93Qm94Ojph
ZGRUZXh0Qm94VmlzdWFsT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lSb290
SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJvb3RJbmxpbmVCb3g6OmFz
Y2VudEFuZERlc2NlbnRGb3JCb3ggY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXh0ZW5kSW50VG9GbG9hdCk6CisKIDIwMjEtMDctMzEgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjgwNDg4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmgKaW5kZXggNmVjYTI0N2VhOWM4YTkxZDcyODE3YTUxMjNjYjczNDUwMmQ3
MzJiNy4uNmM1MDY1N2IxOTNkZjk1YjhlNGQwMzFlYTNkODlmNWViNTI5YjA0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBAIC02NywxNiAr
NjcsMjYgQEAgc3RydWN0IEdseXBoT3ZlcmZsb3cgewogICAgICAgICBib3R0b20gPSBzdGQ6Om1h
eChib3R0b20sIG90aGVyLmJvdHRvbSk7CiAgICAgfQogCisgICAgdm9pZCBleHRlbmRUb3AoZmxv
YXQgZXh0ZW5kVG8pCisgICAgeworICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIExheW91dFVu
aXQoY2VpbGYoZXh0ZW5kVG8pKSk7CisgICAgfQorCisgICAgdm9pZCBleHRlbmRCb3R0b20oZmxv
YXQgZXh0ZW5kVG8pCisgICAgeworICAgICAgICBib3R0b20gPSBzdGQ6Om1heChib3R0b20sIExh
eW91dFVuaXQoY2VpbGYoZXh0ZW5kVG8pKSk7CisgICAgfQorCiAgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IEdseXBoT3ZlcmZsb3cmIG90aGVyKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IFBy
b2JhYmx5IHNob3VsZCBuYW1lIHRoaXMgcmF0aGVyIHRoYW4gbWFraW5nIGl0IHRoZSAhPSBvcGVy
YXRvciBzaW5jZSBpdCBpZ25vcmVzIHRoZSB2YWx1ZSBvZiBjb21wdXRlQm91bmRzLgogICAgICAg
ICByZXR1cm4gbGVmdCAhPSBvdGhlci5sZWZ0IHx8IHJpZ2h0ICE9IG90aGVyLnJpZ2h0IHx8IHRv
cCAhPSBvdGhlci50b3AgfHwgYm90dG9tICE9IG90aGVyLmJvdHRvbTsKICAgICB9CiAKLSAgICBp
bnQgbGVmdCB7IDAgfTsKLSAgICBpbnQgcmlnaHQgeyAwIH07Ci0gICAgaW50IHRvcCB7IDAgfTsK
LSAgICBpbnQgYm90dG9tIHsgMCB9OworICAgIExheW91dFVuaXQgbGVmdDsKKyAgICBMYXlvdXRV
bml0IHJpZ2h0OworICAgIExheW91dFVuaXQgdG9wOworICAgIExheW91dFVuaXQgYm90dG9tOwog
ICAgIGJvb2wgY29tcHV0ZUJvdW5kcyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAKaW5kZXggMDQxNDQyMjUwZGZi
YjQzYTBiZWNjMjFjODM2YzMwMzIyM2I3NTg4Yi4uNDk5YjQ2MTNmOWZmYTg3Mzc2ZTM4MWQ5M2Y1
MjJmNTc0YjkwODJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2Fj
eUlubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJ
bmxpbmVGbG93Qm94LmNwcApAQCAtOTMzLDIwICs5MzMsMjAgQEAgaW5saW5lIHZvaWQgTGVnYWN5
SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KExlZ2FjeUlubGluZVRleHRC
b3gmIHQKICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gaXQgPT0gdGV4dEJveERh
dGFNYXAuZW5kKCkgPyBudWxscHRyIDogJml0LT52YWx1ZS5zZWNvbmQ7CiAgICAgYm9vbCBpc0Zs
aXBwZWRMaW5lID0gbGluZVN0eWxlLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKTsKIAotICAg
IGludCB0b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxpcHBlZExpbmUgPyBnbHlw
aE92ZXJmbG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93LT50b3ApIDogMDsKLSAgICBpbnQgYm90
dG9tR2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVy
Zmxvdy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKSA6IDA7Ci0gICAgaW50IGxlZnRHbHlw
aEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+bGVmdCA6IDA7Ci0gICAgaW50
IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDog
MDsKKyAgICBMYXlvdXRVbml0IHRvcEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlw
cGVkTGluZSA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IGdseXBoT3ZlcmZsb3ctPnRvcCkgOiAw
X2x1OworICAgIExheW91dFVuaXQgYm90dG9tR2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChp
c0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9t
KSA6IDBfbHU7CisgICAgTGF5b3V0VW5pdCBsZWZ0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/
IGdseXBoT3ZlcmZsb3ctPmxlZnQgOiAwX2x1OworICAgIExheW91dFVuaXQgcmlnaHRHbHlwaEVk
Z2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+cmlnaHQgOiAwX2x1OwogCiAgICAg
YXV0byB2aWV3cG9ydFNpemUgPSB0ZXh0Qm94LnJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCkgPyB0
ZXh0Qm94LnJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCktPnNpemUoKSA6IEludFNpemUoKTsKLSAg
ICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBzdGQ6OmNlaWwobGluZVN0eWxlLmNvbXB1dGVkU3Ryb2tl
V2lkdGgodmlld3BvcnRTaXplKSAvIDIuMGYpOwotICAgIGludCB0b3BHbHlwaE92ZXJmbG93ID0g
LXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5cGhFZGdlOwotICAgIGludCBib3R0b21HbHlwaE92ZXJm
bG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBib3R0b21HbHlwaEVkZ2U7Ci0gICAgaW50IGxlZnRHbHlw
aE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVmdEdseXBoRWRnZTsKLSAgICBpbnQgcmln
aHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyByaWdodEdseXBoRWRnZTsKKyAgICBM
YXlvdXRVbml0IHN0cm9rZU92ZXJmbG93KHN0ZDo6Y2VpbChsaW5lU3R5bGUuY29tcHV0ZWRTdHJv
a2VXaWR0aCh2aWV3cG9ydFNpemUpIC8gMi4wZikpOworICAgIExheW91dFVuaXQgdG9wR2x5cGhP
dmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIHRvcEdseXBoRWRnZTsKKyAgICBMYXlvdXRVbml0
IGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxvdyArIGJvdHRvbUdseXBoRWRnZTsK
KyAgICBMYXlvdXRVbml0IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gbGVm
dEdseXBoRWRnZTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0R2x5cGhPdmVyZmxvdyA9IHN0cm9rZU92
ZXJmbG93ICsgcmlnaHRHbHlwaEVkZ2U7CiAKICAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiBt
YXJrRXhpc3RzQW5kSXNBYm92ZSA9IHRleHRCb3guZW1waGFzaXNNYXJrRXhpc3RzQW5kSXNBYm92
ZShsaW5lU3R5bGUpKSB7Ci0gICAgICAgIGludCBlbXBoYXNpc01hcmtIZWlnaHQgPSBsaW5lU3R5
bGUuZm9udENhc2NhZGUoKS5lbXBoYXNpc01hcmtIZWlnaHQobGluZVN0eWxlLnRleHRFbXBoYXNp
c01hcmtTdHJpbmcoKSk7CisgICAgICAgIExheW91dFVuaXQgZW1waGFzaXNNYXJrSGVpZ2h0ID0g
bGluZVN0eWxlLmZvbnRDYXNjYWRlKCkuZW1waGFzaXNNYXJrSGVpZ2h0KGxpbmVTdHlsZS50ZXh0
RW1waGFzaXNNYXJrU3RyaW5nKCkpOwogICAgICAgICBpZiAoKm1hcmtFeGlzdHNBbmRJc0Fib3Zl
ID09ICFsaW5lU3R5bGUuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAg
dG9wR2x5cGhPdmVyZmxvdyA9IHN0ZDo6bWluKHRvcEdseXBoT3ZlcmZsb3csIC1lbXBoYXNpc01h
cmtIZWlnaHQpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGVnYWN5Um9vdElubGluZUJveC5jcHAKaW5kZXggMzRlYWQ4YTlkNGY5OTI0ODdkYWQ1MmZjZTU5
OWI2MDRiYTA4MmVkYy4uN2E1MDljYjFmYzJiODkwOGU3MDBkZjY4NGY5ZmU5OGE0ZmZiN2IxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNw
cApAQCAtODY2LDIwICs4NjYsMjAgQEAgdm9pZCBMZWdhY3lSb290SW5saW5lQm94Ojphc2NlbnRB
bmREZXNjZW50Rm9yQm94KExlZ2FjeUlubGluZUJveCYgYm94LCBHbHlwaE92ZXIKICAgICAgICAg
c2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGdseXBoT3ZlcmZsb3ctPnRvcCwg
Z2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBhc2NlbnREZXNjZW50U2V0KTsKICAgICAgICAgYWZmZWN0
c0FzY2VudCA9IGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveC5sb2dpY2FsVG9wKCkgPiAwOwogICAg
ICAgICBhZmZlY3RzRGVzY2VudCA9IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSArIGJveC5sb2dpY2Fs
VG9wKCkgPiAwOwotICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBzdGQ6Om1pbihnbHlwaE92
ZXJmbG93LT50b3AsIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveExpbmVTdHls
ZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKLSAgICAgICAgZ2x5cGhP
dmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBzdGQ6Om1h
eCgwLCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5k
ZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOworICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBz
dGQ6Om1pbihnbHlwaE92ZXJmbG93LT50b3AsIHN0ZDo6bWF4KDBfbHUsIGdseXBoT3ZlcmZsb3ct
PnRvcCAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkp
KTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxv
dy0+Ym90dG9tLCBzdGQ6Om1heCgwX2x1LCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBib3hMaW5l
U3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwogICAgIH0KICAg
ICAKICAgICBpZiAoaW5jbHVkZUluaXRpYWxMZXR0ZXJGb3JCb3goYm94KSkgewogICAgICAgICBi
b29sIGNhblVzZUdseXBocyA9IGdseXBoT3ZlcmZsb3cgJiYgZ2x5cGhPdmVyZmxvdy0+Y29tcHV0
ZUJvdW5kczsKLSAgICAgICAgTGF5b3V0VW5pdCBsZXR0ZXJBc2NlbnQgeyBiYXNlbGluZVR5cGUo
KSA9PSBBbHBoYWJldGljQmFzZWxpbmUgPyBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5jYXBI
ZWlnaHQoKSA6IChjYW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJmbG93LT50b3AgOiBib3hMaW5lU3R5
bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSB9OwotICAgICAgICBMYXlv
dXRVbml0IGxldHRlckRlc2NlbnQgeyBjYW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJmbG93LT5ib3R0
b20gOiAoYm94LmlzUm9vdElubGluZUJveCgpID8gMCA6IGJveExpbmVTdHlsZS5mb250TWV0cmlj
cygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSB9OworICAgICAgICBMYXlvdXRVbml0IGxldHRl
ckFzY2VudCB7IGJhc2VsaW5lVHlwZSgpID09IEFscGhhYmV0aWNCYXNlbGluZSA/IExheW91dFVu
aXQoYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuY2FwSGVpZ2h0KCkpIDogKGNhblVzZUdseXBo
cyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IExheW91dFVuaXQoYm94TGluZVN0eWxlLmZvbnRNZXRy
aWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpIH07CisgICAgICAgIExheW91dFVuaXQgbGV0
dGVyRGVzY2VudCB7IGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IChib3gu
aXNSb290SW5saW5lQm94KCkgPyAwX2x1IDogTGF5b3V0VW5pdChib3hMaW5lU3R5bGUuZm9udE1l
dHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpIH07CiAgICAgICAgIHNldEFzY2VudEFu
ZERlc2NlbnQoYXNjZW50LCBkZXNjZW50LCBsZXR0ZXJBc2NlbnQsIGxldHRlckRlc2NlbnQsIGFz
Y2VudERlc2NlbnRTZXQpOwogICAgICAgICBhZmZlY3RzQXNjZW50ID0gbGV0dGVyQXNjZW50IC0g
Ym94LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gbGV0dGVyRGVz
Y2VudCArIGJveC5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICBpZiAoY2FuVXNlR2x5cGhzKSB7
Ci0gICAgICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93
LT50b3AsIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveExpbmVTdHlsZS5mb250
TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKLSAgICAgICAgICAgIGdseXBoT3Zl
cmZsb3ctPmJvdHRvbSA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgc3RkOjptYXgo
MCwgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVz
Y2VudChiYXNlbGluZVR5cGUoKSkpKTsKKyAgICAgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9
IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMF9sdSwgZ2x5cGhPdmVyZmxv
dy0+dG9wIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgp
KSkpOworICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhP
dmVyZmxvdy0+Ym90dG9tLCBzdGQ6Om1heCgwX2x1LCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBi
b3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwogICAg
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5k
ZXggOWQyMzg3MTUzNzU1YzczN2ViODhjZDU0OWE4YzQ1ZWIzZDE2NjcwOS4uOWM5N2UwOGMxOWFi
NDMyYjdhNjAxZTJhZjA3ZjA0MzJiODE3NWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcApAQCAtMTAwOCw3ICsxMDA4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9hdCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3Qg
Rm8KICAgICAgICAgbWluaW11bVN1ZmZpeExlbmd0aCA9IGFmdGVyIDwgMCA/IDIgOiBhZnRlcjsK
ICAgICB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGludD4gZmlyc3RHbHlwaExlZnRPdmVyZmxvdzsK
KyAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CiAK
ICAgICBib29sIGJyZWFrTkJTUCA9IHN0eWxlLmF1dG9XcmFwKCkgJiYgc3R5bGUubmJzcE1vZGUo
KSA9PSBOQlNQTW9kZTo6U3BhY2U7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5l
VGV4dEJveFN0eWxlLmNwcAppbmRleCA5OGQ0OGI1YzkxMGZlMDU0YjI0YWY4YzBlMDk0OGY3MjE5
MGRlMmJkLi44YTk2YzNmMDNmMzJjZGI2MTAwNDUwMTkyN2FkZGY3MmY4NWI1ZTM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKQEAgLTk3LDExICs5Nyw2
IEBAIFdhdnlTdHJva2VQYXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IGZv
bnRTaXplKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBleHRl
bmRJbnRUb0Zsb2F0KGludCYgZXh0ZW5kTWUsIGZsb2F0IGV4dGVuZFRvKQotewotICAgIGV4dGVu
ZE1lID0gc3RkOjptYXgoZXh0ZW5kTWUsIHN0YXRpY19jYXN0PGludD4oY2VpbGYoZXh0ZW5kVG8p
KSk7Ci19Ci0KIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25z
dCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlLCBjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBpbmxp
bmVUZXh0Qm94KQogewogICAgIEFTU0VSVCghaW5saW5lVGV4dEJveCB8fCBpbmxpbmVUZXh0Qm94
LT5saW5lU3R5bGUoKSA9PSBsaW5lU3R5bGUpOwpAQCAtMTM0LDExICsxMjksMTEgQEAgR2x5cGhP
dmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBs
aW5lU3R5bGUsIGNvbnN0IEwKICAgICAgICAgYXV0byBkZWZhdWx0R2FwID0gbGluZVN0eWxlLmNv
bXB1dGVkRm9udFNpemUoKSAvIHRleHREZWNvcmF0aW9uQmFzZUZvbnRTaXplOwogICAgICAgICB1
bmRlcmxpbmVPZmZzZXQgKz0gY29tcHV0ZVVuZGVybGluZU9mZnNldChsaW5lU3R5bGUudGV4dFVu
ZGVybGluZVBvc2l0aW9uKCksIGxpbmVTdHlsZS50ZXh0VW5kZXJsaW5lT2Zmc2V0KCksIGxpbmVT
dHlsZS5mb250TWV0cmljcygpLCBpbmxpbmVUZXh0Qm94LCBkZWZhdWx0R2FwKTsKICAgICAgICAg
aWYgKGRlY29yYXRpb25TdHlsZSA9PSBUZXh0RGVjb3JhdGlvblN0eWxlOjpXYXZ5KSB7Ci0gICAg
ICAgICAgICBleHRlbmRJbnRUb0Zsb2F0KG92ZXJmbG93UmVzdWx0LmJvdHRvbSwgdW5kZXJsaW5l
T2Zmc2V0ICsgd2F2eU9mZnNldCArIHdhdnlTdHJva2VQYXJhbWV0ZXJzLmNvbnRyb2xQb2ludERp
c3RhbmNlICsgc3Ryb2tlVGhpY2tuZXNzIC0gaGVpZ2h0KTsKLSAgICAgICAgICAgIGV4dGVuZElu
dFRvRmxvYXQob3ZlcmZsb3dSZXN1bHQudG9wLCAtKHVuZGVybGluZU9mZnNldCArIHdhdnlPZmZz
ZXQgLSB3YXZ5U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9pbnREaXN0YW5jZSAtIHN0cm9rZVRo
aWNrbmVzcykpOworICAgICAgICAgICAgb3ZlcmZsb3dSZXN1bHQuZXh0ZW5kQm90dG9tKHVuZGVy
bGluZU9mZnNldCArIHdhdnlPZmZzZXQgKyB3YXZ5U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9p
bnREaXN0YW5jZSArIHN0cm9rZVRoaWNrbmVzcyAtIGhlaWdodCk7CisgICAgICAgICAgICBvdmVy
Zmxvd1Jlc3VsdC5leHRlbmRUb3AoLSh1bmRlcmxpbmVPZmZzZXQgKyB3YXZ5T2Zmc2V0IC0gd2F2
eVN0cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50RGlzdGFuY2UgLSBzdHJva2VUaGlja25lc3Mp
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGV4dGVuZEludFRvRmxvYXQob3ZlcmZs
b3dSZXN1bHQuYm90dG9tLCB1bmRlcmxpbmVPZmZzZXQgKyBzdHJva2VUaGlja25lc3MgLSBoZWln
aHQpOwotICAgICAgICAgICAgZXh0ZW5kSW50VG9GbG9hdChvdmVyZmxvd1Jlc3VsdC50b3AsIC11
bmRlcmxpbmVPZmZzZXQpOworICAgICAgICAgICAgb3ZlcmZsb3dSZXN1bHQuZXh0ZW5kQm90dG9t
KHVuZGVybGluZU9mZnNldCArIHN0cm9rZVRoaWNrbmVzcyAtIGhlaWdodCk7CisgICAgICAgICAg
ICBvdmVyZmxvd1Jlc3VsdC5leHRlbmRUb3AoLXVuZGVybGluZU9mZnNldCk7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbjo6T3ZlcmxpbmUpIHsK
QEAgLTE1MSw4ICsxNDYsOCBAQCBHbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3Jh
dGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSwgY29uc3QgTAogICAgICAgICAgICAg
d2F2eUV4cGFuc2lvbi5zZXRCb3R0b20od2F2eVN0cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50
RGlzdGFuY2UpOwogICAgICAgICAgICAgcmVjdC5leHBhbmQod2F2eUV4cGFuc2lvbik7CiAgICAg
ICAgIH0KLSAgICAgICAgZXh0ZW5kSW50VG9GbG9hdChvdmVyZmxvd1Jlc3VsdC50b3AsIC1yZWN0
LnkoKSk7Ci0gICAgICAgIGV4dGVuZEludFRvRmxvYXQob3ZlcmZsb3dSZXN1bHQuYm90dG9tLCBy
ZWN0Lm1heFkoKSAtIGhlaWdodCk7CisgICAgICAgIG92ZXJmbG93UmVzdWx0LmV4dGVuZFRvcCgt
cmVjdC55KCkpOworICAgICAgICBvdmVyZmxvd1Jlc3VsdC5leHRlbmRCb3R0b20ocmVjdC5tYXhZ
KCkgLSBoZWlnaHQpOwogICAgIH0KICAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9u
OjpMaW5lVGhyb3VnaCkgewogICAgICAgICBGbG9hdFJlY3QgcmVjdChGbG9hdFBvaW50KCksIEZs
b2F0U2l6ZSgxLCBzdHJva2VUaGlja25lc3MpKTsKQEAgLTE2NSw4ICsxNjAsOCBAQCBHbHlwaE92
ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxp
bmVTdHlsZSwgY29uc3QgTAogICAgICAgICAgICAgd2F2eUV4cGFuc2lvbi5zZXRCb3R0b20od2F2
eVN0cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50RGlzdGFuY2UpOwogICAgICAgICAgICAgcmVj
dC5leHBhbmQod2F2eUV4cGFuc2lvbik7CiAgICAgICAgIH0KLSAgICAgICAgZXh0ZW5kSW50VG9G
bG9hdChvdmVyZmxvd1Jlc3VsdC50b3AsIC1yZWN0LnkoKSk7Ci0gICAgICAgIGV4dGVuZEludFRv
RmxvYXQob3ZlcmZsb3dSZXN1bHQuYm90dG9tLCByZWN0Lm1heFkoKSAtIGhlaWdodCk7CisgICAg
ICAgIG92ZXJmbG93UmVzdWx0LmV4dGVuZFRvcCgtcmVjdC55KCkpOworICAgICAgICBvdmVyZmxv
d1Jlc3VsdC5leHRlbmRCb3R0b20ocmVjdC5tYXhZKCkgLSBoZWlnaHQpOwogICAgIH0KICAgICBy
ZXR1cm4gb3ZlcmZsb3dSZXN1bHQ7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434715</attachid>
            <date>2021-08-01 02:27:06 -0700</date>
            <delta_ts>2021-08-01 21:56:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133040-20210801112704.patch</filename>
            <type>text/plain</type>
            <size>11878</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTljZDM4ZWEwYjFmOWVh
MWY4MWI2Nzk3NWQ2ZGNjNmFmYzY5YWJmNC4uN2I0MDUzYTg5YzYwYjY2MDkxYjE1ZTc4NTA1N2Zj
NDkzMDRiN2NhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA3LTMxICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93
IHRvIExheW91dFVuaXRzIGluc3RlYWQgb2YgaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgTWlncmF0ZSBHbHlwaE92ZXJmbG93IHRvIExheW91dFVuaXRz
IGluc3RlYWQgb2YgaW50cy4gVGhpcworICAgICAgICBpcyBhbm90aGVyIHN0ZXAgaW4gdGhlIGRp
cmVjdGlvbiBvZiBzdWJwaXhlbCBsYXlvdXQvcmVuZGVyaW5nLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5s
aW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lJbmxpbmVGbG93Qm94Ojph
ZGRUZXh0Qm94VmlzdWFsT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lSb290
SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJvb3RJbmxpbmVCb3g6OmFz
Y2VudEFuZERlc2NlbnRGb3JCb3ggY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXh0ZW5kSW50VG9GbG9hdCk6CisKIDIwMjEtMDctMzEgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjgwNDg4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmgKaW5kZXggNmVjYTI0N2VhOWM4YTkxZDcyODE3YTUxMjNjYjczNDUwMmQ3
MzJiNy4uNmM1MDY1N2IxOTNkZjk1YjhlNGQwMzFlYTNkODlmNWViNTI5YjA0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBAIC02NywxNiAr
NjcsMjYgQEAgc3RydWN0IEdseXBoT3ZlcmZsb3cgewogICAgICAgICBib3R0b20gPSBzdGQ6Om1h
eChib3R0b20sIG90aGVyLmJvdHRvbSk7CiAgICAgfQogCisgICAgdm9pZCBleHRlbmRUb3AoZmxv
YXQgZXh0ZW5kVG8pCisgICAgeworICAgICAgICB0b3AgPSBzdGQ6Om1heCh0b3AsIExheW91dFVu
aXQoY2VpbGYoZXh0ZW5kVG8pKSk7CisgICAgfQorCisgICAgdm9pZCBleHRlbmRCb3R0b20oZmxv
YXQgZXh0ZW5kVG8pCisgICAgeworICAgICAgICBib3R0b20gPSBzdGQ6Om1heChib3R0b20sIExh
eW91dFVuaXQoY2VpbGYoZXh0ZW5kVG8pKSk7CisgICAgfQorCiAgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IEdseXBoT3ZlcmZsb3cmIG90aGVyKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IFBy
b2JhYmx5IHNob3VsZCBuYW1lIHRoaXMgcmF0aGVyIHRoYW4gbWFraW5nIGl0IHRoZSAhPSBvcGVy
YXRvciBzaW5jZSBpdCBpZ25vcmVzIHRoZSB2YWx1ZSBvZiBjb21wdXRlQm91bmRzLgogICAgICAg
ICByZXR1cm4gbGVmdCAhPSBvdGhlci5sZWZ0IHx8IHJpZ2h0ICE9IG90aGVyLnJpZ2h0IHx8IHRv
cCAhPSBvdGhlci50b3AgfHwgYm90dG9tICE9IG90aGVyLmJvdHRvbTsKICAgICB9CiAKLSAgICBp
bnQgbGVmdCB7IDAgfTsKLSAgICBpbnQgcmlnaHQgeyAwIH07Ci0gICAgaW50IHRvcCB7IDAgfTsK
LSAgICBpbnQgYm90dG9tIHsgMCB9OworICAgIExheW91dFVuaXQgbGVmdDsKKyAgICBMYXlvdXRV
bml0IHJpZ2h0OworICAgIExheW91dFVuaXQgdG9wOworICAgIExheW91dFVuaXQgYm90dG9tOwog
ICAgIGJvb2wgY29tcHV0ZUJvdW5kcyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAKaW5kZXggMDQxNDQyMjUwZGZi
YjQzYTBiZWNjMjFjODM2YzMwMzIyM2I3NTg4Yi4uMGQ3ZjhiOTBjYTY4OTc3NGRjNDQ2MDBiODhj
OWQ2NDNjNTExMWYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2Fj
eUlubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJ
bmxpbmVGbG93Qm94LmNwcApAQCAtOTMzLDIwICs5MzMsMjAgQEAgaW5saW5lIHZvaWQgTGVnYWN5
SW5saW5lRmxvd0JveDo6YWRkVGV4dEJveFZpc3VhbE92ZXJmbG93KExlZ2FjeUlubGluZVRleHRC
b3gmIHQKICAgICBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93ID0gaXQgPT0gdGV4dEJveERh
dGFNYXAuZW5kKCkgPyBudWxscHRyIDogJml0LT52YWx1ZS5zZWNvbmQ7CiAgICAgYm9vbCBpc0Zs
aXBwZWRMaW5lID0gbGluZVN0eWxlLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKTsKIAotICAg
IGludCB0b3BHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gKGlzRmxpcHBlZExpbmUgPyBnbHlw
aE92ZXJmbG93LT5ib3R0b20gOiBnbHlwaE92ZXJmbG93LT50b3ApIDogMDsKLSAgICBpbnQgYm90
dG9tR2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5lID8gZ2x5cGhPdmVy
Zmxvdy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKSA6IDA7Ci0gICAgaW50IGxlZnRHbHlw
aEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5cGhPdmVyZmxvdy0+bGVmdCA6IDA7Ci0gICAgaW50
IHJpZ2h0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPnJpZ2h0IDog
MDsKKyAgICBhdXRvIHRvcEdseXBoRWRnZSA9IGdseXBoT3ZlcmZsb3cgPyAoaXNGbGlwcGVkTGlu
ZSA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IGdseXBoT3ZlcmZsb3ctPnRvcCkgOiAwX2x1Owor
ICAgIGF1dG8gYm90dG9tR2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IChpc0ZsaXBwZWRMaW5l
ID8gZ2x5cGhPdmVyZmxvdy0+dG9wIDogZ2x5cGhPdmVyZmxvdy0+Ym90dG9tKSA6IDBfbHU7Cisg
ICAgYXV0byBsZWZ0R2x5cGhFZGdlID0gZ2x5cGhPdmVyZmxvdyA/IGdseXBoT3ZlcmZsb3ctPmxl
ZnQgOiAwX2x1OworICAgIGF1dG8gcmlnaHRHbHlwaEVkZ2UgPSBnbHlwaE92ZXJmbG93ID8gZ2x5
cGhPdmVyZmxvdy0+cmlnaHQgOiAwX2x1OwogCiAgICAgYXV0byB2aWV3cG9ydFNpemUgPSB0ZXh0
Qm94LnJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCkgPyB0ZXh0Qm94LnJlbmRlcmVyKCkuZnJhbWUo
KS52aWV3KCktPnNpemUoKSA6IEludFNpemUoKTsKLSAgICBpbnQgc3Ryb2tlT3ZlcmZsb3cgPSBz
dGQ6OmNlaWwobGluZVN0eWxlLmNvbXB1dGVkU3Ryb2tlV2lkdGgodmlld3BvcnRTaXplKSAvIDIu
MGYpOwotICAgIGludCB0b3BHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJmbG93IC0gdG9wR2x5
cGhFZGdlOwotICAgIGludCBib3R0b21HbHlwaE92ZXJmbG93ID0gc3Ryb2tlT3ZlcmZsb3cgKyBi
b3R0b21HbHlwaEVkZ2U7Ci0gICAgaW50IGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9rZU92ZXJm
bG93IC0gbGVmdEdseXBoRWRnZTsKLSAgICBpbnQgcmlnaHRHbHlwaE92ZXJmbG93ID0gc3Ryb2tl
T3ZlcmZsb3cgKyByaWdodEdseXBoRWRnZTsKKyAgICBMYXlvdXRVbml0IHN0cm9rZU92ZXJmbG93
KHN0ZDo6Y2VpbChsaW5lU3R5bGUuY29tcHV0ZWRTdHJva2VXaWR0aCh2aWV3cG9ydFNpemUpIC8g
Mi4wZikpOworICAgIGF1dG8gdG9wR2x5cGhPdmVyZmxvdyA9IC1zdHJva2VPdmVyZmxvdyAtIHRv
cEdseXBoRWRnZTsKKyAgICBhdXRvIGJvdHRvbUdseXBoT3ZlcmZsb3cgPSBzdHJva2VPdmVyZmxv
dyArIGJvdHRvbUdseXBoRWRnZTsKKyAgICBhdXRvIGxlZnRHbHlwaE92ZXJmbG93ID0gLXN0cm9r
ZU92ZXJmbG93IC0gbGVmdEdseXBoRWRnZTsKKyAgICBhdXRvIHJpZ2h0R2x5cGhPdmVyZmxvdyA9
IHN0cm9rZU92ZXJmbG93ICsgcmlnaHRHbHlwaEVkZ2U7CiAKICAgICBpZiAoc3RkOjpvcHRpb25h
bDxib29sPiBtYXJrRXhpc3RzQW5kSXNBYm92ZSA9IHRleHRCb3guZW1waGFzaXNNYXJrRXhpc3Rz
QW5kSXNBYm92ZShsaW5lU3R5bGUpKSB7Ci0gICAgICAgIGludCBlbXBoYXNpc01hcmtIZWlnaHQg
PSBsaW5lU3R5bGUuZm9udENhc2NhZGUoKS5lbXBoYXNpc01hcmtIZWlnaHQobGluZVN0eWxlLnRl
eHRFbXBoYXNpc01hcmtTdHJpbmcoKSk7CisgICAgICAgIExheW91dFVuaXQgZW1waGFzaXNNYXJr
SGVpZ2h0ID0gbGluZVN0eWxlLmZvbnRDYXNjYWRlKCkuZW1waGFzaXNNYXJrSGVpZ2h0KGxpbmVT
dHlsZS50ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkpOwogICAgICAgICBpZiAoKm1hcmtFeGlzdHNB
bmRJc0Fib3ZlID09ICFsaW5lU3R5bGUuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpKQogICAg
ICAgICAgICAgdG9wR2x5cGhPdmVyZmxvdyA9IHN0ZDo6bWluKHRvcEdseXBoT3ZlcmZsb3csIC1l
bXBoYXNpc01hcmtIZWlnaHQpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKaW5kZXggMzRlYWQ4YTlkNGY5OTI0ODdk
YWQ1MmZjZTU5OWI2MDRiYTA4MmVkYy4uZGQ1ZTg4MTJjZmQ5YWU1NTE0MDg1NDIwODQ3NzE3NWZj
M2RkYzA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJ
bmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5s
aW5lQm94LmNwcApAQCAtODY2LDIwICs4NjYsMjAgQEAgdm9pZCBMZWdhY3lSb290SW5saW5lQm94
Ojphc2NlbnRBbmREZXNjZW50Rm9yQm94KExlZ2FjeUlubGluZUJveCYgYm94LCBHbHlwaE92ZXIK
ICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2NlbnQsIGRlc2NlbnQsIGdseXBoT3ZlcmZs
b3ctPnRvcCwgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBhc2NlbnREZXNjZW50U2V0KTsKICAgICAg
ICAgYWZmZWN0c0FzY2VudCA9IGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveC5sb2dpY2FsVG9wKCkg
PiAwOwogICAgICAgICBhZmZlY3RzRGVzY2VudCA9IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSArIGJv
eC5sb2dpY2FsVG9wKCkgPiAwOwotICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBzdGQ6Om1p
bihnbHlwaE92ZXJmbG93LT50b3AsIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJv
eExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKLSAgICAg
ICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9t
LCBzdGQ6Om1heCgwLCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBib3hMaW5lU3R5bGUuZm9udE1l
dHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOworICAgICAgICBnbHlwaE92ZXJmbG93
LT50b3AgPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT50b3AsIHN0ZDo6bWF4KDBfbHUsIGdseXBo
T3ZlcmZsb3ctPnRvcCAtIGJveExpbmVTdHlsZS5mb250TWV0cmljcygpLmFzY2VudChiYXNlbGlu
ZVR5cGUoKSkpKTsKKyAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5
cGhPdmVyZmxvdy0+Ym90dG9tLCBzdGQ6Om1heCgwX2x1LCBnbHlwaE92ZXJmbG93LT5ib3R0b20g
LSBib3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwog
ICAgIH0KICAgICAKICAgICBpZiAoaW5jbHVkZUluaXRpYWxMZXR0ZXJGb3JCb3goYm94KSkgewog
ICAgICAgICBib29sIGNhblVzZUdseXBocyA9IGdseXBoT3ZlcmZsb3cgJiYgZ2x5cGhPdmVyZmxv
dy0+Y29tcHV0ZUJvdW5kczsKLSAgICAgICAgTGF5b3V0VW5pdCBsZXR0ZXJBc2NlbnQgeyBiYXNl
bGluZVR5cGUoKSA9PSBBbHBoYWJldGljQmFzZWxpbmUgPyBib3hMaW5lU3R5bGUuZm9udE1ldHJp
Y3MoKS5jYXBIZWlnaHQoKSA6IChjYW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJmbG93LT50b3AgOiBi
b3hMaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSB9OwotICAg
ICAgICBMYXlvdXRVbml0IGxldHRlckRlc2NlbnQgeyBjYW5Vc2VHbHlwaHMgPyBnbHlwaE92ZXJm
bG93LT5ib3R0b20gOiAoYm94LmlzUm9vdElubGluZUJveCgpID8gMCA6IGJveExpbmVTdHlsZS5m
b250TWV0cmljcygpLmRlc2NlbnQoYmFzZWxpbmVUeXBlKCkpKSB9OworICAgICAgICBhdXRvIGxl
dHRlckFzY2VudCB7IGJhc2VsaW5lVHlwZSgpID09IEFscGhhYmV0aWNCYXNlbGluZSA/IExheW91
dFVuaXQoYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuY2FwSGVpZ2h0KCkpIDogKGNhblVzZUds
eXBocyA/IGdseXBoT3ZlcmZsb3ctPnRvcCA6IExheW91dFVuaXQoYm94TGluZVN0eWxlLmZvbnRN
ZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpIH07CisgICAgICAgIGF1dG8gbGV0dGVy
RGVzY2VudCB7IGNhblVzZUdseXBocyA/IGdseXBoT3ZlcmZsb3ctPmJvdHRvbSA6IChib3guaXNS
b290SW5saW5lQm94KCkgPyAwX2x1IDogTGF5b3V0VW5pdChib3hMaW5lU3R5bGUuZm9udE1ldHJp
Y3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpIH07CiAgICAgICAgIHNldEFzY2VudEFuZERl
c2NlbnQoYXNjZW50LCBkZXNjZW50LCBsZXR0ZXJBc2NlbnQsIGxldHRlckRlc2NlbnQsIGFzY2Vu
dERlc2NlbnRTZXQpOwogICAgICAgICBhZmZlY3RzQXNjZW50ID0gbGV0dGVyQXNjZW50IC0gYm94
LmxvZ2ljYWxUb3AoKSA+IDA7CiAgICAgICAgIGFmZmVjdHNEZXNjZW50ID0gbGV0dGVyRGVzY2Vu
dCArIGJveC5sb2dpY2FsVG9wKCkgPiAwOwogICAgICAgICBpZiAoY2FuVXNlR2x5cGhzKSB7Ci0g
ICAgICAgICAgICBnbHlwaE92ZXJmbG93LT50b3AgPSBzdGQ6Om1pbihnbHlwaE92ZXJmbG93LT50
b3AsIHN0ZDo6bWF4KDAsIGdseXBoT3ZlcmZsb3ctPnRvcCAtIGJveExpbmVTdHlsZS5mb250TWV0
cmljcygpLmFzY2VudChiYXNlbGluZVR5cGUoKSkpKTsKLSAgICAgICAgICAgIGdseXBoT3ZlcmZs
b3ctPmJvdHRvbSA9IHN0ZDo6bWluKGdseXBoT3ZlcmZsb3ctPmJvdHRvbSwgc3RkOjptYXgoMCwg
Z2x5cGhPdmVyZmxvdy0+Ym90dG9tIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuZGVzY2Vu
dChiYXNlbGluZVR5cGUoKSkpKTsKKyAgICAgICAgICAgIGdseXBoT3ZlcmZsb3ctPnRvcCA9IHN0
ZDo6bWluKGdseXBoT3ZlcmZsb3ctPnRvcCwgc3RkOjptYXgoMF9sdSwgZ2x5cGhPdmVyZmxvdy0+
dG9wIC0gYm94TGluZVN0eWxlLmZvbnRNZXRyaWNzKCkuYXNjZW50KGJhc2VsaW5lVHlwZSgpKSkp
OworICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy0+Ym90dG9tID0gc3RkOjptaW4oZ2x5cGhPdmVy
Zmxvdy0+Ym90dG9tLCBzdGQ6Om1heCgwX2x1LCBnbHlwaE92ZXJmbG93LT5ib3R0b20gLSBib3hM
aW5lU3R5bGUuZm9udE1ldHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKSkpOwogICAgICAg
ICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXgg
OWQyMzg3MTUzNzU1YzczN2ViODhjZDU0OWE4YzQ1ZWIzZDE2NjcwOS4uOWM5N2UwOGMxOWFiNDMy
YjdhNjAxZTJhZjA3ZjA0MzJiODE3NWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcApAQCAtMTAwOCw3ICsxMDA4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9hdCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgRm8K
ICAgICAgICAgbWluaW11bVN1ZmZpeExlbmd0aCA9IGFmdGVyIDwgMCA/IDIgOiBhZnRlcjsKICAg
ICB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGludD4gZmlyc3RHbHlwaExlZnRPdmVyZmxvdzsKKyAg
ICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0R2x5cGhMZWZ0T3ZlcmZsb3c7CiAKICAg
ICBib29sIGJyZWFrTkJTUCA9IHN0eWxlLmF1dG9XcmFwKCkgJiYgc3R5bGUubmJzcE1vZGUoKSA9
PSBOQlNQTW9kZTo6U3BhY2U7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4
dEJveFN0eWxlLmNwcAppbmRleCA5OGQ0OGI1YzkxMGZlMDU0YjI0YWY4YzBlMDk0OGY3MjE5MGRl
MmJkLi44YTk2YzNmMDNmMzJjZGI2MTAwNDUwMTkyN2FkZGY3MmY4NWI1ZTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKQEAgLTk3LDExICs5Nyw2IEBA
IFdhdnlTdHJva2VQYXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IGZvbnRT
aXplKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBleHRlbmRJ
bnRUb0Zsb2F0KGludCYgZXh0ZW5kTWUsIGZsb2F0IGV4dGVuZFRvKQotewotICAgIGV4dGVuZE1l
ID0gc3RkOjptYXgoZXh0ZW5kTWUsIHN0YXRpY19jYXN0PGludD4oY2VpbGYoZXh0ZW5kVG8pKSk7
Ci19Ci0KIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBS
ZW5kZXJTdHlsZSYgbGluZVN0eWxlLCBjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBpbmxpbmVU
ZXh0Qm94KQogewogICAgIEFTU0VSVCghaW5saW5lVGV4dEJveCB8fCBpbmxpbmVUZXh0Qm94LT5s
aW5lU3R5bGUoKSA9PSBsaW5lU3R5bGUpOwpAQCAtMTM0LDExICsxMjksMTEgQEAgR2x5cGhPdmVy
ZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5l
U3R5bGUsIGNvbnN0IEwKICAgICAgICAgYXV0byBkZWZhdWx0R2FwID0gbGluZVN0eWxlLmNvbXB1
dGVkRm9udFNpemUoKSAvIHRleHREZWNvcmF0aW9uQmFzZUZvbnRTaXplOwogICAgICAgICB1bmRl
cmxpbmVPZmZzZXQgKz0gY29tcHV0ZVVuZGVybGluZU9mZnNldChsaW5lU3R5bGUudGV4dFVuZGVy
bGluZVBvc2l0aW9uKCksIGxpbmVTdHlsZS50ZXh0VW5kZXJsaW5lT2Zmc2V0KCksIGxpbmVTdHls
ZS5mb250TWV0cmljcygpLCBpbmxpbmVUZXh0Qm94LCBkZWZhdWx0R2FwKTsKICAgICAgICAgaWYg
KGRlY29yYXRpb25TdHlsZSA9PSBUZXh0RGVjb3JhdGlvblN0eWxlOjpXYXZ5KSB7Ci0gICAgICAg
ICAgICBleHRlbmRJbnRUb0Zsb2F0KG92ZXJmbG93UmVzdWx0LmJvdHRvbSwgdW5kZXJsaW5lT2Zm
c2V0ICsgd2F2eU9mZnNldCArIHdhdnlTdHJva2VQYXJhbWV0ZXJzLmNvbnRyb2xQb2ludERpc3Rh
bmNlICsgc3Ryb2tlVGhpY2tuZXNzIC0gaGVpZ2h0KTsKLSAgICAgICAgICAgIGV4dGVuZEludFRv
RmxvYXQob3ZlcmZsb3dSZXN1bHQudG9wLCAtKHVuZGVybGluZU9mZnNldCArIHdhdnlPZmZzZXQg
LSB3YXZ5U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9pbnREaXN0YW5jZSAtIHN0cm9rZVRoaWNr
bmVzcykpOworICAgICAgICAgICAgb3ZlcmZsb3dSZXN1bHQuZXh0ZW5kQm90dG9tKHVuZGVybGlu
ZU9mZnNldCArIHdhdnlPZmZzZXQgKyB3YXZ5U3Ryb2tlUGFyYW1ldGVycy5jb250cm9sUG9pbnRE
aXN0YW5jZSArIHN0cm9rZVRoaWNrbmVzcyAtIGhlaWdodCk7CisgICAgICAgICAgICBvdmVyZmxv
d1Jlc3VsdC5leHRlbmRUb3AoLSh1bmRlcmxpbmVPZmZzZXQgKyB3YXZ5T2Zmc2V0IC0gd2F2eVN0
cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50RGlzdGFuY2UgLSBzdHJva2VUaGlja25lc3MpKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGV4dGVuZEludFRvRmxvYXQob3ZlcmZsb3dS
ZXN1bHQuYm90dG9tLCB1bmRlcmxpbmVPZmZzZXQgKyBzdHJva2VUaGlja25lc3MgLSBoZWlnaHQp
OwotICAgICAgICAgICAgZXh0ZW5kSW50VG9GbG9hdChvdmVyZmxvd1Jlc3VsdC50b3AsIC11bmRl
cmxpbmVPZmZzZXQpOworICAgICAgICAgICAgb3ZlcmZsb3dSZXN1bHQuZXh0ZW5kQm90dG9tKHVu
ZGVybGluZU9mZnNldCArIHN0cm9rZVRoaWNrbmVzcyAtIGhlaWdodCk7CisgICAgICAgICAgICBv
dmVyZmxvd1Jlc3VsdC5leHRlbmRUb3AoLXVuZGVybGluZU9mZnNldCk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbjo6T3ZlcmxpbmUpIHsKQEAg
LTE1MSw4ICsxNDYsOCBAQCBHbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlv
bnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSwgY29uc3QgTAogICAgICAgICAgICAgd2F2
eUV4cGFuc2lvbi5zZXRCb3R0b20od2F2eVN0cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50RGlz
dGFuY2UpOwogICAgICAgICAgICAgcmVjdC5leHBhbmQod2F2eUV4cGFuc2lvbik7CiAgICAgICAg
IH0KLSAgICAgICAgZXh0ZW5kSW50VG9GbG9hdChvdmVyZmxvd1Jlc3VsdC50b3AsIC1yZWN0Lnko
KSk7Ci0gICAgICAgIGV4dGVuZEludFRvRmxvYXQob3ZlcmZsb3dSZXN1bHQuYm90dG9tLCByZWN0
Lm1heFkoKSAtIGhlaWdodCk7CisgICAgICAgIG92ZXJmbG93UmVzdWx0LmV4dGVuZFRvcCgtcmVj
dC55KCkpOworICAgICAgICBvdmVyZmxvd1Jlc3VsdC5leHRlbmRCb3R0b20ocmVjdC5tYXhZKCkg
LSBoZWlnaHQpOwogICAgIH0KICAgICBpZiAoZGVjb3JhdGlvbiAmIFRleHREZWNvcmF0aW9uOjpM
aW5lVGhyb3VnaCkgewogICAgICAgICBGbG9hdFJlY3QgcmVjdChGbG9hdFBvaW50KCksIEZsb2F0
U2l6ZSgxLCBzdHJva2VUaGlja25lc3MpKTsKQEAgLTE2NSw4ICsxNjAsOCBAQCBHbHlwaE92ZXJm
bG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVT
dHlsZSwgY29uc3QgTAogICAgICAgICAgICAgd2F2eUV4cGFuc2lvbi5zZXRCb3R0b20od2F2eVN0
cm9rZVBhcmFtZXRlcnMuY29udHJvbFBvaW50RGlzdGFuY2UpOwogICAgICAgICAgICAgcmVjdC5l
eHBhbmQod2F2eUV4cGFuc2lvbik7CiAgICAgICAgIH0KLSAgICAgICAgZXh0ZW5kSW50VG9GbG9h
dChvdmVyZmxvd1Jlc3VsdC50b3AsIC1yZWN0LnkoKSk7Ci0gICAgICAgIGV4dGVuZEludFRvRmxv
YXQob3ZlcmZsb3dSZXN1bHQuYm90dG9tLCByZWN0Lm1heFkoKSAtIGhlaWdodCk7CisgICAgICAg
IG92ZXJmbG93UmVzdWx0LmV4dGVuZFRvcCgtcmVjdC55KCkpOworICAgICAgICBvdmVyZmxvd1Jl
c3VsdC5leHRlbmRCb3R0b20ocmVjdC5tYXhZKCkgLSBoZWlnaHQpOwogICAgIH0KICAgICByZXR1
cm4gb3ZlcmZsb3dSZXN1bHQ7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>