<?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>82423</bug_id>
          
          <creation_ts>2012-03-27 21:23:39 -0700</creation_ts>
          <short_desc>[chromium] Record the number of tiles paint-culled instead of the incorrect number of pixels</short_desc>
          <delta_ts>2012-04-05 13:35:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>589642</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 21:23:39 -0700</bug_when>
    <thetext>[chromium] Record the number of tiles paint-culled instead of the incorrect number of pixels</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589645</commentid>
    <comment_count>1</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 21:32:08 -0700</bug_when>
    <thetext>We currently attempt to record the number of pixels we save from uploading, however the number is wrong in two ways.
1) An early-out if everything is culled results in nothing being reported.
2) With threaded-compositor, the number of pixels uploaded in one tile can be changed by culling in another tile, making the number far too difficult to compute to be worthwhile. If a tile was going to be partial-updated, but is culled, now a new tile gets to be partial-updated instead, which affects the numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589647</commentid>
    <comment_count>2</comment_count>
      <attachid>134214</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 21:36:29 -0700</bug_when>
    <thetext>Created attachment 134214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590253</commentid>
    <comment_count>3</comment_count>
      <attachid>134214</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-28 12:16:12 -0700</bug_when>
    <thetext>Comment on attachment 134214
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:435
&gt; +                    occlusion-&gt;overdrawMetrics().didCullTileForUpload(tile-&gt;isDirty());

What happens if this layer OOMs and gets skipped? Is it wrong to report this during the first pass?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.h:45
&gt; +    // Records that an invalid tile was culled and did not need to be painted/uploaded, and did not contribute to other tiles needing to be painted.
&gt; +    void didCullTileForUpload(bool dirty);

I&apos;m kind of confused about dirty as a parameter here.  How about just calling didCullTileForUpload only when it was dirty and would have needed to be painted/uploaded?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.h:89
&gt; +    // Count of pixels uploaded to textures and known to be opaque.
&gt; +    float m_pixelsUploadedOpaque;
&gt; +    // Count of pixels uploaded to textures and not known to be opaque.
&gt; +    float m_pixelsUploadedTranslucent;
&gt; +    // Count of tiles that were invalidated but not uploaded.
&gt; +    int m_tilesCulledForUpload;

This class is starting to feel overloaded.  If the main thread metrics and the impl thread metrics have different needs, do you think it&apos;d be clearer to have different classes, rather than just depending on variables being unset to not record them on a particular thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590265</commentid>
    <comment_count>4</comment_count>
      <attachid>134214</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-28 12:23:50 -0700</bug_when>
    <thetext>Comment on attachment 134214
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:435
&gt;&gt; +                    occlusion-&gt;overdrawMetrics().didCullTileForUpload(tile-&gt;isDirty());
&gt; 
&gt; What happens if this layer OOMs and gets skipped? Is it wrong to report this during the first pass?

Good question. I&apos;ll stick this in the second loop where we copyAndClearDirty(). This happens before the early out, so win.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.h:45
&gt;&gt; +    void didCullTileForUpload(bool dirty);
&gt; 
&gt; I&apos;m kind of confused about dirty as a parameter here.  How about just calling didCullTileForUpload only when it was dirty and would have needed to be painted/uploaded?

Ok. I kind of thought maybe in the future we&apos;d use it or something, but we&apos;re not now. Removed.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.h:89
&gt;&gt; +    int m_tilesCulledForUpload;
&gt; 
&gt; This class is starting to feel overloaded.  If the main thread metrics and the impl thread metrics have different needs, do you think it&apos;d be clearer to have different classes, rather than just depending on variables being unset to not record them on a particular thread?

Trying hard to avoid code complexity where not needed.. altho the name is less fitting. CCFrameMetrics? I&apos;m not sure if that matters really..

Splitting it into two classes would require two objects in all the public API of occlusion tracker, or down-casting before using it. I could stick the floats into two nested structs to group them better conceptually as &quot;These are all used together&quot;? Wdyt of this all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590330</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-28 13:15:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 134214 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134214&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.h:89
&gt; &gt;&gt; +    int m_tilesCulledForUpload;
&gt; &gt; 
&gt; &gt; This class is starting to feel overloaded.  If the main thread metrics and the impl thread metrics have different needs, do you think it&apos;d be clearer to have different classes, rather than just depending on variables being unset to not record them on a particular thread?
&gt; 
&gt; Trying hard to avoid code complexity where not needed.. altho the name is less fitting. CCFrameMetrics? I&apos;m not sure if that matters really..
&gt; 
&gt; Splitting it into two classes would require two objects in all the public API of occlusion tracker, or down-casting before using it. I could stick the floats into two nested structs to group them better conceptually as &quot;These are all used together&quot;? Wdyt of this all?

Hmm, good point.  For the sake of being able to use the same overdraw metrics class all over, I think I&apos;d be ok with any increased clarity about which functions are ok to call in which contexts.  Grouping would help, either as a a struct or with better comments and separation in the header.  Maybe leaving MetricsType as an explict flag would also help, rather than just implicitly uploading anything that was non-zero?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591584</commentid>
    <comment_count>6</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-29 14:42:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Hmm, good point.  For the sake of being able to use the same overdraw metrics class all over, I think I&apos;d be ok with any increased clarity about which functions are ok to call in which contexts.  Grouping would help, either as a a struct or with better comments and separation in the header.  Maybe leaving MetricsType as an explict flag would also help, rather than just implicitly uploading anything that was non-zero?

Thanks. Kept the MetricsType, I think that&apos;s a great idea. The code is mode clear with that. And separated the methods/member variables with comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591585</commentid>
    <comment_count>7</comment_count>
      <attachid>134668</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-29 14:42:19 -0700</bug_when>
    <thetext>Created attachment 134668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594137</commentid>
    <comment_count>8</comment_count>
      <attachid>134668</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-02 19:12:07 -0700</bug_when>
    <thetext>Comment on attachment 134668
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:133
&gt; +    // This gives approximately 100x the percentage of tiles to fill the viewport once, if all tiles were 256x256.
&gt; +    float tileNormalization = 10000.f / (layerTreeHost-&gt;viewportSize().width() / 256.f * layerTreeHost-&gt;viewportSize().height() / 256.f);

This is somewhat bikeshedding, but is there a reason not to normalize this with the same multiplier as the above? It seems reasonable that somebody is going to compare them?

(Also, if you&apos;re going to record pixel counts here, maybe you should just pass in tile size in didCullTileForUpload in case we hypothetically ever change the tile size and wanted to compare histogram values across time? Or to be slightly more accurate for layers that don&apos;t use that tile size?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594603</commentid>
    <comment_count>9</comment_count>
      <attachid>134668</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-03 10:24:21 -0700</bug_when>
    <thetext>Comment on attachment 134668
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:133
&gt;&gt; +    float tileNormalization = 10000.f / (layerTreeHost-&gt;viewportSize().width() / 256.f * layerTreeHost-&gt;viewportSize().height() / 256.f);
&gt; 
&gt; This is somewhat bikeshedding, but is there a reason not to normalize this with the same multiplier as the above? It seems reasonable that somebody is going to compare them?
&gt; 
&gt; (Also, if you&apos;re going to record pixel counts here, maybe you should just pass in tile size in didCullTileForUpload in case we hypothetically ever change the tile size and wanted to compare histogram values across time? Or to be slightly more accurate for layers that don&apos;t use that tile size?)

Comparing the number of tiles to the number of pixels can&apos;t be done 1:1 anyhow. I made the tile number an order of magnitude larger because painting is often going to be only a fraction of the viewport, rather than always filling at least the whole viewport. And I wanted to prevent numbers from being cut off. In this case, 100 is the min value, so 1% of the tiles to fill the viewport being culled will still be recorded (as 100).

I am hesitant to record record pixels here because they would be wrong and I don&apos;t want them to be misconstrued. In a partial update, the whole tile was not going to get updated, but the whole tile&apos;s pixel count would be recorded. It reports distorted numbers for which the distortion is non-obvious. At least in counting tiles it gives something we can actually use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595020</commentid>
    <comment_count>10</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-04-03 16:30:32 -0700</bug_when>
    <thetext>Rather than trying to record the number of pixels or tiles saved/added by some specific feature like culling, per-tile painting or atomic commits. Would it make more sense to just record something a bit more high level that would give us an idea of how the overall system performs, like the number of pixels painted and pixels invalidated?

And if you&apos;re interested in the effect of a specific feature you compare the metrics from when it&apos;s turned on vs off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595023</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-03 16:33:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Rather than trying to record the number of pixels or tiles saved/added by some specific feature like culling, per-tile painting or atomic commits. Would it make more sense to just record something a bit more high level that would give us an idea of how the overall system performs, like the number of pixels painted and pixels invalidated?
&gt; 
&gt; And if you&apos;re interested in the effect of a specific feature you compare the metrics from when it&apos;s turned on vs off.

Yes, we&apos;re already recording pixels painted. The idea for this is just to tell if culling is happening on a page when looking at the trace. Not really for performance, so I think counting tiles is pretty okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596751</commentid>
    <comment_count>12</comment_count>
      <attachid>134668</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-05 11:47:47 -0700</bug_when>
    <thetext>Comment on attachment 134668
Patch

Ok, sure.  If it&apos;s just meant to give a rough idea of how much culling is occurring, then that seems reasonable.  The value&apos;s a little confusing, but I agree that there&apos;s not a great answer of what that value should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596757</commentid>
    <comment_count>13</comment_count>
      <attachid>134668</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 11:49:51 -0700</bug_when>
    <thetext>Comment on attachment 134668
Patch

Rejecting attachment 134668 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
nk #14 succeeded at 1219 (offset -188 lines).
Hunk #15 succeeded at 1233 (offset -188 lines).
Hunk #16 succeeded at 1245 (offset -188 lines).
Hunk #17 succeeded at 1259 (offset -188 lines).
Hunk #18 succeeded at 1273 (offset -188 lines).
Hunk #19 succeeded at 1312 (offset -188 lines).
Hunk #20 succeeded at 1328 (offset -188 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Adrienne W...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12264426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596784</commentid>
    <comment_count>14</comment_count>
      <attachid>135873</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-05 12:10:39 -0700</bug_when>
    <thetext>Created attachment 135873
Patch

rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596861</commentid>
    <comment_count>15</comment_count>
      <attachid>135873</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 13:35:30 -0700</bug_when>
    <thetext>Comment on attachment 135873
Patch

Clearing flags on attachment: 135873

Committed r113372: &lt;http://trac.webkit.org/changeset/113372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596862</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 13:35:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134214</attachid>
            <date>2012-03-27 21:36:29 -0700</date>
            <delta_ts>2012-03-29 14:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82423-20120328003627.patch</filename>
            <type>text/plain</type>
            <size>47049</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE3Yzg1MzJiZmFkMGJi
NTkxM2UyYjkwZTQ3YWEyYmEyNTYxZmJjNS4uZmFkN2Y4NjQxZDUxYjVjNzAxYzk2MGEyMDJkMWJm
NzQ1YjMxOWY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTAzLTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gUmVj
b3JkIHRoZSBudW1iZXIgb2YgdGlsZXMgcGFpbnQtY3VsbGVkIGluc3RlYWQgb2YgdGhlIGluY29y
cmVjdCBudW1iZXIgb2YgcGl4ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjQyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIGN1cnJlbnRseSBhdHRlbXB0IHRvIHJlY29yZCB0aGUgbnVtYmVyIG9m
IHBpeGVscyB3ZSBzYXZlIGZyb20gdXBsb2FkaW5nLAorICAgICAgICBob3dldmVyIHRoZSBudW1i
ZXIgaXMgd3JvbmcgaW4gdHdvIHdheXMuCisgICAgICAgIDEpIEFuIGVhcmx5LW91dCBpZiBldmVy
eXRoaW5nIGlzIGN1bGxlZCByZXN1bHRzIGluIG5vdGhpbmcgYmVpbmcgcmVwb3J0ZWQuCisgICAg
ICAgIDIpIFdpdGggdGhyZWFkZWQtY29tcG9zaXRvciwgdGhlIG51bWJlciBvZiBwaXhlbHMgdXBs
b2FkZWQgaW4gb25lIHRpbGUgY2FuIGJlCisgICAgICAgIGNoYW5nZWQgYnkgY3VsbGluZyBpbiBh
bm90aGVyIHRpbGUsIG1ha2luZyB0aGUgbnVtYmVyIGZhciB0b28gZGlmZmljdWx0IHRvCisgICAg
ICAgIGNvbXB1dGUgdG8gYmUgd29ydGh3aGlsZS4gSWYgYSB0aWxlIHdhcyBnb2luZyB0byBiZSBw
YXJ0aWFsLXVwZGF0ZWQsIGJ1dCBpcworICAgICAgICBjdWxsZWQsIG5vdyBhIG5ldyB0aWxlIGdl
dHMgdG8gYmUgcGFydGlhbC11cGRhdGVkIGluc3RlYWQsIHdoaWNoIGFmZmVjdHMgdGhlCisgICAg
ICAgIG51bWJlcnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBicmVha3MgdXAgQ0NPdmVyZHJhd01l
dHJpY3MgdG8gbWFrZSB0aGUgbWV0aG9kcy92YXJpYWJsZXMgbGVzcworICAgICAgICBvdmVybG9h
ZGVkIGFuZCBtb3JlIGNsZWFyLiBUaGlzIHdheSB0aGV5IGRvbid0IGhhdmUgdG8gbWlycm9yIGVh
Y2ggb3RoZXIKKyAgICAgICAgc28gY2xvc2VseSBvbiBwYWludC9kcmF3IHNpZGVzLgorCisgICAg
ICAgIFRoZW4gd2UgcmVjb3JkIHRoZSBudW1iZXIgb2YgdGlsZXMgZm9yIHdoaWNoIHdlIHByZXZl
bnRlZCB1cGxvYWQgdmlhIHBhaW50CisgICAgICAgIGN1bGxpbmcuIFRoaXMgd2lsbCBzdGlsbCBv
dmVyLXJlcG9ydCAoYSBkaXJ0eSBjdWxsZWQgdGlsZSBzdGF5cyBkaXJ0eSBhbmQKKyAgICAgICAg
d2lsbCBiZSBjdWxsZWQgYWdhaW4gZWFjaCBjb21taXQpLCBidXQgaXQgc2VlbXMgbW9yZSByZWFz
b25hYmxlIGFzIGl0CisgICAgICAgIGNsZWFybHkgZG9lcyBub3QgdHJ5IHRvIG1pbWljIGEgcGVy
Zm9ybWFuY2UgbWV0cmljIGluIHRoZSB3YXkgdGhhdCBhIHBpeGVsCisgICAgICAgIGNvdW50IGRv
ZXMsIGJ1dCBzdGlsbCBnaXZlcyBhIHJvdWdoIGVzdGltYXRpb24gb2YgdGhlIGFtb3VudCBvZiBw
YWludAorICAgICAgICBjdWxsaW5nIGdvaW5nIG9uIGluIGEgcGFnZS4KKworICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBtb2RpZmllZCB3aGVyZSBuZWVkZWQuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJp
Y3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OkNDT3ZlcmRyYXdN
ZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpkaWRDdWxsVGls
ZUZvclVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3Zl
cmRyYXdNZXRyaWNzOjpkaWRVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01l
dHJpY3M6OmRpZEN1bGxGb3JEcmF3aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdN
ZXRyaWNzOjpyZWNvcmRNZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRy
aWNzOjpyZWNvcmRNZXRyaWNzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmg6CisgICAgICAgIChDQ092ZXJkcmF3TWV0
cmljcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6cGl4ZWxzQ3VsbGVk
Rm9yRHJhd2luZyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6cGl4ZWxz
VXBsb2FkZWRPcGFxdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnBp
eGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01l
dHJpY3M6OnRpbGVzQ3VsbGVkRm9yVXBsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFk
Q3VsbGVyOjphcHBlbmQpOgorCisyMDEyLTAzLTI3ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hy
b21pdW0ub3JnPgorCiAgICAgICAgIFtjaHJvbWl1bV0gUmVuYW1lIG9wYXF1ZUNvbnRlbnRzUmVn
aW9uKCkgdG8gdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2ODkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA5OGZmZjk0ZWFiMzFmMGIwMmFmOGU2ODI4NTVjNTIyZmNjZGY1MmUzLi4zZGQ5
YmE4NTAzMjY2NzFmNzEzMjZlOWUzZDIzZmQ0ZjMwNjRlNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDEyLTAzLTI3ICBEYW5hIEphbnNlbnMgIDxkYW5h
a2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gUmVjb3JkIHRoZSBudW1iZXIg
b2YgdGlsZXMgcGFpbnQtY3VsbGVkIGluc3RlYWQgb2YgdGhlIGluY29ycmVjdCBudW1iZXIgb2Yg
cGl4ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MjQyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
dGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAg
ICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKFdURjo6
VEVTVCk6CisKKzIwMTItMDMtMjcgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+
CisKICAgICAgICAgW2Nocm9taXVtXSBSZW5hbWUgb3BhcXVlQ29udGVudHNSZWdpb24oKSB0byB2
aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MTY4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNw
cAppbmRleCA0NTY2MzJjYzk5ZDMyMGQ5MWNlZjk3MDAzMmU4NzE3MjA4MTkxMjFjLi45ZDBiZDZi
OWI1MjA0MDljNWZhOWY3NjczNzA4NTg4N2MyY2M3NGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJD
aHJvbWl1bS5jcHAKQEAgLTQzMiw4ICs0MzIsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6
cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50CiAg
ICAgICAgICAgICAgICAgSW50UmVjdCB2aXNpYmxlVGlsZVJlY3QgPSBpbnRlcnNlY3Rpb24obV90
aWxlci0+dGlsZUJvdW5kcyhpLCBqKSwgdmlzaWJsZUxheWVyUmVjdCgpKTsKICAgICAgICAgICAg
ICAgICBpZiAob2NjbHVzaW9uLT5vY2NsdWRlZCh0aGlzLCB2aXNpYmxlVGlsZVJlY3QpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVCghdGlsZS0+bV91cGRhdGVkKTsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gU2F2ZSB0aGUgYXJlYSB3ZSBjdWxsZWQgZm9yIHJlY29yZGluZyBtZXRyaWNz
LgotICAgICAgICAgICAgICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3QgPSB0aWxlLT5tX2RpcnR5
UmVjdDsKKyAgICAgICAgICAgICAgICAgICAgb2NjbHVzaW9uLT5vdmVyZHJhd01ldHJpY3MoKS5k
aWRDdWxsVGlsZUZvclVwbG9hZCh0aWxlLT5pc0RpcnR5KCkpOwogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC01MDksMjQg
KzUwOCwxNCBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMo
Ym9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50CiAKICAgICAgICAgICAgIEludFJlY3Qg
dGlsZVJlY3QgPSBtX3RpbGVyLT50aWxlQm91bmRzKGksIGopOwogCisgICAgICAgICAgICBpZiAo
IXRpbGUtPm1fdXBkYXRlZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICAg
ICAgLy8gVXNlIG1fdXBkYXRlUmVjdCBhcyB0aGUgYWJvdmUgbG9vcCBjb3BpZWQgdGhlIGRpcnR5
IHJlY3QgZm9yIHRoaXMgZnJhbWUgdG8gbV91cGRhdGVSZWN0LgogICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCYgZGlydHlSZWN0ID0gdGlsZS0+bV91cGRhdGVSZWN0OwogICAgICAgICAgICAgaWYg
KGRpcnR5UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgICAgIC8vIHNvdXJjZVJlY3Qgc3RhcnRzIGFzIGEgZnVsbC1zaXplZCB0aWxlIHdpdGggYm9y
ZGVyIHRleGVscyBpbmNsdWRlZC4KLSAgICAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IG1f
dGlsZXItPnRpbGVSZWN0KHRpbGUpOwotICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3Qo
ZGlydHlSZWN0KTsKLSAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8g
bGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMsIHNvCi0gICAgICAgICAgICAvLyBtYWtlIHN1cmUg
dGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2YgaXQuCi0gICAgICAgICAg
ICBzb3VyY2VSZWN0LmludGVyc2VjdChtX3BhaW50UmVjdCk7Ci0KLSAgICAgICAgICAgIGlmICgh
dGlsZS0+bV91cGRhdGVkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG9jY2x1c2lvbikKLSAgICAg
ICAgICAgICAgICAgICAgb2NjbHVzaW9uLT5vdmVyZHJhd01ldHJpY3MoKS5kaWRDdWxsKFRyYW5z
Zm9ybWF0aW9uTWF0cml4KCksIHNvdXJjZVJlY3QsIEludFJlY3QoKSk7Ci0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIC8vIFNhdmUgd2hhdCB3
YXMgcGFpbnRlZCBvcGFxdWUgaW4gdGhlIHRpbGUuIEtlZXAgdGhlIG9sZCBhcmVhIGlmIHRoZSBw
YWludCBkaWRuJ3QgdG91Y2ggaXQsIGFuZCBkaWRuJ3QgcGFpbnQgc29tZQogICAgICAgICAgICAg
Ly8gb3RoZXIgcGFydCBvZiB0aGUgdGlsZSBvcGFxdWUuCiAgICAgICAgICAgICBJbnRSZWN0IHRp
bGVQYWludGVkUmVjdCA9IGludGVyc2VjdGlvbih0aWxlUmVjdCwgbV9wYWludFJlY3QpOwpAQCAt
NTQwLDEzICs1MjksMjAgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0
ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludAogICAgICAgICAgICAgICAg
ICAgICB0aWxlLT5zZXRPcGFxdWVSZWN0KHRpbGVQYWludGVkT3BhcXVlUmVjdCk7CiAgICAgICAg
ICAgICB9CiAKKyAgICAgICAgICAgIC8vIHNvdXJjZVJlY3Qgc3RhcnRzIGFzIGEgZnVsbC1zaXpl
ZCB0aWxlIHdpdGggYm9yZGVyIHRleGVscyBpbmNsdWRlZC4KKyAgICAgICAgICAgIEludFJlY3Qg
c291cmNlUmVjdCA9IG1fdGlsZXItPnRpbGVSZWN0KHRpbGUpOworICAgICAgICAgICAgc291cmNl
UmVjdC5pbnRlcnNlY3QoZGlydHlSZWN0KTsKKyAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90
IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMsIHNvCisgICAgICAgICAg
ICAvLyBtYWtlIHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2Yg
aXQuCisgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChtX3BhaW50UmVjdCk7CisKICAg
ICAgICAgICAgIHRpbGUtPm1fdXBkYXRlUmVjdCA9IHNvdXJjZVJlY3Q7CiAgICAgICAgICAgICBp
ZiAoc291cmNlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgICAgIHRpbGUtPnRleHR1cmUoKS0+cHJlcGFyZVJlY3Qoc291cmNlUmVjdCk7CiAgICAg
ICAgICAgICBpZiAob2NjbHVzaW9uKQotICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRy
YXdNZXRyaWNzKCkuZGlkRHJhdyhUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBzb3VyY2VSZWN0LCB0
aWxlLT5vcGFxdWVSZWN0KCkpOworICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdN
ZXRyaWNzKCkuZGlkVXBsb2FkKFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHNvdXJjZVJlY3QsIHRp
bGUtPm9wYXF1ZVJlY3QoKSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmlj
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092
ZXJkcmF3TWV0cmljcy5jcHAKaW5kZXggMjQxMzdhMDcyN2UwYzZhOGMyODU3ZDBkMTlmYzZjN2Yw
NTIxMGI5Ny4uZDI1YWY2MGY2MmNhZjgxMTU4OGNkNGNhNzgwNTAwODk0MTliYTFiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVy
ZHJhd01ldHJpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmNwcApAQCAtNDEsOCArNDEsMTEgQEAgQ0NPdmVy
ZHJhd01ldHJpY3M6OkNDT3ZlcmRyYXdNZXRyaWNzKGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1l
KQogICAgIDogbV9yZWNvcmRNZXRyaWNzRm9yRnJhbWUocmVjb3JkTWV0cmljc0ZvckZyYW1lKQog
ICAgICwgbV9waXhlbHNEcmF3bk9wYXF1ZSgwKQogICAgICwgbV9waXhlbHNEcmF3blRyYW5zbHVj
ZW50KDApCi0gICAgLCBtX3BpeGVsc0N1bGxlZCgwKQorICAgICwgbV9waXhlbHNDdWxsZWRGb3JE
cmF3aW5nKDApCiAgICAgLCBtX3BpeGVsc1BhaW50ZWQoMCkKKyAgICAsIG1fcGl4ZWxzVXBsb2Fk
ZWRPcGFxdWUoMCkKKyAgICAsIG1fcGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgwKQorICAgICwg
bV90aWxlc0N1bGxlZEZvclVwbG9hZCgwKQogewogfQogCkBAIC02OCw3ICs3MSwyNSBAQCB2b2lk
IENDT3ZlcmRyYXdNZXRyaWNzOjpkaWRQYWludChjb25zdCBJbnRSZWN0JiBwYWludGVkUmVjdCkK
ICAgICBtX3BpeGVsc1BhaW50ZWQgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBhaW50ZWRSZWN0Lndp
ZHRoKCkpICogcGFpbnRlZFJlY3QuaGVpZ2h0KCk7CiB9CiAKLXZvaWQgQ0NPdmVyZHJhd01ldHJp
Y3M6OmRpZEN1bGwoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0
LCBjb25zdCBJbnRSZWN0JiBiZWZvcmVDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYgYWZ0ZXJDdWxs
UmVjdCkKK3ZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OmRpZEN1bGxUaWxlRm9yVXBsb2FkKGJvb2wg
ZGlydHkpCit7CisgICAgaWYgKG1fcmVjb3JkTWV0cmljc0ZvckZyYW1lICYmIGRpcnR5KQorICAg
ICAgICArK21fdGlsZXNDdWxsZWRGb3JVcGxvYWQ7Cit9CisKK3ZvaWQgQ0NPdmVyZHJhd01ldHJp
Y3M6OmRpZFVwbG9hZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJn
ZXQsIGNvbnN0IEludFJlY3QmIHVwbG9hZFJlY3QsIGNvbnN0IEludFJlY3QmIG9wYXF1ZVJlY3Qp
Cit7CisgICAgaWYgKCFtX3JlY29yZE1ldHJpY3NGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZmxvYXQgdXBsb2FkQXJlYSA9IHF1YWRBcmVhKHRyYW5zZm9ybVRvVGFyZ2V0Lm1hcFF1
YWQoRmxvYXRRdWFkKHVwbG9hZFJlY3QpKSk7CisgICAgZmxvYXQgdXBsb2FkT3BhcXVlQXJlYSA9
IHF1YWRBcmVhKHRyYW5zZm9ybVRvVGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGludGVyc2VjdGlv
bihvcGFxdWVSZWN0LCB1cGxvYWRSZWN0KSkpKTsKKworICAgIG1fcGl4ZWxzVXBsb2FkZWRPcGFx
dWUgKz0gdXBsb2FkT3BhcXVlQXJlYTsKKyAgICBtX3BpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQg
Kz0gdXBsb2FkQXJlYSAtIHVwbG9hZE9wYXF1ZUFyZWE7Cit9CisKK3ZvaWQgQ0NPdmVyZHJhd01l
dHJpY3M6OmRpZEN1bGxGb3JEcmF3aW5nKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3JlQ3VsbFJlY3QsIGNvbnN0IEludFJl
Y3QmIGFmdGVyQ3VsbFJlY3QpCiB7CiAgICAgaWYgKCFtX3JlY29yZE1ldHJpY3NGb3JGcmFtZSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNzYsNyArOTcsNyBAQCB2b2lkIENDT3ZlcmRyYXdNZXRyaWNz
OjpkaWRDdWxsKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwg
YwogICAgIGZsb2F0IGJlZm9yZUN1bGxBcmVhID0gcXVhZEFyZWEodHJhbnNmb3JtVG9UYXJnZXQu
bWFwUXVhZChGbG9hdFF1YWQoYmVmb3JlQ3VsbFJlY3QpKSk7CiAgICAgZmxvYXQgYWZ0ZXJDdWxs
QXJlYSA9IHF1YWRBcmVhKHRyYW5zZm9ybVRvVGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGFmdGVy
Q3VsbFJlY3QpKSk7CiAKLSAgICBtX3BpeGVsc0N1bGxlZCArPSBiZWZvcmVDdWxsQXJlYSAtIGFm
dGVyQ3VsbEFyZWE7CisgICAgbV9waXhlbHNDdWxsZWRGb3JEcmF3aW5nICs9IGJlZm9yZUN1bGxB
cmVhIC0gYWZ0ZXJDdWxsQXJlYTsKIH0KIAogdm9pZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlkRHJh
dyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IElu
dFJlY3QmIGFmdGVyQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIG9wYXF1ZVJlY3QpCkBAIC05Myw2
MSArMTE0LDQ5IEBAIHZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OmRpZERyYXcoY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjCiAKIHZvaWQgQ0NPdmVyZHJhd01l
dHJpY3M6OnJlY29yZE1ldHJpY3MoY29uc3QgQ0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0
KSBjb25zdAogewotICAgIGlmIChtX3JlY29yZE1ldHJpY3NGb3JGcmFtZSkKLSAgICAgICAgcmVj
b3JkTWV0cmljc0ludGVybmFsPENDTGF5ZXJUcmVlSG9zdD4oVVBMT0FESU5HLCBsYXllclRyZWVI
b3N0KTsKKyAgICBpZiAoIW1fcmVjb3JkTWV0cmljc0ZvckZyYW1lKQorICAgICAgICByZXR1cm47
CisKKyAgICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0PihsYXllclRyZWVI
b3N0KTsKKworICAgIFRSQUNFX0NPVU5URVJfSUQxKCJ3ZWJraXQiLCAiVXBsb2FkVGlsZXNDdWxs
ZWQiLCBsYXllclRyZWVIb3N0LCBtX3RpbGVzQ3VsbGVkRm9yVXBsb2FkKTsKKyAgICBUUkFDRV9F
VkVOVDIoIndlYmtpdCIsICJDQ092ZXJkcmF3TWV0cmljcyIsICJQaXhlbHNVcGxvYWRlZE9wYXF1
ZSIsIG1fcGl4ZWxzVXBsb2FkZWRPcGFxdWUsICJQaXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50Iiwg
bV9waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KTsKKyAgICB7CisgICAgICAgIC8vIFRoaXMgbXVz
dCBiZSBpbiBhIGRpZmZlcmVudCBzY29wZSB0aGFuIHRoZSBUUkFDRV9FVkVOVDIgYWJvdmUuCisg
ICAgICAgIFRSQUNFX0VWRU5UMSgid2Via2l0IiwgIkNDT3ZlcmRyYXdQYWludE1ldHJpY3MiLCAi
UGl4ZWxzUGFpbnRlZCIsIG1fcGl4ZWxzUGFpbnRlZCk7CisgICAgfQogfQogCiB2b2lkIENDT3Zl
cmRyYXdNZXRyaWNzOjpyZWNvcmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdEltcGwqIGxh
eWVyVHJlZUhvc3QpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcmVjb3JkTWV0cmljc0ZvckZyYW1lKQot
ICAgICAgICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0SW1wbD4oRFJBV0lO
RywgbGF5ZXJUcmVlSG9zdCk7CisgICAgaWYgKCFtX3JlY29yZE1ldHJpY3NGb3JGcmFtZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcmVjb3JkTWV0cmljc0ludGVybmFsPENDTGF5ZXJUcmVlSG9z
dEltcGw+KGxheWVyVHJlZUhvc3QpOworCisgICAgVFJBQ0VfQ09VTlRFUl9JRDEoIndlYmtpdCIs
ICJEcmF3UGl4ZWxzQ3VsbGVkIiwgbGF5ZXJUcmVlSG9zdCwgbV9waXhlbHNDdWxsZWRGb3JEcmF3
aW5nKTsKKyAgICBUUkFDRV9FVkVOVDIoIndlYmtpdCIsICJDQ092ZXJkcmF3TWV0cmljcyIsICJQ
aXhlbHNEcmF3bk9wYXF1ZSIsIG1fcGl4ZWxzRHJhd25PcGFxdWUsICJQaXhlbHNEcmF3blRyYW5z
bHVjZW50IiwgbV9waXhlbHNEcmF3blRyYW5zbHVjZW50KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgTGF5ZXJUcmVlSG9zdFR5cGU+Ci12b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpyZWNvcmRNZXRy
aWNzSW50ZXJuYWwoTWV0cmljc1R5cGUgbWV0cmljc1R5cGUsIGNvbnN0IExheWVyVHJlZUhvc3RU
eXBlKiBsYXllclRyZWVIb3N0KSBjb25zdAordm9pZCBDQ092ZXJkcmF3TWV0cmljczo6cmVjb3Jk
TWV0cmljc0ludGVybmFsKGNvbnN0IExheWVyVHJlZUhvc3RUeXBlKiBsYXllclRyZWVIb3N0KSBj
b25zdAogewotICAgIGNvbnN0IGNoYXIqIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAwOwotICAgIGNv
bnN0IGNoYXIqIGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSA9IDA7Ci0gICAgY29uc3QgY2hhciog
aGlzdG9ncmFtQ3VsbGVkTmFtZSA9IDA7Ci0gICAgY29uc3QgY2hhciogaGlzdG9ncmFtUGFpbnRl
ZE5hbWUgPSAwOwotICAgIGNvbnN0IGNoYXIqIGN1bGxDb3VudGVyTmFtZSA9IDA7Ci0gICAgY29u
c3QgY2hhciogb3BhcXVlQ291bnRlck5hbWUgPSAwOwotICAgIGNvbnN0IGNoYXIqIHRyYW5zbHVj
ZW50Q291bnRlck5hbWUgPSAwOwotICAgIGNvbnN0IGNoYXIgKnBhaW50ZWRDb3VudGVyTmFtZSA9
IDA7Ci0gICAgc3dpdGNoIChtZXRyaWNzVHlwZSkgewotICAgIGNhc2UgRFJBV0lORzoKLSAgICAg
ICAgaGlzdG9ncmFtT3BhcXVlTmFtZSA9ICJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRPcGFxdWUi
OwotICAgICAgICBoaXN0b2dyYW1UcmFuc2x1Y2VudE5hbWUgPSAiUmVuZGVyZXI0LmRyYXdQaXhl
bENvdW50VHJhbnNsdWNlbnQiOwotICAgICAgICBoaXN0b2dyYW1DdWxsZWROYW1lID0gIlJlbmRl
cmVyNC5kcmF3UGl4ZWxDb3VudEN1bGxlZCI7Ci0gICAgICAgIGN1bGxDb3VudGVyTmFtZSA9ICJE
cmF3UGl4ZWxzQ3VsbGVkIjsKLSAgICAgICAgb3BhcXVlQ291bnRlck5hbWUgPSAiUGl4ZWxzRHJh
d25PcGFxdWUiOwotICAgICAgICB0cmFuc2x1Y2VudENvdW50ZXJOYW1lID0gIlBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFVQTE9BRElORzoKLSAgICAg
ICAgaGlzdG9ncmFtT3BhcXVlTmFtZSA9ICJSZW5kZXJlcjQudXBsb2FkUGl4ZWxDb3VudE9wYXF1
ZSI7Ci0gICAgICAgIGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSA9ICJSZW5kZXJlcjQudXBsb2Fk
UGl4ZWxDb3VudFRyYW5zbHVjZW50IjsKLSAgICAgICAgaGlzdG9ncmFtQ3VsbGVkTmFtZSA9ICJS
ZW5kZXJlcjQudXBsb2FkUGl4ZWxDb3VudEN1bGxlZCI7Ci0gICAgICAgIGhpc3RvZ3JhbVBhaW50
ZWROYW1lID0gIlJlbmRlcmVyNC5waXhlbENvdW50UGFpbnRlZCI7Ci0gICAgICAgIGN1bGxDb3Vu
dGVyTmFtZSA9ICJVcGxvYWRQaXhlbHNDdWxsZWQiOwotICAgICAgICBvcGFxdWVDb3VudGVyTmFt
ZSA9ICJQaXhlbHNVcGxvYWRlZE9wYXF1ZSI7Ci0gICAgICAgIHRyYW5zbHVjZW50Q291bnRlck5h
bWUgPSAiUGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCI7Ci0gICAgICAgIHBhaW50ZWRDb3VudGVy
TmFtZSA9ICJQaXhlbHNQYWludGVkIjsKLSAgICAgICAgYnJlYWs7CisgICAgLy8gVGhpcyBnaXZl
cyBhcHByb3hpbWF0ZWx5IDEweCB0aGUgcGVyY2VudGFnZSBvZiBwaXhlbHMgdG8gZmlsbCB0aGUg
dmlld3BvcnQgb25jZS4KKyAgICBmbG9hdCBub3JtYWxpemF0aW9uID0gMTAwMC5mIC8gKGxheWVy
VHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLndpZHRoKCkgKiBsYXllclRyZWVIb3N0LT52aWV3cG9y
dFNpemUoKS5oZWlnaHQoKSk7CisgICAgLy8gVGhpcyBnaXZlcyBhcHByb3hpbWF0ZWx5IDEwMHgg
dGhlIHBlcmNlbnRhZ2Ugb2YgdGlsZXMgdG8gZmlsbCB0aGUgdmlld3BvcnQgb25jZSwgaWYgYWxs
IHRpbGVzIHdlcmUgMjU2eDI1Ni4KKyAgICBmbG9hdCB0aWxlTm9ybWFsaXphdGlvbiA9IDEwMDAw
LmYgLyAobGF5ZXJUcmVlSG9zdC0+dmlld3BvcnRTaXplKCkud2lkdGgoKSAvIDI1Ni5mICogbGF5
ZXJUcmVlSG9zdC0+dmlld3BvcnRTaXplKCkuaGVpZ2h0KCkgLyAyNTYuZik7CisKKyAgICBpZiAo
bV9waXhlbHNEcmF3bk9wYXF1ZSB8fCBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQgfHwgbV9waXhl
bHNDdWxsZWRGb3JEcmF3aW5nKSB7CisgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFt
Q3VzdG9tQ291bnRzKCJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRPcGFxdWUiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBtX3BpeGVsc0RyYXduT3BhcXVlKSwgMTAwLCAxMDAwMDAw
LCA1MCk7CisgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJS
ZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRUcmFuc2x1Y2VudCIsIHN0YXRpY19jYXN0PGludD4obm9y
bWFsaXphdGlvbiAqIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCksIDEwMCwgMTAwMDAwMCwgNTAp
OworICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVy
ZXI0LmRyYXdQaXhlbENvdW50Q3VsbGVkIiwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9u
ICogbV9waXhlbHNDdWxsZWRGb3JEcmF3aW5nKSwgMTAwLCAxMDAwMDAwLCA1MCk7CiAgICAgfQot
ICAgIEFTU0VSVChoaXN0b2dyYW1PcGFxdWVOYW1lKTsKIAotICAgIGZsb2F0IG5vcm1hbGl6YXRp
b24gPSAxMDAwLmYgLyAobGF5ZXJUcmVlSG9zdC0+dmlld3BvcnRTaXplKCkud2lkdGgoKSAqIGxh
eWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLmhlaWdodCgpKTsKLSAgICBQbGF0Zm9ybVN1cHBv
cnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cyhoaXN0b2dyYW1PcGFxdWVOYW1lLCBzdGF0aWNfY2Fz
dDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBtX3BpeGVsc0RyYXduT3BhcXVlKSwgMTAwLCAxMDAwMDAw
LCA1MCk7Ci0gICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21Db3VudHMoaGlzdG9n
cmFtVHJhbnNsdWNlbnROYW1lLCBzdGF0aWNfY2FzdDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBtX3Bp
eGVsc0RyYXduVHJhbnNsdWNlbnQpLCAxMDAsIDEwMDAwMDAsIDUwKTsKLSAgICBQbGF0Zm9ybVN1
cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cyhoaXN0b2dyYW1DdWxsZWROYW1lLCBzdGF0aWNf
Y2FzdDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBtX3BpeGVsc0N1bGxlZCksIDEwMCwgMTAwMDAwMCwg
NTApOwotICAgIGlmIChwYWludGVkQ291bnRlck5hbWUpCi0gICAgICAgIFBsYXRmb3JtU3VwcG9y
dDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKGhpc3RvZ3JhbVBhaW50ZWROYW1lLCBzdGF0aWNfY2Fz
dDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBtX3BpeGVsc1BhaW50ZWQpLCAxMDAsIDEwMDAwMDAsIDUw
KTsKLQotICAgIFRSQUNFX0NPVU5URVJfSUQxKCJ3ZWJraXQiLCBjdWxsQ291bnRlck5hbWUsIGxh
eWVyVHJlZUhvc3QsIG1fcGl4ZWxzQ3VsbGVkKTsKLSAgICBUUkFDRV9FVkVOVDIoIndlYmtpdCIs
ICJDQ092ZXJkcmF3TWV0cmljcyIsIG9wYXF1ZUNvdW50ZXJOYW1lLCBtX3BpeGVsc0RyYXduT3Bh
cXVlLCB0cmFuc2x1Y2VudENvdW50ZXJOYW1lLCBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQpOwot
ICAgIGlmIChwYWludGVkQ291bnRlck5hbWUpIHsKLSAgICAgICAgLy8gVGhpcyBtdXN0IGJlIGlu
IGEgZGlmZmVyZW50IHNjb3BlIHRoYW4gdGhlIFRSQUNFX0VWRU5UMiBhYm92ZS4KLSAgICAgICAg
VFJBQ0VfRVZFTlQxKCJ3ZWJraXQiLCAiQ0NPdmVyZHJhd1BhaW50TWV0cmljcyIsIHBhaW50ZWRD
b3VudGVyTmFtZSwgbV9waXhlbHNQYWludGVkKTsKKyAgICBpZiAobV9waXhlbHNQYWludGVkIHx8
IG1fcGl4ZWxzVXBsb2FkZWRPcGFxdWUgfHwgbV9waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50IHx8
IG1fdGlsZXNDdWxsZWRGb3JVcGxvYWQpIHsKKyAgICAgICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0
b2dyYW1DdXN0b21Db3VudHMoIlJlbmRlcmVyNC5waXhlbENvdW50UGFpbnRlZCIsIHN0YXRpY19j
YXN0PGludD4obm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzUGFpbnRlZCksIDEwMCwgMTAwMDAwMCwg
NTApOworICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVu
ZGVyZXI0LnVwbG9hZFBpeGVsQ291bnRPcGFxdWUiLCBzdGF0aWNfY2FzdDxpbnQ+KG5vcm1hbGl6
YXRpb24gKiBtX3BpeGVsc1VwbG9hZGVkT3BhcXVlKSwgMTAwLCAxMDAwMDAwLCA1MCk7CisgICAg
ICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQudXBs
b2FkUGl4ZWxDb3VudFRyYW5zbHVjZW50Iiwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9u
ICogbV9waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KSwgMTAwLCAxMDAwMDAwLCA1MCk7CisgICAg
ICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQudXBs
b2FkVGlsZUNvdW50Q3VsbGVkIiwgc3RhdGljX2Nhc3Q8aW50Pih0aWxlTm9ybWFsaXphdGlvbiAq
IG1fdGlsZXNDdWxsZWRGb3JVcGxvYWQpLCAxMDAsIDEwMDAwMDAwLCA1MCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ092ZXJkcmF3TWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuaAppbmRleCBmODFkMzQ0MTA1NjRhZTA3ODRh
NGE2ZjBlZWFkZjE4ZmM1ZTIyM2JiLi45ZDVhNmE0YjQxZDZlMmFlMTA0YmUyZTk3NTc1NzUwZGIy
MDM0OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmgKQEAgLTQxLDkgKzQxLDE2
IEBAIHB1YmxpYzoKICAgICAvLyBSZWNvcmQgcGl4ZWxzIHBhaW50ZWQgYnkgV2ViS2l0IGludG8g
dGhlIHRleHR1cmUgdXBkYXRlciwgYnV0IGRvZXMgbm90IG1lYW4gdGhlIHBpeGVscyB3ZXJlIHJh
c3Rlcml6ZWQgaW4gbWFpbiBtZW1vcnkuCiAgICAgdm9pZCBkaWRQYWludChjb25zdCBJbnRSZWN0
JiBwYWludGVkUmVjdCk7CiAKLSAgICAvLyBSZWNvcmQgcGl4ZWxzIHRoYXQgd2VyZSBub3QgdXBs
b2FkZWQvZHJhd24gdG8gc2NyZWVuLgotICAgIHZvaWQgZGlkQ3VsbChjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGJlZm9yZUN1bGxS
ZWN0LCBjb25zdCBJbnRSZWN0JiBhZnRlckN1bGxSZWN0KTsKLSAgICAvLyBSZWNvcmQgcGl4ZWxz
IHRoYXQgd2VyZSB1cGxvYWRlZC9kcmF3biB0byBzY3JlZW4uCisgICAgLy8gUmVjb3JkcyB0aGF0
IGFuIGludmFsaWQgdGlsZSB3YXMgY3VsbGVkIGFuZCBkaWQgbm90IG5lZWQgdG8gYmUgcGFpbnRl
ZC91cGxvYWRlZCwgYW5kIGRpZCBub3QgY29udHJpYnV0ZSB0byBvdGhlciB0aWxlcyBuZWVkaW5n
IHRvIGJlIHBhaW50ZWQuCisgICAgdm9pZCBkaWRDdWxsVGlsZUZvclVwbG9hZChib29sIGRpcnR5
KTsKKworICAgIC8vIFJlY29yZHMgcGl4ZWxzIHRoYXQgd2VyZSB1cGxvYWRlZCB0byB0ZXh0dXJl
IG1lbW9yeS4KKyAgICB2b2lkIGRpZFVwbG9hZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIHVwbG9hZFJlY3QsIGNvbnN0IEludFJl
Y3QmIG9wYXF1ZVJlY3QpOworCisgICAgLy8gUmVjb3JkIHBpeGVscyB0aGF0IHdlcmUgbm90IGRy
YXduIHRvIHNjcmVlbi4KKyAgICB2b2lkIGRpZEN1bGxGb3JEcmF3aW5nKGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3JlQ3Vs
bFJlY3QsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QpOworCisgICAgLy8gUmVjb3JkIHBp
eGVscyB0aGF0IHdlcmUgZHJhd24gdG8gc2NyZWVuLgogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGFm
dGVyQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIG9wYXF1ZVJlY3QpOwogCiAgICAgdm9pZCByZWNv
cmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCopIGNvbnN0OwpAQCAtNTIsMzEgKzU5LDM0
IEBAIHB1YmxpYzoKICAgICAvLyBBY2Nlc3NvcnMgZm9yIHRlc3RzLgogICAgIGZsb2F0IHBpeGVs
c0RyYXduT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNEcmF3bk9wYXF1ZTsgfQogICAg
IGZsb2F0IHBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc0Ry
YXduVHJhbnNsdWNlbnQ7IH0KLSAgICBmbG9hdCBwaXhlbHNDdWxsZWQoKSBjb25zdCB7IHJldHVy
biBtX3BpeGVsc0N1bGxlZDsgfQorICAgIGZsb2F0IHBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSBj
b25zdCB7IHJldHVybiBtX3BpeGVsc0N1bGxlZEZvckRyYXdpbmc7IH0KICAgICBmbG9hdCBwaXhl
bHNQYWludGVkKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNQYWludGVkOyB9CisgICAgZmxvYXQg
cGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc1VwbG9hZGVkT3Bh
cXVlOyB9CisgICAgZmxvYXQgcGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudDsgfQorICAgIGludCB0aWxlc0N1bGxlZEZv
clVwbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZXNDdWxsZWRGb3JVcGxvYWQ7IH0KIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBDQ092ZXJkcmF3TWV0cmljcyhib29sIHJlY29yZE1ldHJpY3NG
b3JGcmFtZSk7CiAKLSAgICBlbnVtIE1ldHJpY3NUeXBlIHsKLSAgICAgICAgRFJBV0lORywKLSAg
ICAgICAgVVBMT0FESU5HCi0gICAgfTsKLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHJl
ZUhvc3RUeXBlPgotICAgIHZvaWQgcmVjb3JkTWV0cmljc0ludGVybmFsKE1ldHJpY3NUeXBlLCBj
b25zdCBMYXllclRyZWVIb3N0VHlwZSopIGNvbnN0OworICAgIHZvaWQgcmVjb3JkTWV0cmljc0lu
dGVybmFsKGNvbnN0IExheWVyVHJlZUhvc3RUeXBlKikgY29uc3Q7CiAKICAgICAvLyBXaGVuIGZh
bHNlIHRoaXMgY2xhc3MgaXMgYSBnaWFudCBuby1vcC4KICAgICBib29sIG1fcmVjb3JkTWV0cmlj
c0ZvckZyYW1lOwotICAgIC8vIENvdW50IG9mIHBpeGVscyB0aGF0IGFyZSBvcGFxdWUgKGFuZCB0
aHVzIG9jY2x1ZGUpLiBJZGVhbGx5IHRoaXMgaXMgbm8gbW9yZQotICAgIC8vIHRoYW4gd2lld3Bv
cnQgd2lkdGggeCBoZWlnaHQuCisgICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgYXJlIG9wYXF1
ZSAoYW5kIHRodXMgb2NjbHVkZSkuIElkZWFsbHkgdGhpcyBpcyBubyBtb3JlIHRoYW4gd2lld3Bv
cnQgd2lkdGggeCBoZWlnaHQuCiAgICAgZmxvYXQgbV9waXhlbHNEcmF3bk9wYXF1ZTsKICAgICAv
LyBDb3VudCBvZiBwaXhlbHMgdGhhdCBhcmUgcG9zc2libHkgdHJhbnNsdWNlbnQsIGFuZCBjYW5u
b3Qgb2NjbHVkZS4KICAgICBmbG9hdCBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQ7CiAgICAgLy8g
Q291bnQgb2YgcGl4ZWxzIG5vdCBkcmF3biBhcyB0aGV5IGFyZSBvY2NsdWRlZCBieSBzb210aGlu
ZyBvcGFxdWUuCi0gICAgZmxvYXQgbV9waXhlbHNDdWxsZWQ7CisgICAgZmxvYXQgbV9waXhlbHND
dWxsZWRGb3JEcmF3aW5nOwogICAgIC8vIENvdW50IG9mIHBpeGVscyB0aGF0IHdlcmUgcGFpbnRl
ZCBkdWUgdG8gaW52YWxpZGF0aW9uLgogICAgIGZsb2F0IG1fcGl4ZWxzUGFpbnRlZDsKKyAgICAv
LyBDb3VudCBvZiBwaXhlbHMgdXBsb2FkZWQgdG8gdGV4dHVyZXMgYW5kIGtub3duIHRvIGJlIG9w
YXF1ZS4KKyAgICBmbG9hdCBtX3BpeGVsc1VwbG9hZGVkT3BhcXVlOworICAgIC8vIENvdW50IG9m
IHBpeGVscyB1cGxvYWRlZCB0byB0ZXh0dXJlcyBhbmQgbm90IGtub3duIHRvIGJlIG9wYXF1ZS4K
KyAgICBmbG9hdCBtX3BpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQ7CisgICAgLy8gQ291bnQgb2Yg
dGlsZXMgdGhhdCB3ZXJlIGludmFsaWRhdGVkIGJ1dCBub3QgdXBsb2FkZWQuCisgICAgaW50IG1f
dGlsZXNDdWxsZWRGb3JVcGxvYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1
YWRDdWxsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NRdWFkQ3VsbGVyLmNwcAppbmRleCAzNWQxOTQ2MTc3OTU5MmZlYjRlZjg0NzFiMzhmZTBk
NWVmOWM4NDQwLi40NzAxMDgwNGM4ODBkZWE4MmI2ZTljMjJiMDRmZTkwMDA5ZTlkZWEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1
YWRDdWxsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBDQ1F1YWRDdWxs
ZXI6OmFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCkKICAgICBpZiAo
a2VlcFF1YWQpCiAgICAgICAgIGRyYXdRdWFkLT5zZXRRdWFkVmlzaWJsZVJlY3QoY3VsbGVkUmVj
dCk7CiAKLSAgICBtX29jY2x1c2lvblRyYWNrZXItPm92ZXJkcmF3TWV0cmljcygpLmRpZEN1bGwo
ZHJhd1F1YWQtPnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJl
Y3QpOworICAgIG1fb2NjbHVzaW9uVHJhY2tlci0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbEZv
ckRyYXdpbmcoZHJhd1F1YWQtPnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCks
IGN1bGxlZFJlY3QpOwogICAgIG1fb2NjbHVzaW9uVHJhY2tlci0+b3ZlcmRyYXdNZXRyaWNzKCku
ZGlkRHJhdyhkcmF3UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBjdWxsZWRSZWN0LCBkcmF3UXVhZC0+
b3BhcXVlUmVjdCgpKTsKIAogICAgIC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9u
ZSB1c2luZyBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NR
dWFkQ3VsbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1
bGxlclRlc3QuY3BwCmluZGV4IGFlZjBkNmVmNWE5NmM1NzQxYWFmNWZiYjM1NGFiY2QwZTY3NzVk
NzQuLjQ1NjJhM2E3NWMyY2JiOTU4MDkzM2MzMjNhYmQwNTBkZTU0MTFkNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcApAQCAtMTEw
LDcgKzExMCw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Tm9DdWxsaW5nKQogICAg
IEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVz
aW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMzAwMDAs
IDEpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNp
b25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxl
ZEZvckRyYXdpbmcoKSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5
Q3VsbENoaWxkTGluZXNVcFRvcExlZnQpCkBAIC0xMjcsNyArMTI3LDcgQEAgVEVTVChDQ1F1YWRD
dWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2hpbGRMaW5lc1VwVG9wTGVmdCkKICAgICBFWFBFQ1RfRVEo
cXVhZExpc3Quc2l6ZSgpLCA5dSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQ
RUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdp
bmcoKSwgNDAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxX
aGVuQ2hpbGRPcGFjaXR5Tm90T25lKQpAQCAtMTQ0LDcgKzE0NCw3IEBAIFRFU1QoQ0NRdWFkQ3Vs
bGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYWNpdHlOb3RPbmUpCiAgICAgRVhQRUNUX0VR
KHF1YWRMaXN0LnNpemUoKSwgMTN1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKICAgICBF
WFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgNDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJh
d2luZygpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsV2hl
bkNoaWxkT3BhcXVlRmxhZ0ZhbHNlKQpAQCAtMTYxLDcgKzE2MSw3IEBAIFRFU1QoQ0NRdWFkQ3Vs
bGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYXF1ZUZsYWdGYWxzZSkKICAgICBFWFBFQ1Rf
RVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOwogICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCA0MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JE
cmF3aW5nKCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxD
ZW50ZXJUaWxlT25seSkKQEAgLTE5Niw3ICsxOTYsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3Qs
IHZlcmlmeUN1bGxDZW50ZXJUaWxlT25seSkKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRy
YWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwMDAwLCAxKTsK
ICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVk
Rm9yRHJhd2luZygpLCAzMDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVy
aWZ5Q3VsbENlbnRlclRpbGVOb25JbnRlZ3JhbFNpemUxKQpAQCAtMjI0LDcgKzIyNCw3IEBAIFRF
U1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRlclRpbGVOb25JbnRlZ3JhbFNpemUx
KQogCiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3bk9wYXF1ZSgpLCAyMDM2MywgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9u
VHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEp
OwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygpLCAwLCAxKTsKIH0KIAogVEVT
VChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTIp
CkBAIC0yNTIsNyArMjUyLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2Vu
dGVyVGlsZU5vbkludGVncmFsU2l6ZTIpCiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFj
a2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE5NjQzLCAxKTsKICAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05F
QVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3
aW5nKCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDaGls
ZExpbmVzVXBCb3R0b21SaWdodCkKQEAgLTI3MSw3ICsyNzEsNyBAQCBURVNUKENDUXVhZEN1bGxl
clRlc3QsIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBCb3R0b21SaWdodCkKICAgICBFWFBFQ1RfRVEo
cXVhZExpc3Quc2l6ZSgpLCA5dSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQ
RUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdp
bmcoKSwgNDAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxT
dWJSZWdpb24pCkBAIC0yOTEsNyArMjkxLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJp
ZnlDdWxsU3ViUmVnaW9uKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7CiAg
ICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNE
cmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsK
LSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZCgpLCAxMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDEwMDAwLCAxKTsKIH0K
IAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uMikKQEAgLTMxMSw3
ICszMTEsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24yKQog
ICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7CiAgICAgRVhQRUNUX05FQVIob2Nj
bHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAw
MCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDI1MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxNTAwMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDE1MDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxs
ZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uQ2hlY2tPdmVyY3VsbCkKQEAgLTMzMSw3ICszMzEs
NyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb25DaGVja092ZXJj
dWxsKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7CiAgICAgRVhQRUNUX05F
QVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgp
LCA5MDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAx
MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDEwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1
YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzRG9udE9jY2x1ZGUpCkBAIC0z
NTEsNyArMzUxLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25l
ZFF1YWRzRG9udE9jY2x1ZGUpCiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTN1KTsK
ICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduT3BhcXVlKCksIDEzMDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
Q3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygpLCAwLCAxKTsKIH0KIAogLy8gVGhp
cyB0ZXN0IHJlcXVpcmVzIHNvbWUgZXhwbGFuYXRpb246IGhlcmUgd2UgYXJlIHJvdGF0aW5nIHRo
ZSBxdWFkcyB0byBiZSBjdWxsZWQuCkBAIC0zNzcsNyArMzc3LDcgQEAgVEVTVChDQ1F1YWRDdWxs
ZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzU2FmZWx5Q3VsbGVkKQogICAgIEVYUEVD
VF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMDA2MDAsIDEpOwog
ICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
RHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFj
a2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAyOTQwMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRG
b3JEcmF3aW5nKCksIDI5NDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJp
ZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyVGlsZSkKQEAgLTM5NCw3ICszOTQsNyBAQCBURVNUKEND
UXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJUaWxlKQogICAgIEVY
UEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDF1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDEwMDAwLCAxKTsK
ICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTIwMDAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxl
ZEZvckRyYXdpbmcoKSwgMTIwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2
ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyQ3VsbGVkVGlsZSkKQEAgLTQxMSw3ICs0MTEsNyBA
QCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJDdWxs
ZWRUaWxlKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDF1KTsKICAgICBFWFBFQ1Rf
TkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVl
KCksIDEwMDAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05F
QVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTIw
MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgMTIwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1
YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyUGFydGlhbFRpbGVzKQpA
QCAtNDI4LDcgKzQyOCw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNp
ZGVTY2lzc29yT3ZlclBhcnRpYWxUaWxlcykKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgp
LCA5dSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA0MDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVz
aW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAs
IDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFj
a2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgOTAwMDAsIDEp
OwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92
ZXJOb1RpbGVzKQpAQCAtNDQ1LDcgKzQ0NSw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVy
aWZ5Q3VsbE91dHNpZGVTY2lzc29yT3Zlck5vVGlsZXMpCiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0
LnNpemUoKSwgMHUpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2Nj
bHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCks
IDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzQ3VsbGVkKCksIDEzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9u
VHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDEzMDAw
MCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5V2l0aG91dE1ldHJpY3Mp
CkBAIC00NjIsNyArNDYyLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlXaXRob3V0
TWV0cmljcykKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCA5dSk7CiAgICAgRVhQRUNU
X05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1
ZSgpLCAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIo
b2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWRGb3JEcmF3aW5nKCksIDAsIDEpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDEy
OWM5MTU5NGQ0YmRjODMwMDBkM2U3NmY5NDVlMTk5YTU4OWFiMzQuLjk5N2M5Mjk3NzY2YmM2NjQw
MTIwOGZlMmM4YzY0NjM0YjNiZWNiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMzE5LDkgKzMxOSw5
IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykK
ICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBs
YXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCi0gICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7
Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAyMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJh
bnNsdWNlbnQoKSwgMjAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZCBo
YXZlIGJvdGggdGlsZXMgb24gdGhlIGltcGwgc2lkZS4KICAgICBFWFBFQ1RfVFJVRShsYXllcklt
cGwtPmhhc1RpbGVBdCgwLCAwKSk7CkBAIC0zMzcsOSArMzM3LDkgQEAgVEVTVChUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRpbGVzKQogICAgIGxheWVyLT51cGRhdGVD
b21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGll
c1RvKGxheWVySW1wbC5nZXQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIwMDAw
ICsgMjUwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwg
MjAwMDAgKyAyNTAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAKICAgICAvLyBXZSBzaG91bGQgc3RpbGwg
aGF2ZSBib3RoIHRpbGVzLCBhcyBwYXJ0IG9mIHRoZSB0b3AgdGlsZSBpcyBzdGlsbCB1bm9jY2x1
ZGVkLgogICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKQEAgLTEx
ODIsOSArMTE4Miw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVk
V2l0aE9jY2x1c2lvbikKICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwg
NjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEp
OwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9h
ZGVkVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMywgb2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAKICAgICBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKQEAg
LTExOTMsOSArMTE5Myw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWlu
dGVkV2l0aE9jY2x1c2lvbikKICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwg
MCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0yLCBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAs
IDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAgKyAyMDAwMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBs
b2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAzMzAwMDAgKyAzNDAwMDAsIDEp
OworICAgIEVYUEVDVF9FUSgzICsgMiwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXND
dWxsZWRGb3JVcGxvYWQoKSk7CiAKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKQEAgLTEyMDQsOSArMTIwNCw5IEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbikKICAgICBs
YXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQp
OwogICAgIEVYUEVDVF9FUSgzNiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnBy
ZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMzMDAwMCAr
IDM0MDAwMCArIDM2MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwICsgMjAwMDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1Vw
bG9hZGVkVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQwMDAwICsgMzYwMDAwLCAxKTsKKyAgICBF
WFBFQ1RfRVEoMyArIDIsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9y
VXBsb2FkKCkpOwogfQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRl
ZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKQEAgLTEyMjQsMTIgKzEyMjQs
MTIgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVz
aW9uQW5kVmlzaWJsaXR5Q29uc3RyYWludHMpCiAgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKElu
dFJlY3QoMjAwLCAyMDAsIDMwMCwgMTUwKSk7CiAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJl
Y3QoSW50UmVjdCgwLCAwLCA2MDAsIDM2MCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRS
ZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgNjAwLCAzNjApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgy
NC0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgp
KTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjEwMDAwLCAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9h
ZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMjEwMDAwLCAxKTsKKyAgICBFWFBF
Q1RfRVEoMywgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQo
KSk7CiAKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJl
UmVjdENvdW50KCk7CiAKQEAgLTEyMzcsMTIgKzEyMzcsMTIgQEAgVEVTVChUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVmlzaWJsaXR5Q29uc3RyYWlu
dHMpCiAgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMTUw
KSk7CiAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDM1
MCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7
Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9j
Y2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCAz
NTApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgyNC02LCBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9ORUFSKG9j
Y2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNs
dWNlbnQoKSwgMjEwMDAwICsgMTgwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAgKyA2MDAwMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFx
dWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAxODAwMDAsIDEpOworICAgIEVY
UEVDVF9FUSgzICsgNiwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JV
cGxvYWQoKSk7CiAKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQ
cmVwYXJlUmVjdENvdW50KCk7CiAKQEAgLTEyNTAsMTIgKzEyNTAsMTIgQEAgVEVTVChUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVmlzaWJsaXR5Q29u
c3RyYWludHMpCiAgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjAwLCAyMDAsIDMw
MCwgMTUwKSk7CiAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgwLCAwLCA2
MDAsIDM0MCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwg
NjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSwgJm9jY2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwg
NjAwLCAzNDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgyNC02LCBsYXllci0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEp
OwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMjEwMDAwICsgMTgwMDAwICsgMTgwMDAwLCAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAgKyA2
MDAwMCArIDYwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDIxMDAw
MCArIDE4MDAwMCArIDE4MDAwMCwgMSk7CisgICAgRVhQRUNUX0VRKDMgKyA2ICsgNiwgb2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAKIH0KIApAQCAt
MTI3NiwxOSArMTI3NiwxOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzTm90
UGFpbnRlZFdpdGhvdXRJbnZhbGlkYXRpb24pCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYtMywg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAK
LSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9w
YXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9w
YXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNUX0VR
KDMsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwog
CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RD
b3VudCgpOwogCi0gICAgLy8gUmVwYWludCB3aXRob3V0IG1hcmtpbmcgaXQgZGlydHkuCisgICAg
Ly8gUmVwYWludCB3aXRob3V0IG1hcmtpbmcgaXQgZGlydHkuIFRoZSBjdWxsZWQgdGlsZXMgcmVt
YWluZWQgZGlydHkuCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYw
MCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMCwgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDMzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRy
YW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNUX0VRKDYsIG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogfQogCiBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1zKQpA
QCAtMTMxMyw5ICsxMzEzLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1Bh
aW50ZWRXaXRoT2NjbHVzaW9uQW5kVHJhbnNmb3JtcykKICAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgz
Ni0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgp
KTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9h
ZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBF
Q1RfRVEoMywgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQo
KSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9j
Y2x1c2lvbkFuZFNjYWxpbmcpCkBAIC0xMzQyLDkgKzEzNDIsOSBAQCBURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAgIC8v
IG51bWJlciBvZiB0aWxlcyAzeDMuCiAgICAgRVhQRUNUX0VRKDksIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCA5MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNs
dWNlbnQoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIApAQCAtMTM1Nyw5ICsx
MzU3LDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2Nj
bHVzaW9uQW5kU2NhbGluZykKICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwg
MCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwg
MSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCA5MDAwMCArIDgwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTAwMDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVl
KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgOTAwMDAgKyA4MDAwMCwgMSk7CisgICAgRVhQRUNU
X0VRKDEsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkp
OwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJl
Y3RDb3VudCgpOwogCkBAIC0xMzc1LDkgKzEzNzUsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAg
RVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVS
ZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAg
KyA4MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDEwMDAwICsgMTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJh
bnNsdWNlbnQoKSwgOTAwMDAgKyA4MDAwMCArIDgwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMSAr
IDEsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwog
fQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVn
aW9uKQpAQCAtMTQwNyw5ICsxNDA3LDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2
aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKICAgICBFWFBFQ1RfVFJVRShvcGFxdWVDb250ZW50
cy5pc0VtcHR5KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgp
LCAyMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwg
MjAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50
aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIC8vIHZpc2libGVDb250ZW50T3BhcXVlUmVn
aW9uIHNob3VsZCBtYXRjaCB0aGUgdmlzaWJsZSBwYXJ0IG9mIHdoYXQgaXMgcGFpbnRlZCBvcGFx
dWUuCiAgICAgb3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwgMTAsIDkwLCAxOTApOwpAQCAt
MTQyMSw5ICsxNDIxLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29u
dGVudE9wYXF1ZVJlZ2lvbikKICAgICBFWFBFQ1RfRVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3Rz
KCkuc2l6ZSgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc1BhaW50ZWQoKSwgMjAwMDAgKiAyLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRl
ZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxNzEwMCwgMSk7Ci0gICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1
Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAx
NzEwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAsIDEpOworICAg
IEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVw
bG9hZCgpKTsKIAogICAgIC8vIElmIHdlIHBhaW50IGFnYWluIHdpdGhvdXQgaW52YWxpZGF0aW5n
LCB0aGUgc2FtZSBzdHVmZiBzaG91bGQgYmUgb3BhcXVlLgogICAgIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKQEAgLTE0MzMs
OSArMTQzMyw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRP
cGFxdWVSZWdpb24pCiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNp
emUoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNQYWludGVkKCksIDIwMDAwICogMiwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOwotICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMTcxMDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1Vw
bG9hZGVkVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBF
Q1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQo
KSk7CiAKICAgICAvLyBJZiB3ZSByZXBhaW50IGEgbm9uLW9wYXF1ZSBwYXJ0IG9mIHRoZSB0aWxl
LCB0aGVuIGl0IHNob3VsZG4ndCBsb3NlIGl0cyBvcGFxdWUtbmVzcy4gQW5kIG90aGVyIHRpbGVz
IHNob3VsZAogICAgIC8vIG5vdCBiZSBhZmZlY3RlZC4KQEAgLTE0NDcsOSArMTQ0Nyw5IEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24pCiAg
ICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNpemUoKSk7CiAKICAgICBF
WFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNQYWludGVkKCksIDIw
MDAwICogMiArIDEsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE3MTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIwMDAwICsg
MjAwMDAgLSAxNzEwMCArIDEsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRl
ZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAxNzEwMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRU
cmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAgKyAxLCAxKTsKKyAgICBFWFBFQ1Rf
RVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7
CiAKICAgICAvLyBJZiB3ZSByZXBhaW50IGFuIG9wYXF1ZSBwYXJ0IG9mIHRoZSB0aWxlLCB0aGVu
IGl0IHNob3VsZCBsb3NlIGl0cyBvcGFxdWUtbmVzcy4gQnV0IG90aGVyIHRpbGVzIHNob3VsZCBz
dGlsbAogICAgIC8vIG5vdCBiZSBhZmZlY3RlZC4KQEAgLTE0NjEsOSArMTQ2MSw5IEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24pCiAgICAg
RVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNpemUoKSk7CiAKICAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNQYWludGVkKCksIDIwMDAw
ICogMiArIDEgICsgMSwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9j
Y2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAg
KyAyMDAwMCAtIDE3MTAwICsgMSArIDEsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAxNzEwMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBs
b2FkZWRUcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAgKyAxICsgMSwgMSk7Cisg
ICAgRVhQRUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9y
VXBsb2FkKCkpOwogfQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVsc1BhaW50
ZWRNZXRyaWNzKQpAQCAtMTQ5Myw5ICsxNDkzLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBwaXhlbHNQYWludGVkTWV0cmljcykKICAgICBFWFBFQ1RfVFJVRShvcGFxdWVDb250ZW50
cy5pc0VtcHR5KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzUGFpbnRlZCgpLCAzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgp
LCAzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwg
MzAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50
aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIC8vIEludmFsaWRhdGVzIGFuIGFyZWEgb24g
dGhlIHRvcCBhbmQgYm90dG9tIHRpbGUsIHdoaWNoIHdpbGwgY2F1c2UgdXMgdG8gcGFpbnQgdGhl
IHRpbGUgaW4gdGhlIG1pZGRsZSwKICAgICAvLyBldmVuIHRob3VnaCBpdCBpcyBub3QgZGlydHkg
YW5kIHdpbGwgbm90IGJlIHVwbG9hZGVkLgpAQCAtMTUwOSw5ICsxNTA5LDkgQEAgVEVTVChUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCBwaXhlbHNQYWludGVkTWV0cmljcykKICAgICAvLyBUaGUgbWlk
ZGxlIHRpbGUgd2FzIHBhaW50ZWQgZXZlbiB0aG91Z2ggbm90IGludmFsaWRhdGVkLgogICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1BhaW50ZWQoKSwgMzAw
MDAgKyA2MCAqIDIxMCwgMSk7CiAgICAgLy8gVGhlIHBpeGVscyB1cGxvYWRlZCB3aWxsIG5vdCBp
bmNsdWRlIHRoZSBub24taW52YWxpZGF0ZWQgdGlsZSBpbiB0aGUgbWlkZGxlLgotICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAs
IDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMzAwMDAgKyAxICsgMTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUo
KSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAzMDAwMCArIDEgKyAxMDAsIDEpOworICAgIEVYUEVD
VF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134668</attachid>
            <date>2012-03-29 14:42:19 -0700</date>
            <delta_ts>2012-04-05 12:10:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82423-20120329174218.patch</filename>
            <type>text/plain</type>
            <size>48165</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcyYjgwZmNkZmFmOGY5
MWFjN2MwZDgzOTgzN2Y3N2Q1MzMxN2UxZS4uYTYyYmZkMWMxMzZlY2E4ZDZiNWNkZGRmMzliOGUw
ZjRmYTE5MTY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVj
b3JkIHRoZSBudW1iZXIgb2YgdGlsZXMgcGFpbnQtY3VsbGVkIGluc3RlYWQgb2YgdGhlIGluY29y
cmVjdCBudW1iZXIgb2YgcGl4ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjQyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIGN1cnJlbnRseSBhdHRlbXB0IHRvIHJlY29yZCB0aGUgbnVtYmVyIG9m
IHBpeGVscyB3ZSBzYXZlIGZyb20gdXBsb2FkaW5nLAorICAgICAgICBob3dldmVyIHRoZSBudW1i
ZXIgaXMgd3JvbmcgaW4gdHdvIHdheXMuCisgICAgICAgIDEpIEFuIGVhcmx5LW91dCBpZiBldmVy
eXRoaW5nIGlzIGN1bGxlZCByZXN1bHRzIGluIG5vdGhpbmcgYmVpbmcgcmVwb3J0ZWQuCisgICAg
ICAgIDIpIFdpdGggdGhyZWFkZWQtY29tcG9zaXRvciwgdGhlIG51bWJlciBvZiBwaXhlbHMgdXBs
b2FkZWQgaW4gb25lIHRpbGUgY2FuIGJlCisgICAgICAgIGNoYW5nZWQgYnkgY3VsbGluZyBpbiBh
bm90aGVyIHRpbGUsIG1ha2luZyB0aGUgbnVtYmVyIGZhciB0b28gZGlmZmljdWx0IHRvCisgICAg
ICAgIGNvbXB1dGUgdG8gYmUgd29ydGh3aGlsZS4gSWYgYSB0aWxlIHdhcyBnb2luZyB0byBiZSBw
YXJ0aWFsLXVwZGF0ZWQsIGJ1dCBpcworICAgICAgICBjdWxsZWQsIG5vdyBhIG5ldyB0aWxlIGdl
dHMgdG8gYmUgcGFydGlhbC11cGRhdGVkIGluc3RlYWQsIHdoaWNoIGFmZmVjdHMgdGhlCisgICAg
ICAgIG51bWJlcnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBicmVha3MgdXAgQ0NPdmVyZHJhd01l
dHJpY3MgdG8gbWFrZSB0aGUgbWV0aG9kcy92YXJpYWJsZXMgbGVzcworICAgICAgICBvdmVybG9h
ZGVkIGFuZCBtb3JlIGNsZWFyLiBUaGlzIHdheSB0aGV5IGRvbid0IGhhdmUgdG8gbWlycm9yIGVh
Y2ggb3RoZXIKKyAgICAgICAgc28gY2xvc2VseSBvbiBwYWludC9kcmF3IHNpZGVzLgorCisgICAg
ICAgIFRoZW4gd2UgcmVjb3JkIHRoZSBudW1iZXIgb2YgdGlsZXMgZm9yIHdoaWNoIHdlIHByZXZl
bnRlZCB1cGxvYWQgdmlhIHBhaW50CisgICAgICAgIGN1bGxpbmcuIFRoaXMgd2lsbCBzdGlsbCBv
dmVyLXJlcG9ydCAoYSBkaXJ0eSBjdWxsZWQgdGlsZSBzdGF5cyBkaXJ0eSBhbmQKKyAgICAgICAg
d2lsbCBiZSBjdWxsZWQgYWdhaW4gZWFjaCBjb21taXQpLCBidXQgaXQgc2VlbXMgbW9yZSByZWFz
b25hYmxlIGFzIGl0CisgICAgICAgIGNsZWFybHkgZG9lcyBub3QgdHJ5IHRvIG1pbWljIGEgcGVy
Zm9ybWFuY2UgbWV0cmljIGluIHRoZSB3YXkgdGhhdCBhIHBpeGVsCisgICAgICAgIGNvdW50IGRv
ZXMsIGJ1dCBzdGlsbCBnaXZlcyBhIHJvdWdoIGVzdGltYXRpb24gb2YgdGhlIGFtb3VudCBvZiBw
YWludAorICAgICAgICBjdWxsaW5nIGdvaW5nIG9uIGluIGEgcGFnZS4KKworICAgICAgICBDb3Zl
cmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBtb2RpZmllZCB3aGVyZSBuZWVkZWQuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJp
Y3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OkNDT3ZlcmRyYXdN
ZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpkaWRDdWxsVGls
ZUZvclVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3Zl
cmRyYXdNZXRyaWNzOjpkaWRVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01l
dHJpY3M6OmRpZEN1bGxGb3JEcmF3aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdN
ZXRyaWNzOjpyZWNvcmRNZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRy
aWNzOjpyZWNvcmRNZXRyaWNzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmg6CisgICAgICAgIChDQ092ZXJkcmF3TWV0
cmljcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6cGl4ZWxzQ3VsbGVk
Rm9yRHJhd2luZyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6cGl4ZWxz
VXBsb2FkZWRPcGFxdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnBp
eGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01l
dHJpY3M6OnRpbGVzQ3VsbGVkRm9yVXBsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFk
Q3VsbGVyOjphcHBlbmQpOgorCiAyMDEyLTAzLTI4ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmls
b3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BhdGNoIGNvbnNv
bGUtbWVzc2FnZS1hZGRlZCBhbmQgY29uc29sZS1tZXNzYWdlcy1jbGVhcmVkIGV2ZW50cyBvbiBV
SVNvdXJjZUNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDVmMGFjYmM5NGE1Yjg0
MDkwYmJkODI3N2U4MGMyNjY1YThiNmUxMDguLjFiY2VmODVkNGExNGE3YTQ2MGQzYWMyZTE5MjA5
Y2ZmMDA1NmRmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDMtMjcgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgW2Nocm9taXVtXSBSZWNvcmQgdGhlIG51bWJlciBvZiB0aWxlcyBwYWludC1jdWxsZWQgaW5z
dGVhZCBvZiB0aGUgaW5jb3JyZWN0IG51bWJlciBvZiBwaXhlbHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyNDIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV1RGOjpURVNUKToKKwogMjAxMi0wMy0yNyAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
VHJhbnNmZXIgd2hlZWwgZmxpbmcgdmlhIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDQ1NjYzMmNjOTlkMzIwZDkxY2Vm
OTcwMDMyZTg3MTcyMDgxOTEyMWMuLmRmOGE4NDQ0MTJmNDY0N2U1NmIyZGJlNjcxMjA1MWI1OWM3
NjJiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcApAQCAtNDMyLDggKzQzMiw2
IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlk
bGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQKICAgICAgICAgICAgICAgICBJbnRSZWN0IHZpc2li
bGVUaWxlUmVjdCA9IGludGVyc2VjdGlvbihtX3RpbGVyLT50aWxlQm91bmRzKGksIGopLCB2aXNp
YmxlTGF5ZXJSZWN0KCkpOwogICAgICAgICAgICAgICAgIGlmIChvY2NsdXNpb24tPm9jY2x1ZGVk
KHRoaXMsIHZpc2libGVUaWxlUmVjdCkpIHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCF0
aWxlLT5tX3VwZGF0ZWQpOwotICAgICAgICAgICAgICAgICAgICAvLyBTYXZlIHRoZSBhcmVhIHdl
IGN1bGxlZCBmb3IgcmVjb3JkaW5nIG1ldHJpY3MuCi0gICAgICAgICAgICAgICAgICAgIHRpbGUt
Pm1fdXBkYXRlUmVjdCA9IHRpbGUtPm1fZGlydHlSZWN0OwogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC00NzcsNiArNDc1
LDggQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wg
aWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludAogICAgICAgICAgICAgVXBkYXRhYmxlVGlsZSog
dGlsZSA9IHRpbGVBdChpLCBqKTsKICAgICAgICAgICAgIGlmICh0aWxlLT5tX3VwZGF0ZWQpCiAg
ICAgICAgICAgICAgICAgdGlsZS0+Y29weUFuZENsZWFyRGlydHkoKTsKKyAgICAgICAgICAgIGVs
c2UgaWYgKCFpZGxlICYmIG9jY2x1c2lvbiAmJiB0aWxlLT5pc0RpcnR5KCkpCisgICAgICAgICAg
ICAgICAgb2NjbHVzaW9uLT5vdmVyZHJhd01ldHJpY3MoKS5kaWRDdWxsVGlsZUZvclVwbG9hZCgp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC01MDksMjQgKzUwOSwxNCBAQCB2b2lkIFRpbGVkTGF5
ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50
IHRvcCwgaW50CiAKICAgICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QgPSBtX3RpbGVyLT50aWxl
Qm91bmRzKGksIGopOwogCisgICAgICAgICAgICBpZiAoIXRpbGUtPm1fdXBkYXRlZCkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICAgICAgLy8gVXNlIG1fdXBkYXRlUmVjdCBh
cyB0aGUgYWJvdmUgbG9vcCBjb3BpZWQgdGhlIGRpcnR5IHJlY3QgZm9yIHRoaXMgZnJhbWUgdG8g
bV91cGRhdGVSZWN0LgogICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0ID0gdGls
ZS0+bV91cGRhdGVSZWN0OwogICAgICAgICAgICAgaWYgKGRpcnR5UmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIC8vIHNvdXJjZVJlY3Qgc3Rh
cnRzIGFzIGEgZnVsbC1zaXplZCB0aWxlIHdpdGggYm9yZGVyIHRleGVscyBpbmNsdWRlZC4KLSAg
ICAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IG1fdGlsZXItPnRpbGVSZWN0KHRpbGUpOwot
ICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QoZGlydHlSZWN0KTsKLSAgICAgICAgICAg
IC8vIFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJp
ZXMsIHNvCi0gICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3Qg
ZXh0ZW5kIG91dHNpZGUgb2YgaXQuCi0gICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdCht
X3BhaW50UmVjdCk7Ci0KLSAgICAgICAgICAgIGlmICghdGlsZS0+bV91cGRhdGVkKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKG9jY2x1c2lvbikKLSAgICAgICAgICAgICAgICAgICAgb2NjbHVzaW9u
LT5vdmVyZHJhd01ldHJpY3MoKS5kaWRDdWxsKFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIHNvdXJj
ZVJlY3QsIEludFJlY3QoKSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICB9Ci0KICAgICAgICAgICAgIC8vIFNhdmUgd2hhdCB3YXMgcGFpbnRlZCBvcGFxdWUgaW4gdGhl
IHRpbGUuIEtlZXAgdGhlIG9sZCBhcmVhIGlmIHRoZSBwYWludCBkaWRuJ3QgdG91Y2ggaXQsIGFu
ZCBkaWRuJ3QgcGFpbnQgc29tZQogICAgICAgICAgICAgLy8gb3RoZXIgcGFydCBvZiB0aGUgdGls
ZSBvcGFxdWUuCiAgICAgICAgICAgICBJbnRSZWN0IHRpbGVQYWludGVkUmVjdCA9IGludGVyc2Vj
dGlvbih0aWxlUmVjdCwgbV9wYWludFJlY3QpOwpAQCAtNTQwLDEzICs1MzAsMjAgQEAgdm9pZCBU
aWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxl
ZnQsIGludCB0b3AsIGludAogICAgICAgICAgICAgICAgICAgICB0aWxlLT5zZXRPcGFxdWVSZWN0
KHRpbGVQYWludGVkT3BhcXVlUmVjdCk7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIC8v
IHNvdXJjZVJlY3Qgc3RhcnRzIGFzIGEgZnVsbC1zaXplZCB0aWxlIHdpdGggYm9yZGVyIHRleGVs
cyBpbmNsdWRlZC4KKyAgICAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IG1fdGlsZXItPnRp
bGVSZWN0KHRpbGUpOworICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QoZGlydHlSZWN0
KTsKKyAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBv
biB0aWxlIGJvdW5kYXJpZXMsIHNvCisgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3Vy
Y2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2YgaXQuCisgICAgICAgICAgICBzb3VyY2VS
ZWN0LmludGVyc2VjdChtX3BhaW50UmVjdCk7CisKICAgICAgICAgICAgIHRpbGUtPm1fdXBkYXRl
UmVjdCA9IHNvdXJjZVJlY3Q7CiAgICAgICAgICAgICBpZiAoc291cmNlUmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIHRpbGUtPnRleHR1cmUo
KS0+cHJlcGFyZVJlY3Qoc291cmNlUmVjdCk7CiAgICAgICAgICAgICBpZiAob2NjbHVzaW9uKQot
ICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlkRHJhdyhUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpLCBzb3VyY2VSZWN0LCB0aWxlLT5vcGFxdWVSZWN0KCkpOworICAg
ICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlkVXBsb2FkKFRyYW5z
Zm9ybWF0aW9uTWF0cml4KCksIHNvdXJjZVJlY3QsIHRpbGUtPm9wYXF1ZVJlY3QoKSk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAKaW5kZXgg
MjQxMzdhMDcyN2UwYzZhOGMyODU3ZDBkMTlmYzZjN2YwNTIxMGI5Ny4uNmNkNGZkZmE1NTU3NmU2
MzlkMjMwYjUzMGJlMTk3ODJkNjI2MjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRy
aWNzLmNwcApAQCAtMzksMTAgKzM5LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ0NPdmVy
ZHJhd01ldHJpY3M6OkNDT3ZlcmRyYXdNZXRyaWNzKGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1l
KQogICAgIDogbV9yZWNvcmRNZXRyaWNzRm9yRnJhbWUocmVjb3JkTWV0cmljc0ZvckZyYW1lKQor
ICAgICwgbV9waXhlbHNQYWludGVkKDApCisgICAgLCBtX3BpeGVsc1VwbG9hZGVkT3BhcXVlKDAp
CisgICAgLCBtX3BpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoMCkKKyAgICAsIG1fdGlsZXNDdWxs
ZWRGb3JVcGxvYWQoMCkKICAgICAsIG1fcGl4ZWxzRHJhd25PcGFxdWUoMCkKICAgICAsIG1fcGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgwKQotICAgICwgbV9waXhlbHNDdWxsZWQoMCkKLSAgICAsIG1f
cGl4ZWxzUGFpbnRlZCgwKQorICAgICwgbV9waXhlbHNDdWxsZWRGb3JEcmF3aW5nKDApCiB7CiB9
CiAKQEAgLTY4LDcgKzcxLDI1IEBAIHZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OmRpZFBhaW50KGNv
bnN0IEludFJlY3QmIHBhaW50ZWRSZWN0KQogICAgIG1fcGl4ZWxzUGFpbnRlZCArPSBzdGF0aWNf
Y2FzdDxmbG9hdD4ocGFpbnRlZFJlY3Qud2lkdGgoKSkgKiBwYWludGVkUmVjdC5oZWlnaHQoKTsK
IH0KIAotdm9pZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlkQ3VsbChjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGJlZm9yZUN1bGxSZWN0
LCBjb25zdCBJbnRSZWN0JiBhZnRlckN1bGxSZWN0KQordm9pZCBDQ092ZXJkcmF3TWV0cmljczo6
ZGlkQ3VsbFRpbGVGb3JVcGxvYWQoKQoreworICAgIGlmIChtX3JlY29yZE1ldHJpY3NGb3JGcmFt
ZSkKKyAgICAgICAgKyttX3RpbGVzQ3VsbGVkRm9yVXBsb2FkOworfQorCit2b2lkIENDT3ZlcmRy
YXdNZXRyaWNzOjpkaWRVcGxvYWQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiB1cGxvYWRSZWN0LCBjb25zdCBJbnRSZWN0JiBvcGFx
dWVSZWN0KQoreworICAgIGlmICghbV9yZWNvcmRNZXRyaWNzRm9yRnJhbWUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGZsb2F0IHVwbG9hZEFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zvcm1Ub1Rhcmdl
dC5tYXBRdWFkKEZsb2F0UXVhZCh1cGxvYWRSZWN0KSkpOworICAgIGZsb2F0IHVwbG9hZE9wYXF1
ZUFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zvcm1Ub1RhcmdldC5tYXBRdWFkKEZsb2F0UXVhZChpbnRl
cnNlY3Rpb24ob3BhcXVlUmVjdCwgdXBsb2FkUmVjdCkpKSk7CisKKyAgICBtX3BpeGVsc1VwbG9h
ZGVkT3BhcXVlICs9IHVwbG9hZE9wYXF1ZUFyZWE7CisgICAgbV9waXhlbHNVcGxvYWRlZFRyYW5z
bHVjZW50ICs9IHVwbG9hZEFyZWEgLSB1cGxvYWRPcGFxdWVBcmVhOworfQorCit2b2lkIENDT3Zl
cmRyYXdNZXRyaWNzOjpkaWRDdWxsRm9yRHJhd2luZyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGJlZm9yZUN1bGxSZWN0LCBjb25z
dCBJbnRSZWN0JiBhZnRlckN1bGxSZWN0KQogewogICAgIGlmICghbV9yZWNvcmRNZXRyaWNzRm9y
RnJhbWUpCiAgICAgICAgIHJldHVybjsKQEAgLTc2LDcgKzk3LDcgQEAgdm9pZCBDQ092ZXJkcmF3
TWV0cmljczo6ZGlkQ3VsbChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9U
YXJnZXQsIGMKICAgICBmbG9hdCBiZWZvcmVDdWxsQXJlYSA9IHF1YWRBcmVhKHRyYW5zZm9ybVRv
VGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGJlZm9yZUN1bGxSZWN0KSkpOwogICAgIGZsb2F0IGFm
dGVyQ3VsbEFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zvcm1Ub1RhcmdldC5tYXBRdWFkKEZsb2F0UXVh
ZChhZnRlckN1bGxSZWN0KSkpOwogCi0gICAgbV9waXhlbHNDdWxsZWQgKz0gYmVmb3JlQ3VsbEFy
ZWEgLSBhZnRlckN1bGxBcmVhOworICAgIG1fcGl4ZWxzQ3VsbGVkRm9yRHJhd2luZyArPSBiZWZv
cmVDdWxsQXJlYSAtIGFmdGVyQ3VsbEFyZWE7CiB9CiAKIHZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6
OmRpZERyYXcoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBj
b25zdCBJbnRSZWN0JiBhZnRlckN1bGxSZWN0LCBjb25zdCBJbnRSZWN0JiBvcGFxdWVSZWN0KQpA
QCAtOTQsNjEgKzExNSw1MCBAQCB2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpkaWREcmF3KGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgYwogdm9pZCBDQ092ZXJk
cmF3TWV0cmljczo6cmVjb3JkTWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJl
ZUhvc3QpIGNvbnN0CiB7CiAgICAgaWYgKG1fcmVjb3JkTWV0cmljc0ZvckZyYW1lKQotICAgICAg
ICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0PihVUExPQURJTkcsIGxheWVy
VHJlZUhvc3QpOworICAgICAgICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0
PihVcGRhdGVBbmRDb21taXQsIGxheWVyVHJlZUhvc3QpOwogfQogCiB2b2lkIENDT3ZlcmRyYXdN
ZXRyaWNzOjpyZWNvcmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdEltcGwqIGxheWVyVHJl
ZUhvc3QpIGNvbnN0CiB7CiAgICAgaWYgKG1fcmVjb3JkTWV0cmljc0ZvckZyYW1lKQotICAgICAg
ICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0SW1wbD4oRFJBV0lORywgbGF5
ZXJUcmVlSG9zdCk7CisgICAgICAgIHJlY29yZE1ldHJpY3NJbnRlcm5hbDxDQ0xheWVyVHJlZUhv
c3RJbXBsPihEcmF3aW5nVG9TY3JlZW4sIGxheWVyVHJlZUhvc3QpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBMYXllclRyZWVIb3N0VHlwZT4KIHZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OnJlY29y
ZE1ldHJpY3NJbnRlcm5hbChNZXRyaWNzVHlwZSBtZXRyaWNzVHlwZSwgY29uc3QgTGF5ZXJUcmVl
SG9zdFR5cGUqIGxheWVyVHJlZUhvc3QpIGNvbnN0CiB7Ci0gICAgY29uc3QgY2hhciogaGlzdG9n
cmFtT3BhcXVlTmFtZSA9IDA7Ci0gICAgY29uc3QgY2hhciogaGlzdG9ncmFtVHJhbnNsdWNlbnRO
YW1lID0gMDsKLSAgICBjb25zdCBjaGFyKiBoaXN0b2dyYW1DdWxsZWROYW1lID0gMDsKLSAgICBj
b25zdCBjaGFyKiBoaXN0b2dyYW1QYWludGVkTmFtZSA9IDA7Ci0gICAgY29uc3QgY2hhciogY3Vs
bENvdW50ZXJOYW1lID0gMDsKLSAgICBjb25zdCBjaGFyKiBvcGFxdWVDb3VudGVyTmFtZSA9IDA7
Ci0gICAgY29uc3QgY2hhciogdHJhbnNsdWNlbnRDb3VudGVyTmFtZSA9IDA7Ci0gICAgY29uc3Qg
Y2hhciAqcGFpbnRlZENvdW50ZXJOYW1lID0gMDsKKyAgICAvLyBUaGlzIGdpdmVzIGFwcHJveGlt
YXRlbHkgMTB4IHRoZSBwZXJjZW50YWdlIG9mIHBpeGVscyB0byBmaWxsIHRoZSB2aWV3cG9ydCBv
bmNlLgorICAgIGZsb2F0IG5vcm1hbGl6YXRpb24gPSAxMDAwLmYgLyAobGF5ZXJUcmVlSG9zdC0+
dmlld3BvcnRTaXplKCkud2lkdGgoKSAqIGxheWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLmhl
aWdodCgpKTsKKyAgICAvLyBUaGlzIGdpdmVzIGFwcHJveGltYXRlbHkgMTAweCB0aGUgcGVyY2Vu
dGFnZSBvZiB0aWxlcyB0byBmaWxsIHRoZSB2aWV3cG9ydCBvbmNlLCBpZiBhbGwgdGlsZXMgd2Vy
ZSAyNTZ4MjU2LgorICAgIGZsb2F0IHRpbGVOb3JtYWxpemF0aW9uID0gMTAwMDAuZiAvIChsYXll
clRyZWVIb3N0LT52aWV3cG9ydFNpemUoKS53aWR0aCgpIC8gMjU2LmYgKiBsYXllclRyZWVIb3N0
LT52aWV3cG9ydFNpemUoKS5oZWlnaHQoKSAvIDI1Ni5mKTsKKwogICAgIHN3aXRjaCAobWV0cmlj
c1R5cGUpIHsKLSAgICBjYXNlIERSQVdJTkc6Ci0gICAgICAgIGhpc3RvZ3JhbU9wYXF1ZU5hbWUg
PSAiUmVuZGVyZXI0LmRyYXdQaXhlbENvdW50T3BhcXVlIjsKLSAgICAgICAgaGlzdG9ncmFtVHJh
bnNsdWNlbnROYW1lID0gIlJlbmRlcmVyNC5kcmF3UGl4ZWxDb3VudFRyYW5zbHVjZW50IjsKLSAg
ICAgICAgaGlzdG9ncmFtQ3VsbGVkTmFtZSA9ICJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRDdWxs
ZWQiOwotICAgICAgICBjdWxsQ291bnRlck5hbWUgPSAiRHJhd1BpeGVsc0N1bGxlZCI7Ci0gICAg
ICAgIG9wYXF1ZUNvdW50ZXJOYW1lID0gIlBpeGVsc0RyYXduT3BhcXVlIjsKLSAgICAgICAgdHJh
bnNsdWNlbnRDb3VudGVyTmFtZSA9ICJQaXhlbHNEcmF3blRyYW5zbHVjZW50IjsKKyAgICBjYXNl
IERyYXdpbmdUb1NjcmVlbjoKKyAgICAgICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0
b21Db3VudHMoIlJlbmRlcmVyNC5kcmF3UGl4ZWxDb3VudE9wYXF1ZSIsIHN0YXRpY19jYXN0PGlu
dD4obm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzRHJhd25PcGFxdWUpLCAxMDAsIDEwMDAwMDAsIDUw
KTsKKyAgICAgICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21Db3VudHMoIlJlbmRl
cmVyNC5kcmF3UGl4ZWxDb3VudFRyYW5zbHVjZW50Iiwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxp
emF0aW9uICogbV9waXhlbHNEcmF3blRyYW5zbHVjZW50KSwgMTAwLCAxMDAwMDAwLCA1MCk7Cisg
ICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQu
ZHJhd1BpeGVsQ291bnRDdWxsZWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBt
X3BpeGVsc0N1bGxlZEZvckRyYXdpbmcpLCAxMDAsIDEwMDAwMDAsIDUwKTsKKworICAgICAgICB7
CisgICAgICAgICAgICBUUkFDRV9DT1VOVEVSX0lEMSgid2Via2l0IiwgIkRyYXdQaXhlbHNDdWxs
ZWQiLCBsYXllclRyZWVIb3N0LCBtX3BpeGVsc0N1bGxlZEZvckRyYXdpbmcpOworICAgICAgICAg
ICAgVFJBQ0VfRVZFTlQyKCJ3ZWJraXQiLCAiQ0NPdmVyZHJhd01ldHJpY3MiLCAiUGl4ZWxzRHJh
d25PcGFxdWUiLCBtX3BpeGVsc0RyYXduT3BhcXVlLCAiUGl4ZWxzRHJhd25UcmFuc2x1Y2VudCIs
IG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCk7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBVUExPQURJTkc6Ci0gICAgICAgIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAiUmVuZGVy
ZXI0LnVwbG9hZFBpeGVsQ291bnRPcGFxdWUiOwotICAgICAgICBoaXN0b2dyYW1UcmFuc2x1Y2Vu
dE5hbWUgPSAiUmVuZGVyZXI0LnVwbG9hZFBpeGVsQ291bnRUcmFuc2x1Y2VudCI7Ci0gICAgICAg
IGhpc3RvZ3JhbUN1bGxlZE5hbWUgPSAiUmVuZGVyZXI0LnVwbG9hZFBpeGVsQ291bnRDdWxsZWQi
OwotICAgICAgICBoaXN0b2dyYW1QYWludGVkTmFtZSA9ICJSZW5kZXJlcjQucGl4ZWxDb3VudFBh
aW50ZWQiOwotICAgICAgICBjdWxsQ291bnRlck5hbWUgPSAiVXBsb2FkUGl4ZWxzQ3VsbGVkIjsK
LSAgICAgICAgb3BhcXVlQ291bnRlck5hbWUgPSAiUGl4ZWxzVXBsb2FkZWRPcGFxdWUiOwotICAg
ICAgICB0cmFuc2x1Y2VudENvdW50ZXJOYW1lID0gIlBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQi
OwotICAgICAgICBwYWludGVkQ291bnRlck5hbWUgPSAiUGl4ZWxzUGFpbnRlZCI7CisgICAgY2Fz
ZSBVcGRhdGVBbmRDb21taXQ6CisgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3Vz
dG9tQ291bnRzKCJSZW5kZXJlcjQucGl4ZWxDb3VudFBhaW50ZWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KG5vcm1hbGl6YXRpb24gKiBtX3BpeGVsc1BhaW50ZWQpLCAxMDAsIDEwMDAwMDAsIDUwKTsKKyAg
ICAgICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21Db3VudHMoIlJlbmRlcmVyNC51
cGxvYWRQaXhlbENvdW50T3BhcXVlIiwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9uICog
bV9waXhlbHNVcGxvYWRlZE9wYXF1ZSksIDEwMCwgMTAwMDAwMCwgNTApOworICAgICAgICBQbGF0
Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVyZXI0LnVwbG9hZFBpeGVs
Q291bnRUcmFuc2x1Y2VudCIsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXphdGlvbiAqIG1fcGl4
ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCksIDEwMCwgMTAwMDAwMCwgNTApOworICAgICAgICBQbGF0
Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVyZXI0LnVwbG9hZFRpbGVD
b3VudEN1bGxlZCIsIHN0YXRpY19jYXN0PGludD4odGlsZU5vcm1hbGl6YXRpb24gKiBtX3RpbGVz
Q3VsbGVkRm9yVXBsb2FkKSwgMTAwLCAxMDAwMDAwMCwgNTApOworCisgICAgICAgIHsKKyAgICAg
ICAgICAgIFRSQUNFX0NPVU5URVJfSUQxKCJ3ZWJraXQiLCAiVXBsb2FkVGlsZXNDdWxsZWQiLCBs
YXllclRyZWVIb3N0LCBtX3RpbGVzQ3VsbGVkRm9yVXBsb2FkKTsKKyAgICAgICAgICAgIFRSQUNF
X0VWRU5UMigid2Via2l0IiwgIkNDT3ZlcmRyYXdNZXRyaWNzIiwgIlBpeGVsc1VwbG9hZGVkT3Bh
cXVlIiwgbV9waXhlbHNVcGxvYWRlZE9wYXF1ZSwgIlBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQi
LCBtX3BpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQpOworICAgICAgICB9CisgICAgICAgIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBpbiBhIGRpZmZlcmVudCBzY29wZSB0aGFuIHRoZSBU
UkFDRV9FVkVOVDIgYWJvdmUuCisgICAgICAgICAgICBUUkFDRV9FVkVOVDEoIndlYmtpdCIsICJD
Q092ZXJkcmF3UGFpbnRNZXRyaWNzIiwgIlBpeGVsc1BhaW50ZWQiLCBtX3BpeGVsc1BhaW50ZWQp
OworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlQoaGlzdG9ncmFt
T3BhcXVlTmFtZSk7Ci0KLSAgICBmbG9hdCBub3JtYWxpemF0aW9uID0gMTAwMC5mIC8gKGxheWVy
VHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLndpZHRoKCkgKiBsYXllclRyZWVIb3N0LT52aWV3cG9y
dFNpemUoKS5oZWlnaHQoKSk7Ci0gICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21D
b3VudHMoaGlzdG9ncmFtT3BhcXVlTmFtZSwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9u
ICogbV9waXhlbHNEcmF3bk9wYXF1ZSksIDEwMCwgMTAwMDAwMCwgNTApOwotICAgIFBsYXRmb3Jt
U3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSwg
c3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNEcmF3blRyYW5zbHVjZW50
KSwgMTAwLCAxMDAwMDAwLCA1MCk7Ci0gICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0
b21Db3VudHMoaGlzdG9ncmFtQ3VsbGVkTmFtZSwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0
aW9uICogbV9waXhlbHNDdWxsZWQpLCAxMDAsIDEwMDAwMDAsIDUwKTsKLSAgICBpZiAocGFpbnRl
ZENvdW50ZXJOYW1lKQotICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNv
dW50cyhoaXN0b2dyYW1QYWludGVkTmFtZSwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9u
ICogbV9waXhlbHNQYWludGVkKSwgMTAwLCAxMDAwMDAwLCA1MCk7Ci0KLSAgICBUUkFDRV9DT1VO
VEVSX0lEMSgid2Via2l0IiwgY3VsbENvdW50ZXJOYW1lLCBsYXllclRyZWVIb3N0LCBtX3BpeGVs
c0N1bGxlZCk7Ci0gICAgVFJBQ0VfRVZFTlQyKCJ3ZWJraXQiLCAiQ0NPdmVyZHJhd01ldHJpY3Mi
LCBvcGFxdWVDb3VudGVyTmFtZSwgbV9waXhlbHNEcmF3bk9wYXF1ZSwgdHJhbnNsdWNlbnRDb3Vu
dGVyTmFtZSwgbV9waXhlbHNEcmF3blRyYW5zbHVjZW50KTsKLSAgICBpZiAocGFpbnRlZENvdW50
ZXJOYW1lKSB7Ci0gICAgICAgIC8vIFRoaXMgbXVzdCBiZSBpbiBhIGRpZmZlcmVudCBzY29wZSB0
aGFuIHRoZSBUUkFDRV9FVkVOVDIgYWJvdmUuCi0gICAgICAgIFRSQUNFX0VWRU5UMSgid2Via2l0
IiwgIkNDT3ZlcmRyYXdQYWludE1ldHJpY3MiLCBwYWludGVkQ291bnRlck5hbWUsIG1fcGl4ZWxz
UGFpbnRlZCk7Ci0gICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3
TWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NPdmVyZHJhd01ldHJpY3MuaAppbmRleCBmODFkMzQ0MTA1NjRhZTA3ODRhNGE2ZjBlZWFkZjE4
ZmM1ZTIyM2JiLi41MTU2YzNjMzliMzM0ZTMwOTY4MTZjZjIyZjcyZTE0MzRhYzZhOTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092
ZXJkcmF3TWV0cmljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmgKQEAgLTM4LDEyICszOCwyMCBAQCBjbGFzcyBD
Q092ZXJkcmF3TWV0cmljcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8Q0NPdmVy
ZHJhd01ldHJpY3M+IGNyZWF0ZShib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSkgeyByZXR1cm4g
YWRvcHRQdHIobmV3IENDT3ZlcmRyYXdNZXRyaWNzKHJlY29yZE1ldHJpY3NGb3JGcmFtZSkpOyB9
CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGZvciBzYXZpbmcgbWV0cmljcyBkdXJp
bmcgdXBkYXRlL2NvbW1pdC4KKwogICAgIC8vIFJlY29yZCBwaXhlbHMgcGFpbnRlZCBieSBXZWJL
aXQgaW50byB0aGUgdGV4dHVyZSB1cGRhdGVyLCBidXQgZG9lcyBub3QgbWVhbiB0aGUgcGl4ZWxz
IHdlcmUgcmFzdGVyaXplZCBpbiBtYWluIG1lbW9yeS4KICAgICB2b2lkIGRpZFBhaW50KGNvbnN0
IEludFJlY3QmIHBhaW50ZWRSZWN0KTsKKyAgICAvLyBSZWNvcmRzIHRoYXQgYW4gaW52YWxpZCB0
aWxlIHdhcyBjdWxsZWQgYW5kIGRpZCBub3QgbmVlZCB0byBiZSBwYWludGVkL3VwbG9hZGVkLCBh
bmQgZGlkIG5vdCBjb250cmlidXRlIHRvIG90aGVyIHRpbGVzIG5lZWRpbmcgdG8gYmUgcGFpbnRl
ZC4KKyAgICB2b2lkIGRpZEN1bGxUaWxlRm9yVXBsb2FkKCk7CisgICAgLy8gUmVjb3JkcyBwaXhl
bHMgdGhhdCB3ZXJlIHVwbG9hZGVkIHRvIHRleHR1cmUgbWVtb3J5LgorICAgIHZvaWQgZGlkVXBs
b2FkKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3Qg
SW50UmVjdCYgdXBsb2FkUmVjdCwgY29uc3QgSW50UmVjdCYgb3BhcXVlUmVjdCk7CisKKyAgICAv
LyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGZvciBzYXZpbmcgbWV0cmljcyBkdXJpbmcgZHJhdy4K
IAotICAgIC8vIFJlY29yZCBwaXhlbHMgdGhhdCB3ZXJlIG5vdCB1cGxvYWRlZC9kcmF3biB0byBz
Y3JlZW4uCi0gICAgdm9pZCBkaWRDdWxsKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFu
c2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3JlQ3VsbFJlY3QsIGNvbnN0IEludFJl
Y3QmIGFmdGVyQ3VsbFJlY3QpOwotICAgIC8vIFJlY29yZCBwaXhlbHMgdGhhdCB3ZXJlIHVwbG9h
ZGVkL2RyYXduIHRvIHNjcmVlbi4KKyAgICAvLyBSZWNvcmQgcGl4ZWxzIHRoYXQgd2VyZSBub3Qg
ZHJhd24gdG8gc2NyZWVuLgorICAgIHZvaWQgZGlkQ3VsbEZvckRyYXdpbmcoY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBiZWZvcmVD
dWxsUmVjdCwgY29uc3QgSW50UmVjdCYgYWZ0ZXJDdWxsUmVjdCk7CisgICAgLy8gUmVjb3JkIHBp
eGVscyB0aGF0IHdlcmUgZHJhd24gdG8gc2NyZWVuLgogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGFm
dGVyQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIG9wYXF1ZVJlY3QpOwogCiAgICAgdm9pZCByZWNv
cmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCopIGNvbnN0OwpAQCAtNTIsMzEgKzYwLDQ1
IEBAIHB1YmxpYzoKICAgICAvLyBBY2Nlc3NvcnMgZm9yIHRlc3RzLgogICAgIGZsb2F0IHBpeGVs
c0RyYXduT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNEcmF3bk9wYXF1ZTsgfQogICAg
IGZsb2F0IHBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc0Ry
YXduVHJhbnNsdWNlbnQ7IH0KLSAgICBmbG9hdCBwaXhlbHNDdWxsZWQoKSBjb25zdCB7IHJldHVy
biBtX3BpeGVsc0N1bGxlZDsgfQorICAgIGZsb2F0IHBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSBj
b25zdCB7IHJldHVybiBtX3BpeGVsc0N1bGxlZEZvckRyYXdpbmc7IH0KICAgICBmbG9hdCBwaXhl
bHNQYWludGVkKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNQYWludGVkOyB9CisgICAgZmxvYXQg
cGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc1VwbG9hZGVkT3Bh
cXVlOyB9CisgICAgZmxvYXQgcGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudDsgfQorICAgIGludCB0aWxlc0N1bGxlZEZv
clVwbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZXNDdWxsZWRGb3JVcGxvYWQ7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBDQ092ZXJkcmF3TWV0cmljcyhib29sIHJlY29yZE1ldHJpY3NG
b3JGcmFtZSk7Ci0KICAgICBlbnVtIE1ldHJpY3NUeXBlIHsKLSAgICAgICAgRFJBV0lORywKLSAg
ICAgICAgVVBMT0FESU5HCisgICAgICAgIFVwZGF0ZUFuZENvbW1pdCwKKyAgICAgICAgRHJhd2lu
Z1RvU2NyZWVuCiAgICAgfTsKIAorICAgIGV4cGxpY2l0IENDT3ZlcmRyYXdNZXRyaWNzKGJvb2wg
cmVjb3JkTWV0cmljc0ZvckZyYW1lKTsKKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHJl
ZUhvc3RUeXBlPgogICAgIHZvaWQgcmVjb3JkTWV0cmljc0ludGVybmFsKE1ldHJpY3NUeXBlLCBj
b25zdCBMYXllclRyZWVIb3N0VHlwZSopIGNvbnN0OwogCiAgICAgLy8gV2hlbiBmYWxzZSB0aGlz
IGNsYXNzIGlzIGEgZ2lhbnQgbm8tb3AuCiAgICAgYm9vbCBtX3JlY29yZE1ldHJpY3NGb3JGcmFt
ZTsKLSAgICAvLyBDb3VudCBvZiBwaXhlbHMgdGhhdCBhcmUgb3BhcXVlIChhbmQgdGh1cyBvY2Ns
dWRlKS4gSWRlYWxseSB0aGlzIGlzIG5vIG1vcmUKLSAgICAvLyB0aGFuIHdpZXdwb3J0IHdpZHRo
IHggaGVpZ2h0LgorCisgICAgLy8gVGhlc2UgdmFsdWVzIGFyZSB1c2VkIGZvciBzYXZpbmcgbWV0
cmljcyBkdXJpbmcgdXBkYXRlL2NvbW1pdC4KKworICAgIC8vIENvdW50IG9mIHBpeGVscyB0aGF0
IHdlcmUgcGFpbnRlZCBkdWUgdG8gaW52YWxpZGF0aW9uLgorICAgIGZsb2F0IG1fcGl4ZWxzUGFp
bnRlZDsKKyAgICAvLyBDb3VudCBvZiBwaXhlbHMgdXBsb2FkZWQgdG8gdGV4dHVyZXMgYW5kIGtu
b3duIHRvIGJlIG9wYXF1ZS4KKyAgICBmbG9hdCBtX3BpeGVsc1VwbG9hZGVkT3BhcXVlOworICAg
IC8vIENvdW50IG9mIHBpeGVscyB1cGxvYWRlZCB0byB0ZXh0dXJlcyBhbmQgbm90IGtub3duIHRv
IGJlIG9wYXF1ZS4KKyAgICBmbG9hdCBtX3BpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQ7CisgICAg
Ly8gQ291bnQgb2YgdGlsZXMgdGhhdCB3ZXJlIGludmFsaWRhdGVkIGJ1dCBub3QgdXBsb2FkZWQu
CisgICAgaW50IG1fdGlsZXNDdWxsZWRGb3JVcGxvYWQ7CisKKyAgICAvLyBUaGVzZSB2YWx1ZXMg
YXJlIHVzZWQgZm9yIHNhdmluZyBtZXRyaWNzIGR1cmluZyBkcmF3LgorCisgICAgLy8gQ291bnQg
b2YgcGl4ZWxzIHRoYXQgYXJlIG9wYXF1ZSAoYW5kIHRodXMgb2NjbHVkZSkuIElkZWFsbHkgdGhp
cyBpcyBubyBtb3JlIHRoYW4gd2lld3BvcnQgd2lkdGggeCBoZWlnaHQuCiAgICAgZmxvYXQgbV9w
aXhlbHNEcmF3bk9wYXF1ZTsKICAgICAvLyBDb3VudCBvZiBwaXhlbHMgdGhhdCBhcmUgcG9zc2li
bHkgdHJhbnNsdWNlbnQsIGFuZCBjYW5ub3Qgb2NjbHVkZS4KICAgICBmbG9hdCBtX3BpeGVsc0Ry
YXduVHJhbnNsdWNlbnQ7CiAgICAgLy8gQ291bnQgb2YgcGl4ZWxzIG5vdCBkcmF3biBhcyB0aGV5
IGFyZSBvY2NsdWRlZCBieSBzb210aGluZyBvcGFxdWUuCi0gICAgZmxvYXQgbV9waXhlbHNDdWxs
ZWQ7Ci0gICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgd2VyZSBwYWludGVkIGR1ZSB0byBpbnZh
bGlkYXRpb24uCi0gICAgZmxvYXQgbV9waXhlbHNQYWludGVkOworICAgIGZsb2F0IG1fcGl4ZWxz
Q3VsbGVkRm9yRHJhd2luZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1F1YWRDdWxsZXIuY3BwCmluZGV4IDM1ZDE5NDYxNzc5NTkyZmViNGVmODQ3MWIzOGZlMGQ1ZWY5
Yzg0NDAuLjQ3MDEwODA0Yzg4MGRlYTgyYjZlOWMyMmIwNGZlOTAwMDllOWRlYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NRdWFkQ3VsbGVyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBib29sIENDUXVhZEN1bGxlcjo6
YXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKQogICAgIGlmIChrZWVw
UXVhZCkKICAgICAgICAgZHJhd1F1YWQtPnNldFF1YWRWaXNpYmxlUmVjdChjdWxsZWRSZWN0KTsK
IAotICAgIG1fb2NjbHVzaW9uVHJhY2tlci0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbChkcmF3
UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBkcmF3UXVhZC0+cXVhZFJlY3QoKSwgY3VsbGVkUmVjdCk7
CisgICAgbV9vY2NsdXNpb25UcmFja2VyLT5vdmVyZHJhd01ldHJpY3MoKS5kaWRDdWxsRm9yRHJh
d2luZyhkcmF3UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBkcmF3UXVhZC0+cXVhZFJlY3QoKSwgY3Vs
bGVkUmVjdCk7CiAgICAgbV9vY2NsdXNpb25UcmFja2VyLT5vdmVyZHJhd01ldHJpY3MoKS5kaWRE
cmF3KGRyYXdRdWFkLT5xdWFkVHJhbnNmb3JtKCksIGN1bGxlZFJlY3QsIGRyYXdRdWFkLT5vcGFx
dWVSZWN0KCkpOwogCiAgICAgLy8gUmVsZWFzZSB0aGUgcXVhZCBhZnRlciB3ZSdyZSBkb25lIHVz
aW5nIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRD
dWxsZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVy
VGVzdC5jcHAKaW5kZXggYWVmMGQ2ZWY1YTk2YzU3NDFhYWY1ZmJiMzU0YWJjZDBlNjc3NWQ3NC4u
NDU2MmEzYTc1YzJjYmI5NTgwOTMzYzMyM2FiZDA1MGRlNTQxMWQ3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwCkBAIC0xMTAsNyAr
MTEwLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb0N1bGxpbmcpCiAgICAgRVhQ
RUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTN1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDEzMDAwMCwgMSk7
CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRy
YWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9y
RHJhd2luZygpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
Q2hpbGRMaW5lc1VwVG9wTGVmdCkKQEAgLTEyNyw3ICsxMjcsNyBAQCBURVNUKENDUXVhZEN1bGxl
clRlc3QsIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBUb3BMZWZ0KQogICAgIEVYUEVDVF9FUShxdWFk
TGlzdC5zaXplKCksIDl1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKICAgICBFWFBFQ1Rf
TkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNs
dWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9j
Y2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygp
LCA0MDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5D
aGlsZE9wYWNpdHlOb3RPbmUpCkBAIC0xNDQsNyArMTQ0LDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJU
ZXN0LCB2ZXJpZnlDdWxsV2hlbkNoaWxkT3BhY2l0eU5vdE9uZSkKICAgICBFWFBFQ1RfRVEocXVh
ZExpc3Quc2l6ZSgpLCAxM3UpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOwogICAgIEVYUEVD
VF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCA0MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5n
KCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxXaGVuQ2hp
bGRPcGFxdWVGbGFnRmFsc2UpCkBAIC0xNjEsNyArMTYxLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJU
ZXN0LCB2ZXJpZnlDdWxsV2hlbkNoaWxkT3BhcXVlRmxhZ0ZhbHNlKQogICAgIEVYUEVDVF9FUShx
dWFkTGlzdC5zaXplKCksIDEzdSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQ
RUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDQwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdp
bmcoKSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRl
clRpbGVPbmx5KQpAQCAtMTk2LDcgKzE5Niw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVy
aWZ5Q3VsbENlbnRlclRpbGVPbmx5KQogCiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMDAwMDAsIDEpOwogICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JE
cmF3aW5nKCksIDMwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTEpCkBAIC0yMjQsNyArMjI0LDcgQEAgVEVTVChD
Q1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTEpCiAK
ICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduT3BhcXVlKCksIDIwMzYzLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFj
a2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHND
dWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDAsIDEpOwogfQogCiBURVNUKEND
UXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJUaWxlTm9uSW50ZWdyYWxTaXplMikKQEAg
LTI1Miw3ICsyNTIsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJU
aWxlTm9uSW50ZWdyYWxTaXplMikKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTk2NDMsIDEpOwogICAgIEVY
UEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmco
KSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENoaWxkTGlu
ZXNVcEJvdHRvbVJpZ2h0KQpAQCAtMjcxLDcgKzI3MSw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVz
dCwgdmVyaWZ5Q3VsbENoaWxkTGluZXNVcEJvdHRvbVJpZ2h0KQogICAgIEVYUEVDVF9FUShxdWFk
TGlzdC5zaXplKCksIDl1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKICAgICBFWFBFQ1Rf
TkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNs
dWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9j
Y2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygp
LCA0MDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1YlJl
Z2lvbikKQEAgLTI5MSw3ICsyOTEsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1
bGxTdWJSZWdpb24pCiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTJ1KTsKICAgICBF
WFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
T3BhcXVlKCksIDkwMDAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzAwMDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3Vs
bGVkKCksIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgMTAwMDAsIDEpOwogfQogCiBU
RVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24yKQpAQCAtMzExLDcgKzMx
MSw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbjIpCiAgICAg
RVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTJ1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNp
b25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAx
KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjUwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1
c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDE1MDAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZEZvckRyYXdpbmcoKSwgMTUwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRl
c3QsIHZlcmlmeUN1bGxTdWJSZWdpb25DaGVja092ZXJjdWxsKQpAQCAtMzMxLDcgKzMzMSw3IEBA
IFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbkNoZWNrT3ZlcmN1bGwp
CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTN1KTsKICAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDkw
MDAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFS
KG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDEwMDAw
LCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgMTAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVhZHNEb250T2NjbHVkZSkKQEAgLTM1MSw3
ICszNTEsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVh
ZHNEb250T2NjbHVkZSkKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwogICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25PcGFxdWUoKSwgMTMwMDAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAg
RVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxs
ZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDAsIDEpOwogfQogCiAvLyBUaGlzIHRl
c3QgcmVxdWlyZXMgc29tZSBleHBsYW5hdGlvbjogaGVyZSB3ZSBhcmUgcm90YXRpbmcgdGhlIHF1
YWRzIHRvIGJlIGN1bGxlZC4KQEAgLTM3Nyw3ICszNzcsNyBAQCBURVNUKENDUXVhZEN1bGxlclRl
c3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVhZHNTYWZlbHlDdWxsZWQpCiAgICAgRVhQRUNUX0VR
KHF1YWRMaXN0LnNpemUoKSwgMTJ1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDEwMDYwMCwgMSk7CiAgICAg
RVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3
blRyYW5zbHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDI5NDAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRy
YXdpbmcoKSwgMjk0MDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1
bGxPdXRzaWRlU2Npc3Nvck92ZXJUaWxlKQpAQCAtMzk0LDcgKzM5NCw3IEBAIFRFU1QoQ0NRdWFk
Q3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlclRpbGUpCiAgICAgRVhQRUNU
X0VRKHF1YWRMaXN0LnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwMDAsIDEpOwogICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxMjAwMDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9y
RHJhd2luZygpLCAxMjAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlm
eUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJDdWxsZWRUaWxlKQpAQCAtNDExLDcgKzQxMSw3IEBAIFRF
U1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlckN1bGxlZFRp
bGUpCiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMXUpOwogICAgIEVYUEVDVF9ORUFS
KG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwg
MTAwMDAsIDEpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxMjAwMDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygpLCAxMjAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJQYXJ0aWFsVGlsZXMpCkBAIC00
MjgsNyArNDI4LDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNj
aXNzb3JPdmVyUGFydGlhbFRpbGVzKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1
KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduT3BhcXVlKCksIDQwMDAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7
Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygpLCA5MDAwMCwgMSk7CiB9
CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3Zlck5v
VGlsZXMpCkBAIC00NDUsNyArNDQ1LDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsT3V0c2lkZVNjaXNzb3JPdmVyTm9UaWxlcykKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6
ZSgpLCAwdSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNp
b25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwg
MSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNDdWxsZWQoKSwgMTMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFj
a2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgMTMwMDAwLCAx
KTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlXaXRob3V0TWV0cmljcykKQEAg
LTQ2Miw3ICs0NjIsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeVdpdGhvdXRNZXRy
aWNzKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1KTsKICAgICBFWFBFQ1RfTkVB
UihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCks
IDAsIDEpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1
bGxlZEZvckRyYXdpbmcoKSwgMCwgMSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMTI5Yzkx
NTk0ZDRiZGM4MzAwMGQzZTc2Zjk0NWUxOTlhNTg5YWIzNC4uMGJiNTQyYTNhYzRlMmI5NDc4ZDFi
NDAyNmE4YzJhMmI2NWU2YzMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0zMTksOSArMzE5LDkgQEAg
VEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRpbGVzKQogICAg
IGxheWVyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVy
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDIwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1
Y2VudCgpLCAyMDAwMCwgMSk7CisgICAgRVhQRUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogCiAgICAgLy8gV2Ugc2hvdWxkIGhhdmUg
Ym90aCB0aWxlcyBvbiB0aGUgaW1wbCBzaWRlLgogICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+
aGFzVGlsZUF0KDAsIDApKTsKQEAgLTMzNyw5ICszMzcsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIHB1c2hPY2NsdWRlZERpcnR5VGlsZXMpCiAgICAgbGF5ZXItPnVwZGF0ZUNvbXBv
c2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8o
bGF5ZXJJbXBsLmdldCgpKTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAy
NTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMDAw
MCArIDI1MDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZCBzdGlsbCBoYXZl
IGJvdGggdGlsZXMsIGFzIHBhcnQgb2YgdGhlIHRvcCB0aWxlIGlzIHN0aWxsIHVub2NjbHVkZWQu
CiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwpAQCAtMTE4Miw5
ICsxMTgyLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRo
T2NjbHVzaW9uKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAs
IDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCAzMzAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRU
cmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgzLCBvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIApAQCAtMTE5
Myw5ICsxMTkzLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRX
aXRoT2NjbHVzaW9uKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTIsIGxheWVyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7
Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAzMzAwMDAgKyAzNDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDIwMDAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRl
ZE9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDMzMDAwMCArIDM0MDAwMCwgMSk7Cisg
ICAgRVhQRUNUX0VRKDMgKyAyLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxl
ZEZvclVwbG9hZCgpKTsKIAogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5j
bGVhclByZXBhcmVSZWN0Q291bnQoKTsKIApAQCAtMTIwNCw5ICsxMjA0LDkgQEAgVEVTVChUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uKQogICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAg
ICAgRVhQRUNUX0VRKDM2LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFy
ZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQw
MDAwICsgMzYwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAgKyAyMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2Fk
ZWRUcmFuc2x1Y2VudCgpLCAzMzAwMDAgKyAzNDAwMDAgKyAzNjAwMDAsIDEpOworICAgIEVYUEVD
VF9FUSgzICsgMiwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxv
YWQoKSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0
aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFpbnRzKQpAQCAtMTIyNCwxMiArMTIyNCwxMiBA
QCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25B
bmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVj
dCgyMDAsIDIwMCwgMzAwLCAxNTApKTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChJ
bnRSZWN0KDAsIDAsIDYwMCwgMzYwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3Qo
MCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUo
SW50UmVjdCgwLCAwLCA2MDAsIDM2MCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTMs
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwog
Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25P
cGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRP
cGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMTAwMDAsIDEpOworICAgIEVYUEVDVF9F
USgzLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsK
IAogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0
Q291bnQoKTsKIApAQCAtMTIzNywxMiArMTIzNywxMiBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykK
ICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgyMDAsIDIwMCwgMzAwLCAxNTApKTsK
ICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgMzUwKSk7
CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKLSAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVk
ZWQpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDM1MCks
ICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2Vu
dCgpLCAyMTAwMDAgKyAxODAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDYwMDAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgp
LCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDIxMDAwMCArIDE4MDAwMCwgMSk7CisgICAgRVhQRUNU
X0VRKDMgKyA2LCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9h
ZCgpKTsKIAogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBh
cmVSZWN0Q291bnQoKTsKIApAQCAtMTI1MCwxMiArMTI1MCwxMiBAQCBURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJh
aW50cykKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgyMDAsIDIwMCwgMzAwLCAx
NTApKTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwg
MzQwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDAp
KTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAm
b2NjbHVkZWQpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAs
IDM0MCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCAyMTAwMDAgKyAxODAwMDAgKyAxODAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDYwMDAw
ICsgNjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMjEwMDAwICsg
MTgwMDAwICsgMTgwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMyArIDYgKyA2LCBvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogfQogCkBAIC0xMjc2
LDE5ICsxMjc2LDE5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNOb3RQYWlu
dGVkV2l0aG91dEludmFsaWRhdGlvbikKICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVl
KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVl
KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMywg
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAKICAg
ICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50
KCk7CiAKLSAgICAvLyBSZXBhaW50IHdpdGhvdXQgbWFya2luZyBpdCBkaXJ0eS4KKyAgICAvLyBS
ZXBhaW50IHdpdGhvdXQgbWFya2luZyBpdCBkaXJ0eS4gVGhlIGN1bGxlZCB0aWxlcyByZW1haW5l
ZCBkaXJ0eS4KICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2
MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNl
bnQoKSwgMzMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNs
dWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoNiwgb2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFRyYW5zZm9ybXMpCkBAIC0x
MzEzLDkgKzEzMTMsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRl
ZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1zKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMs
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwog
Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25P
cGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRP
cGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9F
USgzLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsK
IH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVz
aW9uQW5kU2NhbGluZykKQEAgLTEzNDIsOSArMTM0Miw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCiAgICAgLy8gbnVt
YmVyIG9mIHRpbGVzIDN4My4KICAgICBFWFBFQ1RfRVEoOSwgbGF5ZXItPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBF
WFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVj
ZW50KCksIDkwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2Vu
dCgpLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCkBAIC0xMzU3LDkgKzEzNTcs
OSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNp
b25BbmRTY2FsaW5nKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXll
clRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsK
LSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxMDAwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwg
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
VXBsb2FkZWRUcmFuc2x1Y2VudCgpLCA5MDAwMCArIDgwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEo
MSwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAK
ICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENv
dW50KCk7CiAKQEAgLTEzNzUsOSArMTM3NSw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVz
dCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCiAgICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBF
Q1RfRVEoOS0xLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RD
b3VudCgpKTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgOTAwMDAgKyA4MDAwMCArIDgw
MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgMTAwMDAgKyAxMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1
Y2VudCgpLCA5MDAwMCArIDgwMDAwICsgODAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgxICsgMSwg
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiB9CiAK
IFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24p
CkBAIC0xNDA3LDkgKzE0MDcsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2li
bGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIEVYUEVDVF9UUlVFKG9wYXF1ZUNvbnRlbnRzLmlz
RW1wdHkoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNQYWludGVkKCksIDIwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIw
MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMDAw
MCwgMSk7CisgICAgRVhQRUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVz
Q3VsbGVkRm9yVXBsb2FkKCkpOwogCiAgICAgLy8gdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24g
c2hvdWxkIG1hdGNoIHRoZSB2aXNpYmxlIHBhcnQgb2Ygd2hhdCBpcyBwYWludGVkIG9wYXF1ZS4K
ICAgICBvcGFxdWVQYWludFJlY3QgPSBJbnRSZWN0KDEwLCAxMCwgOTAsIDE5MCk7CkBAIC0xNDIx
LDkgKzE0MjEsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50
T3BhcXVlUmVnaW9uKQogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5z
aXplKCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE3MTAwLCAxKTsKLSAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50
KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDE3MTAw
LCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNV
cGxvYWRlZFRyYW5zbHVjZW50KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCwgMSk7CisgICAgRVhQ
RUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2Fk
KCkpOwogCiAgICAgLy8gSWYgd2UgcGFpbnQgYWdhaW4gd2l0aG91dCBpbnZhbGlkYXRpbmcsIHRo
ZSBzYW1lIHN0dWZmIHNob3VsZCBiZSBvcGFxdWUuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50UmVjdChJbnRSZWN0KCkpOwpAQCAtMTQzMyw5ICsx
NDMzLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1
ZVJlZ2lvbikKICAgICBFWFBFQ1RfRVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgp
KTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1Bh
aW50ZWQoKSwgMjAwMDAgKiAyLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxNzEwMCwgMSk7Ci0gICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAy
MDAwMCArIDIwMDAwIC0gMTcxMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAxNzEwMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2Fk
ZWRUcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAsIDEpOworICAgIEVYUEVDVF9F
USgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsK
IAogICAgIC8vIElmIHdlIHJlcGFpbnQgYSBub24tb3BhcXVlIHBhcnQgb2YgdGhlIHRpbGUsIHRo
ZW4gaXQgc2hvdWxkbid0IGxvc2UgaXRzIG9wYXF1ZS1uZXNzLiBBbmQgb3RoZXIgdGlsZXMgc2hv
dWxkCiAgICAgLy8gbm90IGJlIGFmZmVjdGVkLgpAQCAtMTQ0Nyw5ICsxNDQ3LDkgQEAgVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKICAgICBF
WFBFQ1RfRVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1BhaW50ZWQoKSwgMjAwMDAg
KiAyICsgMSwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAw
MCAtIDE3MTAwICsgMSwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDE3MTAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5z
bHVjZW50KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCArIDEsIDEpOworICAgIEVYUEVDVF9FUSgw
LCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAog
ICAgIC8vIElmIHdlIHJlcGFpbnQgYW4gb3BhcXVlIHBhcnQgb2YgdGhlIHRpbGUsIHRoZW4gaXQg
c2hvdWxkIGxvc2UgaXRzIG9wYXF1ZS1uZXNzLiBCdXQgb3RoZXIgdGlsZXMgc2hvdWxkIHN0aWxs
CiAgICAgLy8gbm90IGJlIGFmZmVjdGVkLgpAQCAtMTQ2MSw5ICsxNDYxLDE2IEBAIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24pCiAgICAgRVhQ
RUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNpemUoKSk7CiAKICAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNQYWludGVkKCksIDIwMDAwICog
MiArIDEgICsgMSwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAy
MDAwMCAtIDE3MTAwICsgMSArIDEsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAxNzEwMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2Fk
ZWRUcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAgKyAxICsgMSwgMSk7CisgICAg
RVhQRUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBs
b2FkKCkpOworCisgICAgLy8gTm8gbWV0cmljcyBhcmUgcmVjb3JkZWQgaW4gcHJlcGFpbnQsIHNv
IHRoZSB2YWx1ZXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnJvbSBhYm92ZS4KKyAgICBsYXllci0+cHJl
cGFyZVRvVXBkYXRlSWRsZShjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQpOworICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1BhaW50ZWQoKSwgMjAwMDAgKiAy
ICsgMSAgKyAxLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAxNzEwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMDAw
MCArIDIwMDAwIC0gMTcxMDAgKyAxICsgMSwgMSk7CisgICAgRVhQRUNUX0VRKDAsIG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogfQogCiBURVNUKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVsc1BhaW50ZWRNZXRyaWNzKQpAQCAtMTQ5Myw5ICsx
NTAwLDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwaXhlbHNQYWludGVkTWV0cmlj
cykKICAgICBFWFBFQ1RfVFJVRShvcGFxdWVDb250ZW50cy5pc0VtcHR5KCkpOwogCiAgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAzMDAw
MCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
RHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMDAwMCwgMSk7Ci0gICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVk
T3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMzAwMDAsIDEpOworICAgIEVYUEVDVF9F
USgwLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsK
IAogICAgIC8vIEludmFsaWRhdGVzIGFuIGFyZWEgb24gdGhlIHRvcCBhbmQgYm90dG9tIHRpbGUs
IHdoaWNoIHdpbGwgY2F1c2UgdXMgdG8gcGFpbnQgdGhlIHRpbGUgaW4gdGhlIG1pZGRsZSwKICAg
ICAvLyBldmVuIHRob3VnaCBpdCBpcyBub3QgZGlydHkgYW5kIHdpbGwgbm90IGJlIHVwbG9hZGVk
LgpAQCAtMTUwOSw5ICsxNTE2LDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwaXhl
bHNQYWludGVkTWV0cmljcykKICAgICAvLyBUaGUgbWlkZGxlIHRpbGUgd2FzIHBhaW50ZWQgZXZl
biB0aG91Z2ggbm90IGludmFsaWRhdGVkLgogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc1BhaW50ZWQoKSwgMzAwMDAgKyA2MCAqIDIxMCwgMSk7CiAgICAg
Ly8gVGhlIHBpeGVscyB1cGxvYWRlZCB3aWxsIG5vdCBpbmNsdWRlIHRoZSBub24taW52YWxpZGF0
ZWQgdGlsZSBpbiB0aGUgbWlkZGxlLgotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9j
Y2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzAwMDAg
KyAxICsgMTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgp
LCAzMDAwMCArIDEgKyAxMDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135873</attachid>
            <date>2012-04-05 12:10:39 -0700</date>
            <delta_ts>2012-04-05 13:35:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82423-20120405151038.patch</filename>
            <type>text/plain</type>
            <size>48278</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUzOGY5OTY0YzYyNDU1
NmNjZjIxYzFlYzllN2NiY2JhZjlhYzE2Ni4uMjU0ODFiMmY0NTI4ODA4NDEzODNlMzY4ZTQ0ZTUw
ZGZhMzM3MmZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVj
b3JkIHRoZSBudW1iZXIgb2YgdGlsZXMgcGFpbnQtY3VsbGVkIGluc3RlYWQgb2YgdGhlIGluY29y
cmVjdCBudW1iZXIgb2YgcGl4ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjQyMworCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmllbm5lIFdhbGtl
ci4KKworICAgICAgICBXZSBjdXJyZW50bHkgYXR0ZW1wdCB0byByZWNvcmQgdGhlIG51bWJlciBv
ZiBwaXhlbHMgd2Ugc2F2ZSBmcm9tIHVwbG9hZGluZywKKyAgICAgICAgaG93ZXZlciB0aGUgbnVt
YmVyIGlzIHdyb25nIGluIHR3byB3YXlzLgorICAgICAgICAxKSBBbiBlYXJseS1vdXQgaWYgZXZl
cnl0aGluZyBpcyBjdWxsZWQgcmVzdWx0cyBpbiBub3RoaW5nIGJlaW5nIHJlcG9ydGVkLgorICAg
ICAgICAyKSBXaXRoIHRocmVhZGVkLWNvbXBvc2l0b3IsIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHVw
bG9hZGVkIGluIG9uZSB0aWxlIGNhbiBiZQorICAgICAgICBjaGFuZ2VkIGJ5IGN1bGxpbmcgaW4g
YW5vdGhlciB0aWxlLCBtYWtpbmcgdGhlIG51bWJlciBmYXIgdG9vIGRpZmZpY3VsdCB0bworICAg
ICAgICBjb21wdXRlIHRvIGJlIHdvcnRod2hpbGUuIElmIGEgdGlsZSB3YXMgZ29pbmcgdG8gYmUg
cGFydGlhbC11cGRhdGVkLCBidXQgaXMKKyAgICAgICAgY3VsbGVkLCBub3cgYSBuZXcgdGlsZSBn
ZXRzIHRvIGJlIHBhcnRpYWwtdXBkYXRlZCBpbnN0ZWFkLCB3aGljaCBhZmZlY3RzIHRoZQorICAg
ICAgICBudW1iZXJzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYnJlYWtzIHVwIENDT3ZlcmRyYXdN
ZXRyaWNzIHRvIG1ha2UgdGhlIG1ldGhvZHMvdmFyaWFibGVzIGxlc3MKKyAgICAgICAgb3Zlcmxv
YWRlZCBhbmQgbW9yZSBjbGVhci4gVGhpcyB3YXkgdGhleSBkb24ndCBoYXZlIHRvIG1pcnJvciBl
YWNoIG90aGVyCisgICAgICAgIHNvIGNsb3NlbHkgb24gcGFpbnQvZHJhdyBzaWRlcy4KKworICAg
ICAgICBUaGVuIHdlIHJlY29yZCB0aGUgbnVtYmVyIG9mIHRpbGVzIGZvciB3aGljaCB3ZSBwcmV2
ZW50ZWQgdXBsb2FkIHZpYSBwYWludAorICAgICAgICBjdWxsaW5nLiBUaGlzIHdpbGwgc3RpbGwg
b3Zlci1yZXBvcnQgKGEgZGlydHkgY3VsbGVkIHRpbGUgc3RheXMgZGlydHkgYW5kCisgICAgICAg
IHdpbGwgYmUgY3VsbGVkIGFnYWluIGVhY2ggY29tbWl0KSwgYnV0IGl0IHNlZW1zIG1vcmUgcmVh
c29uYWJsZSBhcyBpdAorICAgICAgICBjbGVhcmx5IGRvZXMgbm90IHRyeSB0byBtaW1pYyBhIHBl
cmZvcm1hbmNlIG1ldHJpYyBpbiB0aGUgd2F5IHRoYXQgYSBwaXhlbAorICAgICAgICBjb3VudCBk
b2VzLCBidXQgc3RpbGwgZ2l2ZXMgYSByb3VnaCBlc3RpbWF0aW9uIG9mIHRoZSBhbW91bnQgb2Yg
cGFpbnQKKyAgICAgICAgY3VsbGluZyBnb2luZyBvbiBpbiBhIHBhZ2UuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbW9kaWZpZWQgd2hlcmUgbmVlZGVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRy
aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpDQ092ZXJkcmF3
TWV0cmljcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6ZGlkQ3VsbFRp
bGVGb3JVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ092
ZXJkcmF3TWV0cmljczo6ZGlkVXBsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdN
ZXRyaWNzOjpkaWRDdWxsRm9yRHJhd2luZyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3
TWV0cmljczo6cmVjb3JkTWV0cmljcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0
cmljczo6cmVjb3JkTWV0cmljc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5oOgorICAgICAgICAoQ0NPdmVyZHJhd01l
dHJpY3MpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnBpeGVsc0N1bGxl
ZEZvckRyYXdpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnBpeGVs
c1VwbG9hZGVkT3BhcXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpw
aXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdN
ZXRyaWNzOjp0aWxlc0N1bGxlZEZvclVwbG9hZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVh
ZEN1bGxlcjo6YXBwZW5kKToKKwogMjAxMi0wNC0wNSAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdo
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE5lZWQgdG8gY2xpcCB0byBob21v
Z2VuZW91cyB3PTAgcGxhbmUgd2hlbiBhcHBseWluZyB0cmFuc2Zvcm1zLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBjODUyOGMyMjM4MzFiNGY0OWUxMmQ2ZWQ1YmRkZGMxZTg3MGEzNzUz
Li4yNzgxOGViYWNhY2Y1MmY1MDk3YTQyN2JlYWUzYTQ4ZTgwOTQ4ZGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTI3ICBEYW5hIEphbnNlbnMg
IDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVjb3JkIHRoZSBu
dW1iZXIgb2YgdGlsZXMgcGFpbnQtY3VsbGVkIGluc3RlYWQgb2YgdGhlIGluY29ycmVjdCBudW1i
ZXIgb2YgcGl4ZWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MjQyMworCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmllbm5lIFdhbGtlci4KKworICAg
ICAgICAqIHRlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVT
VCk6CisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAg
IChXVEY6OlRFU1QpOgorCiAyMDEyLTA0LTA1ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTmVlZCB0byBjbGlwIHRvIGhvbW9nZW5l
b3VzIHc9MCBwbGFuZSB3aGVuIGFwcGx5aW5nIHRyYW5zZm9ybXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmNwcAppbmRleCAwMTBhNDMxOGM4M2FkYzg3OGU0YTdjMDcwYzNlMjk4ZThhOTEz
Y2UyLi4xMmIyYzVkNDliZmIzYzJhZmQyOTU4NTk3OGNhYjA3ZmQ1ODUzYjgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTQzMyw4ICs0MzMsNiBAQCB2b2lkIFRpbGVkTGF5
ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50
IHRvcCwgaW50CiAgICAgICAgICAgICAgICAgSW50UmVjdCB2aXNpYmxlVGlsZVJlY3QgPSBpbnRl
cnNlY3Rpb24obV90aWxlci0+dGlsZUJvdW5kcyhpLCBqKSwgdmlzaWJsZUxheWVyUmVjdCgpKTsK
ICAgICAgICAgICAgICAgICBpZiAob2NjbHVzaW9uLT5vY2NsdWRlZCh0aGlzLCB2aXNpYmxlVGls
ZVJlY3QpKSB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghdGlsZS0+bV91cGRhdGVkKTsK
LSAgICAgICAgICAgICAgICAgICAgLy8gU2F2ZSB0aGUgYXJlYSB3ZSBjdWxsZWQgZm9yIHJlY29y
ZGluZyBtZXRyaWNzLgotICAgICAgICAgICAgICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3QgPSB0
aWxlLT5tX2RpcnR5UmVjdDsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNDc4LDYgKzQ3Niw4IEBAIHZvaWQgVGlsZWRM
YXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBp
bnQgdG9wLCBpbnQKICAgICAgICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSB0aWxlQXQoaSwg
aik7CiAgICAgICAgICAgICBpZiAodGlsZS0+bV91cGRhdGVkKQogICAgICAgICAgICAgICAgIHRp
bGUtPmNvcHlBbmRDbGVhckRpcnR5KCk7CisgICAgICAgICAgICBlbHNlIGlmICghaWRsZSAmJiBv
Y2NsdXNpb24gJiYgdGlsZS0+aXNEaXJ0eSgpKQorICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+
b3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbFRpbGVGb3JVcGxvYWQoKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtNTEwLDI0ICs1MTAsMTQgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBh
cmVUb1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludAogCiAgICAg
ICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gbV90aWxlci0+dGlsZUJvdW5kcyhpLCBqKTsKIAor
ICAgICAgICAgICAgaWYgKCF0aWxlLT5tX3VwZGF0ZWQpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisKICAgICAgICAgICAgIC8vIFVzZSBtX3VwZGF0ZVJlY3QgYXMgdGhlIGFib3ZlIGxvb3Ag
Y29waWVkIHRoZSBkaXJ0eSByZWN0IGZvciB0aGlzIGZyYW1lIHRvIG1fdXBkYXRlUmVjdC4KICAg
ICAgICAgICAgIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCA9IHRpbGUtPm1fdXBkYXRlUmVjdDsK
ICAgICAgICAgICAgIGlmIChkaXJ0eVJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgICAgICAvLyBzb3VyY2VSZWN0IHN0YXJ0cyBhcyBhIGZ1bGwtc2l6
ZWQgdGlsZSB3aXRoIGJvcmRlciB0ZXhlbHMgaW5jbHVkZWQuCi0gICAgICAgICAgICBJbnRSZWN0
IHNvdXJjZVJlY3QgPSBtX3RpbGVyLT50aWxlUmVjdCh0aWxlKTsKLSAgICAgICAgICAgIHNvdXJj
ZVJlY3QuaW50ZXJzZWN0KGRpcnR5UmVjdCk7Ci0gICAgICAgICAgICAvLyBQYWludCByZWN0IG5v
dCBndWFyYW50ZWVkIHRvIGxpbmUgdXAgb24gdGlsZSBib3VuZGFyaWVzLCBzbwotICAgICAgICAg
ICAgLy8gbWFrZSBzdXJlIHRoYXQgc291cmNlUmVjdCBkb2Vzbid0IGV4dGVuZCBvdXRzaWRlIG9m
IGl0LgotICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QobV9wYWludFJlY3QpOwotCi0g
ICAgICAgICAgICBpZiAoIXRpbGUtPm1fdXBkYXRlZCkgewotICAgICAgICAgICAgICAgIGlmIChv
Y2NsdXNpb24pCi0gICAgICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdNZXRyaWNz
KCkuZGlkQ3VsbChUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBzb3VyY2VSZWN0LCBJbnRSZWN0KCkp
OwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAg
ICAvLyBTYXZlIHdoYXQgd2FzIHBhaW50ZWQgb3BhcXVlIGluIHRoZSB0aWxlLiBLZWVwIHRoZSBv
bGQgYXJlYSBpZiB0aGUgcGFpbnQgZGlkbid0IHRvdWNoIGl0LCBhbmQgZGlkbid0IHBhaW50IHNv
bWUKICAgICAgICAgICAgIC8vIG90aGVyIHBhcnQgb2YgdGhlIHRpbGUgb3BhcXVlLgogICAgICAg
ICAgICAgSW50UmVjdCB0aWxlUGFpbnRlZFJlY3QgPSBpbnRlcnNlY3Rpb24odGlsZVJlY3QsIG1f
cGFpbnRSZWN0KTsKQEAgLTU0MSwxMyArNTMxLDIwIEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVt
OjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQK
ICAgICAgICAgICAgICAgICAgICAgdGlsZS0+c2V0T3BhcXVlUmVjdCh0aWxlUGFpbnRlZE9wYXF1
ZVJlY3QpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICAvLyBzb3VyY2VSZWN0IHN0YXJ0
cyBhcyBhIGZ1bGwtc2l6ZWQgdGlsZSB3aXRoIGJvcmRlciB0ZXhlbHMgaW5jbHVkZWQuCisgICAg
ICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSBtX3RpbGVyLT50aWxlUmVjdCh0aWxlKTsKKyAg
ICAgICAgICAgIHNvdXJjZVJlY3QuaW50ZXJzZWN0KGRpcnR5UmVjdCk7CisgICAgICAgICAgICAv
LyBQYWludCByZWN0IG5vdCBndWFyYW50ZWVkIHRvIGxpbmUgdXAgb24gdGlsZSBib3VuZGFyaWVz
LCBzbworICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgc291cmNlUmVjdCBkb2Vzbid0IGV4
dGVuZCBvdXRzaWRlIG9mIGl0LgorICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QobV9w
YWludFJlY3QpOworCiAgICAgICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3QgPSBzb3VyY2VSZWN0
OwogICAgICAgICAgICAgaWYgKHNvdXJjZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnByZXBhcmVSZWN0KHNv
dXJjZVJlY3QpOwogICAgICAgICAgICAgaWYgKG9jY2x1c2lvbikKLSAgICAgICAgICAgICAgICBv
Y2NsdXNpb24tPm92ZXJkcmF3TWV0cmljcygpLmRpZERyYXcoVHJhbnNmb3JtYXRpb25NYXRyaXgo
KSwgc291cmNlUmVjdCwgdGlsZS0+b3BhcXVlUmVjdCgpKTsKKyAgICAgICAgICAgICAgICBvY2Ns
dXNpb24tPm92ZXJkcmF3TWV0cmljcygpLmRpZFVwbG9hZChUcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
LCBzb3VyY2VSZWN0LCB0aWxlLT5vcGFxdWVSZWN0KCkpOwogICAgICAgICB9CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NPdmVyZHJhd01ldHJpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3BwCmluZGV4IDE5MzFjNTJhOGFjMzFlN2Iz
OTkwNTZhNjYzOWE4MWMwOTRmZjY0YzIuLjc1NTc5NmQ3ZmM5MTVhZWUwOTQxOGI1YWM1YmYxNjBj
ODE4M2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAKQEAgLTQwLDEw
ICs0MCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENDT3ZlcmRyYXdNZXRyaWNzOjpDQ092
ZXJkcmF3TWV0cmljcyhib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSkKICAgICA6IG1fcmVjb3Jk
TWV0cmljc0ZvckZyYW1lKHJlY29yZE1ldHJpY3NGb3JGcmFtZSkKKyAgICAsIG1fcGl4ZWxzUGFp
bnRlZCgwKQorICAgICwgbV9waXhlbHNVcGxvYWRlZE9wYXF1ZSgwKQorICAgICwgbV9waXhlbHNV
cGxvYWRlZFRyYW5zbHVjZW50KDApCisgICAgLCBtX3RpbGVzQ3VsbGVkRm9yVXBsb2FkKDApCiAg
ICAgLCBtX3BpeGVsc0RyYXduT3BhcXVlKDApCiAgICAgLCBtX3BpeGVsc0RyYXduVHJhbnNsdWNl
bnQoMCkKLSAgICAsIG1fcGl4ZWxzQ3VsbGVkKDApCi0gICAgLCBtX3BpeGVsc1BhaW50ZWQoMCkK
KyAgICAsIG1fcGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygwKQogewogfQogCkBAIC02OSw3ICs3Miwy
NSBAQCB2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpkaWRQYWludChjb25zdCBJbnRSZWN0JiBwYWlu
dGVkUmVjdCkKICAgICBtX3BpeGVsc1BhaW50ZWQgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBhaW50
ZWRSZWN0LndpZHRoKCkpICogcGFpbnRlZFJlY3QuaGVpZ2h0KCk7CiB9CiAKLXZvaWQgQ0NPdmVy
ZHJhd01ldHJpY3M6OmRpZEN1bGwoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBiZWZvcmVDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYg
YWZ0ZXJDdWxsUmVjdCkKK3ZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OmRpZEN1bGxUaWxlRm9yVXBs
b2FkKCkKK3sKKyAgICBpZiAobV9yZWNvcmRNZXRyaWNzRm9yRnJhbWUpCisgICAgICAgICsrbV90
aWxlc0N1bGxlZEZvclVwbG9hZDsKK30KKwordm9pZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlkVXBs
b2FkKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3Qg
SW50UmVjdCYgdXBsb2FkUmVjdCwgY29uc3QgSW50UmVjdCYgb3BhcXVlUmVjdCkKK3sKKyAgICBp
ZiAoIW1fcmVjb3JkTWV0cmljc0ZvckZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBmbG9h
dCB1cGxvYWRBcmVhID0gcXVhZEFyZWEodHJhbnNmb3JtVG9UYXJnZXQubWFwUXVhZChGbG9hdFF1
YWQodXBsb2FkUmVjdCkpKTsKKyAgICBmbG9hdCB1cGxvYWRPcGFxdWVBcmVhID0gcXVhZEFyZWEo
dHJhbnNmb3JtVG9UYXJnZXQubWFwUXVhZChGbG9hdFF1YWQoaW50ZXJzZWN0aW9uKG9wYXF1ZVJl
Y3QsIHVwbG9hZFJlY3QpKSkpOworCisgICAgbV9waXhlbHNVcGxvYWRlZE9wYXF1ZSArPSB1cGxv
YWRPcGFxdWVBcmVhOworICAgIG1fcGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCArPSB1cGxvYWRB
cmVhIC0gdXBsb2FkT3BhcXVlQXJlYTsKK30KKwordm9pZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlk
Q3VsbEZvckRyYXdpbmcoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFy
Z2V0LCBjb25zdCBJbnRSZWN0JiBiZWZvcmVDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYgYWZ0ZXJD
dWxsUmVjdCkKIHsKICAgICBpZiAoIW1fcmVjb3JkTWV0cmljc0ZvckZyYW1lKQogICAgICAgICBy
ZXR1cm47CkBAIC03Nyw3ICs5OCw3IEBAIHZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OmRpZEN1bGwo
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjCiAgICAgZmxv
YXQgYmVmb3JlQ3VsbEFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zvcm1Ub1RhcmdldC5tYXBRdWFkKEZs
b2F0UXVhZChiZWZvcmVDdWxsUmVjdCkpKTsKICAgICBmbG9hdCBhZnRlckN1bGxBcmVhID0gcXVh
ZEFyZWEodHJhbnNmb3JtVG9UYXJnZXQubWFwUXVhZChGbG9hdFF1YWQoYWZ0ZXJDdWxsUmVjdCkp
KTsKIAotICAgIG1fcGl4ZWxzQ3VsbGVkICs9IGJlZm9yZUN1bGxBcmVhIC0gYWZ0ZXJDdWxsQXJl
YTsKKyAgICBtX3BpeGVsc0N1bGxlZEZvckRyYXdpbmcgKz0gYmVmb3JlQ3VsbEFyZWEgLSBhZnRl
ckN1bGxBcmVhOwogfQogCiB2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpkaWREcmF3KGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYWZ0
ZXJDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYgb3BhcXVlUmVjdCkKQEAgLTk1LDYxICsxMTYsNTAg
QEAgdm9pZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlkRHJhdyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGMKIHZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OnJlY29y
ZE1ldHJpY3MoY29uc3QgQ0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KSBjb25zdAogewog
ICAgIGlmIChtX3JlY29yZE1ldHJpY3NGb3JGcmFtZSkKLSAgICAgICAgcmVjb3JkTWV0cmljc0lu
dGVybmFsPENDTGF5ZXJUcmVlSG9zdD4oVVBMT0FESU5HLCBsYXllclRyZWVIb3N0KTsKKyAgICAg
ICAgcmVjb3JkTWV0cmljc0ludGVybmFsPENDTGF5ZXJUcmVlSG9zdD4oVXBkYXRlQW5kQ29tbWl0
LCBsYXllclRyZWVIb3N0KTsKIH0KIAogdm9pZCBDQ092ZXJkcmF3TWV0cmljczo6cmVjb3JkTWV0
cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3RJbXBsKiBsYXllclRyZWVIb3N0KSBjb25zdAogewog
ICAgIGlmIChtX3JlY29yZE1ldHJpY3NGb3JGcmFtZSkKLSAgICAgICAgcmVjb3JkTWV0cmljc0lu
dGVybmFsPENDTGF5ZXJUcmVlSG9zdEltcGw+KERSQVdJTkcsIGxheWVyVHJlZUhvc3QpOworICAg
ICAgICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0SW1wbD4oRHJhd2luZ1Rv
U2NyZWVuLCBsYXllclRyZWVIb3N0KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUcmVl
SG9zdFR5cGU+CiB2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpyZWNvcmRNZXRyaWNzSW50ZXJuYWwo
TWV0cmljc1R5cGUgbWV0cmljc1R5cGUsIGNvbnN0IExheWVyVHJlZUhvc3RUeXBlKiBsYXllclRy
ZWVIb3N0KSBjb25zdAogewotICAgIGNvbnN0IGNoYXIqIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAw
OwotICAgIGNvbnN0IGNoYXIqIGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSA9IDA7Ci0gICAgY29u
c3QgY2hhciogaGlzdG9ncmFtQ3VsbGVkTmFtZSA9IDA7Ci0gICAgY29uc3QgY2hhciogaGlzdG9n
cmFtUGFpbnRlZE5hbWUgPSAwOwotICAgIGNvbnN0IGNoYXIqIGN1bGxDb3VudGVyTmFtZSA9IDA7
Ci0gICAgY29uc3QgY2hhciogb3BhcXVlQ291bnRlck5hbWUgPSAwOwotICAgIGNvbnN0IGNoYXIq
IHRyYW5zbHVjZW50Q291bnRlck5hbWUgPSAwOwotICAgIGNvbnN0IGNoYXIgKnBhaW50ZWRDb3Vu
dGVyTmFtZSA9IDA7CisgICAgLy8gVGhpcyBnaXZlcyBhcHByb3hpbWF0ZWx5IDEweCB0aGUgcGVy
Y2VudGFnZSBvZiBwaXhlbHMgdG8gZmlsbCB0aGUgdmlld3BvcnQgb25jZS4KKyAgICBmbG9hdCBu
b3JtYWxpemF0aW9uID0gMTAwMC5mIC8gKGxheWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLndp
ZHRoKCkgKiBsYXllclRyZWVIb3N0LT52aWV3cG9ydFNpemUoKS5oZWlnaHQoKSk7CisgICAgLy8g
VGhpcyBnaXZlcyBhcHByb3hpbWF0ZWx5IDEwMHggdGhlIHBlcmNlbnRhZ2Ugb2YgdGlsZXMgdG8g
ZmlsbCB0aGUgdmlld3BvcnQgb25jZSwgaWYgYWxsIHRpbGVzIHdlcmUgMjU2eDI1Ni4KKyAgICBm
bG9hdCB0aWxlTm9ybWFsaXphdGlvbiA9IDEwMDAwLmYgLyAobGF5ZXJUcmVlSG9zdC0+dmlld3Bv
cnRTaXplKCkud2lkdGgoKSAvIDI1Ni5mICogbGF5ZXJUcmVlSG9zdC0+dmlld3BvcnRTaXplKCku
aGVpZ2h0KCkgLyAyNTYuZik7CisKICAgICBzd2l0Y2ggKG1ldHJpY3NUeXBlKSB7Ci0gICAgY2Fz
ZSBEUkFXSU5HOgotICAgICAgICBoaXN0b2dyYW1PcGFxdWVOYW1lID0gIlJlbmRlcmVyNC5kcmF3
UGl4ZWxDb3VudE9wYXF1ZSI7Ci0gICAgICAgIGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSA9ICJS
ZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRUcmFuc2x1Y2VudCI7Ci0gICAgICAgIGhpc3RvZ3JhbUN1
bGxlZE5hbWUgPSAiUmVuZGVyZXI0LmRyYXdQaXhlbENvdW50Q3VsbGVkIjsKLSAgICAgICAgY3Vs
bENvdW50ZXJOYW1lID0gIkRyYXdQaXhlbHNDdWxsZWQiOwotICAgICAgICBvcGFxdWVDb3VudGVy
TmFtZSA9ICJQaXhlbHNEcmF3bk9wYXF1ZSI7Ci0gICAgICAgIHRyYW5zbHVjZW50Q291bnRlck5h
bWUgPSAiUGl4ZWxzRHJhd25UcmFuc2x1Y2VudCI7CisgICAgY2FzZSBEcmF3aW5nVG9TY3JlZW46
CisgICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aGlzdG9ncmFtQ3VzdG9tQ291
bnRzKCJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRPcGFxdWUiLCBzdGF0aWNfY2FzdDxpbnQ+KG5v
cm1hbGl6YXRpb24gKiBtX3BpeGVsc0RyYXduT3BhcXVlKSwgMTAwLCAxMDAwMDAwLCA1MCk7Cisg
ICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aGlzdG9ncmFtQ3VzdG9tQ291bnRz
KCJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRUcmFuc2x1Y2VudCIsIHN0YXRpY19jYXN0PGludD4o
bm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCksIDEwMCwgMTAwMDAwMCwg
NTApOworICAgICAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmhpc3RvZ3JhbUN1c3Rv
bUNvdW50cygiUmVuZGVyZXI0LmRyYXdQaXhlbENvdW50Q3VsbGVkIiwgc3RhdGljX2Nhc3Q8aW50
Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNDdWxsZWRGb3JEcmF3aW5nKSwgMTAwLCAxMDAwMDAw
LCA1MCk7CisKKyAgICAgICAgeworICAgICAgICAgICAgVFJBQ0VfQ09VTlRFUl9JRDEoIndlYmtp
dCIsICJEcmF3UGl4ZWxzQ3VsbGVkIiwgbGF5ZXJUcmVlSG9zdCwgbV9waXhlbHNDdWxsZWRGb3JE
cmF3aW5nKTsKKyAgICAgICAgICAgIFRSQUNFX0VWRU5UMigid2Via2l0IiwgIkNDT3ZlcmRyYXdN
ZXRyaWNzIiwgIlBpeGVsc0RyYXduT3BhcXVlIiwgbV9waXhlbHNEcmF3bk9wYXF1ZSwgIlBpeGVs
c0RyYXduVHJhbnNsdWNlbnQiLCBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQpOworICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgVVBMT0FESU5HOgotICAgICAgICBoaXN0b2dyYW1P
cGFxdWVOYW1lID0gIlJlbmRlcmVyNC51cGxvYWRQaXhlbENvdW50T3BhcXVlIjsKLSAgICAgICAg
aGlzdG9ncmFtVHJhbnNsdWNlbnROYW1lID0gIlJlbmRlcmVyNC51cGxvYWRQaXhlbENvdW50VHJh
bnNsdWNlbnQiOwotICAgICAgICBoaXN0b2dyYW1DdWxsZWROYW1lID0gIlJlbmRlcmVyNC51cGxv
YWRQaXhlbENvdW50Q3VsbGVkIjsKLSAgICAgICAgaGlzdG9ncmFtUGFpbnRlZE5hbWUgPSAiUmVu
ZGVyZXI0LnBpeGVsQ291bnRQYWludGVkIjsKLSAgICAgICAgY3VsbENvdW50ZXJOYW1lID0gIlVw
bG9hZFBpeGVsc0N1bGxlZCI7Ci0gICAgICAgIG9wYXF1ZUNvdW50ZXJOYW1lID0gIlBpeGVsc1Vw
bG9hZGVkT3BhcXVlIjsKLSAgICAgICAgdHJhbnNsdWNlbnRDb3VudGVyTmFtZSA9ICJQaXhlbHNV
cGxvYWRlZFRyYW5zbHVjZW50IjsKLSAgICAgICAgcGFpbnRlZENvdW50ZXJOYW1lID0gIlBpeGVs
c1BhaW50ZWQiOworICAgIGNhc2UgVXBkYXRlQW5kQ29tbWl0OgorICAgICAgICBXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVyZXI0LnBpeGVs
Q291bnRQYWludGVkIiwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNQ
YWludGVkKSwgMTAwLCAxMDAwMDAwLCA1MCk7CisgICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1
cnJlbnQoKS0+aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQudXBsb2FkUGl4ZWxDb3Vu
dE9wYXF1ZSIsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzVXBsb2Fk
ZWRPcGFxdWUpLCAxMDAsIDEwMDAwMDAsIDUwKTsKKyAgICAgICAgV2ViS2l0OjpQbGF0Zm9ybTo6
Y3VycmVudCgpLT5oaXN0b2dyYW1DdXN0b21Db3VudHMoIlJlbmRlcmVyNC51cGxvYWRQaXhlbENv
dW50VHJhbnNsdWNlbnQiLCBzdGF0aWNfY2FzdDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBtX3BpeGVs
c1VwbG9hZGVkVHJhbnNsdWNlbnQpLCAxMDAsIDEwMDAwMDAsIDUwKTsKKyAgICAgICAgV2ViS2l0
OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5oaXN0b2dyYW1DdXN0b21Db3VudHMoIlJlbmRlcmVyNC51
cGxvYWRUaWxlQ291bnRDdWxsZWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHRpbGVOb3JtYWxpemF0aW9u
ICogbV90aWxlc0N1bGxlZEZvclVwbG9hZCksIDEwMCwgMTAwMDAwMDAsIDUwKTsKKworICAgICAg
ICB7CisgICAgICAgICAgICBUUkFDRV9DT1VOVEVSX0lEMSgid2Via2l0IiwgIlVwbG9hZFRpbGVz
Q3VsbGVkIiwgbGF5ZXJUcmVlSG9zdCwgbV90aWxlc0N1bGxlZEZvclVwbG9hZCk7CisgICAgICAg
ICAgICBUUkFDRV9FVkVOVDIoIndlYmtpdCIsICJDQ092ZXJkcmF3TWV0cmljcyIsICJQaXhlbHNV
cGxvYWRlZE9wYXF1ZSIsIG1fcGl4ZWxzVXBsb2FkZWRPcGFxdWUsICJQaXhlbHNVcGxvYWRlZFRy
YW5zbHVjZW50IiwgbV9waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KTsKKyAgICAgICAgfQorICAg
ICAgICB7CisgICAgICAgICAgICAvLyBUaGlzIG11c3QgYmUgaW4gYSBkaWZmZXJlbnQgc2NvcGUg
dGhhbiB0aGUgVFJBQ0VfRVZFTlQyIGFib3ZlLgorICAgICAgICAgICAgVFJBQ0VfRVZFTlQxKCJ3
ZWJraXQiLCAiQ0NPdmVyZHJhd1BhaW50TWV0cmljcyIsICJQaXhlbHNQYWludGVkIiwgbV9waXhl
bHNQYWludGVkKTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgQVNTRVJU
KGhpc3RvZ3JhbU9wYXF1ZU5hbWUpOwotCi0gICAgZmxvYXQgbm9ybWFsaXphdGlvbiA9IDEwMDAu
ZiAvIChsYXllclRyZWVIb3N0LT52aWV3cG9ydFNpemUoKS53aWR0aCgpICogbGF5ZXJUcmVlSG9z
dC0+dmlld3BvcnRTaXplKCkuaGVpZ2h0KCkpOwotICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+aGlzdG9ncmFtQ3VzdG9tQ291bnRzKGhpc3RvZ3JhbU9wYXF1ZU5hbWUsIHN0YXRpY19j
YXN0PGludD4obm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzRHJhd25PcGFxdWUpLCAxMDAsIDEwMDAw
MDAsIDUwKTsKLSAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmhpc3RvZ3JhbUN1c3Rv
bUNvdW50cyhoaXN0b2dyYW1UcmFuc2x1Y2VudE5hbWUsIHN0YXRpY19jYXN0PGludD4obm9ybWFs
aXphdGlvbiAqIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCksIDEwMCwgMTAwMDAwMCwgNTApOwot
ICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aGlzdG9ncmFtQ3VzdG9tQ291bnRzKGhp
c3RvZ3JhbUN1bGxlZE5hbWUsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXphdGlvbiAqIG1fcGl4
ZWxzQ3VsbGVkKSwgMTAwLCAxMDAwMDAwLCA1MCk7Ci0gICAgaWYgKHBhaW50ZWRDb3VudGVyTmFt
ZSkKLSAgICAgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5oaXN0b2dyYW1DdXN0b21D
b3VudHMoaGlzdG9ncmFtUGFpbnRlZE5hbWUsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXphdGlv
biAqIG1fcGl4ZWxzUGFpbnRlZCksIDEwMCwgMTAwMDAwMCwgNTApOwotCi0gICAgVFJBQ0VfQ09V
TlRFUl9JRDEoIndlYmtpdCIsIGN1bGxDb3VudGVyTmFtZSwgbGF5ZXJUcmVlSG9zdCwgbV9waXhl
bHNDdWxsZWQpOwotICAgIFRSQUNFX0VWRU5UMigid2Via2l0IiwgIkNDT3ZlcmRyYXdNZXRyaWNz
Iiwgb3BhcXVlQ291bnRlck5hbWUsIG1fcGl4ZWxzRHJhd25PcGFxdWUsIHRyYW5zbHVjZW50Q291
bnRlck5hbWUsIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCk7Ci0gICAgaWYgKHBhaW50ZWRDb3Vu
dGVyTmFtZSkgewotICAgICAgICAvLyBUaGlzIG11c3QgYmUgaW4gYSBkaWZmZXJlbnQgc2NvcGUg
dGhhbiB0aGUgVFJBQ0VfRVZFTlQyIGFib3ZlLgotICAgICAgICBUUkFDRV9FVkVOVDEoIndlYmtp
dCIsICJDQ092ZXJkcmF3UGFpbnRNZXRyaWNzIiwgcGFpbnRlZENvdW50ZXJOYW1lLCBtX3BpeGVs
c1BhaW50ZWQpOwotICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJh
d01ldHJpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDT3ZlcmRyYXdNZXRyaWNzLmgKaW5kZXggZjgxZDM0NDEwNTY0YWUwNzg0YTRhNmYwZWVhZGYx
OGZjNWUyMjNiYi4uNTE1NmMzYzM5YjMzNGUzMDk2ODE2Y2YyMmY3MmUxNDM0YWM2YTkwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NP
dmVyZHJhd01ldHJpY3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5oCkBAIC0zOCwxMiArMzgsMjAgQEAgY2xhc3Mg
Q0NPdmVyZHJhd01ldHJpY3MgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDT3Zl
cmRyYXdNZXRyaWNzPiBjcmVhdGUoYm9vbCByZWNvcmRNZXRyaWNzRm9yRnJhbWUpIHsgcmV0dXJu
IGFkb3B0UHRyKG5ldyBDQ092ZXJkcmF3TWV0cmljcyhyZWNvcmRNZXRyaWNzRm9yRnJhbWUpKTsg
fQogCisgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBmb3Igc2F2aW5nIG1ldHJpY3MgZHVy
aW5nIHVwZGF0ZS9jb21taXQuCisKICAgICAvLyBSZWNvcmQgcGl4ZWxzIHBhaW50ZWQgYnkgV2Vi
S2l0IGludG8gdGhlIHRleHR1cmUgdXBkYXRlciwgYnV0IGRvZXMgbm90IG1lYW4gdGhlIHBpeGVs
cyB3ZXJlIHJhc3Rlcml6ZWQgaW4gbWFpbiBtZW1vcnkuCiAgICAgdm9pZCBkaWRQYWludChjb25z
dCBJbnRSZWN0JiBwYWludGVkUmVjdCk7CisgICAgLy8gUmVjb3JkcyB0aGF0IGFuIGludmFsaWQg
dGlsZSB3YXMgY3VsbGVkIGFuZCBkaWQgbm90IG5lZWQgdG8gYmUgcGFpbnRlZC91cGxvYWRlZCwg
YW5kIGRpZCBub3QgY29udHJpYnV0ZSB0byBvdGhlciB0aWxlcyBuZWVkaW5nIHRvIGJlIHBhaW50
ZWQuCisgICAgdm9pZCBkaWRDdWxsVGlsZUZvclVwbG9hZCgpOworICAgIC8vIFJlY29yZHMgcGl4
ZWxzIHRoYXQgd2VyZSB1cGxvYWRlZCB0byB0ZXh0dXJlIG1lbW9yeS4KKyAgICB2b2lkIGRpZFVw
bG9hZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0
IEludFJlY3QmIHVwbG9hZFJlY3QsIGNvbnN0IEludFJlY3QmIG9wYXF1ZVJlY3QpOworCisgICAg
Ly8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBmb3Igc2F2aW5nIG1ldHJpY3MgZHVyaW5nIGRyYXcu
CiAKLSAgICAvLyBSZWNvcmQgcGl4ZWxzIHRoYXQgd2VyZSBub3QgdXBsb2FkZWQvZHJhd24gdG8g
c2NyZWVuLgotICAgIHZvaWQgZGlkQ3VsbChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGJlZm9yZUN1bGxSZWN0LCBjb25zdCBJbnRS
ZWN0JiBhZnRlckN1bGxSZWN0KTsKLSAgICAvLyBSZWNvcmQgcGl4ZWxzIHRoYXQgd2VyZSB1cGxv
YWRlZC9kcmF3biB0byBzY3JlZW4uCisgICAgLy8gUmVjb3JkIHBpeGVscyB0aGF0IHdlcmUgbm90
IGRyYXduIHRvIHNjcmVlbi4KKyAgICB2b2lkIGRpZEN1bGxGb3JEcmF3aW5nKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3Jl
Q3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QpOworICAgIC8vIFJlY29yZCBw
aXhlbHMgdGhhdCB3ZXJlIGRyYXduIHRvIHNjcmVlbi4KICAgICB2b2lkIGRpZERyYXcoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBh
ZnRlckN1bGxSZWN0LCBjb25zdCBJbnRSZWN0JiBvcGFxdWVSZWN0KTsKIAogICAgIHZvaWQgcmVj
b3JkTWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3QqKSBjb25zdDsKQEAgLTUyLDMxICs2MCw0
NSBAQCBwdWJsaWM6CiAgICAgLy8gQWNjZXNzb3JzIGZvciB0ZXN0cy4KICAgICBmbG9hdCBwaXhl
bHNEcmF3bk9wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxzRHJhd25PcGFxdWU7IH0KICAg
ICBmbG9hdCBwaXhlbHNEcmF3blRyYW5zbHVjZW50KCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNE
cmF3blRyYW5zbHVjZW50OyB9Ci0gICAgZmxvYXQgcGl4ZWxzQ3VsbGVkKCkgY29uc3QgeyByZXR1
cm4gbV9waXhlbHNDdWxsZWQ7IH0KKyAgICBmbG9hdCBwaXhlbHNDdWxsZWRGb3JEcmF3aW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9waXhlbHNDdWxsZWRGb3JEcmF3aW5nOyB9CiAgICAgZmxvYXQgcGl4
ZWxzUGFpbnRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxzUGFpbnRlZDsgfQorICAgIGZsb2F0
IHBpeGVsc1VwbG9hZGVkT3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNVcGxvYWRlZE9w
YXF1ZTsgfQorICAgIGZsb2F0IHBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQ7IH0KKyAgICBpbnQgdGlsZXNDdWxsZWRG
b3JVcGxvYWQoKSBjb25zdCB7IHJldHVybiBtX3RpbGVzQ3VsbGVkRm9yVXBsb2FkOyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgQ0NPdmVyZHJhd01ldHJpY3MoYm9vbCByZWNvcmRNZXRyaWNz
Rm9yRnJhbWUpOwotCiAgICAgZW51bSBNZXRyaWNzVHlwZSB7Ci0gICAgICAgIERSQVdJTkcsCi0g
ICAgICAgIFVQTE9BRElORworICAgICAgICBVcGRhdGVBbmRDb21taXQsCisgICAgICAgIERyYXdp
bmdUb1NjcmVlbgogICAgIH07CiAKKyAgICBleHBsaWNpdCBDQ092ZXJkcmF3TWV0cmljcyhib29s
IHJlY29yZE1ldHJpY3NGb3JGcmFtZSk7CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclRy
ZWVIb3N0VHlwZT4KICAgICB2b2lkIHJlY29yZE1ldHJpY3NJbnRlcm5hbChNZXRyaWNzVHlwZSwg
Y29uc3QgTGF5ZXJUcmVlSG9zdFR5cGUqKSBjb25zdDsKIAogICAgIC8vIFdoZW4gZmFsc2UgdGhp
cyBjbGFzcyBpcyBhIGdpYW50IG5vLW9wLgogICAgIGJvb2wgbV9yZWNvcmRNZXRyaWNzRm9yRnJh
bWU7Ci0gICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgYXJlIG9wYXF1ZSAoYW5kIHRodXMgb2Nj
bHVkZSkuIElkZWFsbHkgdGhpcyBpcyBubyBtb3JlCi0gICAgLy8gdGhhbiB3aWV3cG9ydCB3aWR0
aCB4IGhlaWdodC4KKworICAgIC8vIFRoZXNlIHZhbHVlcyBhcmUgdXNlZCBmb3Igc2F2aW5nIG1l
dHJpY3MgZHVyaW5nIHVwZGF0ZS9jb21taXQuCisKKyAgICAvLyBDb3VudCBvZiBwaXhlbHMgdGhh
dCB3ZXJlIHBhaW50ZWQgZHVlIHRvIGludmFsaWRhdGlvbi4KKyAgICBmbG9hdCBtX3BpeGVsc1Bh
aW50ZWQ7CisgICAgLy8gQ291bnQgb2YgcGl4ZWxzIHVwbG9hZGVkIHRvIHRleHR1cmVzIGFuZCBr
bm93biB0byBiZSBvcGFxdWUuCisgICAgZmxvYXQgbV9waXhlbHNVcGxvYWRlZE9wYXF1ZTsKKyAg
ICAvLyBDb3VudCBvZiBwaXhlbHMgdXBsb2FkZWQgdG8gdGV4dHVyZXMgYW5kIG5vdCBrbm93biB0
byBiZSBvcGFxdWUuCisgICAgZmxvYXQgbV9waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50OworICAg
IC8vIENvdW50IG9mIHRpbGVzIHRoYXQgd2VyZSBpbnZhbGlkYXRlZCBidXQgbm90IHVwbG9hZGVk
LgorICAgIGludCBtX3RpbGVzQ3VsbGVkRm9yVXBsb2FkOworCisgICAgLy8gVGhlc2UgdmFsdWVz
IGFyZSB1c2VkIGZvciBzYXZpbmcgbWV0cmljcyBkdXJpbmcgZHJhdy4KKworICAgIC8vIENvdW50
IG9mIHBpeGVscyB0aGF0IGFyZSBvcGFxdWUgKGFuZCB0aHVzIG9jY2x1ZGUpLiBJZGVhbGx5IHRo
aXMgaXMgbm8gbW9yZSB0aGFuIHdpZXdwb3J0IHdpZHRoIHggaGVpZ2h0LgogICAgIGZsb2F0IG1f
cGl4ZWxzRHJhd25PcGFxdWU7CiAgICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgYXJlIHBvc3Np
Ymx5IHRyYW5zbHVjZW50LCBhbmQgY2Fubm90IG9jY2x1ZGUuCiAgICAgZmxvYXQgbV9waXhlbHNE
cmF3blRyYW5zbHVjZW50OwogICAgIC8vIENvdW50IG9mIHBpeGVscyBub3QgZHJhd24gYXMgdGhl
eSBhcmUgb2NjbHVkZWQgYnkgc29tdGhpbmcgb3BhcXVlLgotICAgIGZsb2F0IG1fcGl4ZWxzQ3Vs
bGVkOwotICAgIC8vIENvdW50IG9mIHBpeGVscyB0aGF0IHdlcmUgcGFpbnRlZCBkdWUgdG8gaW52
YWxpZGF0aW9uLgotICAgIGZsb2F0IG1fcGl4ZWxzUGFpbnRlZDsKKyAgICBmbG9hdCBtX3BpeGVs
c0N1bGxlZEZvckRyYXdpbmc7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRD
dWxsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NRdWFkQ3VsbGVyLmNwcAppbmRleCAzNWQxOTQ2MTc3OTU5MmZlYjRlZjg0NzFiMzhmZTBkNWVm
OWM4NDQwLi40NzAxMDgwNGM4ODBkZWE4MmI2ZTljMjJiMDRmZTkwMDA5ZTlkZWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRD
dWxsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDUXVhZEN1bGxlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBDQ1F1YWRDdWxsZXI6
OmFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCkKICAgICBpZiAoa2Vl
cFF1YWQpCiAgICAgICAgIGRyYXdRdWFkLT5zZXRRdWFkVmlzaWJsZVJlY3QoY3VsbGVkUmVjdCk7
CiAKLSAgICBtX29jY2x1c2lvblRyYWNrZXItPm92ZXJkcmF3TWV0cmljcygpLmRpZEN1bGwoZHJh
d1F1YWQtPnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJlY3Qp
OworICAgIG1fb2NjbHVzaW9uVHJhY2tlci0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbEZvckRy
YXdpbmcoZHJhd1F1YWQtPnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1
bGxlZFJlY3QpOwogICAgIG1fb2NjbHVzaW9uVHJhY2tlci0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlk
RHJhdyhkcmF3UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBjdWxsZWRSZWN0LCBkcmF3UXVhZC0+b3Bh
cXVlUmVjdCgpKTsKIAogICAgIC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1
c2luZyBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFk
Q3VsbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxl
clRlc3QuY3BwCmluZGV4IGFlZjBkNmVmNWE5NmM1NzQxYWFmNWZiYjM1NGFiY2QwZTY3NzVkNzQu
LjQ1NjJhM2E3NWMyY2JiOTU4MDkzM2MzMjNhYmQwNTBkZTU0MTFkNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcApAQCAtMTEwLDcg
KzExMCw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Tm9DdWxsaW5nKQogICAgIEVY
UEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9u
VHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMzAwMDAsIDEp
OwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZv
ckRyYXdpbmcoKSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3Vs
bENoaWxkTGluZXNVcFRvcExlZnQpCkBAIC0xMjcsNyArMTI3LDcgQEAgVEVTVChDQ1F1YWRDdWxs
ZXJUZXN0LCB2ZXJpZnlDdWxsQ2hpbGRMaW5lc1VwVG9wTGVmdCkKICAgICBFWFBFQ1RfRVEocXVh
ZExpc3Quc2l6ZSgpLCA5dSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQRUNU
X05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmco
KSwgNDAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxXaGVu
Q2hpbGRPcGFjaXR5Tm90T25lKQpAQCAtMTQ0LDcgKzE0NCw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVy
VGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYWNpdHlOb3RPbmUpCiAgICAgRVhQRUNUX0VRKHF1
YWRMaXN0LnNpemUoKSwgMTN1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKICAgICBFWFBF
Q1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJh
bnNsdWNlbnQoKSwgNDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2lu
ZygpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsV2hlbkNo
aWxkT3BhcXVlRmxhZ0ZhbHNlKQpAQCAtMTYxLDcgKzE2MSw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVy
VGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYXF1ZUZsYWdGYWxzZSkKICAgICBFWFBFQ1RfRVEo
cXVhZExpc3Quc2l6ZSgpLCAxM3UpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOwogICAgIEVY
UEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCA0MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05F
QVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3
aW5nKCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50
ZXJUaWxlT25seSkKQEAgLTE5Niw3ICsxOTYsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZl
cmlmeUN1bGxDZW50ZXJUaWxlT25seSkKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwMDAwLCAxKTsKICAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9y
RHJhd2luZygpLCAzMDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5
Q3VsbENlbnRlclRpbGVOb25JbnRlZ3JhbFNpemUxKQpAQCAtMjI0LDcgKzIyNCw3IEBAIFRFU1Qo
Q0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRlclRpbGVOb25JbnRlZ3JhbFNpemUxKQog
CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNEcmF3bk9wYXF1ZSgpLCAyMDM2MywgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
Q3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygpLCAwLCAxKTsKIH0KIAogVEVTVChD
Q1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTIpCkBA
IC0yNTIsNyArMjUyLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVy
VGlsZU5vbkludGVncmFsU2l6ZTIpCiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE5NjQzLCAxKTsKICAgICBF
WFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5n
KCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDaGlsZExp
bmVzVXBCb3R0b21SaWdodCkKQEAgLTI3MSw3ICsyNzEsNyBAQCBURVNUKENDUXVhZEN1bGxlclRl
c3QsIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBCb3R0b21SaWdodCkKICAgICBFWFBFQ1RfRVEocXVh
ZExpc3Quc2l6ZSgpLCA5dSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQRUNU
X05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmco
KSwgNDAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJS
ZWdpb24pCkBAIC0yOTEsNyArMjkxLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsU3ViUmVnaW9uKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7CiAgICAg
RVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3
bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1
bGxlZCgpLCAxMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDEwMDAwLCAxKTsKIH0KIAog
VEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uMikKQEAgLTMxMSw3ICsz
MTEsNyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24yKQogICAg
IEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVz
aW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwg
MSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDI1MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxNTAwMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWRGb3JEcmF3aW5nKCksIDE1MDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJU
ZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uQ2hlY2tPdmVyY3VsbCkKQEAgLTMzMSw3ICszMzEsNyBA
QCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb25DaGVja092ZXJjdWxs
KQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7CiAgICAgRVhQRUNUX05FQVIo
b2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5
MDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVB
UihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxMDAw
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDEwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRD
dWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzRG9udE9jY2x1ZGUpCkBAIC0zNTEs
NyArMzUxLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1
YWRzRG9udE9jY2x1ZGUpCiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTN1KTsKICAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduT3BhcXVlKCksIDEzMDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3Vs
bGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzQ3VsbGVkRm9yRHJhd2luZygpLCAwLCAxKTsKIH0KIAogLy8gVGhpcyB0
ZXN0IHJlcXVpcmVzIHNvbWUgZXhwbGFuYXRpb246IGhlcmUgd2UgYXJlIHJvdGF0aW5nIHRoZSBx
dWFkcyB0byBiZSBjdWxsZWQuCkBAIC0zNzcsNyArMzc3LDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJU
ZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzU2FmZWx5Q3VsbGVkKQogICAgIEVYUEVDVF9F
UShxdWFkTGlzdC5zaXplKCksIDEydSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMDA2MDAsIDEpOwogICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAyOTQwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JE
cmF3aW5nKCksIDI5NDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsT3V0c2lkZVNjaXNzb3JPdmVyVGlsZSkKQEAgLTM5NCw3ICszOTQsNyBAQCBURVNUKENDUXVh
ZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJUaWxlKQogICAgIEVYUEVD
VF9FUShxdWFkTGlzdC5zaXplKCksIDF1KTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFj
a2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDEwMDAwLCAxKTsKICAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTIwMDAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZv
ckRyYXdpbmcoKSwgMTIwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJp
ZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyQ3VsbGVkVGlsZSkKQEAgLTQxMSw3ICs0MTEsNyBAQCBU
RVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJDdWxsZWRU
aWxlKQogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDF1KTsKICAgICBFWFBFQ1RfTkVB
UihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCks
IDEwMDAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIo
b2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTIwMDAw
LCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgMTIwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRD
dWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyUGFydGlhbFRpbGVzKQpAQCAt
NDI4LDcgKzQyOCw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVT
Y2lzc29yT3ZlclBhcnRpYWxUaWxlcykKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCA5
dSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3bk9wYXF1ZSgpLCA0MDAwMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVzaW9u
VHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEp
OwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzQ3VsbGVkKCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2Vy
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZEZvckRyYXdpbmcoKSwgOTAwMDAsIDEpOwog
fQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJO
b1RpbGVzKQpAQCAtNDQ1LDcgKzQ0NSw3IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5
Q3VsbE91dHNpZGVTY2lzc29yT3Zlck5vVGlsZXMpCiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNp
emUoKSwgMHUpOwogICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CiAgICAgRVhQRUNUX05FQVIob2NjbHVz
aW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAs
IDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDEzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWRGb3JEcmF3aW5nKCksIDEzMDAwMCwg
MSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5V2l0aG91dE1ldHJpY3MpCkBA
IC00NjIsNyArNDYyLDcgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlXaXRob3V0TWV0
cmljcykKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCA5dSk7CiAgICAgRVhQRUNUX05F
QVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgp
LCAwLCAxKTsKICAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2Nj
bHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHND
dWxsZWRGb3JEcmF3aW5nKCksIDAsIDEpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDE1MGQ2
NWQ1OThmODMxYjRmM2FjODFkMGJkODdlMTdkNjg1NDQ2MmEuLjc2MDRhMDQ1MTU1MGNiOThjZDhh
NTgwOWQxOWQxNDNiYTQyMmY0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMTE4LDkgKzExOCw5IEBA
IFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAg
ICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXll
ci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCi0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCAyMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNs
dWNlbnQoKSwgMjAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgwLCBvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAgIC8vIFdlIHNob3VsZCBoYXZl
IGJvdGggdGlsZXMgb24gdGhlIGltcGwgc2lkZS4KICAgICBFWFBFQ1RfVFJVRShsYXllckltcGwt
Pmhhc1RpbGVBdCgwLCAwKSk7CkBAIC0xMzYsOSArMTM2LDkgQEAgVEVTVChUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRpbGVzKQogICAgIGxheWVyLT51cGRhdGVDb21w
b3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1Rv
KGxheWVySW1wbC5nZXQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIwMDAwICsg
MjUwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9j
Y2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMjAw
MDAgKyAyNTAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAKICAgICAvLyBXZSBzaG91bGQgc3RpbGwgaGF2
ZSBib3RoIHRpbGVzLCBhcyBwYXJ0IG9mIHRoZSB0b3AgdGlsZSBpcyBzdGlsbCB1bm9jY2x1ZGVk
LgogICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKQEAgLTk5NCw5
ICs5OTQsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhP
Y2NsdXNpb24pCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwg
NjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYtMywgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDMzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRy
YW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNUX0VRKDMsIG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogCiAgICAgbGF5ZXItPmZha2VM
YXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCkBAIC0xMDA1
LDkgKzEwMDUsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdp
dGhPY2NsdXNpb24pCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYw
MCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYtMiwgbGF5ZXItPmZha2VMYXll
clRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsK
LSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDMzMDAwMCArIDM0MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwICsgMjAwMDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVk
T3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfRVEoMyArIDIsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVk
Rm9yVXBsb2FkKCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNs
ZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCkBAIC0xMDE2LDkgKzEwMTYsOSBAQCBURVNUKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb24pCiAgICAgbGF5ZXIt
PnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAg
ICBFWFBFQ1RfRVEoMzYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJl
UmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAwMDAgKyAzNDAw
MDAgKyAzNjAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDIwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRl
ZFRyYW5zbHVjZW50KCksIDMzMDAwMCArIDM0MDAwMCArIDM2MDAwMCwgMSk7CisgICAgRVhQRUNU
X0VRKDMgKyAyLCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9h
ZCgpKTsKIH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRo
T2NjbHVzaW9uQW5kVmlzaWJsaXR5Q29uc3RyYWludHMpCkBAIC0xMDM2LDEyICsxMDM2LDEyIEBA
IFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFu
ZFZpc2libGl0eUNvbnN0cmFpbnRzKQogICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0
KDIwMCwgMjAwLCAzMDAsIDE1MCkpOwogICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KElu
dFJlY3QoMCwgMCwgNjAwLCAzNjApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVj
dCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgw
LCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDYwMCwgMzYwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMjQtMywg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAK
LSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9w
YXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIxMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9w
YXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDIxMDAwMCwgMSk7CisgICAgRVhQRUNUX0VR
KDMsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwog
CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RD
b3VudCgpOwogCkBAIC0xMDQ5LDEyICsxMDQ5LDEyIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVt
VGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFpbnRzKQog
ICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDE1MCkpOwog
ICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KEludFJlY3QoMCwgMCwgNjAwLCAzNTApKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAg
IGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRl
ZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgMzUwKSwg
Jm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMjQtNiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVV
cGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRl
ZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50
KCksIDIxMDAwMCArIDE4MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwICsgNjAwMDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCks
IDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c1VwbG9hZGVkVHJhbnNsdWNlbnQoKSwgMjEwMDAwICsgMTgwMDAwLCAxKTsKKyAgICBFWFBFQ1Rf
RVEoMyArIDYsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2Fk
KCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFy
ZVJlY3RDb3VudCgpOwogCkBAIC0xMDYyLDEyICsxMDYyLDEyIEBAIFRFU1QoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFp
bnRzKQogICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDE1
MCkpOwogICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KEludFJlY3QoMCwgMCwgNjAwLCAz
NDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkp
OwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZv
Y2NsdWRlZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwg
MzQwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMjQtNiwgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKLSAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDIxMDAwMCArIDE4MDAwMCArIDE4MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwICsgNjAwMDAg
KyA2MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAx
ODAwMDAgKyAxODAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgzICsgNiArIDYsIG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogCiB9CiAKQEAgLTEwODgs
MTkgKzEwODgsMTkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc05vdFBhaW50
ZWRXaXRob3V0SW52YWxpZGF0aW9uKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVj
dCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUo
KSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUo
KSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgzLCBv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAogICAg
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQo
KTsKIAotICAgIC8vIFJlcGFpbnQgd2l0aG91dCBtYXJraW5nIGl0IGRpcnR5LgorICAgIC8vIFJl
cGFpbnQgd2l0aG91dCBtYXJraW5nIGl0IGRpcnR5LiBUaGUgY3VsbGVkIHRpbGVzIHJlbWFpbmVk
IGRpcnR5LgogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYw
MCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDAsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2Vu
dCgpLCAzMzAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1
Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9FUSg2LCBvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIH0KIAogVEVTVChUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVHJhbnNmb3JtcykKQEAgLTEx
MjUsOSArMTEyNSw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVk
V2l0aE9jY2x1c2lvbkFuZFRyYW5zZm9ybXMpCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYtMywg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAK
LSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9w
YXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9w
YXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNUX0VR
KDMsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwog
fQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNp
b25BbmRTY2FsaW5nKQpAQCAtMTE1NCw5ICsxMTU0LDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21p
dW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICAvLyBudW1i
ZXIgb2YgdGlsZXMgM3gzLgogICAgIEVYUEVDVF9FUSg5LCBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNl
bnQoKSwgOTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50
KCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiAKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKQEAgLTExNjksOSArMTE2OSw5
IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lv
bkFuZFNjYWxpbmcpCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYw
MCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoOS0xLCBsYXllci0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAotICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJh
bnNsdWNlbnQoKSwgOTAwMDAgKyA4MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAw
LCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNV
cGxvYWRlZFRyYW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAsIDEpOworICAgIEVYUEVDVF9FUSgx
LCBvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIAog
ICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291
bnQoKTsKIApAQCAtMTE4Nyw5ICsxMTg3LDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0
LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICBsYXllci0+cHJlcGFy
ZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVD
VF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENv
dW50KCkpOwogCi0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCA5MDAwMCArIDgwMDAwICsgODAw
MDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZCgpLCAxMDAwMCArIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVj
ZW50KCksIDkwMDAwICsgODAwMDAgKyA4MDAwMCwgMSk7CisgICAgRVhQRUNUX0VRKDEgKyAxLCBv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS50aWxlc0N1bGxlZEZvclVwbG9hZCgpKTsKIH0KIAog
VEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikK
QEAgLTEyMTksOSArMTIxOSw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJs
ZUNvbnRlbnRPcGFxdWVSZWdpb24pCiAgICAgRVhQRUNUX1RSVUUob3BhcXVlQ29udGVudHMuaXNF
bXB0eSgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc1BhaW50ZWQoKSwgMjAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAw
MDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDIwMDAw
LCAxKTsKKyAgICBFWFBFQ1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXND
dWxsZWRGb3JVcGxvYWQoKSk7CiAKICAgICAvLyB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbiBz
aG91bGQgbWF0Y2ggdGhlIHZpc2libGUgcGFydCBvZiB3aGF0IGlzIHBhaW50ZWQgb3BhcXVlLgog
ICAgIG9wYXF1ZVBhaW50UmVjdCA9IEludFJlY3QoMTAsIDEwLCA5MCwgMTkwKTsKQEAgLTEyMzMs
OSArMTIzMyw5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRP
cGFxdWVSZWdpb24pCiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNp
emUoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNQYWludGVkKCksIDIwMDAwICogMiwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOwotICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMTcxMDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1Vw
bG9hZGVkVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBF
Q1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQo
KSk7CiAKICAgICAvLyBJZiB3ZSBwYWludCBhZ2FpbiB3aXRob3V0IGludmFsaWRhdGluZywgdGhl
IHNhbWUgc3R1ZmYgc2hvdWxkIGJlIG9wYXF1ZS4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CkBAIC0xMjQ1LDkgKzEy
NDUsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVl
UmVnaW9uKQogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkp
OwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFp
bnRlZCgpLCAyMDAwMCAqIDIsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE3MTAwLCAxKTsKLSAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIw
MDAwICsgMjAwMDAgLSAxNzEwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDE3MTAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRl
ZFRyYW5zbHVjZW50KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCwgMSk7CisgICAgRVhQRUNUX0VR
KDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwog
CiAgICAgLy8gSWYgd2UgcmVwYWludCBhIG5vbi1vcGFxdWUgcGFydCBvZiB0aGUgdGlsZSwgdGhl
biBpdCBzaG91bGRuJ3QgbG9zZSBpdHMgb3BhcXVlLW5lc3MuIEFuZCBvdGhlciB0aWxlcyBzaG91
bGQKICAgICAvLyBub3QgYmUgYWZmZWN0ZWQuCkBAIC0xMjU5LDkgKzEyNTksOSBAQCBURVNUKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKQogICAgIEVY
UEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCiAgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAq
IDIgKyAxLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3bk9wYXF1ZSgpLCAxNzEwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAw
IC0gMTcxMDAgKyAxLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkVHJhbnNs
dWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwICsgMSwgMSk7CisgICAgRVhQRUNUX0VRKDAs
IG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogCiAg
ICAgLy8gSWYgd2UgcmVwYWludCBhbiBvcGFxdWUgcGFydCBvZiB0aGUgdGlsZSwgdGhlbiBpdCBz
aG91bGQgbG9zZSBpdHMgb3BhcXVlLW5lc3MuIEJ1dCBvdGhlciB0aWxlcyBzaG91bGQgc3RpbGwK
ICAgICAvLyBub3QgYmUgYWZmZWN0ZWQuCkBAIC0xMjczLDkgKzEyNzMsMTYgQEAgVEVTVChUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKICAgICBFWFBF
Q1RfRVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsKIAogICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1BhaW50ZWQoKSwgMjAwMDAgKiAy
ICsgMSAgKyAxLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxNzEwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIw
MDAwIC0gMTcxMDAgKyAxICsgMSwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDE3MTAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRl
ZFRyYW5zbHVjZW50KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCArIDEgKyAxLCAxKTsKKyAgICBF
WFBFQ1RfRVEoMCwgb2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxv
YWQoKSk7CisKKyAgICAvLyBObyBtZXRyaWNzIGFyZSByZWNvcmRlZCBpbiBwcmVwYWludCwgc28g
dGhlIHZhbHVlcyBzaG91bGQgbm90IGNoYW5nZSBmcm9tIGFib3ZlLgorICAgIGxheWVyLT5wcmVw
YXJlVG9VcGRhdGVJZGxlKGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCk7CisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAyMDAwMCAqIDIg
KyAxICArIDEsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCksIDIwMDAw
ICsgMjAwMDAgLSAxNzEwMCArIDEgKyAxLCAxKTsKKyAgICBFWFBFQ1RfRVEoMCwgb2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkudGlsZXNDdWxsZWRGb3JVcGxvYWQoKSk7CiB9CiAKIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgcGl4ZWxzUGFpbnRlZE1ldHJpY3MpCkBAIC0xMzA1LDkgKzEz
MTIsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVsc1BhaW50ZWRNZXRyaWNz
KQogICAgIEVYUEVDVF9UUlVFKG9wYXF1ZUNvbnRlbnRzLmlzRW1wdHkoKSk7CiAKICAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNQYWludGVkKCksIDMwMDAw
LCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNE
cmF3bk9wYXF1ZSgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRP
cGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzVXBsb2FkZWRUcmFuc2x1Y2VudCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX0VR
KDAsIG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwog
CiAgICAgLy8gSW52YWxpZGF0ZXMgYW4gYXJlYSBvbiB0aGUgdG9wIGFuZCBib3R0b20gdGlsZSwg
d2hpY2ggd2lsbCBjYXVzZSB1cyB0byBwYWludCB0aGUgdGlsZSBpbiB0aGUgbWlkZGxlLAogICAg
IC8vIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCBkaXJ0eSBhbmQgd2lsbCBub3QgYmUgdXBsb2FkZWQu
CkBAIC0xMzIxLDkgKzEzMjgsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVs
c1BhaW50ZWRNZXRyaWNzKQogICAgIC8vIFRoZSBtaWRkbGUgdGlsZSB3YXMgcGFpbnRlZCBldmVu
IHRob3VnaCBub3QgaW52YWxpZGF0ZWQuCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzUGFpbnRlZCgpLCAzMDAwMCArIDYwICogMjEwLCAxKTsKICAgICAv
LyBUaGUgcGl4ZWxzIHVwbG9hZGVkIHdpbGwgbm90IGluY2x1ZGUgdGhlIG5vbi1pbnZhbGlkYXRl
ZCB0aWxlIGluIHRoZSBtaWRkbGUuCi0gICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMDAwMCAr
IDEgKyAxMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50KCks
IDMwMDAwICsgMSArIDEwMCwgMSk7CisgICAgRVhQRUNUX0VRKDAsIG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnRpbGVzQ3VsbGVkRm9yVXBsb2FkKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>