<?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>101974</bug_id>
          
          <creation_ts>2012-11-12 13:20:13 -0800</creation_ts>
          <short_desc>Boxes with rounded corners and thin borders are too slow to draw</short_desc>
          <delta_ts>2012-11-14 11:12:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Justin Novosad">junov</reporter>
          <assigned_to name="Justin Novosad">junov</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>peter</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764738</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-12 13:20:13 -0800</bug_when>
    <thetext>Boxes with rounded corners and thin borders are too slow to draw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764992</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-12 17:05:46 -0800</bug_when>
    <thetext>Testcase?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765566</commentid>
    <comment_count>2</comment_count>
      <attachid>173887</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-13 07:14:28 -0800</bug_when>
    <thetext>Created attachment 173887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765574</commentid>
    <comment_count>3</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-13 07:22:28 -0800</bug_when>
    <thetext>The expected pixel results for the following layout tests will require rebaselining due to minor discrepancies along anti-aliased rounded corner edges:
fast/borders/border-radius-wide-border-01.html
fast/borders/borderRadiusInset01.html
fast/forms/validation-message-appearance.html
svg/custom/svg-fonts-in-html.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765630</commentid>
    <comment_count>4</comment_count>
      <attachid>173887</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 08:27:35 -0800</bug_when>
    <thetext>Comment on attachment 173887
Patch

Attachment 173887 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14815638

New failing tests:
fast/borders/border-radius-wide-border-05.html
fast/forms/validation-message-appearance.html
svg/custom/svg-fonts-in-html.html
fast/borders/border-radius-wide-border-01.html
fast/borders/borderRadiusInset01.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765657</commentid>
    <comment_count>5</comment_count>
      <attachid>173887</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-13 08:52:49 -0800</bug_when>
    <thetext>Comment on attachment 173887
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        With the current implementation RenderBox::
&gt; +        determineBackgroundBleedAvoidance() the slow path

I think you&apos;re missing a &apos;uses&apos;

&gt; Source/WebCore/ChangeLog:12
&gt; +        borders.  This is because the BackgroundBleedShrinkBackground

One space after periods.

&gt; Source/WebCore/ChangeLog:18
&gt; +        By using this approach rater than BackgroundBleedUseTransparencyLayer,

rather

&gt; Source/WebCore/rendering/RenderBox.cpp:897
&gt; +bool RenderBox::backgroundIsSingleOpaqueLayer() const

Multiple sold color backgrounds would also be OK, no?

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:703
&gt; +    adjustedRect.inflateY(-static_cast&lt;LayoutUnit&gt;(ceil(1 / transform.yScale())));    

Whitespace at EOL?

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:713
&gt; +        adjustedRect.inflateX(-static_cast&lt;LayoutUnit&gt;(ceil(1 / transform.xScale())));

We should probably provide a helper function for this shrinking.

&gt; LayoutTests/ChangeLog:12
&gt; +        * fast/borders/border-radius-wide-border-05.html: Added.

Where&apos;s the pixel result?

&gt; LayoutTests/fast/borders/border-radius-wide-border-05.html:11
&gt; +        -moz-box-sizing: border-box;

Remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765753</commentid>
    <comment_count>6</comment_count>
      <attachid>173887</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 10:16:01 -0800</bug_when>
    <thetext>Comment on attachment 173887
Patch

Attachment 173887 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14809933

New failing tests:
fast/borders/border-radius-wide-border-05.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765760</commentid>
    <comment_count>7</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-13 10:21:17 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Multiple sold color backgrounds would also be OK, no?
&gt; 

Almost.  To do it right we&apos;d need logic to optimize-out the bottom layers.  Otherwise, if we just draw the multiple solid layers on top of each other, there will be color bleeding along anti-aliased edges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765980</commentid>
    <comment_count>8</comment_count>
      <attachid>173968</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-13 13:19:03 -0800</bug_when>
    <thetext>Created attachment 173968
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766306</commentid>
    <comment_count>9</comment_count>
      <attachid>173968</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 18:56:55 -0800</bug_when>
    <thetext>Comment on attachment 173968
Patch for landing

Rejecting attachment 173968 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:
ucceeded at 1 with fuzz 3.
patching file LayoutTests/fast/borders/border-radius-wide-border-05-expected.txt
patching file LayoutTests/fast/borders/border-radius-wide-border-05.html
patching file LayoutTests/platform/chromium/TestExpectations
Hunk #1 FAILED at 3599.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/chromium/TestExpectations.rej

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

Full output: http://queues.webkit.org/results/14838054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766867</commentid>
    <comment_count>10</comment_count>
      <attachid>174151</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-14 07:15:48 -0800</bug_when>
    <thetext>Created attachment 174151
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767002</commentid>
    <comment_count>11</comment_count>
      <attachid>174151</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-14 10:12:24 -0800</bug_when>
    <thetext>Comment on attachment 174151
Patch for landing

Forgot to &quot;svn resolved TestExpectations&quot;.  Must resubmit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767006</commentid>
    <comment_count>12</comment_count>
      <attachid>174189</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-14 10:13:43 -0800</bug_when>
    <thetext>Created attachment 174189
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767039</commentid>
    <comment_count>13</comment_count>
      <attachid>174189</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 10:40:04 -0800</bug_when>
    <thetext>Comment on attachment 174189
Patch for landing

Rejecting attachment 174189 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:
um/third_party/angle --revision 1389 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
34&gt;At revision 1389.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...
Total errors found: 0 in 1 files

Full output: http://queues.webkit.org/results/14824840</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767045</commentid>
    <comment_count>14</comment_count>
      <attachid>174201</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-14 10:47:45 -0800</bug_when>
    <thetext>Created attachment 174201
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767076</commentid>
    <comment_count>15</comment_count>
      <attachid>174201</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:12:35 -0800</bug_when>
    <thetext>Comment on attachment 174201
Patch for landing

Clearing flags on attachment: 174201

Committed r134631: &lt;http://trac.webkit.org/changeset/134631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767077</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:12:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173887</attachid>
            <date>2012-11-13 07:14:28 -0800</date>
            <delta_ts>2012-11-13 13:18:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101974-20121113101229.patch</filename>
            <type>text/plain</type>
            <size>27207</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTEyICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgQm94ZXMgd2l0aCByb3VuZGVk
IGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cgdG8gZHJhdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2l0aCB0aGUgY3VycmVudCBp
bXBsZW1lbnRhdGlvbiBSZW5kZXJCb3g6OgorICAgICAgICBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxl
ZWRBdm9pZGFuY2UoKSB0aGUgc2xvdyBwYXRoCisgICAgICAgIEJhY2tncm91bmRCbGVlZFVzZVRy
YW5zcGFyZW5jeUxheWVyIGZvciBzb21lIHZlcnkgY29tbW9uIHVzZSBjYXNlcywKKyAgICAgICAg
bm90YWJseSBmb3IgZHJhd2luZyByZWN0YW5nbGVzIHdpdGggcm91bmRlZCBjb3JuZXJzIHRoYXQg
aGF2ZSB0aGluCisgICAgICAgIGJvcmRlcnMuICBUaGlzIGlzIGJlY2F1c2UgdGhlIEJhY2tncm91
bmRCbGVlZFNocmlua0JhY2tncm91bmQKKyAgICAgICAgc3RyYXRlZ3kgcmVxdWlyZXMgYSBib3Jk
ZXIgYXQgbGVhc3QgdHdvIHBpeGVscyB3aWRlIG9uIGFsbCBzaWRlLiBUaGlzCisgICAgICAgIHBh
dGNoIGludHJvZHVjZSBkcmF3aW5nIHN0cmF0ZWd5IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRP
dmVyQm9yZGVyLgorICAgICAgICBUaGlzIGFwcHJvYWNoIGNvbnNpc3RzIGluIGRyYXdpbmcgdGhl
IGJvcmRlciBmaXJzdCwgd2l0aCBhbiBpbnNldCBpbm5lcgorICAgICAgICBlZGdlIChmb3IgYW50
aS1hbGlhc2VkIGNvbXBvc2l0aW5nIHRvIHdvcmsgd2VsbCkuICBUaGlzIGFwcHJvYWNoIG9ubHkK
KyAgICAgICAgd29ya3Mgd2l0aCBvcGFxdWUgc29saWQgZWRnZXMgYW5kIG9wYXF1ZSBzaW5nbGUt
bGF5ZXIgYmFja2dyb3VuZHMuCisgICAgICAgIEJ5IHVzaW5nIHRoaXMgYXBwcm9hY2ggcmF0ZXIg
dGhhbiBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllciwKKyAgICAgICAgd2Ugc2F2
ZSB0d28gY2xpcFBhdGgsIG9uZSBzYXZlIGFuZCBvbmUgc2F2ZUxheWVyIG9uIHRoZQorICAgICAg
ICBHcmFwaGljc0NvbnRleHQuIFRoaXMgcGF0Y2ggZ2V0cyBnb29kIGNvdmVyYWdlIGZyb20gZXhp
c3RpbmcgbGF5b3V0CisgICAgICAgIHRlc3RzLiBPbmUgYWRkaXRpb25hbCB0ZXN0IHdhcyBhZGRl
ZCB0byBleGVyY2lzZSBtaXRyaW5nLCB0aGljayBlZGdlcworICAgICAgICBhbmQgYW50aS1hbGlh
c2luZyBlZGdlIGNhc2VzIHVuZGVyIHRoZSBuZXcgcGFpbnRpbmcgYWxnb3JpdGhtLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1Lmh0bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjpkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UpOgorICAgICAgICBB
ZGRlZCBzZWxlY3Rpb24gY3JpdGVyaWEgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICBBZGRl
ZCBhIHByZWxpbWluYXJ5IHBhaW50Qm9yZGVyIHBhc3MgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVy
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50QmFja2dyb3VuZCk6CisgICAgICAg
IEluc2V0dGluZyB0aGUgYmFja2dyb3VuZCB0byB0byBpbm5lckJvcmRlciB3aGVuIGJsZWVkQXZv
aWRhbmNlIGlzCisgICAgICAgIEJhY2tncm91bmRPdmVyQm9yZGVyLiAgVGhpcyB3aHkgQmFja2dy
b3VuZE92ZXJCb3JkZXIgb25seSB3b3JrcyBmb3IKKyAgICAgICAgT3BhcXVlIHNvbGlkIGVkZ2Vz
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmJhY2tn
cm91bmRJc1NpbmdsZU9wYXF1ZUxheWVyKToKKyAgICAgICAgVXRpbGl0eSBtZXRob2QgdXNlIGJ5
IGRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSB0byB0ZXN0IHRoZQorICAgICAgICBi
YWNrZ3JvdW5kJ3MgZWxpZ2liaWxpdHkgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVyIGJsZWVkIGF2
b2lkYW5jZQorICAgICAgICBzdHJhdGVneS4gIFRoZSByZWFzb24gdGhlIGJhY2tncm91bmQgbXVz
dCBiZSBhIHNpbmdsZSBsYXllciBpcyB0byBhdm9pZAorICAgICAgICBjb2xvciBibGVlZGluZyBm
cm9tIGxheWVyIGNvbXBvc2l0aW5nIGFsb25nIGFudGktYWxpYXNlZCBlZGdlcworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveE1vZGVsT2JqZWN0OjpnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9y
QmxlZWRBdm9pZGFuY2UpOgorICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBCYWNrZ3JvdW5kT3Zl
ckJvcmRlciBieSBhcHBseWluZyBhIG9uZSBwaXhlbCBpbnNldC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveE1vZGVsT2JqZWN0OjpiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJs
ZWVkQXZvaWRhbmNlKToKKyAgICAgICAgU2V0IHRoZSBiYWNrZ3JvdW5kIHJlY3QgdG8gdGhlIGlu
bmVyIGJvcmRlciBmb3IgQmFja2dyb3VuZE92ZXJCb3JkZXIKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0
ZW5kZWQpOgorICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlciBi
eSB1c2luZyAKKyAgICAgICAgYmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2
b2lkYW5jZQorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9y
ZGVyU2lkZXMpOgorICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRl
ciBieSBhcHBseWluZyBwZXItc2lkZSBpbnNldAorICAgICAgICBhZGp1c3RtZW50cy4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludFRyYW5zbHVjZW50Qm9yZGVy
U2lkZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9y
ZGVyKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJCb3JkZXIgYnkg
dXNpbmcgYW4gYWRqdXN0ZWQgaW5uZXIKKyAgICAgICAgYm9yZGVyLCBidXQgbm90IGlmIHNpZGVz
IGFyZSBwYWludGVkIGluZGl2aWR1YWxseS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckJveE1vZGVsT2JqZWN0KToKKwogMjAxMi0x
MS0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29y
a1Byb2Nlc3M6IFVzZSBhbiBhY2N1cmF0ZSBzaG91bGRDb250ZW50U25pZmYgdmFsdWUgd2hlbiBj
cmVhdGluZyBSZXNvdXJjZUhhbmRsZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCShyZXZpc2lvbiAxMzQwNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIxLDExICs4MjEsOCBAQCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgUmVuZGVyQm94OjpkZXRlCiAgICAgRmxvYXRTaXplIGNvbnRleHRT
Y2FsaW5nKHN0YXRpY19jYXN0PGZsb2F0PihjdG0ueFNjYWxlKCkpLCBzdGF0aWNfY2FzdDxmbG9h
dD4oY3RtLnlTY2FsZSgpKSk7CiAgICAgaWYgKGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2Uo
Y29udGV4dFNjYWxpbmcpKQogICAgICAgICByZXR1cm4gQmFja2dyb3VuZEJsZWVkU2hyaW5rQmFj
a2dyb3VuZDsKLSAgICAKLSAgICAvLyBGSVhNRTogdGhlcmUgaXMgb25lIG1vcmUgc3RyYXRlZ3kg
cG9zc2libGUsIGZvciBvcGFxdWUgYmFja2dyb3VuZHMgYW5kCi0gICAgLy8gdHJhbnNsdWNlbnQg
Ym9yZGVycy4gSW4gdGhhdCBjYXNlIHdlIGNvdWxkIGF2b2lkIHVzaW5nIGEgdHJhbnNwYXJlbmN5
IGxheWVyLAotICAgIC8vIGFuZCBwYWludCB0aGUgYm9yZGVyIGZpcnN0LCBhbmQgdGhlbiBwYWlu
dCB0aGUgYmFja2dyb3VuZCBjbGlwcGVkIHRvIHRoZQotICAgIC8vIGluc2lkZSBvZiB0aGUgYm9y
ZGVyLgorICAgIGlmICghc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSAmJiBib3JkZXJPYnNjdXJlc0Jh
Y2tncm91bmQoKSAmJiBiYWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcigpKQorICAgICAgICBy
ZXR1cm4gQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXI7CiAKICAgICByZXR1cm4g
QmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXI7CiB9CkBAIC04NTksMTIgKzg1Niwx
NSBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWluCiAgICAgICAgIHBh
aW50SW5mby5jb250ZXh0LT5hZGRSb3VuZGVkUmVjdENsaXAoYm9yZGVyKTsKICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7CiAgICAgfQotICAgIAor
CiAgICAgLy8gSWYgd2UgaGF2ZSBhIG5hdGl2ZSB0aGVtZSBhcHBlYXJhbmNlLCBwYWludCB0aGF0
IGJlZm9yZSBwYWludGluZyBvdXIgYmFja2dyb3VuZC4KICAgICAvLyBUaGUgdGhlbWUgd2lsbCB0
ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50IHRoZSBDU1MgYmFja2dy
b3VuZC4KICAgICBJbnRSZWN0IHNuYXBwZWRQYWludFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChw
YWludFJlY3QpKTsKICAgICBib29sIHRoZW1lUGFpbnRlZCA9IHN0eWxlKCktPmhhc0FwcGVhcmFu
Y2UoKSAmJiAhdGhlbWUoKS0+cGFpbnQodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0
KTsKICAgICBpZiAoIXRoZW1lUGFpbnRlZCkgeworICAgICAgICBpZiAoYmxlZWRBdm9pZGFuY2Ug
PT0gQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpCisgICAgICAgICAgICBwYWlu
dEJvcmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwor
CiAgICAgICAgIHBhaW50QmFja2dyb3VuZChwYWludEluZm8sIHBhaW50UmVjdCwgYmxlZWRBdm9p
ZGFuY2UpOwogCiAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCkBAIC04NzMs
NyArODczLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbgogICAg
IHBhaW50Qm94U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBJbnNldCk7CiAK
ICAgICAvLyBUaGUgdGhlbWUgd2lsbCB0ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBh
bHNvIHBhaW50IHRoZSBDU1MgYm9yZGVyLgotICAgIGlmICgoIXN0eWxlKCktPmhhc0FwcGVhcmFu
Y2UoKSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLT5wYWludEJvcmRlck9ubHkodGhpcywg
cGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KSkpICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQor
ICAgIGlmIChibGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3ZlckJv
cmRlciAmJiAoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0
aGVtZSgpLT5wYWludEJvcmRlck9ubHkodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0
KSkpICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQogICAgICAgICBwYWludEJvcmRlcihwYWludElu
Zm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwogCiAgICAgaWYgKGJsZWVk
QXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQpAQCAtODk0
LDYgKzg5NCwyNSBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCYWNrZ3JvdW5kKGNvbnN0IFBhCiAg
ICAgfQogfQogCitib29sIFJlbmRlckJveDo6YmFja2dyb3VuZElzU2luZ2xlT3BhcXVlTGF5ZXIo
KSBjb25zdAoreworICAgIGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyID0gc3R5bGUoKS0+YmFj
a2dyb3VuZExheWVycygpOworICAgIGlmICghZmlsbExheWVyIHx8IGZpbGxMYXllci0+bmV4dCgp
IHx8IGZpbGxMYXllci0+Y2xpcCgpICE9IEJvcmRlckZpbGxCb3ggfHwgZmlsbExheWVyLT5jb21w
b3NpdGUoKSAhPSBDb21wb3NpdGVTb3VyY2VPdmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAvLyBDbGlwcGVkIHdpdGggbG9jYWwgc2Nyb2xsaW5nCisgICAgaWYgKGhhc092ZXJmbG93
Q2xpcCgpICYmIGZpbGxMYXllci0+YXR0YWNobWVudCgpID09IExvY2FsQmFja2dyb3VuZEF0dGFj
aG1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbG9yIGJnQ29sb3IgPSBzdHls
ZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwor
ICAgIGlmIChiZ0NvbG9yLmlzVmFsaWQoKSAmJiBiZ0NvbG9yLmFscGhhKCkgPT0gMjU1KQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBGSVhNRTogcmV0dXJuIHRydWUgaWYgYSBi
YWNrZ3JvdW5kIGltYWdlIGlzIHByZXNlbnQgYW5kIGlzIG9wYXF1ZQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFwYWludEluZm8u
c2hvdWxkUGFpbnRXaXRoaW5Sb290KHRoaXMpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBW
SVNJQkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlTWFzayB8fCBwYWludEluZm8u
Y29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAkocmV2aXNpb24gMTM0MDczKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NjcsNiArNTY3LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgcGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFJlY3QmKTsKIAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBkZXRlcm1pbmVCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7CisgICAgYm9vbCBiYWNr
Z3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcigpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZvaWQgcGFpbnRDdXN0b21IaWdobGlnaHQoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYmVoaW5kVGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEz
NDA3MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY0Nyw3ICs2NDcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJv
eE1vZGVsT2JqZWN0Ojpjb21wdXRlCiB9CiAKIFJvdW5kZWRSZWN0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVj
dCwgSW5saW5lRmxvd0JveCogYm94LCBMYXlvdXRVbml0IGlubGluZUJveFdpZHRoLCBMYXlvdXRV
bml0IGlubGluZUJveEhlaWdodCwKLSAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAogewogICAgIFJlbmRlclZp
ZXcqIHJlbmRlclZpZXcgPSB2aWV3KCk7CiAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0gc3R5bGUo
KS0+Z2V0Um91bmRlZEJvcmRlckZvcihib3JkZXJSZWN0LCByZW5kZXJWaWV3LCBpbmNsdWRlTG9n
aWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CkBAIC02OTEsMTkgKzY5MSwz
NSBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjbGlwUm91bmRlZEluCiAgICAgfQogfQog
Ci1zdGF0aWMgTGF5b3V0UmVjdCBiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFu
Y2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0
LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UpCitMYXlvdXRSZWN0IFJl
bmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRh
bmNlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlKSBjb25zdAogewotICAgIGlmIChi
bGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5kKQotICAgICAg
ICByZXR1cm4gYm9yZGVyUmVjdDsKKyAgICBpZiAoYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3Vu
ZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpIAorICAgICAgICByZXR1cm4gcmVjdDsKIAotICAg
IC8vIFdlIHNocmluayB0aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBlYWNoIHNpZGUgYmVj
YXVzZSB0aGUgYmxlZWQgaXMgb25lIHBpeGVsIG1heGltdW0uCisgICAgLy8gV2Ugc2hyaW5rIHRo
ZSByZWN0YW5nbGUgYnkgb25lIHBpeGVsIG9uIGVhY2ggc2lkZSB0byBtYWtlIGl0IGZ1bGx5IG92
ZXJsYXAgdGhlIGFudGktYWxpYXNlZCBiYWNrZ3JvdW5kIGJvcmRlcgorICAgIExheW91dFJlY3Qg
YWRqdXN0ZWRSZWN0ID0gcmVjdDsKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gY29u
dGV4dC0+Z2V0Q1RNKCk7Ci0gICAgTGF5b3V0UmVjdCBhZGp1c3RlZFJlY3QgPSBib3JkZXJSZWN0
OwogICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlWCgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2Vp
bCgxIC8gdHJhbnNmb3JtLnhTY2FsZSgpKSkpOwotICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlWSgt
c3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgxIC8gdHJhbnNmb3JtLnlTY2FsZSgpKSkpOwor
ICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlWSgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgx
IC8gdHJhbnNmb3JtLnlTY2FsZSgpKSkpOyAgICAKICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0Owog
fQogCitSb3VuZGVkUmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRS
ZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IExheW91dFJlY3QmIGJvcmRlclJlY3QsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVl
ZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCogYm94LCBjb25zdCBMYXlvdXRTaXplJiBib3hTaXpl
LCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UpIGNvbnN0Cit7CisgICAgaWYgKGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZFNo
cmlua0JhY2tncm91bmQpIHsKKyAgICAgICAgLy8gV2Ugc2hyaW5rIHRoZSByZWN0YW5nbGUgYnkg
b25lIHBpeGVsIG9uIGVhY2ggc2lkZSBiZWNhdXNlIHRoZSBibGVlZCBpcyBvbmUgcGl4ZWwgbWF4
aW11bS4KKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGNvbnRleHQtPmdldENU
TSgpOworICAgICAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGJvcmRlclJlY3Q7CisgICAg
ICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlWCgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgx
IC8gdHJhbnNmb3JtLnhTY2FsZSgpKSkpOworICAgICAgICBhZGp1c3RlZFJlY3QuaW5mbGF0ZVko
LXN0YXRpY19jYXN0PExheW91dFVuaXQ+KGNlaWwoMSAvIHRyYW5zZm9ybS55U2NhbGUoKSkpKTsK
KyAgICAgICAgcmV0dXJuIGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChhZGp1c3RlZFJlY3QsIGJv
eCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdodCgpLCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAgfQorICAgIGlmIChibGVlZEF2b2lk
YW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3ZlckJvcmRlcikKKyAgICAgICAgcmV0
dXJuIHN0eWxlKCktPmdldFJvdW5kZWRJbm5lckJvcmRlckZvcihib3JkZXJSZWN0LCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisKKyAgICByZXR1cm4g
Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGJvcmRlclJlY3QsIGJveCwgYm94U2l6ZS53aWR0aCgp
LCBib3hTaXplLmhlaWdodCgpLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSk7Cit9CisKIHN0YXRpYyB2b2lkIGFwcGx5Qm94U2hhZG93Rm9yQmFja2dyb3Vu
ZChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICBj
b25zdCBTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSBzdHlsZS0+Ym94U2hhZG93KCk7CkBAIC03NzMs
NyArNzg5LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZQogICAg
ICAgICAgICAgYXBwbHlCb3hTaGFkb3dGb3JCYWNrZ3JvdW5kKGNvbnRleHQsIHN0eWxlKCkpOwog
CiAgICAgICAgIGlmIChoYXNSb3VuZGVkQm9yZGVyICYmIGJsZWVkQXZvaWRhbmNlICE9IEJhY2tn
cm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKSB7Ci0gICAgICAgICAgICBSb3VuZGVkUmVj
dCBib3JkZXIgPSBnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QoYmFja2dyb3VuZFJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKGNvbnRleHQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlKSwgYm94LCBi
b3hTaXplLndpZHRoKCksIGJveFNpemUuaGVpZ2h0KCksIGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVk
ZVJpZ2h0RWRnZSk7CisgICAgICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSBiYWNrZ3JvdW5k
Um91bmRlZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNvbnRleHQsIHJlY3QsIGJsZWVk
QXZvaWRhbmNlLCBib3gsIGJveFNpemUsIGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVkZVJpZ2h0RWRn
ZSk7CiAgICAgICAgICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoYm9yZGVyLCBiZ0NvbG9y
LCBzdHlsZSgpLT5jb2xvclNwYWNlKCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNv
bnRleHQtPmZpbGxSZWN0KHBpeGVsU25hcHBlZEludFJlY3QocmVjdCksIGJnQ29sb3IsIHN0eWxl
KCktPmNvbG9yU3BhY2UoKSk7CkBAIC03ODUsOCArODAxLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFpbnRGaWxsTGF5ZQogICAgIGJvb2wgY2xpcFRvQm9yZGVyUmFkaXVzID0gaGFz
Um91bmRlZEJvcmRlciAmJiAhKGlzQm9yZGVyRmlsbCAmJiBibGVlZEF2b2lkYW5jZSA9PSBCYWNr
Z3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcik7CiAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGVTYXZlciBjbGlwVG9Cb3JkZXJTdGF0ZVNhdmVyKCpjb250ZXh0LCBjbGlwVG9Cb3JkZXJSYWRp
dXMpOwogICAgIGlmIChjbGlwVG9Cb3JkZXJSYWRpdXMpIHsKLSAgICAgICAgTGF5b3V0UmVjdCBh
ZGp1c3RlZFJlY3QgPSBpc0JvcmRlckZpbGwgPyBiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxl
ZWRBdm9pZGFuY2UoY29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UpIDogcmVjdDsKLSAgICAg
ICAgUm91bmRlZFJlY3QgYm9yZGVyID0gZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGFkanVzdGVk
UmVjdCwgYm94LCBib3hTaXplLndpZHRoKCksIGJveFNpemUuaGVpZ2h0KCksIGluY2x1ZGVMZWZ0
RWRnZSwgaW5jbHVkZVJpZ2h0RWRnZSk7CisgICAgICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IGlz
Qm9yZGVyRmlsbCA/IGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFu
Y2UoY29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIGJveCwgYm94U2l6ZSwgaW5jbHVkZUxl
ZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKSA6IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChyZWN0
LCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQoKSwgaW5jbHVkZUxlZnRFZGdl
LCBpbmNsdWRlUmlnaHRFZGdlKTsKIAogICAgICAgICAvLyBDbGlwIHRvIHRoZSBwYWRkaW5nIG9y
IGNvbnRlbnQgYm94ZXMgYXMgbmVjZXNzYXJ5LgogICAgICAgICBpZiAoYmdMYXllci0+Y2xpcCgp
ID09IENvbnRlbnRGaWxsQm94KSB7CkBAIC0xNzI5LDggKzE3NDQsOCBAQCBzdGF0aWMgSW50UmVj
dCBjYWxjdWxhdGVTaWRlUmVjdChjb25zdCBSCiB9CiAKIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBj
b25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEJvcmRlckVkZ2UgZWRnZXNbXSwgQm9yZGVyRWRnZUZs
YWdzIGVkZ2VTZXQsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlTG9n
aWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlh
cywgY29uc3QgQ29sb3IqIG92ZXJyaWRlQ29sb3IpCisgICAgY29uc3QgSW50UG9pbnQmIGlubmVy
Qm9yZGVyQWRqdXN0bWVudCwgY29uc3QgQm9yZGVyRWRnZSBlZGdlc1tdLCBCb3JkZXJFZGdlRmxh
Z3MgZWRnZVNldCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLAorICAg
IGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRn
ZSwgYm9vbCBhbnRpYWxpYXMsIGNvbnN0IENvbG9yKiBvdmVycmlkZUNvbG9yKQogewogICAgIGJv
b2wgcmVuZGVyUmFkaWkgPSBvdXRlckJvcmRlci5pc1JvdW5kZWQoKTsKIApAQCAtMTczOCw5ICsx
NzUzLDE0IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2kKICAgICBp
ZiAocmVuZGVyUmFkaWkpCiAgICAgICAgIHJvdW5kZWRQYXRoLmFkZFJvdW5kZWRSZWN0KG91dGVy
Qm9yZGVyKTsKICAgICAKKyAgICAvLyBUaGUgaW5uZXIgYm9yZGVyIGFkanVzdG1lbnQgZm9yIGJs
ZWVkIGF2b2lkYW5jZSBtb2RlIEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyCisg
ICAgLy8gaXMgb25seSBhcHBsaWVkIHRvIHNpZGVSZWN0LCB3aGljaCBpcyBva2F5IHNpbmNlIEJh
Y2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgLy8gaXMgb25seSB0byBiZSB1
c2VkIGZvciBzb2xpZCBib3JkZXJzIGFuZCB0aGUgc2hhcGUgb2YgdGhlIGJvcmRlciBwYWludGVk
IGJ5IGRyYXdCb3hTaWRlRnJvbVBhdGgKKyAgICAvLyBvbmx5IGRlcGVuZHMgb24gc2lkZVJlY3Qg
d2hlbiBwYWludGluZyBzb2xpZCBib3JkZXJzLgorCiAgICAgaWYgKGVkZ2VzW0JTVG9wXS5zaG91
bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNUb3ApKSB7CiAgICAgICAgIElu
dFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJvcmRlci5yZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNl
dEhlaWdodChlZGdlc1tCU1RvcF0ud2lkdGgpOworICAgICAgICBzaWRlUmVjdC5zZXRIZWlnaHQo
ZWRnZXNbQlNUb3BdLndpZHRoICsgaW5uZXJCb3JkZXJBZGp1c3RtZW50LnkoKSk7CiAKICAgICAg
ICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRh
aWwoZWRnZXNbQlNUb3BdLnN0eWxlKSB8fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGlubmVyQm9y
ZGVyLnJhZGlpKCkudG9wTGVmdCgpLCBpbm5lckJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkpKTsK
ICAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVy
Qm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTVG9wLCBCU0xlZnQsIEJTUmlnaHQsIGVk
Z2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQYXRoIDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJy
aWRlQ29sb3IpOwpAQCAtMTc0OCw3ICsxNzY4LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6cGFpbnRCb3JkZXJTaQogCiAgICAgaWYgKGVkZ2VzW0JTQm90dG9tXS5zaG91bGRSZW5kZXIo
KSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNCb3R0b20pKSB7CiAgICAgICAgIEludFJlY3Qg
c2lkZVJlY3QgPSBvdXRlckJvcmRlci5yZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVk
Z2VUbyhzaWRlUmVjdC5tYXhZKCkgLSBlZGdlc1tCU0JvdHRvbV0ud2lkdGgpOworICAgICAgICBz
aWRlUmVjdC5zaGlmdFlFZGdlVG8oc2lkZVJlY3QubWF4WSgpIC0gZWRnZXNbQlNCb3R0b21dLndp
ZHRoIC0gaW5uZXJCb3JkZXJBZGp1c3RtZW50LnkoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRo
ID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNCb3R0
b21dLnN0eWxlKSB8fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGlubmVyQm9yZGVyLnJhZGlpKCku
Ym90dG9tTGVmdCgpLCBpbm5lckJvcmRlci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkpKTsKICAgICAg
ICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVy
LCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTQm90dG9tLCBCU0xlZnQsIEJTUmlnaHQsIGVkZ2Vz
LCB1c2VQYXRoID8gJnJvdW5kZWRQYXRoIDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRl
Q29sb3IpOwpAQCAtMTc1Niw3ICsxNzc2LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRCb3JkZXJTaQogCiAgICAgaWYgKGVkZ2VzW0JTTGVmdF0uc2hvdWxkUmVuZGVyKCkgJiYg
aW5jbHVkZXNFZGdlKGVkZ2VTZXQsIEJTTGVmdCkpIHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVj
dCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAgICAgc2lkZVJlY3Quc2V0V2lkdGgoZWRnZXNb
QlNMZWZ0XS53aWR0aCk7CisgICAgICAgIHNpZGVSZWN0LnNldFdpZHRoKGVkZ2VzW0JTTGVmdF0u
d2lkdGggKyBpbm5lckJvcmRlckFkanVzdG1lbnQueCgpKTsKIAogICAgICAgICBib29sIHVzZVBh
dGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVIYXNJbm5lckRldGFpbChlZGdlc1tCU0xl
ZnRdLnN0eWxlKSB8fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGlubmVyQm9yZGVyLnJhZGlpKCku
Ym90dG9tTGVmdCgpLCBpbm5lckJvcmRlci5yYWRpaSgpLnRvcExlZnQoKSkpOwogICAgICAgICBw
YWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlu
bmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNMZWZ0LCBCU1RvcCwgQlNCb3R0b20sIGVkZ2VzLCB1c2VQ
YXRoID8gJnJvdW5kZWRQYXRoIDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRlQ29sb3Ip
OwpAQCAtMTc2NCwxNCArMTc4NCwxNCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlclNpCiAKICAgICBpZiAoZWRnZXNbQlNSaWdodF0uc2hvdWxkUmVuZGVyKCkgJiYgaW5j
bHVkZXNFZGdlKGVkZ2VTZXQsIEJTUmlnaHQpKSB7CiAgICAgICAgIEludFJlY3Qgc2lkZVJlY3Qg
PSBvdXRlckJvcmRlci5yZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNoaWZ0WEVkZ2VUbyhzaWRl
UmVjdC5tYXhYKCkgLSBlZGdlc1tCU1JpZ2h0XS53aWR0aCk7CisgICAgICAgIHNpZGVSZWN0LnNo
aWZ0WEVkZ2VUbyhzaWRlUmVjdC5tYXhYKCkgLSBlZGdlc1tCU1JpZ2h0XS53aWR0aCAtIGlubmVy
Qm9yZGVyQWRqdXN0bWVudC54KCkpOwogCiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRlclJh
ZGlpICYmIChib3JkZXJTdHlsZUhhc0lubmVyRGV0YWlsKGVkZ2VzW0JTUmlnaHRdLnN0eWxlKSB8
fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGlubmVyQm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQo
KSwgaW5uZXJCb3JkZXIucmFkaWkoKS50b3BSaWdodCgpKSk7CiAgICAgICAgIHBhaW50T25lQm9y
ZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIs
IHNpZGVSZWN0LCBCU1JpZ2h0LCBCU1RvcCwgQlNCb3R0b20sIGVkZ2VzLCB1c2VQYXRoID8gJnJv
dW5kZWRQYXRoIDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRlQ29sb3IpOwogICAgIH0K
IH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNp
ZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUsIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3Qm
IGlubmVyQm9yZGVyLAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2Vu
dEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5k
ZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91
bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3Rt
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEJvcmRlckVkZ2UgZWRnZXNbXSwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJs
ZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxv
Z2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzKQogewogICAgIEJvcmRlckVkZ2VGbGFncyBl
ZGdlc1RvRHJhdyA9IEFsbEJvcmRlckVkZ2VzOwpAQCAtMTgwMiw3ICsxODIyLDcgQEAgdm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1YwogICAgICAgICAgICAgY29tbW9uQ29s
b3IgPSBDb2xvcihjb21tb25Db2xvci5yZWQoKSwgY29tbW9uQ29sb3IuZ3JlZW4oKSwgY29tbW9u
Q29sb3IuYmx1ZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIHBhaW50Qm9yZGVyU2lkZXMoZ3Jh
cGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBlZGdlcywgY29t
bW9uQ29sb3JFZGdlU2V0LCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgJmNvbW1vbkNvbG9yKTsKKyAgICAg
ICAgcGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwg
aW5uZXJCb3JkZXIsIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgZWRnZXMsIGNvbW1vbkNvbG9yRWRn
ZVNldCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsICZjb21tb25Db2xvcik7CiAgICAgICAgICAgICAKICAg
ICAgICAgaWYgKHVzZVRyYW5zcGFyZW5jeUxheWVyKQogICAgICAgICAgICAgZ3JhcGhpY3NDb250
ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwpAQCAtMTgyNSw3ICsxODQ1LDcgQEAgdm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoYwogICAgIEJvcmRlckVkZ2UgZWRnZXNb
NF07CiAgICAgZ2V0Qm9yZGVyRWRnZUluZm8oZWRnZXMsIHN0eWxlLCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAgICAgUm91bmRlZFJlY3Qgb3V0ZXJC
b3JkZXIgPSBzdHlsZS0+Z2V0Um91bmRlZEJvcmRlckZvcihyZWN0LCB2aWV3KCksIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICBSb3VuZGVkUmVj
dCBpbm5lckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IocmVjdCwgaW5j
bHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOworICAgIFJvdW5k
ZWRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRJbm5lckJvcmRlckZvcihib3Jk
ZXJJbm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGdyYXBoaWNzQ29udGV4dCwgcmVj
dCwgYmxlZWRBdm9pZGFuY2UpLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSk7CiAKICAgICBib29sIGhhdmVBbHBoYUNvbG9yID0gZmFsc2U7CiAgICAgYm9v
bCBoYXZlQWxsU29saWRFZGdlcyA9IHRydWU7CkBAIC0xOTYxLDEwICsxOTgxLDEyIEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKGMKIAogICAgIC8vIElmIG9ubHkgb25l
IGVkZ2UgdmlzaWJsZSBhbnRpYWxpYXNpbmcgZG9lc24ndCBjcmVhdGUgc2VhbXMKICAgICBib29s
IGFudGlhbGlhcyA9IHNob3VsZEFudGlhbGlhc0xpbmVzKGdyYXBoaWNzQ29udGV4dCkgfHwgbnVt
RWRnZXNWaXNpYmxlID09IDE7CisgICAgUm91bmRlZFJlY3QgdW5hZGp1c3RlZElubmVyQm9yZGVy
ID0gKGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVy
KSA/IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpIDogaW5uZXJCb3JkZXI7CisgICAgSW50
UG9pbnQgaW5uZXJCb3JkZXJBZGp1c3RtZW50KGlubmVyQm9yZGVyLnJlY3QoKS54KCkgLSB1bmFk
anVzdGVkSW5uZXJCb3JkZXIucmVjdCgpLngoKSwgaW5uZXJCb3JkZXIucmVjdCgpLnkoKSAtIHVu
YWRqdXN0ZWRJbm5lckJvcmRlci5yZWN0KCkueSgpKTsKICAgICBpZiAoaGF2ZUFscGhhQ29sb3Ip
Ci0gICAgICAgIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0
eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIGVkZ2VzLCBibGVlZEF2b2lkYW5jZSwgaW5j
bHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7
CisgICAgICAgIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0
eWxlLCBvdXRlckJvcmRlciwgdW5hZGp1c3RlZElubmVyQm9yZGVyLCBpbm5lckJvcmRlckFkanVz
dG1lbnQsIGVkZ2VzLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7CiAgICAgZWxzZQotICAgICAgICBwYWlu
dEJvcmRlclNpZGVzKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJv
cmRlciwgZWRnZXMsIEFsbEJvcmRlckVkZ2VzLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7CisgICAgICAg
IHBhaW50Qm9yZGVyU2lkZXMoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIHVu
YWRqdXN0ZWRJbm5lckJvcmRlciwgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBlZGdlcywgQWxsQm9y
ZGVyRWRnZXMsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRl
TG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzKTsKIH0KIAogdm9pZCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4
dCwgY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgUGF0aCYgYm9yZGVyUGF0aCwg
Y29uc3QgQm9yZGVyRWRnZSBlZGdlc1tdLApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEzNDA3MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw4IEBAIHR5cGVkZWYgdW5zaWduZWQgQm9yZGVyRWRnZUZsYWdzOwogZW51
bSBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgewogICAgIEJhY2tncm91bmRCbGVlZE5vbmUsCiAg
ICAgQmFja2dyb3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZCwKLSAgICBCYWNrZ3JvdW5kQmxlZWRV
c2VUcmFuc3BhcmVuY3lMYXllcgorICAgIEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxh
eWVyLAorICAgIEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyCiB9OwogCiBlbnVt
IENvbnRlbnRDaGFuZ2VUeXBlIHsKQEAgLTE1MSw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBwYWludE5pbmVQaWVjZUltYWdlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3Qm
LCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3Bl
cmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyKTsKICAgICB2b2lkIHBhaW50Qm94U2hhZG93KGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIFNo
YWRvd1N0eWxlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1
ZGVMb2dpY2FsUmlnaHRFZGdlID0gdHJ1ZSk7CiAgICAgdm9pZCBwYWludEZpbGxMYXllckV4dGVu
ZGVkKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyKiwgY29u
c3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCog
PSAwLCBjb25zdCBMYXlvdXRTaXplJiA9IExheW91dFNpemUoKSwgQ29tcG9zaXRlT3BlcmF0b3Ig
PSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZW5kZXJPYmplY3QqIGJhY2tncm91bmRPYmplY3QgPSAw
KTsKLSAgICAKKwogICAgIHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0Jh
Y2tncm91bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KiA9IDApIGNv
bnN0OwogCiAgICAgLy8gT3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIGRldGVybWluZSBsaW5l
IGhlaWdodCBhbmQgYmFzZWxpbmUgcG9zaXRpb24uCkBAIC0yMzMsNiArMjM0LDggQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgZ2V0Qm9yZGVyRWRnZUluZm8oY2xhc3MgQm9yZGVyRWRnZVtdLCBjb25z
dCBSZW5kZXJTdHlsZSosIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKSBjb25zdDsKICAgICBib29sIGJvcmRlck9i
c2N1cmVzQmFja2dyb3VuZEVkZ2UoY29uc3QgRmxvYXRTaXplJiBjb250ZXh0U2NhbGUpIGNvbnN0
OwogICAgIGJvb2wgYm9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kKCkgY29uc3Q7CisgICAgUm91bmRl
ZFJlY3QgYmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
LCBJbmxpbmVGbG93Qm94KiwgY29uc3QgTGF5b3V0U2l6ZSYsIGJvb2wgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3Q7CisgICAgTGF5b3V0
UmVjdCBib3JkZXJJbm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UpIGNvbnN0
OwogCiAgICAgYm9vbCBzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqLCBJ
bWFnZSosIGNvbnN0IHZvaWQqLCBjb25zdCBMYXlvdXRTaXplJik7CiAKQEAgLTI4NSw3ICsyODgs
NyBAQCBwcml2YXRlOgogICAgIEludFNpemUgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNp
b25zKFN0eWxlSW1hZ2UqLCBjb25zdCBJbnRTaXplJiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXpl
LCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90KSBjb25zdDsKIAogICAgIFJvdW5kZWRSZWN0IGdl
dEJhY2tncm91bmRSb3VuZGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiwgSW5saW5lRmxvd0JveCos
IExheW91dFVuaXQgaW5saW5lQm94V2lkdGgsIExheW91dFVuaXQgaW5saW5lQm94SGVpZ2h0LAot
ICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UpOworICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNvbnN0OwogCiAKICAgICB2b2lkIGNsaXBCb3JkZXJTaWRl
UG9seWdvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIs
IGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKQEAgLTI5NCwxMSArMjk3LDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwYWludE9uZUJvcmRlclNpZGUoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJv
dW5kZWRSZWN0JiBpbm5lckJvcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW50UmVjdCYgc2lkZVJlY3QsIEJveFNpZGUsIEJveFNpZGUgYWRqYWNlbnRTaWRlMSwg
Qm94U2lkZSBhZGphY2VudFNpZGUyLCBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBhdGgqLCBCYWNrZ3JvdW5kQmxlZWRBdm9p
ZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMsIGNvbnN0IENvbG9yKiBvdmVycmlkZUNvbG9yID0gMCk7
Ci0gICAgdm9pZCBwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0
IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKKyAgICB2b2lkIHBhaW50VHJhbnNsdWNlbnRCb3Jk
ZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25z
dCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwg
Ym9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
LCBib29sIGFudGlhbGlhcyA9IGZhbHNlKTsKICAgICB2b2lkIHBhaW50Qm9yZGVyU2lkZXMoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0
ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2xhc3MgQm9yZGVyRWRnZVtdLCBCb3JkZXJFZGdlRmxhZ3MsIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29s
IGFudGlhbGlhcyA9IGZhbHNlLCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvciA9IDApOworICAg
ICAgICBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBjbGFzcyBC
b3JkZXJFZGdlW10sIEJvcmRlckVkZ2VGbGFncywgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLAor
ICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UsIGNvbnN0IENvbG9yKiBvdmVycmlkZUNv
bG9yID0gMCk7CiAgICAgdm9pZCBkcmF3Qm94U2lkZUZyb21QYXRoKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBQYXRoJiwgY29uc3QgY2xhc3MgQm9yZGVyRWRnZVtd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgZHJh
d1RoaWNrbmVzcywgQm94U2lkZSwgY29uc3QgUmVuZGVyU3R5bGUqLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb2xvciwgRUJvcmRlclN0eWxlLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0
RWRnZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzQzMTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0xMiAgSnVzdGluIE5v
dm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAgICAgIEJveGVzIHdpdGggcm91bmRlZCBj
b3JuZXJzIGFuZCB0aGluIGJvcmRlcnMgYXJlIHRvbyBzbG93IHRvIGRyYXcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTk3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0IHRoYXQgcHVycG9z
ZWx5IHRyaWdnZXJzIHRoZSBCYWNrZ3JvdW5kT3ZlckJvcmRlciBwYWludGluZyBwYXRoCisgICAg
ICAgIGluIFdlYkNvcmU6OlJlbmRlckJveCwgdG8gdGVzdCBpdCB3aXRoIHRoaWNrIGJvcmRlcnMs
IG9mZi1kaWFnb25hbAorICAgICAgICBtaXRyaW5nLCBhbiBhbnRpLWFsaWFzZWQgcm91bmRlZCBi
b3JkZXIgd2VkZ2UsIGFuZCBhIGJvcmRlciBvZiB3aWR0aCAwLgorCisgICAgICAgICogZmFzdC9i
b3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRtbDogQWRkZWQuCisKIDIwMTIt
MTEtMTIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIFVwZGF0ZWQgZXhwZWN0YXRpb25zIGZvciBjYWxlbmRhci1waWNrZXIuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0w
NS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFk
aXVzLXdpZGUtYm9yZGVyLTA1Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDIwIEBACis8c3R5bGU+CisgICAgZGl2I3QgeworICAgICAgICB3aWR0aDogMjAw
cHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCBy
Z2JhKDI1NSwwLDAsMSk7CisgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OworICAgICAgICBi
b3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4OworICAgICAgICBib3JkZXItYm90dG9tLWxlZnQt
cmFkaXVzOiAwcHg7CisgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsMCwyNTUsMSk7
CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAtbW96LWJveC1zaXpp
bmc6IGJvcmRlci1ib3g7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAg
IG1hcmdpbjogMjBweDsKKyAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMTBweDsKKyAgICAgICAg
Ym9yZGVyLWJvdHRvbS13aWR0aDogMTBweDsKKyAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDM2
cHg7CisgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8
ZGl2IGlkPSJ0Ij48L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173968</attachid>
            <date>2012-11-13 13:19:03 -0800</date>
            <delta_ts>2012-11-14 07:15:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101974-20121113161703.patch</filename>
            <type>text/plain</type>
            <size>37480</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTEyICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgQm94ZXMgd2l0aCByb3VuZGVk
IGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cgdG8gZHJhdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFdpdGggdGhlIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24gUmVuZGVyQm94OjoKKyAgICAgICAgZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlKCkgdXNlcyB0aGUgc2xvdyBwYXRoCisgICAgICAgIEJhY2tncm91bmRCbGVlZFVz
ZVRyYW5zcGFyZW5jeUxheWVyIGZvciBzb21lIHZlcnkgY29tbW9uIHVzZSBjYXNlcywKKyAgICAg
ICAgbm90YWJseSBmb3IgZHJhd2luZyByZWN0YW5nbGVzIHdpdGggcm91bmRlZCBjb3JuZXJzIHRo
YXQgaGF2ZSB0aGluCisgICAgICAgIGJvcmRlcnMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgQmFja2dy
b3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZAorICAgICAgICBzdHJhdGVneSByZXF1aXJlcyBhIGJv
cmRlciBhdCBsZWFzdCB0d28gcGl4ZWxzIHdpZGUgb24gYWxsIHNpZGVzLiBUaGlzCisgICAgICAg
IHBhdGNoIGludHJvZHVjZSBkcmF3aW5nIHN0cmF0ZWd5IEJhY2tncm91bmRCbGVlZEJhY2tncm91
bmRPdmVyQm9yZGVyLgorICAgICAgICBUaGlzIGFwcHJvYWNoIGNvbnNpc3RzIGluIGRyYXdpbmcg
dGhlIGJvcmRlciBmaXJzdCwgd2l0aCBhbiBpbnNldCBpbm5lcgorICAgICAgICBlZGdlIChmb3Ig
YW50aS1hbGlhc2VkIGNvbXBvc2l0aW5nIHRvIHdvcmsgd2VsbCkuICBUaGlzIGFwcHJvYWNoIG9u
bHkKKyAgICAgICAgd29ya3Mgd2l0aCBvcGFxdWUgc29saWQgZWRnZXMgYW5kIG9wYXF1ZSBzaW5n
bGUtbGF5ZXIgYmFja2dyb3VuZHMuCisgICAgICAgIEJ5IHVzaW5nIHRoaXMgYXBwcm9hY2ggcmF0
aGVyIHRoYW4gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgICAgIHdl
IHNhdmUgdHdvIGNsaXBQYXRoLCBvbmUgc2F2ZSBhbmQgb25lIHNhdmVMYXllciBvbiB0aGUKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0LiBUaGlzIHBhdGNoIGdldHMgZ29vZCBjb3ZlcmFnZSBmcm9t
IGV4aXN0aW5nIGxheW91dAorICAgICAgICB0ZXN0cy4gT25lIGFkZGl0aW9uYWwgdGVzdCB3YXMg
YWRkZWQgdG8gZXhlcmNpc2UgbWl0cmluZywgdGhpY2sgZWRnZXMKKyAgICAgICAgYW5kIGFudGkt
YWxpYXNpbmcgZWRnZSBjYXNlcyB1bmRlciB0aGUgbmV3IHBhaW50aW5nIGFsZ29yaXRobS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6ZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlKToKKyAgICAg
ICAgQWRkZWQgc2VsZWN0aW9uIGNyaXRlcmlhIGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlcgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAg
QWRkZWQgYSBwcmVsaW1pbmFyeSBwYWludEJvcmRlciBwYXNzIGZvciBCYWNrZ3JvdW5kT3ZlckJv
cmRlcgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQpOgorICAg
ICAgICBJbnNldHRpbmcgdGhlIGJhY2tncm91bmQgdG8gdG8gaW5uZXJCb3JkZXIgd2hlbiBibGVl
ZEF2b2lkYW5jZSBpcworICAgICAgICBCYWNrZ3JvdW5kT3ZlckJvcmRlci4gIFRoaXMgd2h5IEJh
Y2tncm91bmRPdmVyQm9yZGVyIG9ubHkgd29ya3MgZm9yCisgICAgICAgIE9wYXF1ZSBzb2xpZCBl
ZGdlcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpi
YWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcik6CisgICAgICAgIFV0aWxpdHkgbWV0aG9kIHVz
ZSBieSBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgdG8gdGVzdCB0aGUKKyAgICAg
ICAgYmFja2dyb3VuZCdzIGVsaWdpYmlsaXR5IGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlciBibGVl
ZCBhdm9pZGFuY2UKKyAgICAgICAgc3RyYXRlZ3kuICBUaGUgcmVhc29uIHRoZSBiYWNrZ3JvdW5k
IG11c3QgYmUgYSBzaW5nbGUgbGF5ZXIgaXMgdG8gYXZvaWQKKyAgICAgICAgY29sb3IgYmxlZWRp
bmcgZnJvbSBsYXllciBjb21wb3NpdGluZyBhbG9uZyBhbnRpLWFsaWFzZWQgZWRnZXMKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3Vu
ZE92ZXJCb3JkZXIgYnkgYXBwbHlpbmcgYSBvbmUgcGl4ZWwgaW5zZXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRG
b3JCbGVlZEF2b2lkYW5jZSk6CisgICAgICAgIFNldCB0aGUgYmFja2dyb3VuZCByZWN0IHRvIHRo
ZSBpbm5lciBib3JkZXIgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXll
ckV4dGVuZGVkKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJCb3Jk
ZXIgYnkgdXNpbmcgCisgICAgICAgIGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxl
ZWRBdm9pZGFuY2UKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlclNpZGVzKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJC
b3JkZXIgYnkgYXBwbHlpbmcgcGVyLXNpZGUgaW5zZXQKKyAgICAgICAgYWRqdXN0bWVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJv
cmRlclNpZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlcik6CisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVy
IGJ5IHVzaW5nIGFuIGFkanVzdGVkIGlubmVyCisgICAgICAgIGJvcmRlciwgYnV0IG5vdCBpZiBz
aWRlcyBhcmUgcGFpbnRlZCBpbmRpdmlkdWFsbHkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6CisKIDIw
MTItMTEtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE5l
dHdvcmtQcm9jZXNzOiBVc2UgYW4gYWNjdXJhdGUgc2hvdWxkQ29udGVudFNuaWZmIHZhbHVlIHdo
ZW4gY3JlYXRpbmcgUmVzb3VyY2VIYW5kbGVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM0MDczKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMSwxMSArODIxLDggQEAgQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlIFJlbmRlckJveDo6ZGV0ZQogICAgIEZsb2F0U2l6ZSBjb250
ZXh0U2NhbGluZyhzdGF0aWNfY2FzdDxmbG9hdD4oY3RtLnhTY2FsZSgpKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGN0bS55U2NhbGUoKSkpOwogICAgIGlmIChib3JkZXJPYnNjdXJlc0JhY2tncm91bmRF
ZGdlKGNvbnRleHRTY2FsaW5nKSkKICAgICAgICAgcmV0dXJuIEJhY2tncm91bmRCbGVlZFNocmlu
a0JhY2tncm91bmQ7Ci0gICAgCi0gICAgLy8gRklYTUU6IHRoZXJlIGlzIG9uZSBtb3JlIHN0cmF0
ZWd5IHBvc3NpYmxlLCBmb3Igb3BhcXVlIGJhY2tncm91bmRzIGFuZAotICAgIC8vIHRyYW5zbHVj
ZW50IGJvcmRlcnMuIEluIHRoYXQgY2FzZSB3ZSBjb3VsZCBhdm9pZCB1c2luZyBhIHRyYW5zcGFy
ZW5jeSBsYXllciwKLSAgICAvLyBhbmQgcGFpbnQgdGhlIGJvcmRlciBmaXJzdCwgYW5kIHRoZW4g
cGFpbnQgdGhlIGJhY2tncm91bmQgY2xpcHBlZCB0byB0aGUKLSAgICAvLyBpbnNpZGUgb2YgdGhl
IGJvcmRlci4KKyAgICBpZiAoIXN0eWxlLT5oYXNBcHBlYXJhbmNlKCkgJiYgYm9yZGVyT2JzY3Vy
ZXNCYWNrZ3JvdW5kKCkgJiYgYmFja2dyb3VuZElzU2luZ2xlT3BhcXVlTGF5ZXIoKSkKKyAgICAg
ICAgcmV0dXJuIEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyOwogCiAgICAgcmV0
dXJuIEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyOwogfQpAQCAtODU5LDEyICs4
NTYsMTUgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbgogICAgICAg
ICBwYWludEluZm8uY29udGV4dC0+YWRkUm91bmRlZFJlY3RDbGlwKGJvcmRlcik7CiAgICAgICAg
IHBhaW50SW5mby5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKDEpOwogICAgIH0KLSAg
ICAKKwogICAgIC8vIElmIHdlIGhhdmUgYSBuYXRpdmUgdGhlbWUgYXBwZWFyYW5jZSwgcGFpbnQg
dGhhdCBiZWZvcmUgcGFpbnRpbmcgb3VyIGJhY2tncm91bmQuCiAgICAgLy8gVGhlIHRoZW1lIHdp
bGwgdGVsbCB1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgYWxzbyBwYWludCB0aGUgQ1NTIGJh
Y2tncm91bmQuCiAgICAgSW50UmVjdCBzbmFwcGVkUGFpbnRSZWN0KHBpeGVsU25hcHBlZEludFJl
Y3QocGFpbnRSZWN0KSk7CiAgICAgYm9vbCB0aGVtZVBhaW50ZWQgPSBzdHlsZSgpLT5oYXNBcHBl
YXJhbmNlKCkgJiYgIXRoZW1lKCktPnBhaW50KHRoaXMsIHBhaW50SW5mbywgc25hcHBlZFBhaW50
UmVjdCk7CiAgICAgaWYgKCF0aGVtZVBhaW50ZWQpIHsKKyAgICAgICAgaWYgKGJsZWVkQXZvaWRh
bmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyKQorICAgICAgICAgICAg
cGFpbnRCb3JkZXIocGFpbnRJbmZvLCBwYWludFJlY3QsIHN0eWxlKCksIGJsZWVkQXZvaWRhbmNl
KTsKKwogICAgICAgICBwYWludEJhY2tncm91bmQocGFpbnRJbmZvLCBwYWludFJlY3QsIGJsZWVk
QXZvaWRhbmNlKTsKIAogICAgICAgICBpZiAoc3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQpAQCAt
ODczLDcgKzg3Myw3IEBAIHZvaWQgUmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKFBhaW4K
ICAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgSW5zZXQp
OwogCiAgICAgLy8gVGhlIHRoZW1lIHdpbGwgdGVsbCB1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91
bGQgYWxzbyBwYWludCB0aGUgQ1NTIGJvcmRlci4KLSAgICBpZiAoKCFzdHlsZSgpLT5oYXNBcHBl
YXJhbmNlKCkgfHwgKCF0aGVtZVBhaW50ZWQgJiYgdGhlbWUoKS0+cGFpbnRCb3JkZXJPbmx5KHRo
aXMsIHBhaW50SW5mbywgc25hcHBlZFBhaW50UmVjdCkpKSAmJiBzdHlsZSgpLT5oYXNCb3JkZXIo
KSkKKyAgICBpZiAoYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92
ZXJCb3JkZXIgJiYgKCFzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkgfHwgKCF0aGVtZVBhaW50ZWQg
JiYgdGhlbWUoKS0+cGFpbnRCb3JkZXJPbmx5KHRoaXMsIHBhaW50SW5mbywgc25hcHBlZFBhaW50
UmVjdCkpKSAmJiBzdHlsZSgpLT5oYXNCb3JkZXIoKSkKICAgICAgICAgcGFpbnRCb3JkZXIocGFp
bnRJbmZvLCBwYWludFJlY3QsIHN0eWxlKCksIGJsZWVkQXZvaWRhbmNlKTsKIAogICAgIGlmIChi
bGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcikKQEAg
LTg5NCw2ICs4OTQsMjUgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50QmFja2dyb3VuZChjb25zdCBQ
YQogICAgIH0KIH0KIAorYm9vbCBSZW5kZXJCb3g6OmJhY2tncm91bmRJc1NpbmdsZU9wYXF1ZUxh
eWVyKCkgY29uc3QKK3sKKyAgICBjb25zdCBGaWxsTGF5ZXIqIGZpbGxMYXllciA9IHN0eWxlKCkt
PmJhY2tncm91bmRMYXllcnMoKTsKKyAgICBpZiAoIWZpbGxMYXllciB8fCBmaWxsTGF5ZXItPm5l
eHQoKSB8fCBmaWxsTGF5ZXItPmNsaXAoKSAhPSBCb3JkZXJGaWxsQm94IHx8IGZpbGxMYXllci0+
Y29tcG9zaXRlKCkgIT0gQ29tcG9zaXRlU291cmNlT3ZlcikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgLy8gQ2xpcHBlZCB3aXRoIGxvY2FsIHNjcm9sbGluZworICAgIGlmIChoYXNPdmVy
Zmxvd0NsaXAoKSAmJiBmaWxsTGF5ZXItPmF0dGFjaG1lbnQoKSA9PSBMb2NhbEJhY2tncm91bmRB
dHRhY2htZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDb2xvciBiZ0NvbG9yID0g
c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9y
KTsKKyAgICBpZiAoYmdDb2xvci5pc1ZhbGlkKCkgJiYgYmdDb2xvci5hbHBoYSgpID09IDI1NSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgLy8gRklYTUU6IHJldHVybiB0cnVlIGlm
IGEgYmFja2dyb3VuZCBpbWFnZSBpcyBwcmVzZW50IGFuZCBpcyBvcGFxdWUKKworICAgIHJldHVy
biBmYWxzZTsKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmICghcGFpbnRJ
bmZvLnNob3VsZFBhaW50V2l0aGluUm9vdCh0aGlzKSB8fCBzdHlsZSgpLT52aXNpYmlsaXR5KCkg
IT0gVklTSUJMRSB8fCBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU1hc2sgfHwgcGFpbnRJ
bmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDEzNDA3MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtNTY3LDYgKzU2Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mLCBjb25zdCBM
YXlvdXRSZWN0Jik7CiAKICAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgZGV0ZXJtaW5lQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0OworICAgIGJvb2wg
YmFja2dyb3VuZElzU2luZ2xlT3BhcXVlTGF5ZXIoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KGNvbnN0IExheW91dFBvaW50JiwgY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGJlaGluZFRleHQpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lv
biAxMzQwNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDcsNyArNjQ3LDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZQogfQogCiBSb3VuZGVkUmVjdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGNvbnN0IExheW91dFJlY3QmIGJvcmRl
clJlY3QsIElubGluZUZsb3dCb3gqIGJveCwgTGF5b3V0VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5
b3V0VW5pdCBpbmxpbmVCb3hIZWlnaHQsCi0gICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQorICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3QKIHsKICAgICBSZW5k
ZXJWaWV3KiByZW5kZXJWaWV3ID0gdmlldygpOwogICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IHN0
eWxlKCktPmdldFJvdW5kZWRCb3JkZXJGb3IoYm9yZGVyUmVjdCwgcmVuZGVyVmlldywgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwpAQCAtNjkxLDE3ICs2
OTEsMzEgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2xpcFJvdW5kZWRJbgogICAgIH0K
IH0KIAotc3RhdGljIExheW91dFJlY3QgYmFja2dyb3VuZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZv
aWRhbmNlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVy
UmVjdCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlKQorc3RhdGljIExh
eW91dFJlY3Qgc2hyaW5rUmVjdEJ5T25lUGl4ZWwoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBMYXlvdXRSZWN0JiByZWN0KQogewotICAgIGlmIChibGVlZEF2b2lkYW5jZSAhPSBCYWNr
Z3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5kKQotICAgICAgICByZXR1cm4gYm9yZGVyUmVjdDsK
LQotICAgIC8vIFdlIHNocmluayB0aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBlYWNoIHNp
ZGUgYmVjYXVzZSB0aGUgYmxlZWQgaXMgb25lIHBpeGVsIG1heGltdW0uCisgICAgTGF5b3V0UmVj
dCBzaHJ1bmtSZWN0ID0gcmVjdDsKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gY29u
dGV4dC0+Z2V0Q1RNKCk7Ci0gICAgTGF5b3V0UmVjdCBhZGp1c3RlZFJlY3QgPSBib3JkZXJSZWN0
OwotICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlWCgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2Vp
bCgxIC8gdHJhbnNmb3JtLnhTY2FsZSgpKSkpOwotICAgIGFkanVzdGVkUmVjdC5pbmZsYXRlWSgt
c3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgxIC8gdHJhbnNmb3JtLnlTY2FsZSgpKSkpOwot
ICAgIHJldHVybiBhZGp1c3RlZFJlY3Q7CisgICAgc2hydW5rUmVjdC5pbmZsYXRlWCgtc3RhdGlj
X2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgxIC8gdHJhbnNmb3JtLnhTY2FsZSgpKSkpOworICAgIHNo
cnVua1JlY3QuaW5mbGF0ZVkoLXN0YXRpY19jYXN0PExheW91dFVuaXQ+KGNlaWwoMSAvIHRyYW5z
Zm9ybS55U2NhbGUoKSkpKTsKKyAgICByZXR1cm4gc2hydW5rUmVjdDsKK30KKworTGF5b3V0UmVj
dCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym9yZGVySW5uZXJSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2
b2lkYW5jZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3Qs
IEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSkgY29uc3QKK3sKKyAgICAv
LyBXZSBzaHJpbmsgdGhlIHJlY3RhbmdsZSBieSBvbmUgcGl4ZWwgb24gZWFjaCBzaWRlIHRvIG1h
a2UgaXQgZnVsbHkgb3ZlcmxhcCB0aGUgYW50aS1hbGlhc2VkIGJhY2tncm91bmQgYm9yZGVyCisg
ICAgcmV0dXJuIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3Zl
ckJvcmRlcikgPyBzaHJpbmtSZWN0QnlPbmVQaXhlbChjb250ZXh0LCByZWN0KSA6IHJlY3Q7Cit9
CisKK1JvdW5kZWRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpiYWNrZ3JvdW5kUm91bmRlZFJl
Y3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVk
QXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KiBib3gsIGNvbnN0IExheW91dFNpemUmIGJveFNpemUs
IGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRn
ZSkgY29uc3QKK3sKKyAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkU2hy
aW5rQmFja2dyb3VuZCkgeworICAgICAgICAvLyBXZSBzaHJpbmsgdGhlIHJlY3RhbmdsZSBieSBv
bmUgcGl4ZWwgb24gZWFjaCBzaWRlIGJlY2F1c2UgdGhlIGJsZWVkIGlzIG9uZSBwaXhlbCBtYXhp
bXVtLgorICAgICAgICByZXR1cm4gZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KHNocmlua1JlY3RC
eU9uZVBpeGVsKGNvbnRleHQsIGJvcmRlclJlY3QpLCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94
U2l6ZS5oZWlnaHQoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UpOworICAgIH0KKyAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVk
QmFja2dyb3VuZE92ZXJCb3JkZXIpCisgICAgICAgIHJldHVybiBzdHlsZSgpLT5nZXRSb3VuZGVk
SW5uZXJCb3JkZXJGb3IoYm9yZGVyUmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVk
ZUxvZ2ljYWxSaWdodEVkZ2UpOworCisgICAgcmV0dXJuIGdldEJhY2tncm91bmRSb3VuZGVkUmVj
dChib3JkZXJSZWN0LCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQoKSwgaW5j
bHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogfQogCiBzdGF0
aWMgdm9pZCBhcHBseUJveFNoYWRvd0ZvckJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBSZW5kZXJTdHlsZSogc3R5bGUpCkBAIC03NzMsNyArNzg3LDcgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZQogICAgICAgICAgICAgYXBwbHlCb3hTaGFkb3dG
b3JCYWNrZ3JvdW5kKGNvbnRleHQsIHN0eWxlKCkpOwogCiAgICAgICAgIGlmIChoYXNSb3VuZGVk
Qm9yZGVyICYmIGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5j
eUxheWVyKSB7Ci0gICAgICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSBnZXRCYWNrZ3JvdW5k
Um91bmRlZFJlY3QoYmFja2dyb3VuZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNvbnRl
eHQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlKSwgYm94LCBib3hTaXplLndpZHRoKCksIGJveFNpemUu
aGVpZ2h0KCksIGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVkZVJpZ2h0RWRnZSk7CisgICAgICAgICAg
ICBSb3VuZGVkUmVjdCBib3JkZXIgPSBiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJs
ZWVkQXZvaWRhbmNlKGNvbnRleHQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCBib3gsIGJveFNpemUs
IGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVkZVJpZ2h0RWRnZSk7CiAgICAgICAgICAgICBjb250ZXh0
LT5maWxsUm91bmRlZFJlY3QoYm9yZGVyLCBiZ0NvbG9yLCBzdHlsZSgpLT5jb2xvclNwYWNlKCkp
OwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KHBpeGVsU25h
cHBlZEludFJlY3QocmVjdCksIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CkBAIC03
ODUsOCArNzk5LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZQog
ICAgIGJvb2wgY2xpcFRvQm9yZGVyUmFkaXVzID0gaGFzUm91bmRlZEJvcmRlciAmJiAhKGlzQm9y
ZGVyRmlsbCAmJiBibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVu
Y3lMYXllcik7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBjbGlwVG9Cb3JkZXJTdGF0
ZVNhdmVyKCpjb250ZXh0LCBjbGlwVG9Cb3JkZXJSYWRpdXMpOwogICAgIGlmIChjbGlwVG9Cb3Jk
ZXJSYWRpdXMpIHsKLSAgICAgICAgTGF5b3V0UmVjdCBhZGp1c3RlZFJlY3QgPSBpc0JvcmRlckZp
bGwgPyBiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVj
dCwgYmxlZWRBdm9pZGFuY2UpIDogcmVjdDsKLSAgICAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0g
Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGFkanVzdGVkUmVjdCwgYm94LCBib3hTaXplLndpZHRo
KCksIGJveFNpemUuaGVpZ2h0KCksIGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVkZVJpZ2h0RWRnZSk7
CisgICAgICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IGlzQm9yZGVyRmlsbCA/IGJhY2tncm91bmRS
b3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVjdCwgYmxlZWRB
dm9pZGFuY2UsIGJveCwgYm94U2l6ZSwgaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdl
KSA6IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChyZWN0LCBib3gsIGJveFNpemUud2lkdGgoKSwg
Ym94U2l6ZS5oZWlnaHQoKSwgaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKIAog
ICAgICAgICAvLyBDbGlwIHRvIHRoZSBwYWRkaW5nIG9yIGNvbnRlbnQgYm94ZXMgYXMgbmVjZXNz
YXJ5LgogICAgICAgICBpZiAoYmdMYXllci0+Y2xpcCgpID09IENvbnRlbnRGaWxsQm94KSB7CkBA
IC0xNzI5LDggKzE3NDIsOCBAQCBzdGF0aWMgSW50UmVjdCBjYWxjdWxhdGVTaWRlUmVjdChjb25z
dCBSCiB9CiAKIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwg
Y29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJC
b3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEJvcmRlckVkZ2UgZWRnZXNbXSwgQm9yZGVyRWRnZUZsYWdzIGVkZ2VTZXQsIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1
ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3IqIG92ZXJyaWRl
Q29sb3IpCisgICAgY29uc3QgSW50UG9pbnQmIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgY29uc3Qg
Qm9yZGVyRWRnZSBlZGdlc1tdLCBCb3JkZXJFZGdlRmxhZ3MgZWRnZVNldCwgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLAorICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0
RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMsIGNvbnN0
IENvbG9yKiBvdmVycmlkZUNvbG9yKQogewogICAgIGJvb2wgcmVuZGVyUmFkaWkgPSBvdXRlckJv
cmRlci5pc1JvdW5kZWQoKTsKIApAQCAtMTczOCw5ICsxNzUxLDE0IEBAIHZvaWQgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2kKICAgICBpZiAocmVuZGVyUmFkaWkpCiAgICAgICAg
IHJvdW5kZWRQYXRoLmFkZFJvdW5kZWRSZWN0KG91dGVyQm9yZGVyKTsKICAgICAKKyAgICAvLyBU
aGUgaW5uZXIgYm9yZGVyIGFkanVzdG1lbnQgZm9yIGJsZWVkIGF2b2lkYW5jZSBtb2RlIEJhY2tn
cm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgLy8gaXMgb25seSBhcHBsaWVkIHRv
IHNpZGVSZWN0LCB3aGljaCBpcyBva2F5IHNpbmNlIEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRP
dmVyQm9yZGVyCisgICAgLy8gaXMgb25seSB0byBiZSB1c2VkIGZvciBzb2xpZCBib3JkZXJzIGFu
ZCB0aGUgc2hhcGUgb2YgdGhlIGJvcmRlciBwYWludGVkIGJ5IGRyYXdCb3hTaWRlRnJvbVBhdGgK
KyAgICAvLyBvbmx5IGRlcGVuZHMgb24gc2lkZVJlY3Qgd2hlbiBwYWludGluZyBzb2xpZCBib3Jk
ZXJzLgorCiAgICAgaWYgKGVkZ2VzW0JTVG9wXS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0Vk
Z2UoZWRnZVNldCwgQlNUb3ApKSB7CiAgICAgICAgIEludFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJv
cmRlci5yZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNldEhlaWdodChlZGdlc1tCU1RvcF0ud2lk
dGgpOworICAgICAgICBzaWRlUmVjdC5zZXRIZWlnaHQoZWRnZXNbQlNUb3BdLndpZHRoICsgaW5u
ZXJCb3JkZXJBZGp1c3RtZW50LnkoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRoID0gcmVuZGVy
UmFkaWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNUb3BdLnN0eWxlKSB8
fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGlubmVyQm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpLCBp
bm5lckJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkpKTsKICAgICAgICAgcGFpbnRPbmVCb3JkZXJT
aWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgc2lk
ZVJlY3QsIEJTVG9wLCBCU0xlZnQsIEJTUmlnaHQsIGVkZ2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQ
YXRoIDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVM
b2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRlQ29sb3IpOwpAQCAtMTc0OCw3ICsx
NzY2LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaQogCiAgICAg
aWYgKGVkZ2VzW0JTQm90dG9tXS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNl
dCwgQlNCb3R0b20pKSB7CiAgICAgICAgIEludFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJvcmRlci5y
ZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5tYXhZKCkgLSBl
ZGdlc1tCU0JvdHRvbV0ud2lkdGgpOworICAgICAgICBzaWRlUmVjdC5zaGlmdFlFZGdlVG8oc2lk
ZVJlY3QubWF4WSgpIC0gZWRnZXNbQlNCb3R0b21dLndpZHRoIC0gaW5uZXJCb3JkZXJBZGp1c3Rt
ZW50LnkoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRl
clN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNCb3R0b21dLnN0eWxlKSB8fCBib3JkZXJXaWxs
QXJjSW5uZXJFZGdlKGlubmVyQm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLCBpbm5lckJvcmRl
ci5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkpKTsKICAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdy
YXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3Qs
IEJTQm90dG9tLCBCU0xlZnQsIEJTUmlnaHQsIGVkZ2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQYXRo
IDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRlQ29sb3IpOwpAQCAtMTc1Niw3ICsxNzc0
LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaQogCiAgICAgaWYg
KGVkZ2VzW0JTTGVmdF0uc2hvdWxkUmVuZGVyKCkgJiYgaW5jbHVkZXNFZGdlKGVkZ2VTZXQsIEJT
TGVmdCkpIHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsK
LSAgICAgICAgc2lkZVJlY3Quc2V0V2lkdGgoZWRnZXNbQlNMZWZ0XS53aWR0aCk7CisgICAgICAg
IHNpZGVSZWN0LnNldFdpZHRoKGVkZ2VzW0JTTGVmdF0ud2lkdGggKyBpbm5lckJvcmRlckFkanVz
dG1lbnQueCgpKTsKIAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9y
ZGVyU3R5bGVIYXNJbm5lckRldGFpbChlZGdlc1tCU0xlZnRdLnN0eWxlKSB8fCBib3JkZXJXaWxs
QXJjSW5uZXJFZGdlKGlubmVyQm9yZGVyLnJhZGlpKCkuYm90dG9tTGVmdCgpLCBpbm5lckJvcmRl
ci5yYWRpaSgpLnRvcExlZnQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhp
Y3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNM
ZWZ0LCBCU1RvcCwgQlNCb3R0b20sIGVkZ2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQYXRoIDogMCwg
YmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmln
aHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRlQ29sb3IpOwpAQCAtMTc2NCwxNCArMTc4MiwxNCBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRn
ZXNbQlNSaWdodF0uc2hvdWxkUmVuZGVyKCkgJiYgaW5jbHVkZXNFZGdlKGVkZ2VTZXQsIEJTUmln
aHQpKSB7CiAgICAgICAgIEludFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJvcmRlci5yZWN0KCk7Ci0g
ICAgICAgIHNpZGVSZWN0LnNoaWZ0WEVkZ2VUbyhzaWRlUmVjdC5tYXhYKCkgLSBlZGdlc1tCU1Jp
Z2h0XS53aWR0aCk7CisgICAgICAgIHNpZGVSZWN0LnNoaWZ0WEVkZ2VUbyhzaWRlUmVjdC5tYXhY
KCkgLSBlZGdlc1tCU1JpZ2h0XS53aWR0aCAtIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkpOwog
CiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lu
bmVyRGV0YWlsKGVkZ2VzW0JTUmlnaHRdLnN0eWxlKSB8fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdl
KGlubmVyQm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKSwgaW5uZXJCb3JkZXIucmFkaWkoKS50
b3BSaWdodCgpKSk7CiAgICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQs
IHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU1JpZ2h0LCBCU1Rv
cCwgQlNCb3R0b20sIGVkZ2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQYXRoIDogMCwgYmxlZWRBdm9p
ZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBh
bnRpYWxpYXMsIG92ZXJyaWRlQ29sb3IpOwogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3Jh
cGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJvdW5kZWRSZWN0
JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAordm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29u
dGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJv
dW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBj
b25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJvcmRlckVkZ2UgZWRn
ZXNbXSwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1
ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50
aWFsaWFzKQogewogICAgIEJvcmRlckVkZ2VGbGFncyBlZGdlc1RvRHJhdyA9IEFsbEJvcmRlckVk
Z2VzOwpAQCAtMTgwMiw3ICsxODIwLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRUcmFuc2x1YwogICAgICAgICAgICAgY29tbW9uQ29sb3IgPSBDb2xvcihjb21tb25Db2xvci5y
ZWQoKSwgY29tbW9uQ29sb3IuZ3JlZW4oKSwgY29tbW9uQ29sb3IuYmx1ZSgpKTsKICAgICAgICAg
fQogCi0gICAgICAgIHBhaW50Qm9yZGVyU2lkZXMoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0
ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBlZGdlcywgY29tbW9uQ29sb3JFZGdlU2V0LCBibGVlZEF2
b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Us
IGFudGlhbGlhcywgJmNvbW1vbkNvbG9yKTsKKyAgICAgICAgcGFpbnRCb3JkZXJTaWRlcyhncmFw
aGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIGlubmVyQm9yZGVy
QWRqdXN0bWVudCwgZWRnZXMsIGNvbW1vbkNvbG9yRWRnZVNldCwgYmxlZWRBdm9pZGFuY2UsIGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMs
ICZjb21tb25Db2xvcik7CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKHVzZVRyYW5zcGFyZW5j
eUxheWVyKQogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXll
cigpOwpAQCAtMTgyNSw3ICsxODQzLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRCb3JkZXIoYwogICAgIEJvcmRlckVkZ2UgZWRnZXNbNF07CiAgICAgZ2V0Qm9yZGVyRWRnZUlu
Zm8oZWRnZXMsIHN0eWxlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSk7CiAgICAgUm91bmRlZFJlY3Qgb3V0ZXJCb3JkZXIgPSBzdHlsZS0+Z2V0Um91bmRl
ZEJvcmRlckZvcihyZWN0LCB2aWV3KCksIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVM
b2dpY2FsUmlnaHRFZGdlKTsKLSAgICBSb3VuZGVkUmVjdCBpbm5lckJvcmRlciA9IHN0eWxlLT5n
ZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UpOworICAgIFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyID0gc3R5
bGUtPmdldFJvdW5kZWRJbm5lckJvcmRlckZvcihib3JkZXJJbm5lclJlY3RBZGp1c3RlZEZvckJs
ZWVkQXZvaWRhbmNlKGdyYXBoaWNzQ29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UpLCBpbmNs
dWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAKICAgICBib29s
IGhhdmVBbHBoYUNvbG9yID0gZmFsc2U7CiAgICAgYm9vbCBoYXZlQWxsU29saWRFZGdlcyA9IHRy
dWU7CkBAIC0xOTYxLDEwICsxOTc5LDEyIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50Qm9yZGVyKGMKIAogICAgIC8vIElmIG9ubHkgb25lIGVkZ2UgdmlzaWJsZSBhbnRpYWxpYXNp
bmcgZG9lc24ndCBjcmVhdGUgc2VhbXMKICAgICBib29sIGFudGlhbGlhcyA9IHNob3VsZEFudGlh
bGlhc0xpbmVzKGdyYXBoaWNzQ29udGV4dCkgfHwgbnVtRWRnZXNWaXNpYmxlID09IDE7CisgICAg
Um91bmRlZFJlY3QgdW5hZGp1c3RlZElubmVyQm9yZGVyID0gKGJsZWVkQXZvaWRhbmNlID09IEJh
Y2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyKSA/IHN0eWxlLT5nZXRSb3VuZGVkSW5u
ZXJCb3JkZXJGb3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UpIDogaW5uZXJCb3JkZXI7CisgICAgSW50UG9pbnQgaW5uZXJCb3JkZXJBZGp1c3Rt
ZW50KGlubmVyQm9yZGVyLnJlY3QoKS54KCkgLSB1bmFkanVzdGVkSW5uZXJCb3JkZXIucmVjdCgp
LngoKSwgaW5uZXJCb3JkZXIucmVjdCgpLnkoKSAtIHVuYWRqdXN0ZWRJbm5lckJvcmRlci5yZWN0
KCkueSgpKTsKICAgICBpZiAoaGF2ZUFscGhhQ29sb3IpCi0gICAgICAgIHBhaW50VHJhbnNsdWNl
bnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJC
b3JkZXIsIGVkZ2VzLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7CisgICAgICAgIHBhaW50VHJhbnNsdWNl
bnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgdW5hZGp1
c3RlZElubmVyQm9yZGVyLCBpbm5lckJvcmRlckFkanVzdG1lbnQsIGVkZ2VzLCBibGVlZEF2b2lk
YW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFu
dGlhbGlhcyk7CiAgICAgZWxzZQotICAgICAgICBwYWludEJvcmRlclNpZGVzKGdyYXBoaWNzQ29u
dGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgZWRnZXMsIEFsbEJvcmRlckVk
Z2VzLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UsIGFudGlhbGlhcyk7CisgICAgICAgIHBhaW50Qm9yZGVyU2lkZXMoZ3JhcGhp
Y3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIHVuYWRqdXN0ZWRJbm5lckJvcmRlciwgaW5u
ZXJCb3JkZXJBZGp1c3RtZW50LCBlZGdlcywgQWxsQm9yZGVyRWRnZXMsIGJsZWVkQXZvaWRhbmNl
LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFs
aWFzKTsKIH0KIAogdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0
aChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgYm9y
ZGVyUmVjdCwgY29uc3QgUGF0aCYgYm9yZGVyUGF0aCwgY29uc3QgQm9yZGVyRWRnZSBlZGdlc1td
LApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHJldmlzaW9uIDEzNDA3MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw4IEBAIHR5cGVk
ZWYgdW5zaWduZWQgQm9yZGVyRWRnZUZsYWdzOwogZW51bSBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UgewogICAgIEJhY2tncm91bmRCbGVlZE5vbmUsCiAgICAgQmFja2dyb3VuZEJsZWVkU2hyaW5r
QmFja2dyb3VuZCwKLSAgICBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcgorICAg
IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyLAorICAgIEJhY2tncm91bmRCbGVl
ZEJhY2tncm91bmRPdmVyQm9yZGVyCiB9OwogCiBlbnVtIENvbnRlbnRDaGFuZ2VUeXBlIHsKQEAg
LTE1MSw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYWludE5pbmVQaWVjZUltYWdlKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIGNv
bnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VP
dmVyKTsKICAgICB2b2lkIHBhaW50Qm94U2hhZG93KGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIFNoYWRvd1N0eWxlLCBib29sIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlID0gdHJ1
ZSk7CiAgICAgdm9pZCBwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyKiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91
bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCogPSAwLCBjb25zdCBMYXlvdXRTaXplJiA9
IExheW91dFNpemUoKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBS
ZW5kZXJPYmplY3QqIGJhY2tncm91bmRPYmplY3QgPSAwKTsKLSAgICAKKwogICAgIHZpcnR1YWwg
Ym9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KiA9IDApIGNvbnN0OwogCiAgICAgLy8gT3ZlcnJpZGRl
biBieSBzdWJjbGFzc2VzIHRvIGRldGVybWluZSBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgcG9z
aXRpb24uCkBAIC0yMzMsNiArMjM0LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZ2V0Qm9yZGVy
RWRnZUluZm8oY2xhc3MgQm9yZGVyRWRnZVtdLCBjb25zdCBSZW5kZXJTdHlsZSosIGJvb2wgaW5j
bHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Ug
PSB0cnVlKSBjb25zdDsKICAgICBib29sIGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2UoY29u
c3QgRmxvYXRTaXplJiBjb250ZXh0U2NhbGUpIGNvbnN0OwogICAgIGJvb2wgYm9yZGVyT2JzY3Vy
ZXNCYWNrZ3JvdW5kKCkgY29uc3Q7CisgICAgUm91bmRlZFJlY3QgYmFja2dyb3VuZFJvdW5kZWRS
ZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlv
dXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KiwgY29uc3Qg
TGF5b3V0U2l6ZSYsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSkgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBib3JkZXJJbm5lclJlY3RBZGp1
c3RlZEZvckJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3Qm
LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UpIGNvbnN0OwogCiAgICAgYm9vbCBzaG91bGRQYWlu
dEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqLCBJbWFnZSosIGNvbnN0IHZvaWQqLCBjb25z
dCBMYXlvdXRTaXplJik7CiAKQEAgLTI4NSw3ICsyODgsNyBAQCBwcml2YXRlOgogICAgIEludFNp
emUgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqLCBjb25zdCBJ
bnRTaXplJiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9y
Tm90KSBjb25zdDsKIAogICAgIFJvdW5kZWRSZWN0IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChj
b25zdCBMYXlvdXRSZWN0JiwgSW5saW5lRmxvd0JveCosIExheW91dFVuaXQgaW5saW5lQm94V2lk
dGgsIExheW91dFVuaXQgaW5saW5lQm94SGVpZ2h0LAotICAgICAgICBib29sIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOworICAgICAgICBib29s
IGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNv
bnN0OwogCiAKICAgICB2b2lkIGNsaXBCb3JkZXJTaWRlUG9seWdvbihHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5l
ckJvcmRlciwKQEAgLTI5NCwxMSArMjk3LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludE9u
ZUJvcmRlclNpZGUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBS
b3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc2lkZVJlY3Qs
IEJveFNpZGUsIEJveFNpZGUgYWRqYWNlbnRTaWRlMSwgQm94U2lkZSBhZGphY2VudFNpZGUyLCBj
b25zdCBjbGFzcyBCb3JkZXJFZGdlW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFBhdGgqLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMs
IGNvbnN0IENvbG9yKiBvdmVycmlkZUNvbG9yID0gMCk7Ci0gICAgdm9pZCBwYWludFRyYW5zbHVj
ZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBjb25z
dCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRl
ciwKKyAgICB2b2lkIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29u
c3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJB
ZGp1c3RtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGFzcyBCb3JkZXJF
ZGdlW10sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcyA9IGZhbHNl
KTsKICAgICB2b2lkIHBhaW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUmVu
ZGVyU3R5bGUqLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRS
ZWN0JiBpbm5lckJvcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xhc3Mg
Qm9yZGVyRWRnZVtdLCBCb3JkZXJFZGdlRmxhZ3MsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcyA9IGZhbHNlLCBjb25z
dCBDb2xvciogb3ZlcnJpZGVDb2xvciA9IDApOworICAgICAgICBjb25zdCBJbnRQb2ludCYgaW5u
ZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10sIEJvcmRlckVkZ2VG
bGFncywgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLAorICAgICAgICBib29sIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFz
ID0gZmFsc2UsIGNvbnN0IENvbG9yKiBvdmVycmlkZUNvbG9yID0gMCk7CiAgICAgdm9pZCBkcmF3
Qm94U2lkZUZyb21QYXRoKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBjb25z
dCBQYXRoJiwgY29uc3QgY2xhc3MgQm9yZGVyRWRnZVtdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgZHJhd1RoaWNrbmVzcywgQm94U2lkZSwgY29u
c3QgUmVuZGVyU3R5bGUqLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciwgRUJv
cmRlclN0eWxlLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxMzQzMTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0xMS0xMiAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29t
PgorCisgICAgICAgIEJveGVzIHdpdGggcm91bmRlZCBjb3JuZXJzIGFuZCB0aGluIGJvcmRlcnMg
YXJlIHRvbyBzbG93IHRvIGRyYXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBOZXcgdGVzdCB0aGF0IHB1cnBvc2VseSB0cmlnZ2VycyB0aGUgQmFja2dyb3Vu
ZE92ZXJCb3JkZXIgcGFpbnRpbmcgcGF0aAorICAgICAgICBpbiBXZWJDb3JlOjpSZW5kZXJCb3gs
IHRvIHRlc3QgaXQgd2l0aCB0aGljayBib3JkZXJzLCBvZmYtZGlhZ29uYWwKKyAgICAgICAgbWl0
cmluZywgYW4gYW50aS1hbGlhc2VkIHJvdW5kZWQgYm9yZGVyIHdlZGdlLCBhbmQgYSBib3JkZXIg
b2Ygd2lkdGggMC4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUt
Ym9yZGVyLTA1Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItcmFk
aXVzLXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdp
ZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogQWRkZWQgRXhwZWN0YXRpb25zLgor
ICAgICAgICBBZGRlZCBleHBlY3RhdGlvbnMgZm9yIHRlc3RzIHBpeGVscyByZXN1bHRzIHRoYXQg
cmVxdWlyZSByZWJhc2VsaW5pbmcKKwogMjAxMi0xMS0xMiAgRGltaXRyaSBHbGF6a292ICA8ZGds
YXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVXBkYXRlZCBleHBlY3Rh
dGlvbnMgZm9yIGNhbGVuZGFyLXBpY2tlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVy
cy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9y
ZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDIwKSBzaXplIDc4NHg1NjAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMCww
KSBzaXplIDIwMHgyMDAgW2JnY29sb3I9IzAwODAwMF0gW2JvcmRlcjogKDEwcHggc29saWQgI0ZG
MDAwMCkgbm9uZSAoMTBweCBzb2xpZCAjRkYwMDAwKSAoMzZweCBzb2xpZCAjMDAwMEZGKV0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRp
dXMtd2lkZS1ib3JkZXItMDUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Ym9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTkgQEAKKzxzdHlsZT4KKyAgICBkaXYjdCB7CisgICAgICAgIHdpZHRoOiAyMDBw
eDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgYm9yZGVyOiAyMHB4IHNvbGlkIHJn
YmEoMjU1LDAsMCwxKTsKKyAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7CisgICAgICAgIGJv
cmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7CisgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1y
YWRpdXM6IDBweDsKKyAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwwLDI1NSwxKTsK
KyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIGJveC1zaXppbmc6IGJv
cmRlci1ib3g7CisgICAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgICAgYm9yZGVyLXRvcC13aWR0
aDogMTBweDsKKyAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTBweDsKKyAgICAgICAgYm9y
ZGVyLWxlZnQtd2lkdGg6IDM2cHg7CisgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMHB4Owor
ICAgIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJ0Ij48L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTM0MDczKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2lu
ZyBjb3B5KQpAQCAtMzU5OSw2ICszNTk5LDEzIEBAIHdlYmtpdC5vcmcvYi85MzYyNCBbIFdpbiBS
ZWxlYXNlIF0gaW5zcGUKICMgU3RhcnRlZCBmYWlsaW5nIGFyb3VuZCByMTIyNzcwCiB3ZWJraXQu
b3JnL2IvOTE0NDUgWyBMaW51eCBdIHBsdWdpbnMvZW1iZWQtYXR0cmlidXRlcy1zdHlsZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIAorIyBOZWVkcyByZWJhc2VsaW5lZCBhZnRlciBm
aXggZm9yIGJ1ZyAxMDE5NzQKK3dlYmtpdC5vcmcvYi8xMDE5NzQgZmFzdC9ib3JkZXJzL2JvcmRl
ci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCit3
ZWJraXQub3JnL2IvMTAxOTc0IGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlLWFwcGVhcmFu
Y2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCit3ZWJraXQub3JnL2IvMTAxOTc0IHN2
Zy9jdXN0b20vc3ZnLWZvbnRzLWluLWh0bWwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBd
Cit3ZWJraXQub3JnL2IvMTAxOTc0IGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9y
ZGVyLTAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQord2Via2l0Lm9yZy9iLzEwMTk3
NCBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzSW5zZXQwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBQYXNzIF0KKwogIyBOZWVkcyByZWJhc2VsaW5lCiB3ZWJraXQub3JnL2IvMTAxNTYxIGZhc3Qv
Zm9ybXMvbW9udGgvbW9udGgtYXBwZWFyYW5jZS1iYXNpYy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMDE1NjEgZmFzdC9mb3Jtcy9tb250aC9tb250aC1hcHBl
YXJhbmNlLWwxMG4uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lk
ZS1ib3JkZXItMDUtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUg
bWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS1leHBlY3Rl
ZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVu
QUFBQUtYUkZXSFJqYUdWamEzTjFiUUJrT0dJNU1XSm0KWmpjNE9EUTBNVGxsWkRVelpqQmhaV1Zo
WTJZM1pETTJNSmtQSG5VQUFCWUlTVVJCVkhpYzdkMU5pRjNuZWNEeDV6cUJqaGZ4blFtRgpLRTJh
bVhGcDdBUVNYV1VSSjRWbzdzU0xsRko3SklWaUtERWFDVU83TVI0cm0xSktKRG50TGxoUzNFVzdD
SnFKc3pDMFdETk5vVTRDCjhpaEphM1VUalp6U3FDM3hURXhMQklYZVNSYnRRTUNuaTVFL0pJODBI
M3JPeDczMzkxc0lOQjZmOHl5MCtQT2U5N3luVlJSRkFBQ1EKNTU2NkJ3QUFHRFFDQ3dBZ21jQUNB
RWdtc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0NhdwpB
QUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ21zQUFBa2drc0FJQmtBZ3NBSUpuQUFnQkk5dDY2QnhoWXhm
SnlSTVRtbnovN1dheXVidjY4CmRlbFNYU1AxdmFLb2V3SUEyQkdCbGFEbzllTHExVmhlM2d5cHpZ
UnExVDBWQUZBWGdiVkh4Y3BLWExvVXk4dXhzdEphVzZ0N0hBQ2cKUVFUV0xoUnJhN0cwRk12THJj
VkZDMVFBd08wSXJPMFZ5OHV4dUJoTFMxYXFBSUNkRUZpM1ZheXN4UHk4cmdJQWRrdGczYXBZVzR1
RgpoWmlmMTFVQXdONElyTGNWaTR1eHNOQmFYS3g3RUFDZ3Z3bXNLSHE5K09ZMzQreFpTMVlBUUlx
aERxd2JUd1BQbm0ydHI5YzlDd0F3Ck9JWTBzSXBlTDc3KzlkYXBVOVhjYm1WZlhQMUFySTdGOHNU
YlA3dzBjWnZmNWphYzR3NUF2eGk2d05wTXE3SlhyZFpHWSttQldOa1gKVno0WVYvZVZkeDhBb0lt
R0s3Q0swNmRMVGF2ZVNIeHpmNXcvSUtvQVlLZ05TMkQ5OTkrLzh1dFAvbUZKMjloN0kvRjNEOFRp
ZzdINApzVEl1RHdEMG1jRVByTFcxNHRpeFdGNys3R2o3cDkySHJrLzkyaXN6UDMxMjhyLytLZVhp
dlpINCtrTng5ak94Zm0vSzlRQ0FRZEFxCmlrSGVPbno2ZEhIMmJLeXYzL3Jsd0lrUC8ycm0vaDlQ
YmJ3MGRlMnYzLy9MMS9kd1pXbFZ2ZUxrSVA5YkJXQ1FER3hncmF3VXg0L0gKbFN2YmY1UjVhbi92
VVB2aTFNOWZPUEFmZjd2RGk1OTdLRTUxcFZYVkJCWUEvV0l3QSt2MDZlTFVxZTNUNmhhajdUY09m
ZUtuVThYTApqLzc0TDI2M3JMVTJHc2RtWW5ueXJrZGs5d1FXQVAxaTBBSnJiYTA0Y21SSEMxZDN0
ditqLzl2ZGQyMW1mWDc2MWVmZStxR0ZxM29KCkxBRDZ4VUFGMXNKQ01UZTN4WTZydXpIYWZxUDc0
UFZQdEplK04vNG5sei8weThRcnMxc0NDNEIrTVRodkVSNC9YcHcvbjVsV205Wi8KY2MvaXh2Y1d1
MzhhOTZvckFHQkhCaUd3c2g0TGJ1MExKK0t6WjBxNU1nQXdvUG8rc0phWGk4T0hreDhMM2pEU2l5
OThPUTZjejc4eQpBRERRK2p1d0ZoYUsyZGx5RnE1R2VuSDA0ZmpnbFZJdURnQU10SHZxSG1EdlRw
d29yYTcycmNRZmZVcGRBUUI3MDVjcldMMWU4ZVV2ClJ4bGIyaU1pOXEzRTBlbTR0NndQUWdNQUE2
Ly9BcXZYS3g1K3VMUXQ3U085ZU95SXVnSUE3a2FmUFNJc3ZhNk9QaHhqcTZWY0hBQVkKR3YwVVdG
WFVsWDFYQU1CZDY1dkFVbGNBUUwvb2o4QXF0NjRpNHRFbjFCVUFrS1VQQXF2MHVwcDZKajcrWWxr
WEJ3Q0dUeDhFVnJsMQpOYkVjMHlmTHVqZ0FNSlNhSGxqSGp4Y2wxdFhvYWp4MnVLeUxBd0REcXRH
QmRlSkVVZFpwb3BzZSs2SWpyd0NBZE0wTnJJV0Y0c3laCk11dHE1cmlON1FCQUdSb2FXTXZMcFgx
bmNOTURTM0hnZkluWEJ3Q0dXQk1EYTNXMU9GenF6cWlSWGh5YUxmTUdBTUJRYTJKZ2ZmR0wKc2I1
ZTV2TFZvMC9ZZWdVQWxLZHhnVlh1YTRNUjhjQ1NVNjhBZ0ZJMUs3QVdGa3ArYlhDa0Y3LzdkSW5Y
QndCb1ZHQ3RyaFp6Y3lYZgpZK3FyTWJaYThqMEFnR0hYb01BcWZldlZ4SEo4OWt5SjF3Y0FpSWpt
Qk5Zeno1Uzg5U29pWm82WGUzMEFnSWhvU0dDdHJCUW5UNVpjClYvc1hQQndFQUtyUmlNQTZYdmJT
MGtndnVxZEx2Z2NBd0EzMUIxWVZEd2NmZXM3eUZRQlFtWm9EYTNXMU9GUDJ2dk9SWG56RzNuWUEK
b0RvMUI5WVRUNVQ4NW1CRVBQU2NjOXNCZ0NyVkdWaExTOFhGaXlYWDFlaHFUSjhzOXhZQUFEZXJN
N0NlcnVCTTlZTi9YdjQ5QUFCdQpVbHRnUGZOTXNicGE4dkxWU0M4KzVyT0RBRURWNmdtc1hxLzh2
ZTBSc2Y5NXU2OEFnT3JWRTFqUFBWZiszdmFJK016WjBtOEJBUEF1Ck5RUldSY3RYRHk0Nit3b0Fx
RVVOZ1ZYUjh0V25ueXY5RmdBQVcya1ZSVkhsL1ZaWGkvdnZMNyt1OWwySlAvNVU2WGVoV3NYSlN2
K3QKQXNDZVZiMkM5Znp6bGR6bTAzOVp5VzBBQUxaUWFXQlZ0UHNxd3VrTUFFQ05LZzJzNTUrdlpQ
ZlZnNHRPWndBQWFsUnBZSjJ0NXRpRQpqMzY3a3RzQUFHeXR1c0JhWEN6LzZQWk5uZzhDQUxXcUxy
QXEydDd1K1NBQVVMZUtBbXQxdFhqeHhVcVdyendmQkFEcVZsRmdWYlI4CkZaNFBBZ0QxcXlpdzV1
Y3J1WTNuZ3dCQUExUVJXRmV1VkxXOS9TTS9xT0l1QUFCM1ZFVmdmZXRiRmR3a0lpSW1scXU2RXdE
QWJWVVIKV0JjdVZIQ1RpSkZlL01hUEtya1RBTUNkbEI1WTFSMS9OWEdwaXJzQUFHeW45TUQ2UVdY
Ym9oelFBQUEwUSttQlZkSHp3WWlZZkxtcQpPd0VBM0VtNWdiVzZXdFh6d2RIVkdGdXQ0a1lBQU5z
cE43QytYZGxUdS9IdlYzVW5BSUJ0bEJ0WWx5cmJkOTUrdmFvN0FRQnNvOXpBCnF1ajdnK0VFTEFD
Z1FVb01yQ3RYaXZJdWZpc2JzQUNBeGlneHNLbzdvQ0VFRmdEUUlDVUdWblVic0NZYzBBQUFORWlw
andqTHUvYk4KN0hBSEFKcWtyTURxOWFvNkFTc2lQdkJxUlRjQ0FOaUJzZ0pyWmFXa0MyOWxYNVUz
QXdEWVJsbUI5Y01mbG5UaHJkamhEZ0EwU1ZtQgp0YlpXMG9XM0lyQUFnQ1laaU1BQ0FHaVNzZ0xy
NHNYS3puQjNSZ01BMEN6bGZpb0hBR0FJbFJKWUw3OWM0VWR5SElJRkFEUk0vNjlnCkNTd0FvR0ZL
Q2F4S3oyZ0FBR2lZL2wvQm1saXVld0lBZ0p1VUVsak9hQUFBaHBuQUFnQkkxditQQ0FFQUdrWmdB
UUFrS3lXd3FqdkcKSFFDZ2VmcC9CZXYraTNWUEFBQndrLzRQTEFDQWhoRllBQURKQkJZQVFES0JC
UUNRVEdBQkFDUVRXUFNIaVY3ZEV3REFqZ2tzK3NQOQpBZ3VBL2lHdzZCUHZlVS9kRXdEQVRna3Mr
c1I5OTlVOUFRRHNsTUFDQUVnbXNPZ1BFeHNqZFk4QUFEc2xzT2dQNDJPVGRZOEFBRHNsCnNPZ1RJ
MWF3QU9nYkFvdis4SW5XQitvZUFRQjJTbURSSDhZNzNicEhBSUNkRWxqMGh3UHYrKzI2UndDQW5S
Slk5SUdKWHJTbXArdWUKQWdCMlNtRFJCM3duQjREK0lyRG9BMU10WnpRQTBFOEVGbjNnSSsvN2NO
MGpBTUF1Q0N6NndFY205dGM5QWdEc2dzQ2lEMHgvNmtqZApJd0RBTGdnc211N3pyMFYwT25WUEFR
QzdJTEJvdXFuMTBkYllXTjFUQU1BdUNDeWE3dmMvT0ZYM0NBQ3dPd0tMUm10dnhJR1BmNzd1CktR
Qmdkd1FXamZid2F4R2YrMXpkVXdEQTdnZ3NHdTJSMSs5dEhUaFE5eFFBc0RzQ2kwWTdPSDZ3N2hF
QVlOY0VGczAxMFl2SjMvbTkKdXFjQWdGMFRXRFRYMDVjakhubWs3aWtBWU5jRUZzMzFwZi81emRh
a3p6d0QwSDhFRmcxMS9FY3g5c2dmMUQwRkFPeUZ3S0toSG44MQo0a3RmcW5zS0FOZ0xnVVVUVGZS
aUtpWWMwQUJBbnhKWU5OR3hsWWdqUitxZUFnRDJTR0RSUkk5ZjlYd1FnRDRtc0dpY0kvOGFFNk9l
CkR3TFF4d1FXamZPMTcwWWNPMWIzRkFDd2R3S0xaam4rbzVoY2ozajg4Ym9IQVlDOUUxZzB5NTk5
UDRvalI1d3ZDa0JmRTFnMGlPVXIKQUFhRHdLSXAyaHZ4dGU5R01USFJPblNvN2xrQTRLNElMSnJp
eENzeHRoRng2bFRkZ3dEQTNSSllORUo3STU3ODV5amE3WGowMGJwbgpBWUM3SmJCb2hOTXZ4OWhH
eElrVHJiR3h1bWNCZ0xzbHNLamY5R284dGJsODllU1RkYzhDQUFrRUZqVnJiOFEzbGlMQzhoVUFn
ME5nClViUFRMOGZrdXVVckFBYUt3S0pPbXc4SEl5eGZBVEJRQkJhMWVldmhvT1VyQUFhTXdLSTI1
LzRoSnRjakl1TDBhY3RYQUF3U2dVVTkKRHY4a2psNk5pQ2dtSmxwUFBWWDNPQUNRU1dCUmc4N1Az
M3h6TUNMT242OXpGQUFvZ2NDaWF1Mk5PTDhVWXhzUkVjWDBkS3ZiclhrZwpBTWdtc0tqYTRndlJ1
UjZ4dWJmOUc5K29leHdBeUNld3FOVDhoZWl1dmZtWEV5ZGFrNU0xRGdNQUpSRllWT2ZwVjI1c2JJ
K0lvdE5wCmZlVXJ0WTREQUdVUldGVGs4RS9pMmUrODQrLzJ0Z013dUFRV1ZianB0Y0dJNHZUcFZx
ZFQzemdBVUM2QlJlbmUrZHBnYkw0NTZPRWcKQUFOTllGR3U5a1lzejk5NGJUQzhPUWpBY0JCWWxP
aVd1b3FJT0hmT200TUFERHlCUlZuZVhWZkY3R3pyNk5INkpnS0FpZ2dzU3JGRgpYWFU2TFc4T0Fq
QWNCQmI1dHFpcmRqdGVmTEcraVFDZ1VnS0xaT1ByNzlwM0ZSR0xpN1plQVRBODNsdjNBQXlVMlN0
eGZ1bldIeGJ6Cjg3N29ETUJRRVZpa09mTlN6RjIrOVlmRjAwL2IyQTdBc0JGWUpHaHZ4T0lMNy9p
Szg1dUsyZG5XczgvV01CQUExRXBnY2JjNlA0L3oKUysvYWRPVzFRUUNHbU1EaXJreXR4WVVYM3Y0
TXpsdUtUaWN1WHF4aklnQ29uOEJpNytaZWlUUGYyZUxubTNYVkdodXJmQ0lBYUFTQgp4VjZNcjhm
ODRoYWJya0pkQVlEQVlnOW1yc1g1eFMwZUM0YTZBb0NJRUZqc1Nuc2pGaTdFekw5dC9WL1ZGUUJz
RWxqczFCMFdya0pkCkFjQTdDQ3kyZCtlRnE5Zzg3OHFKREFEd0pvSEZObzZ1eEptWGJydHdGUkhG
M0Z6cnpKa0tKd0tBcGhOWTNOYlVXc3d2eHNUNm5YNm4KbUovM0pSd0F1SVhBWWd0VGEzRnFlZXRU
R041U3ROdXh1T2dyemdEd2JnS0xtNHl2eDZubG1GM1o1dGVLVGljdVhHaE5URlF4RXdEMApHNEhG
RGVQck1YYzU1aTV2LzV1MnRBUEFuUWtzWW1vdFpsZTJYN1dLemNlQzU4N1pkQVVBZHlhd2h0clJs
Wmk3SEozck8vcmxZbW9xCjV1YzlGZ1NBYlFtc1lUUytIck1yOGRUbE94MitjSXZpNU1uV3FWTWx6
Z1FBQTBSZ0RaZVphM0hvMm82ZUJyNmw2SFRpL1BsV3AxUGEKVUFBd2FBVFc0R3R2eEtGck1YTXR1
bXU3V0xLS3pSMVhjM01XcmdCZ3R3VFd3SHFycXc1ZjI4di9ic2NWQU95WndCb283WTNvcnNYKwo2
M0g0Mms2M3JyOWJNVDRlOC9OT0VBV0FQUk5ZZmUvZ1duU3V4NEhyMFYzYjVyTTIyL0pNRUFCU0NL
eCswdDZJL2RkajdCMS9UcS9sClhIa3pyZUtwcDFwall6bFhCSUFoSnJDYTR1RGFyVC9wWEkvUmpi
ZHphcytQL081TVdnRkF1bFpSRlBrWGJhVmY4aWJ0Kzk3b1BuaDkKYXVUeW9kZWVuZnpQZnl6M1pv
TkxXZ0ZBU2ZvcHNENzUwZi9yN3JzMjg0dUZ6MTg5VjhvTmhrWXhQaDZuVHNYTWpMUUNnREkwUGJE
YQo5NzF4NkpPdlRjWHl6S3RmZmY4dlgwKzc3ckFxWm1iaTZOSFc0Y04xRHdJQWc2eWhnWFZ3Ly9x
aDlzWHU5UmNPL1B2ZlpFdzA3SXJ4CjhaaWRqZGxaNTFvQlFBVWFGRmpqSC9yVnpHLzl5OVRHUzkx
cmYyV3hLa1V4UGg0ek0zSHNtQS9kQUVDVmFnNHMyOVhMb0tzQW9GNzEKQkpidDZ1bUtkanU2M2Vo
MjQ5QWh6d0VCb0Y3VkJaYnQ2dW1LOGZIb2RxUFRpVzdYWWhVQU5FZnBnV1c3ZXFMaTRNR1luSXhP
Si9idgpqMDdISVFzQTBFeWxCTmJFaDIxWDM0dWkzWTc5KzIvOHBkT0owZEdJaUc0M0lsclQwN1dO
QlFEc1VpbUJCUUF3ek82cGV3QUFnRUVqCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklK
TEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJr
QWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdt
Y0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFT
Q2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFB
SklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NB
SUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3
QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndB
SUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpy
QUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtn
a3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dR
Q0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUND
WndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdC
SUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FB
QWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dB
Z0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlM
QUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5B
QWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20K
c0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1ND
U3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0Fa
QUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJ
Sm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FF
Z20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FB
Q1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxB
Q0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fn
c0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNB
Q0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nh
d0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJ
SkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlC
a0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0Fn
bWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlB
U0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFB
QUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tz
QUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUND
d0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3
QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklK
ckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFr
Z2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdH
UUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFD
Q1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFn
QklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNB
QUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3
QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWlA4
UHZ3djhUT3RmL0RrQUFBQUFTVVZPUks1Q1lJST0KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174151</attachid>
            <date>2012-11-14 07:15:48 -0800</date>
            <delta_ts>2012-11-14 10:13:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101974-20121114101347.patch</filename>
            <type>text/plain</type>
            <size>36305</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDYwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTEyICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgQm94ZXMgd2l0aCByb3VuZGVk
IGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cgdG8gZHJhdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFdpdGggdGhlIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24gUmVuZGVyQm94OjoKKyAgICAgICAgZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlKCkgdXNlcyB0aGUgc2xvdyBwYXRoCisgICAgICAgIEJhY2tncm91bmRCbGVlZFVz
ZVRyYW5zcGFyZW5jeUxheWVyIGZvciBzb21lIHZlcnkgY29tbW9uIHVzZSBjYXNlcywKKyAgICAg
ICAgbm90YWJseSBmb3IgZHJhd2luZyByZWN0YW5nbGVzIHdpdGggcm91bmRlZCBjb3JuZXJzIHRo
YXQgaGF2ZSB0aGluCisgICAgICAgIGJvcmRlcnMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgQmFja2dy
b3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZAorICAgICAgICBzdHJhdGVneSByZXF1aXJlcyBhIGJv
cmRlciBhdCBsZWFzdCB0d28gcGl4ZWxzIHdpZGUgb24gYWxsIHNpZGVzLiBUaGlzCisgICAgICAg
IHBhdGNoIGludHJvZHVjZSBkcmF3aW5nIHN0cmF0ZWd5IEJhY2tncm91bmRCbGVlZEJhY2tncm91
bmRPdmVyQm9yZGVyLgorICAgICAgICBUaGlzIGFwcHJvYWNoIGNvbnNpc3RzIGluIGRyYXdpbmcg
dGhlIGJvcmRlciBmaXJzdCwgd2l0aCBhbiBpbnNldCBpbm5lcgorICAgICAgICBlZGdlIChmb3Ig
YW50aS1hbGlhc2VkIGNvbXBvc2l0aW5nIHRvIHdvcmsgd2VsbCkuICBUaGlzIGFwcHJvYWNoIG9u
bHkKKyAgICAgICAgd29ya3Mgd2l0aCBvcGFxdWUgc29saWQgZWRnZXMgYW5kIG9wYXF1ZSBzaW5n
bGUtbGF5ZXIgYmFja2dyb3VuZHMuCisgICAgICAgIEJ5IHVzaW5nIHRoaXMgYXBwcm9hY2ggcmF0
aGVyIHRoYW4gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgICAgIHdl
IHNhdmUgdHdvIGNsaXBQYXRoLCBvbmUgc2F2ZSBhbmQgb25lIHNhdmVMYXllciBvbiB0aGUKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0LiBUaGlzIHBhdGNoIGdldHMgZ29vZCBjb3ZlcmFnZSBmcm9t
IGV4aXN0aW5nIGxheW91dAorICAgICAgICB0ZXN0cy4gT25lIGFkZGl0aW9uYWwgdGVzdCB3YXMg
YWRkZWQgdG8gZXhlcmNpc2UgbWl0cmluZywgdGhpY2sgZWRnZXMKKyAgICAgICAgYW5kIGFudGkt
YWxpYXNpbmcgZWRnZSBjYXNlcyB1bmRlciB0aGUgbmV3IHBhaW50aW5nIGFsZ29yaXRobS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6ZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlKToKKyAgICAg
ICAgQWRkZWQgc2VsZWN0aW9uIGNyaXRlcmlhIGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlcgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAg
QWRkZWQgYSBwcmVsaW1pbmFyeSBwYWludEJvcmRlciBwYXNzIGZvciBCYWNrZ3JvdW5kT3ZlckJv
cmRlcgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQpOgorICAg
ICAgICBJbnNldHRpbmcgdGhlIGJhY2tncm91bmQgdG8gdG8gaW5uZXJCb3JkZXIgd2hlbiBibGVl
ZEF2b2lkYW5jZSBpcworICAgICAgICBCYWNrZ3JvdW5kT3ZlckJvcmRlci4gIFRoaXMgd2h5IEJh
Y2tncm91bmRPdmVyQm9yZGVyIG9ubHkgd29ya3MgZm9yCisgICAgICAgIE9wYXF1ZSBzb2xpZCBl
ZGdlcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpi
YWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcik6CisgICAgICAgIFV0aWxpdHkgbWV0aG9kIHVz
ZSBieSBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgdG8gdGVzdCB0aGUKKyAgICAg
ICAgYmFja2dyb3VuZCdzIGVsaWdpYmlsaXR5IGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlciBibGVl
ZCBhdm9pZGFuY2UKKyAgICAgICAgc3RyYXRlZ3kuICBUaGUgcmVhc29uIHRoZSBiYWNrZ3JvdW5k
IG11c3QgYmUgYSBzaW5nbGUgbGF5ZXIgaXMgdG8gYXZvaWQKKyAgICAgICAgY29sb3IgYmxlZWRp
bmcgZnJvbSBsYXllciBjb21wb3NpdGluZyBhbG9uZyBhbnRpLWFsaWFzZWQgZWRnZXMKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3Vu
ZE92ZXJCb3JkZXIgYnkgYXBwbHlpbmcgYSBvbmUgcGl4ZWwgaW5zZXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRG
b3JCbGVlZEF2b2lkYW5jZSk6CisgICAgICAgIFNldCB0aGUgYmFja2dyb3VuZCByZWN0IHRvIHRo
ZSBpbm5lciBib3JkZXIgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXll
ckV4dGVuZGVkKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJCb3Jk
ZXIgYnkgdXNpbmcgCisgICAgICAgIGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxl
ZWRBdm9pZGFuY2UKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlclNpZGVzKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJC
b3JkZXIgYnkgYXBwbHlpbmcgcGVyLXNpZGUgaW5zZXQKKyAgICAgICAgYWRqdXN0bWVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJv
cmRlclNpZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlcik6CisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVy
IGJ5IHVzaW5nIGFuIGFkanVzdGVkIGlubmVyCisgICAgICAgIGJvcmRlciwgYnV0IG5vdCBpZiBz
aWRlcyBhcmUgcGFpbnRlZCBpbmRpdmlkdWFsbHkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6CisKIDIw
MTItMTEtMTQgIEFudG9uIE9iemhpcm92ICA8YS5vYnpoaXJvdkBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBBZGQgcGxhdGZvcm0gaW1wbGVtZW50YXRpb24gb2YgcmVtb3RlIHdlYiBpbnNwZWN0b3Ig
c2VydmVyIGZvciBHVEsgcG9ydC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCShyZXZpc2lvbiAxMzQ2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMwLDExICs4MzAsOCBAQCBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UgUmVuZGVyQm94OjpkZXRlCiAgICAgRmxvYXRTaXplIGNvbnRleHRTY2Fs
aW5nKHN0YXRpY19jYXN0PGZsb2F0PihjdG0ueFNjYWxlKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
Y3RtLnlTY2FsZSgpKSk7CiAgICAgaWYgKGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2UoY29u
dGV4dFNjYWxpbmcpKQogICAgICAgICByZXR1cm4gQmFja2dyb3VuZEJsZWVkU2hyaW5rQmFja2dy
b3VuZDsKLSAgICAKLSAgICAvLyBGSVhNRTogdGhlcmUgaXMgb25lIG1vcmUgc3RyYXRlZ3kgcG9z
c2libGUsIGZvciBvcGFxdWUgYmFja2dyb3VuZHMgYW5kCi0gICAgLy8gdHJhbnNsdWNlbnQgYm9y
ZGVycy4gSW4gdGhhdCBjYXNlIHdlIGNvdWxkIGF2b2lkIHVzaW5nIGEgdHJhbnNwYXJlbmN5IGxh
eWVyLAotICAgIC8vIGFuZCBwYWludCB0aGUgYm9yZGVyIGZpcnN0LCBhbmQgdGhlbiBwYWludCB0
aGUgYmFja2dyb3VuZCBjbGlwcGVkIHRvIHRoZQotICAgIC8vIGluc2lkZSBvZiB0aGUgYm9yZGVy
LgorICAgIGlmICghc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSAmJiBib3JkZXJPYnNjdXJlc0JhY2tn
cm91bmQoKSAmJiBiYWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcigpKQorICAgICAgICByZXR1
cm4gQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXI7CiAKICAgICByZXR1cm4gQmFj
a2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXI7CiB9CkBAIC04NjgsMTIgKzg2NSwxNSBA
QCB2b2lkIFJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWluCiAgICAgICAgIHBhaW50
SW5mby5jb250ZXh0LT5hZGRSb3VuZGVkUmVjdENsaXAoYm9yZGVyKTsKICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7CiAgICAgfQotICAgIAorCiAg
ICAgLy8gSWYgd2UgaGF2ZSBhIG5hdGl2ZSB0aGVtZSBhcHBlYXJhbmNlLCBwYWludCB0aGF0IGJl
Zm9yZSBwYWludGluZyBvdXIgYmFja2dyb3VuZC4KICAgICAvLyBUaGUgdGhlbWUgd2lsbCB0ZWxs
IHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50IHRoZSBDU1MgYmFja2dyb3Vu
ZC4KICAgICBJbnRSZWN0IHNuYXBwZWRQYWludFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChwYWlu
dFJlY3QpKTsKICAgICBib29sIHRoZW1lUGFpbnRlZCA9IHN0eWxlKCktPmhhc0FwcGVhcmFuY2Uo
KSAmJiAhdGhlbWUoKS0+cGFpbnQodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KTsK
ICAgICBpZiAoIXRoZW1lUGFpbnRlZCkgeworICAgICAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0g
QmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpCisgICAgICAgICAgICBwYWludEJv
cmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOworCiAg
ICAgICAgIHBhaW50QmFja2dyb3VuZChwYWludEluZm8sIHBhaW50UmVjdCwgYmxlZWRBdm9pZGFu
Y2UpOwogCiAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCkBAIC04ODIsNyAr
ODgyLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbgogICAgIHBh
aW50Qm94U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBJbnNldCk7CiAKICAg
ICAvLyBUaGUgdGhlbWUgd2lsbCB0ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNv
IHBhaW50IHRoZSBDU1MgYm9yZGVyLgotICAgIGlmICgoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2Uo
KSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLT5wYWludEJvcmRlck9ubHkodGhpcywgcGFp
bnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KSkpICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQorICAg
IGlmIChibGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3ZlckJvcmRl
ciAmJiAoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0aGVt
ZSgpLT5wYWludEJvcmRlck9ubHkodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KSkp
ICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQogICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8s
IHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwogCiAgICAgaWYgKGJsZWVkQXZv
aWRhbmNlID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQpAQCAtOTAzLDYg
KzkwMywyNSBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCYWNrZ3JvdW5kKGNvbnN0IFBhCiAgICAg
fQogfQogCitib29sIFJlbmRlckJveDo6YmFja2dyb3VuZElzU2luZ2xlT3BhcXVlTGF5ZXIoKSBj
b25zdAoreworICAgIGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyID0gc3R5bGUoKS0+YmFja2dy
b3VuZExheWVycygpOworICAgIGlmICghZmlsbExheWVyIHx8IGZpbGxMYXllci0+bmV4dCgpIHx8
IGZpbGxMYXllci0+Y2xpcCgpICE9IEJvcmRlckZpbGxCb3ggfHwgZmlsbExheWVyLT5jb21wb3Np
dGUoKSAhPSBDb21wb3NpdGVTb3VyY2VPdmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvLyBDbGlwcGVkIHdpdGggbG9jYWwgc2Nyb2xsaW5nCisgICAgaWYgKGhhc092ZXJmbG93Q2xp
cCgpICYmIGZpbGxMYXllci0+YXR0YWNobWVudCgpID09IExvY2FsQmFja2dyb3VuZEF0dGFjaG1l
bnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbG9yIGJnQ29sb3IgPSBzdHlsZSgp
LT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAg
IGlmIChiZ0NvbG9yLmlzVmFsaWQoKSAmJiBiZ0NvbG9yLmFscGhhKCkgPT0gMjU1KQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBGSVhNRTogcmV0dXJuIHRydWUgaWYgYSBiYWNr
Z3JvdW5kIGltYWdlIGlzIHByZXNlbnQgYW5kIGlzIG9wYXF1ZQorCisgICAgcmV0dXJuIGZhbHNl
OworfQorCiB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFwYWludEluZm8uc2hv
dWxkUGFpbnRXaXRoaW5Sb290KHRoaXMpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlTWFzayB8fCBwYWludEluZm8uY29u
dGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAkocmV2aXNpb24gMTM0NjAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzAsNiArNTcwLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgcGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJl
Y3QmKTsKIAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBkZXRlcm1pbmVCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7CisgICAgYm9vbCBiYWNrZ3Jv
dW5kSXNTaW5nbGVPcGFxdWVMYXllcigpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZvaWQgcGFpbnRDdXN0b21IaWdobGlnaHQoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgYmVoaW5kVGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDYw
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY0Nyw3ICs2NDcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1v
ZGVsT2JqZWN0Ojpjb21wdXRlCiB9CiAKIFJvdW5kZWRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0
OjpnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwg
SW5saW5lRmxvd0JveCogYm94LCBMYXlvdXRVbml0IGlubGluZUJveFdpZHRoLCBMYXlvdXRVbml0
IGlubGluZUJveEhlaWdodCwKLSAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAogewogICAgIFJlbmRlclZpZXcq
IHJlbmRlclZpZXcgPSB2aWV3KCk7CiAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0gc3R5bGUoKS0+
Z2V0Um91bmRlZEJvcmRlckZvcihib3JkZXJSZWN0LCByZW5kZXJWaWV3LCBpbmNsdWRlTG9naWNh
bExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CkBAIC02OTEsMTcgKzY5MSwzMSBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjbGlwUm91bmRlZEluCiAgICAgfQogfQogCi1z
dGF0aWMgTGF5b3V0UmVjdCBiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2Uo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBC
YWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UpCitzdGF0aWMgTGF5b3V0UmVj
dCBzaHJpbmtSZWN0QnlPbmVQaXhlbChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExh
eW91dFJlY3QmIHJlY3QpCiB7Ci0gICAgaWYgKGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRC
bGVlZFNocmlua0JhY2tncm91bmQpCi0gICAgICAgIHJldHVybiBib3JkZXJSZWN0OwotCi0gICAg
Ly8gV2Ugc2hyaW5rIHRoZSByZWN0YW5nbGUgYnkgb25lIHBpeGVsIG9uIGVhY2ggc2lkZSBiZWNh
dXNlIHRoZSBibGVlZCBpcyBvbmUgcGl4ZWwgbWF4aW11bS4KKyAgICBMYXlvdXRSZWN0IHNocnVu
a1JlY3QgPSByZWN0OwogICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBjb250ZXh0LT5n
ZXRDVE0oKTsKLSAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGJvcmRlclJlY3Q7Ci0gICAg
YWRqdXN0ZWRSZWN0LmluZmxhdGVYKC1zdGF0aWNfY2FzdDxMYXlvdXRVbml0PihjZWlsKDEgLyB0
cmFuc2Zvcm0ueFNjYWxlKCkpKSk7Ci0gICAgYWRqdXN0ZWRSZWN0LmluZmxhdGVZKC1zdGF0aWNf
Y2FzdDxMYXlvdXRVbml0PihjZWlsKDEgLyB0cmFuc2Zvcm0ueVNjYWxlKCkpKSk7Ci0gICAgcmV0
dXJuIGFkanVzdGVkUmVjdDsKKyAgICBzaHJ1bmtSZWN0LmluZmxhdGVYKC1zdGF0aWNfY2FzdDxM
YXlvdXRVbml0PihjZWlsKDEgLyB0cmFuc2Zvcm0ueFNjYWxlKCkpKSk7CisgICAgc2hydW5rUmVj
dC5pbmZsYXRlWSgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgxIC8gdHJhbnNmb3JtLnlT
Y2FsZSgpKSkpOworICAgIHJldHVybiBzaHJ1bmtSZWN0OworfQorCitMYXlvdXRSZWN0IFJlbmRl
ckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNl
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgQmFja2dy
b3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlKSBjb25zdAoreworICAgIC8vIFdlIHNo
cmluayB0aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBlYWNoIHNpZGUgdG8gbWFrZSBpdCBm
dWxseSBvdmVybGFwIHRoZSBhbnRpLWFsaWFzZWQgYmFja2dyb3VuZCBib3JkZXIKKyAgICByZXR1
cm4gKGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVy
KSA/IHNocmlua1JlY3RCeU9uZVBpeGVsKGNvbnRleHQsIHJlY3QpIDogcmVjdDsKK30KKworUm91
bmRlZFJlY3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVz
dGVkRm9yQmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlv
dXRSZWN0JiBib3JkZXJSZWN0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFu
Y2UsIElubGluZUZsb3dCb3gqIGJveCwgY29uc3QgTGF5b3V0U2l6ZSYgYm94U2l6ZSwgYm9vbCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25z
dAoreworICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNr
Z3JvdW5kKSB7CisgICAgICAgIC8vIFdlIHNocmluayB0aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhl
bCBvbiBlYWNoIHNpZGUgYmVjYXVzZSB0aGUgYmxlZWQgaXMgb25lIHBpeGVsIG1heGltdW0uCisg
ICAgICAgIHJldHVybiBnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3Qoc2hyaW5rUmVjdEJ5T25lUGl4
ZWwoY29udGV4dCwgYm9yZGVyUmVjdCksIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhl
aWdodCgpLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7
CisgICAgfQorICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3Jv
dW5kT3ZlckJvcmRlcikKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmdldFJvdW5kZWRJbm5lckJv
cmRlckZvcihib3JkZXJSZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSk7CisKKyAgICByZXR1cm4gZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGJvcmRl
clJlY3QsIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdodCgpLCBpbmNsdWRlTG9n
aWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFwcGx5Qm94U2hhZG93Rm9yQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJl
bmRlclN0eWxlKiBzdHlsZSkKQEAgLTc3Myw3ICs3ODcsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludEZpbGxMYXllCiAgICAgICAgICAgICBhcHBseUJveFNoYWRvd0ZvckJhY2tn
cm91bmQoY29udGV4dCwgc3R5bGUoKSk7CiAKICAgICAgICAgaWYgKGhhc1JvdW5kZWRCb3JkZXIg
JiYgYmxlZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIp
IHsKLSAgICAgICAgICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IGdldEJhY2tncm91bmRSb3VuZGVk
UmVjdChiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVj
dCwgYmxlZWRBdm9pZGFuY2UpLCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQo
KSwgaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAgICAgICAgIFJvdW5k
ZWRSZWN0IGJvcmRlciA9IGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9p
ZGFuY2UoY29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIGJveCwgYm94U2l6ZSwgaW5jbHVk
ZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxS
b3VuZGVkUmVjdChib3JkZXIsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QocGl4ZWxTbmFwcGVkSW50
UmVjdChyZWN0KSwgYmdDb2xvciwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKQEAgLTc4NSw4ICs3
OTksNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllCiAgICAgYm9v
bCBjbGlwVG9Cb3JkZXJSYWRpdXMgPSBoYXNSb3VuZGVkQm9yZGVyICYmICEoaXNCb3JkZXJGaWxs
ICYmIGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVy
KTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIGNsaXBUb0JvcmRlclN0YXRlU2F2ZXIo
KmNvbnRleHQsIGNsaXBUb0JvcmRlclJhZGl1cyk7CiAgICAgaWYgKGNsaXBUb0JvcmRlclJhZGl1
cykgewotICAgICAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGlzQm9yZGVyRmlsbCA/IGJh
Y2tncm91bmRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVl
ZEF2b2lkYW5jZSkgOiByZWN0OwotICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSBnZXRCYWNr
Z3JvdW5kUm91bmRlZFJlY3QoYWRqdXN0ZWRSZWN0LCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94
U2l6ZS5oZWlnaHQoKSwgaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAg
ICAgUm91bmRlZFJlY3QgYm9yZGVyID0gaXNCb3JkZXJGaWxsID8gYmFja2dyb3VuZFJvdW5kZWRS
ZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5j
ZSwgYm94LCBib3hTaXplLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2UpIDogZ2V0
QmFja2dyb3VuZFJvdW5kZWRSZWN0KHJlY3QsIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXpl
LmhlaWdodCgpLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2UpOwogCiAgICAgICAg
IC8vIENsaXAgdG8gdGhlIHBhZGRpbmcgb3IgY29udGVudCBib3hlcyBhcyBuZWNlc3NhcnkuCiAg
ICAgICAgIGlmIChiZ0xheWVyLT5jbGlwKCkgPT0gQ29udGVudEZpbGxCb3gpIHsKQEAgLTE3Mjks
OCArMTc0Miw4IEBAIHN0YXRpYyBJbnRSZWN0IGNhbGN1bGF0ZVNpZGVSZWN0KGNvbnN0IFIKIH0K
IAogdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0Nv
bnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBS
b3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQm9yZGVy
RWRnZSBlZGdlc1tdLCBCb3JkZXJFZGdlRmxhZ3MgZWRnZVNldCwgQmFja2dyb3VuZEJsZWVkQXZv
aWRhbmNlIGJsZWVkQXZvaWRhbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvcikK
KyAgICBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBCb3JkZXJF
ZGdlIGVkZ2VzW10sIEJvcmRlckVkZ2VGbGFncyBlZGdlU2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9p
ZGFuY2UgYmxlZWRBdm9pZGFuY2UsCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3Iq
IG92ZXJyaWRlQ29sb3IpCiB7CiAgICAgYm9vbCByZW5kZXJSYWRpaSA9IG91dGVyQm9yZGVyLmlz
Um91bmRlZCgpOwogCkBAIC0xNzM4LDkgKzE3NTEsMTQgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFpbnRCb3JkZXJTaQogICAgIGlmIChyZW5kZXJSYWRpaSkKICAgICAgICAgcm91bmRl
ZFBhdGguYWRkUm91bmRlZFJlY3Qob3V0ZXJCb3JkZXIpOwogICAgIAorICAgIC8vIFRoZSBpbm5l
ciBib3JkZXIgYWRqdXN0bWVudCBmb3IgYmxlZWQgYXZvaWRhbmNlIG1vZGUgQmFja2dyb3VuZEJs
ZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIKKyAgICAvLyBpcyBvbmx5IGFwcGxpZWQgdG8gc2lkZVJl
Y3QsIHdoaWNoIGlzIG9rYXkgc2luY2UgQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3Jk
ZXIKKyAgICAvLyBpcyBvbmx5IHRvIGJlIHVzZWQgZm9yIHNvbGlkIGJvcmRlcnMgYW5kIHRoZSBz
aGFwZSBvZiB0aGUgYm9yZGVyIHBhaW50ZWQgYnkgZHJhd0JveFNpZGVGcm9tUGF0aAorICAgIC8v
IG9ubHkgZGVwZW5kcyBvbiBzaWRlUmVjdCB3aGVuIHBhaW50aW5nIHNvbGlkIGJvcmRlcnMuCisK
ICAgICBpZiAoZWRnZXNbQlNUb3BdLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdl
U2V0LCBCU1RvcCkpIHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJl
Y3QoKTsKLSAgICAgICAgc2lkZVJlY3Quc2V0SGVpZ2h0KGVkZ2VzW0JTVG9wXS53aWR0aCk7Cisg
ICAgICAgIHNpZGVSZWN0LnNldEhlaWdodChlZGdlc1tCU1RvcF0ud2lkdGggKyBpbm5lckJvcmRl
ckFkanVzdG1lbnQueSgpKTsKIAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAm
JiAoYm9yZGVyU3R5bGVIYXNJbm5lckRldGFpbChlZGdlc1tCU1RvcF0uc3R5bGUpIHx8IGJvcmRl
cldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS50b3BMZWZ0KCksIGlubmVyQm9y
ZGVyLnJhZGlpKCkudG9wUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwg
QlNUb3AsIEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAw
LCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzQ4LDcgKzE3NjYsNyBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRn
ZXNbQlNCb3R0b21dLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBCU0Jv
dHRvbSkpIHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsK
LSAgICAgICAgc2lkZVJlY3Quc2hpZnRZRWRnZVRvKHNpZGVSZWN0Lm1heFkoKSAtIGVkZ2VzW0JT
Qm90dG9tXS53aWR0aCk7CisgICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5t
YXhZKCkgLSBlZGdlc1tCU0JvdHRvbV0ud2lkdGggLSBpbm5lckJvcmRlckFkanVzdG1lbnQueSgp
KTsKIAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVI
YXNJbm5lckRldGFpbChlZGdlc1tCU0JvdHRvbV0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5l
ckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlp
KCkuYm90dG9tUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3ND
b250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNCb3R0
b20sIEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBi
bGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzU2LDcgKzE3NzQsNyBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRnZXNb
QlNMZWZ0XS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNMZWZ0KSkg
ewogICAgICAgICBJbnRSZWN0IHNpZGVSZWN0ID0gb3V0ZXJCb3JkZXIucmVjdCgpOwotICAgICAg
ICBzaWRlUmVjdC5zZXRXaWR0aChlZGdlc1tCU0xlZnRdLndpZHRoKTsKKyAgICAgICAgc2lkZVJl
Y3Quc2V0V2lkdGgoZWRnZXNbQlNMZWZ0XS53aWR0aCArIGlubmVyQm9yZGVyQWRqdXN0bWVudC54
KCkpOwogCiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHls
ZUhhc0lubmVyRGV0YWlsKGVkZ2VzW0JTTGVmdF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5l
ckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlp
KCkudG9wTGVmdCgpKSk7CiAgICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRl
eHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU0xlZnQsIEJT
VG9wLCBCU0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2
b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Us
IGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzY0LDE0ICsxNzgyLDE0IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2kKIAogICAgIGlmIChlZGdlc1tCU1Jp
Z2h0XS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNSaWdodCkpIHsK
ICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAgICAg
c2lkZVJlY3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2VzW0JTUmlnaHRdLndp
ZHRoKTsKKyAgICAgICAgc2lkZVJlY3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVk
Z2VzW0JTUmlnaHRdLndpZHRoIC0gaW5uZXJCb3JkZXJBZGp1c3RtZW50LngoKSk7CiAKICAgICAg
ICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRh
aWwoZWRnZXNbQlNSaWdodF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2UoaW5uZXJC
b3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLCBpbm5lckJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0
KCkpKTsKICAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUs
IG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTUmlnaHQsIEJTVG9wLCBCU0Jv
dHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwg
aW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlh
cywgb3ZlcnJpZGVDb2xvcik7CiAgICAgfQogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0Nv
bnRleHQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVy
Qm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsCit2b2lkIFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJl
Y3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IElu
dFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyRWRnZSBlZGdlc1tdLCBC
YWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMp
CiB7CiAgICAgQm9yZGVyRWRnZUZsYWdzIGVkZ2VzVG9EcmF3ID0gQWxsQm9yZGVyRWRnZXM7CkBA
IC0xODAyLDcgKzE4MjAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludFRyYW5z
bHVjCiAgICAgICAgICAgICBjb21tb25Db2xvciA9IENvbG9yKGNvbW1vbkNvbG9yLnJlZCgpLCBj
b21tb25Db2xvci5ncmVlbigpLCBjb21tb25Db2xvci5ibHVlKCkpOwogICAgICAgICB9CiAKLSAg
ICAgICAgcGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRl
ciwgaW5uZXJCb3JkZXIsIGVkZ2VzLCBjb21tb25Db2xvckVkZ2VTZXQsIGJsZWVkQXZvaWRhbmNl
LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFs
aWFzLCAmY29tbW9uQ29sb3IpOworICAgICAgICBwYWludEJvcmRlclNpZGVzKGdyYXBoaWNzQ29u
dGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgaW5uZXJCb3JkZXJBZGp1c3Rt
ZW50LCBlZGdlcywgY29tbW9uQ29sb3JFZGdlU2V0LCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxv
Z2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgJmNvbW1v
bkNvbG9yKTsKICAgICAgICAgICAgIAogICAgICAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIp
CiAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBA
IC0xODI1LDcgKzE4NDMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRl
cihjCiAgICAgQm9yZGVyRWRnZSBlZGdlc1s0XTsKICAgICBnZXRCb3JkZXJFZGdlSW5mbyhlZGdl
cywgc3R5bGUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
KTsKICAgICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkQm9yZGVy
Rm9yKHJlY3QsIHZpZXcoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UpOwotICAgIFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5k
ZWRJbm5lckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSk7CisgICAgUm91bmRlZFJlY3QgaW5uZXJCb3JkZXIgPSBzdHlsZS0+Z2V0
Um91bmRlZElubmVyQm9yZGVyRm9yKGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9p
ZGFuY2UoZ3JhcGhpY3NDb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5jZSksIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKIAogICAgIGJvb2wgaGF2ZUFs
cGhhQ29sb3IgPSBmYWxzZTsKICAgICBib29sIGhhdmVBbGxTb2xpZEVkZ2VzID0gdHJ1ZTsKQEAg
LTE5NjEsMTAgKzE5NzksMTIgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3Jk
ZXIoYwogCiAgICAgLy8gSWYgb25seSBvbmUgZWRnZSB2aXNpYmxlIGFudGlhbGlhc2luZyBkb2Vz
bid0IGNyZWF0ZSBzZWFtcwogICAgIGJvb2wgYW50aWFsaWFzID0gc2hvdWxkQW50aWFsaWFzTGlu
ZXMoZ3JhcGhpY3NDb250ZXh0KSB8fCBudW1FZGdlc1Zpc2libGUgPT0gMTsKKyAgICBSb3VuZGVk
UmVjdCB1bmFkanVzdGVkSW5uZXJCb3JkZXIgPSAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3Vu
ZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpID8gc3R5bGUtPmdldFJvdW5kZWRJbm5lckJvcmRl
ckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRn
ZSkgOiBpbm5lckJvcmRlcjsKKyAgICBJbnRQb2ludCBpbm5lckJvcmRlckFkanVzdG1lbnQoaW5u
ZXJCb3JkZXIucmVjdCgpLngoKSAtIHVuYWRqdXN0ZWRJbm5lckJvcmRlci5yZWN0KCkueCgpLCBp
bm5lckJvcmRlci5yZWN0KCkueSgpIC0gdW5hZGp1c3RlZElubmVyQm9yZGVyLnJlY3QoKS55KCkp
OwogICAgIGlmIChoYXZlQWxwaGFDb2xvcikKLSAgICAgICAgcGFpbnRUcmFuc2x1Y2VudEJvcmRl
clNpZGVzKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwg
ZWRnZXMsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzKTsKKyAgICAgICAgcGFpbnRUcmFuc2x1Y2VudEJvcmRl
clNpZGVzKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCB1bmFkanVzdGVkSW5u
ZXJCb3JkZXIsIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgZWRnZXMsIGJsZWVkQXZvaWRhbmNlLCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFz
KTsKICAgICBlbHNlCi0gICAgICAgIHBhaW50Qm9yZGVyU2lkZXMoZ3JhcGhpY3NDb250ZXh0LCBz
dHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBlZGdlcywgQWxsQm9yZGVyRWRnZXMsIGJs
ZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0
RWRnZSwgYW50aWFsaWFzKTsKKyAgICAgICAgcGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRl
eHQsIHN0eWxlLCBvdXRlckJvcmRlciwgdW5hZGp1c3RlZElubmVyQm9yZGVyLCBpbm5lckJvcmRl
ckFkanVzdG1lbnQsIGVkZ2VzLCBBbGxCb3JkZXJFZGdlcywgYmxlZWRBdm9pZGFuY2UsIGluY2x1
ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMpOwog
fQogCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lkZUZyb21QYXRoKEdyYXBo
aWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0
LCBjb25zdCBQYXRoJiBib3JkZXJQYXRoLCBjb25zdCBCb3JkZXJFZGdlIGVkZ2VzW10sCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAko
cmV2aXNpb24gMTM0NjAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDggQEAgdHlwZWRlZiB1bnNp
Z25lZCBCb3JkZXJFZGdlRmxhZ3M7CiBlbnVtIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSB7CiAg
ICAgQmFja2dyb3VuZEJsZWVkTm9uZSwKICAgICBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3Jv
dW5kLAotICAgIEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyCisgICAgQmFja2dy
b3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgQmFja2dyb3VuZEJsZWVkQmFja2dy
b3VuZE92ZXJCb3JkZXIKIH07CiAKIGVudW0gQ29udGVudENoYW5nZVR5cGUgewpAQCAtMTUxLDcg
KzE1Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgTmlu
ZVBpZWNlSW1hZ2UmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIpOwog
ICAgIHZvaWQgcGFpbnRCb3hTaGFkb3coY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVj
dCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgU2hhZG93U3R5bGUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKICAg
ICB2b2lkIHBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29s
b3ImLCBjb25zdCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KiA9IDAsIGNvbnN0IExheW91dFNpemUmID0gTGF5b3V0
U2l6ZSgpLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlck9i
amVjdCogYmFja2dyb3VuZE9iamVjdCA9IDApOwotICAgIAorCiAgICAgdmlydHVhbCBib29sIGJv
eFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UsIElubGluZUZsb3dCb3gqID0gMCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1
YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4K
QEAgLTIzMyw2ICsyMzQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBnZXRCb3JkZXJFZGdlSW5m
byhjbGFzcyBCb3JkZXJFZGdlW10sIGNvbnN0IFJlbmRlclN0eWxlKiwgYm9vbCBpbmNsdWRlTG9n
aWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUp
IGNvbnN0OwogICAgIGJvb2wgYm9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kRWRnZShjb25zdCBGbG9h
dFNpemUmIGNvbnRleHRTY2FsZSkgY29uc3Q7CiAgICAgYm9vbCBib3JkZXJPYnNjdXJlc0JhY2tn
cm91bmQoKSBjb25zdDsKKyAgICBSb3VuZGVkUmVjdCBiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1
c3RlZEZvckJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3Qm
LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqLCBjb25zdCBMYXlvdXRT
aXplJiwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmln
aHRFZGdlKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9y
QmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tn
cm91bmRCbGVlZEF2b2lkYW5jZSkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFBhaW50QXRMb3dR
dWFsaXR5KEdyYXBoaWNzQ29udGV4dCosIEltYWdlKiwgY29uc3Qgdm9pZCosIGNvbnN0IExheW91
dFNpemUmKTsKIApAQCAtMjg1LDcgKzI4OCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBjYWxj
dWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSosIGNvbnN0IEludFNpemUm
IHNjYWxlZFBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QpIGNv
bnN0OwogCiAgICAgUm91bmRlZFJlY3QgZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGNvbnN0IExh
eW91dFJlY3QmLCBJbmxpbmVGbG93Qm94KiwgTGF5b3V0VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5
b3V0VW5pdCBpbmxpbmVCb3hIZWlnaHQsCi0gICAgICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0
RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAgICAgIGJvb2wgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3Q7CiAK
IAogICAgIHZvaWQgY2xpcEJvcmRlclNpZGVQb2x5Z29uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVy
LApAQCAtMjk0LDExICsyOTcsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50T25lQm9yZGVy
U2lkZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5kZWRS
ZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzaWRlUmVjdCwgQm94U2lk
ZSwgQm94U2lkZSBhZGphY2VudFNpZGUxLCBCb3hTaWRlIGFkamFjZW50U2lkZTIsIGNvbnN0IGNs
YXNzIEJvcmRlckVkZ2VbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
UGF0aCosIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3Qg
Q29sb3IqIG92ZXJyaWRlQ29sb3IgPSAwKTsKLSAgICB2b2lkIHBhaW50VHJhbnNsdWNlbnRCb3Jk
ZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAorICAg
IHZvaWQgcGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IFJlbmRlclN0eWxlKiwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3Vu
ZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzIEJvcmRlckVkZ2VbXSwg
QmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOwogICAg
IHZvaWQgcGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHls
ZSosIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlu
bmVyQm9yZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGFzcyBCb3JkZXJF
ZGdlW10sIEJvcmRlckVkZ2VGbGFncywgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UsIGNvbnN0IENvbG9y
KiBvdmVycmlkZUNvbG9yID0gMCk7CisgICAgICAgIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRl
ckFkanVzdG1lbnQsIGNvbnN0IGNsYXNzIEJvcmRlckVkZ2VbXSwgQm9yZGVyRWRnZUZsYWdzLCBC
YWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsCisgICAgICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0
RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMgPSBmYWxz
ZSwgY29uc3QgQ29sb3IqIG92ZXJyaWRlQ29sb3IgPSAwKTsKICAgICB2b2lkIGRyYXdCb3hTaWRl
RnJvbVBhdGgoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFBhdGgm
LCBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgdGhpY2tuZXNzLCBmbG9hdCBkcmF3VGhpY2tuZXNzLCBCb3hTaWRlLCBjb25zdCBSZW5k
ZXJTdHlsZSosIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLCBFQm9yZGVyU3R5
bGUsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDYw
MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTExLTEyICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAg
ICAgICAgQm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9v
IHNsb3cgdG8gZHJhdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIE5ldyB0ZXN0IHRoYXQgcHVycG9zZWx5IHRyaWdnZXJzIHRoZSBCYWNrZ3JvdW5kT3ZlckJv
cmRlciBwYWludGluZyBwYXRoCisgICAgICAgIGluIFdlYkNvcmU6OlJlbmRlckJveCwgdG8gdGVz
dCBpdCB3aXRoIHRoaWNrIGJvcmRlcnMsIG9mZi1kaWFnb25hbAorICAgICAgICBtaXRyaW5nLCBh
biBhbnRpLWFsaWFzZWQgcm91bmRlZCBib3JkZXIgd2VkZ2UsIGFuZCBhIGJvcmRlciBvZiB3aWR0
aCAwLgorCisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXIt
MDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lk
ZS1ib3JkZXItMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3Jk
ZXItMDUtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOiBBZGRlZCBFeHBlY3RhdGlvbnMuCisgICAgICAg
IEFkZGVkIGV4cGVjdGF0aW9ucyBmb3IgdGVzdHMgcGl4ZWxzIHJlc3VsdHMgdGhhdCByZXF1aXJl
IHJlYmFzZWxpbmluZworCiAyMDEyLTExLTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZml4IGZvciByMTM0NTkzLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXIt
MDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9i
b3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMjApIHNpemUgNzg0eDU2MAorICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAweDIwMCBbYmdjb2xvcj0jMDA4
MDAwXSBbYm9yZGVyOiAoMTBweCBzb2xpZCAjRkYwMDAwKSBub25lICgxMHB4IHNvbGlkICNGRjAw
MDApICgzNnB4IHNvbGlkICMwMDAwRkYpXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJz
L2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1i
b3JkZXItMDUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPHN0eWxlPgorICAg
IGRpdiN0IHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgICAgICBib3JkZXI6IDIwcHggc29saWQgcmdiYSgyNTUsMCwwLDEpOworICAgICAgICBib3Jk
ZXItcmFkaXVzOiAxMDBweDsKKyAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsK
KyAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4OworICAgICAgICBib3JkZXIt
bGVmdC1jb2xvcjogcmdiYSgwLDAsMjU1LDEpOworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKyAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICAgICAgbWFyZ2luOiAy
MHB4OworICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAxMHB4OworICAgICAgICBib3JkZXItYm90
dG9tLXdpZHRoOiAxMHB4OworICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMzZweDsKKyAgICAg
ICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxkaXYgaWQ9InQi
PjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvYm9y
ZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnBuZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10
eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMt
d2lkZS1ib3JkZXItMDUtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5
cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFCa09HSTVNV0ptClpq
YzRPRFEwTVRsbFpEVXpaakJoWldWaFkyWTNaRE0yTUprUEhuVUFBQllJU1VSQlZIaWM3ZDFOaUYz
bmVjRHg1enFCamhmeG5RbUYKS0UyYW1YRnA3QVFTWFdVUko0Vm83c1NMbEZKN0pJVmlLREVhQ1VP
N01SNHJtMUpLSkRudExsaFMzRVc3Q0pxSnN6QzBXRE5Ob1U0Qwo4aWhKYTNVVGpaelNxQzN4VEV4
TEJJWGVTUmJ0UU1Dbmk1RS9KSTgwSDNyT3g3MzM5MXNJTkI2Zjh5eTArUE9lOTd5blZSUkZBQUNR
CjU1NjZCd0FBR0RRQ0N3QWdtY0FDQUVnbXNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklK
TEFDQVpBSUxBQ0Nad0FJQVNDYXcKQUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtc0FBQWtna3NBSUJr
QWdzQUlKbkFBZ0JJOXQ2NkJ4aFl4Zkp5Uk1UbW56LzdXYXl1YnY2OApkZWxTWFNQMXZhS29ld0lB
MkJHQmxhRG85ZUxxMVZoZTNneXB6WVJxMVQwVkFGQVhnYlZIeGNwS1hMb1V5OHV4c3RKYVc2dDdI
QUNnClFRVFdMaFJyYTdHMEZNdkxyY1ZGQzFRQXdPMElyTzBWeTh1eHVCaExTMWFxQUlDZEVGaTNW
YXlzeFB5OHJnSUFka3RnM2FwWVc0dUYKaFppZjExVUF3TjRJckxjVmk0dXhzTkJhWEt4N0VBQ2d2
d21zS0hxOStPWTM0K3haUzFZQVFJcWhEcXdiVHdQUG5tMnRyOWM5Q3dBdwpPSVkwc0lwZUw3Nys5
ZGFwVTlYY2JtVmZYUDFBckk3RjhzVGJQN3cwY1p2ZjVqYWM0dzVBdnhpNndOcE1xN0pYcmRaR1kr
bUJXTmtYClZ6NFlWL2VWZHg4QW9JbUdLN0NLMDZkTFRhdmVTSHh6ZjV3L0lLb0FZS2dOUzJEOTk5
Ky84dXRQL21GSjI5aDdJL0YzRDhUaWc3SDQKc1RJdUR3RDBtY0VQckxXMTR0aXhXRjcrN0dqN3A5
Mkhyay85MmlzelAzMTI4ci8rS2VYaXZaSDQra054OWpPeGZtL0s5UUNBUWRBcQppa0hlT256NmRI
SDJiS3l2My9ybHdJa1AvMnJtL2g5UGJidzBkZTJ2My8vTDEvZHdaV2xWdmVMa0lQOWJCV0NRREd4
Z3Jhd1V4NC9ICmxTdmJmNVI1YW4vdlVQdmkxTTlmT1BBZmY3dkRpNTk3S0U1MXBWWFZCQllBL1dJ
d0ErdjA2ZUxVcWUzVDZoYWo3VGNPZmVLblU4WEwKai83NEwyNjNyTFUyR3NkbVlubnlya2RrOXdR
V0FQMWkwQUpyYmEwNGNtUkhDMWQzdHYrai85dmRkMjFtZlg3NjFlZmUrcUdGcTNvSgpMQUQ2eFVB
RjFzSkNNVGUzeFk2cnV6SGFmcVA3NFBWUHRKZStOLzRubHovMHk4UXJzMXNDQzRCK01UaHZFUjQv
WHB3L241bFdtOVovCmNjL2l4dmNXdTM4YTk2b3JBR0JIQmlHd3NoNExidTBMSitLelowcTVNZ0F3
b1BvK3NKYVhpOE9Ia3g4TDNqRFNpeTk4T1E2Y3o3OHkKQUREUStqdXdGaGFLMmRseUZxNUdlbkgw
NGZqZ2xWSXVEZ0FNdEh2cUhtRHZUcHdvcmE3MnJjUWZmVXBkQVFCNzA1Y3JXTDFlOGVVdgpSeGxi
MmlNaTlxM0UwZW00dDZ3UFFnTUFBNi8vQXF2WEt4NSt1TFF0N1NPOWVPeUl1Z0lBN2thZlBTSXN2
YTZPUGh4anE2VmNIQUFZCkd2MFVXRlhVbFgxWEFNQmQ2NXZBVWxjQVFML29qOEFxdDY0aTR0RW4x
QlVBa0tVUEFxdjB1cHA2Smo3K1lsa1hCd0NHVHg4RVZybDEKTmJFYzB5Zkx1amdBTUpTYUhsakhq
eGNsMXRYb2FqeDJ1S3lMQXdERHF0R0JkZUpFVWRacG9wc2UrNklqcndDQWRNME5ySVdGNHN5WgpN
dXRxNXJpTjdRQkFHUm9hV012THBYMW5jTk1EUzNIZ2ZJblhCd0NHV0JNRGEzVzFPRnpxenFpUlho
eWFMZk1HQU1CUWEySmdmZkdMCnNiNWU1dkxWbzAvWWVnVUFsS2R4Z1ZYdWE0TVI4Y0NTVTY4QWdG
STFLN0FXRmtwK2JYQ2tGNy83ZEluWEJ3Qm9WR0N0cmhaemN5WGYKWStxck1iWmE4ajBBZ0dIWG9N
QXFmZXZWeEhKODlreUoxd2NBaUlqbUJOWXp6NVM4OVNvaVpvNlhlMzBBZ0lob1NHQ3RyQlFuVDVa
YwpWL3NYUEJ3RUFLclJpTUE2WHZiUzBrZ3Z1cWRMdmdjQXdBMzFCMVlWRHdjZmVzN3lGUUJRbVpv
RGEzVzFPRlAydnZPUlhuekczbllBCm9EbzFCOVlUVDVUODVtQkVQUFNjYzlzQmdDclZHVmhMUzhY
Rml5WFgxZWhxVEo4czl4WUFBRGVyTTdDZXJ1Qk05WU4vWHY0OUFBQnUKVWx0Z1BmTk1zYnBhOHZM
VlNDOCs1ck9EQUVEVjZnbXNYcS84dmUwUnNmOTV1NjhBZ09yVkUxalBQVmYrM3ZhSStNelowbThC
QVBBdQpOUVJXUmN0WER5NDYrd29BcUVVTmdWWFI4dFdubnl2OUZnQUFXMmtWUlZIbC9WWlhpL3Z2
TDcrdTlsMkpQLzVVNlhlaFdzWEpTdit0CkFzQ2VWYjJDOWZ6emxkem0wMzlaeVcwQUFMWlFhV0JW
dFBzcXd1a01BRUNOS2cyczU1K3ZaUGZWZzR0T1p3QUFhbFJwWUoydDV0aUUKajM2N2t0c0FBR3l0
dXNCYVhDei82UFpObmc4Q0FMV3FMckFxMnQ3dStTQUFVTGVLQW10MXRYanh4VXFXcnp3ZkJBRHFW
bEZnVmJSOApGWjRQQWdEMXF5aXc1dWNydVkzbmd3QkFBMVFSV0ZldVZMVzkvU00vcU9JdUFBQjNW
RVZnZmV0YkZkd2tJaUltbHF1NkV3REFiVlVSCldCY3VWSENUaUpGZS9NYVBLcmtUQU1DZGxCNVkx
UjEvTlhHcGlyc0FBR3luOU1ENlFXWGJvaHpRQUFBMFErbUJWZEh6d1lpWWZMbXEKT3dFQTNFbTVn
Ylc2V3RYendkSFZHRnV0NGtZQUFOc3BON0MrWGRsVHUvSHZWM1VuQUlCdGxCdFlseXJiZDk1K3Zh
bzdBUUJzbzl6QQpxdWo3ZytFRUxBQ2dRVW9NckN0WGl2SXVmaXNic0FDQXhpZ3hzS283b0NFRUZn
RFFJQ1VHVm5VYnNDWWMwQUFBTkVpcGp3akx1L2JOCjdIQUhBSnFrck1EcTlhbzZBU3NpUHZCcVJU
Y0NBTmlCc2dKclphV2tDMjlsWDVVM0F3RFlSbG1COWNNZmxuVGhyZGpoRGdBMFNWbUIKdGJaVzBv
VzNJckFBZ0NZWmlNQUNBR2lTc2dMcjRzWEt6bkIzUmdNQTBDemxmaW9IQUdBSWxSSllMNzljNFVk
eUhJSUZBRFJNLzY5ZwpDU3dBb0dGS0NheEt6MmdBQUdpWS9sL0JtbGl1ZXdJQWdKdVVFbGpPYUFB
QWhwbkFBZ0JJMXYrUENBRUFHa1pnQVFBa0t5V3dxanZHCkhRQ2dlZnAvQmV2K2kzVlBBQUJ3ay80
UExBQ0FoaEZZQUFESkJCWUFRREtCQlFDUVRHQUJBQ1FUV1BTSGlWN2RFd0RBamdrcytzUDkKQWd1
QS9pR3c2QlB2ZVUvZEV3REFUZ2tzK3NSOTk5VTlBUURzbE1BQ0FFZ21zT2dQRXhzamRZOEFBRHNs
c09nUDQyT1RkWThBQURzbApzT2dUSTFhd0FPZ2JBb3YrOEluV0Irb2VBUUIyU21EUkg4WTczYnBI
QUlDZEVsajBod1B2KysyNlJ3Q0FuUkpZOUlHSlhyU21wK3VlCkFnQjJTbURSQjN3bkI0RCtJckRv
QTFNdFp6UUEwRThFRm4zZ0krLzdjTjBqQU1BdUNDejZ3RWNtOXRjOUFnRHNnc0NpRDB4LzZramQK
SXdEQUxnZ3NtdTd6cjBWME9uVlBBUUM3SUxCb3VxbjEwZGJZV04xVEFNQXVDQ3lhN3ZjL09GWDND
QUN3T3dLTFJtdHZ4SUdQZjc3dQpLUUJnZHdRV2pmYndheEdmKzF6ZFV3REE3Z2dzR3UyUjErOXRI
VGhROXhRQXNEc0NpMFk3T0g2dzdoRUFZTmNFRnMwMTBZdkozL205CnVxY0FnRjBUV0RUWDA1Y2pI
bm1rN2lrQVlOY0VGczMxcGYvNXpkYWt6endEMEg4RUZnMTEvRWN4OXNnZjFEMEZBT3lGd0tLaEhu
ODEKNGt0ZnFuc0tBTmdMZ1VVVFRmUmlLaVljMEFCQW54SllOTkd4bFlnalIrcWVBZ0QyU0dEUlJJ
OWY5WHdRZ0Q0bXNHaWNJLzhhRTZPZQpEd0xReHdRV2pmTzE3MFljTzFiM0ZBQ3dkd0tMWmpuK281
aGNqM2o4OGJvSEFZQzlFMWcweTU5OVA0b2pSNXd2Q2tCZkUxZzBpT1VyCkFBYUR3S0lwMmh2eHRl
OUdNVEhST25Tbzdsa0E0SzRJTEpyaXhDc3h0aEZ4NmxUZGd3REEzUkpZTkVKN0k1Nzg1eWphN1hq
MDBicG4KQVlDN0piQm9oTk12eDloR3hJa1RyYkd4dW1jQmdMc2xzS2pmOUdvOHRibDg5ZVNUZGM4
Q0FBa0VGalZyYjhRM2xpTEM4aFVBZzBOZwpVYlBUTDhma3V1VXJBQWFLd0tKT213OEhJeXhmQVRC
UUJCYTFlZXZob09VckFBYU13S0kyNS80aEp0Y2pJdUwwYWN0WEFBd1NnVVU5CkR2OGtqbDZOaUNn
bUpscFBQVlgzT0FDUVNXQlJnODdQMzN4ek1DTE9uNjl6RkFBb2djQ2lhdTJOT0w4VVl4c1JFY1gw
ZEt2YnJYa2cKQU1nbXNLamE0Z3ZSdVI2eHViZjlHOStvZXh3QXlDZXdxTlQ4aGVpdXZmbVhFeWRh
azVNMURnTUFKUkZZVk9mcFYyNXNiSStJb3ROcApmZVVydFk0REFHVVJXRlRrOEUvaTJlKzg0Ky8y
dGdNd3VBUVdWYmpwdGNHSTR2VHBWcWRUM3pnQVVDNkJSZW5lK2RwZ2JMNDU2T0VnCkFBTk5ZRkd1
OWtZc3o5OTRiVEM4T1FqQWNCQllsT2lXdW9xSU9IZk9tNE1BRER5QlJWbmVYVmZGN0d6cjZOSDZK
Z0tBaWdnc1NyRkYKWFhVNkxXOE9BakFjQkJiNXRxaXJkanRlZkxHK2lRQ2dVZ0tMWk9Qcjc5cDNG
UkdMaTdaZUFUQTgzbHYzQUF5VTJTdHhmdW5XSHhiego4NzdvRE1CUUVWaWtPZk5TekYyKzlZZkYw
MC9iMkE3QXNCRllKR2h2eE9JTDcvaUs4NXVLMmRuV3M4L1dNQkFBMUVwZ2NiYzZQNC96ClMrL2Fk
T1cxUVFDR21NRGlya3l0eFlVWDN2NE16bHVLVGljdVhxeGpJZ0NvbjhCaTcrWmVpVFBmMmVMbm0z
WFZHaHVyZkNJQWFBU0IKeFY2TXI4Zjg0aGFicmtKZEFZREFZZzltcnNYNXhTMGVDNGE2QW9DSUVG
anNTbnNqRmk3RXpMOXQvVi9WRlFCc0VsanMxQjBXcmtKZApBY0E3Q0N5MmQrZUZxOWc4NzhxSkRB
RHdKb0hGTm82dXhKbVhicnR3RlJIRjNGenJ6SmtLSndLQXBoTlkzTmJVV3N3dnhzVDZuWDZuCm1K
LzNKUndBdUlYQVlndFRhM0ZxZWV0VEdONVN0TnV4dU9ncnpnRHdiZ0tMbTR5dng2bmxtRjNaNXRl
S1RpY3VYR2hOVEZReEV3RDAKRzRIRkRlUHJNWGM1NWk1di81dTJ0QVBBblFrc1ltb3RabGUyWDdX
S3pjZUM1ODdaZEFVQWR5YXdodHJSbFppN0hKM3JPL3JsWW1vcQo1dWM5RmdTQWJRbXNZVFMrSHJN
cjhkVGxPeDIrY0l2aTVNbldxVk1semdRQUEwUmdEWmVaYTNIbzJvNmVCcjZsNkhUaS9QbFdwMVBh
ClVBQXdhQVRXNEd0dnhLRnJNWE10dW11N1dMS0t6UjFYYzNNV3JnQmd0d1RXd0hxcnF3NWYyOHYv
YnNjVkFPeVp3Qm9vN1kzb3JzWCsKNjNINDJrNjNycjliTVQ0ZTgvTk9FQVdBUFJOWWZlL2dXblN1
eDRIcjBWM2I1ck0yMi9KTUVBQlNDS3grMHQ2SS9kZGo3QjEvVHEvbApYSGt6cmVLcHAxcGpZemxY
QklBaEpyQ2E0dURhclQvcFhJL1JqYmR6YXMrUC9PNU1XZ0ZBdWxaUkZQa1hiYVZmOGlidCs5N29Q
bmg5CmF1VHlvZGVlbmZ6UGZ5ejNab05MV2dGQVNmb3BzRDc1MGYvcjdyczI4NHVGejE4OVY4b05o
a1l4UGg2blRzWE1qTFFDZ0RJMFBiRGEKOTcxeDZKT3ZUY1h5ekt0ZmZmOHZYMCs3N3JBcVptYmk2
TkhXNGNOMUR3SUFnNnloZ1hWdy8vcWg5c1h1OVJjTy9QdmZaRXcwN0lyeAo4WmlkamRsWjUxb0JR
QVVhRkZqakgvclZ6Ry85eTlUR1M5MXJmMld4S2tVeFBoNHpNM0hzbUEvZEFFQ1ZhZzRzMjlYTG9L
c0FvRjcxCkJKYnQ2dW1LZGp1NjNlaDI0OUFoendFQm9GN1ZCWmJ0NnVtSzhmSG9kcVBUaVc3WFlo
VUFORWZwZ1dXN2VxTGk0TUdZbkl4T0ovYnYKajA3SElRc0EwRXlsQk5iRWgyMVgzNHVpM1k3OSsy
LzhwZE9KMGRHSWlHNDNJbHJUMDdXTkJRRHNVaW1CQlFBd3pPNnBld0FBZ0VFagpzQUFBa2drc0FJ
QmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dB
Z21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJ
QVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJB
QUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2dr
c0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FD
Q3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Na
d0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJ
SnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFB
a2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0Fn
R1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxB
Q0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFB
Z0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpz
QUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NT
d0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpB
SUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlK
bkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVn
bQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFD
U0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFD
QVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdz
QUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FD
QUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3
QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklK
TEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJr
QWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdt
Y0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFT
Q2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFB
SklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NB
SUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3
QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndB
SUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpy
QUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtn
a3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dR
Q0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUND
WndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdC
SUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FB
QWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dB
Z0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlM
QUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5B
QWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20K
c0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1ND
U3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0Fa
QUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJ
Sm5BQWdCSUpyQUFBSklKTEFDQVpQOFB2d3Y4VE90Zi9Ea0FBQUFBU1VWT1JLNUNZSUk9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174189</attachid>
            <date>2012-11-14 10:13:43 -0800</date>
            <delta_ts>2012-11-14 10:47:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101974-20121114131141.patch</filename>
            <type>text/plain</type>
            <size>37641</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDYyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTEyICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgQm94ZXMgd2l0aCByb3VuZGVk
IGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cgdG8gZHJhdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFdpdGggdGhlIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24gUmVuZGVyQm94OjoKKyAgICAgICAgZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlKCkgdXNlcyB0aGUgc2xvdyBwYXRoCisgICAgICAgIEJhY2tncm91bmRCbGVlZFVz
ZVRyYW5zcGFyZW5jeUxheWVyIGZvciBzb21lIHZlcnkgY29tbW9uIHVzZSBjYXNlcywKKyAgICAg
ICAgbm90YWJseSBmb3IgZHJhd2luZyByZWN0YW5nbGVzIHdpdGggcm91bmRlZCBjb3JuZXJzIHRo
YXQgaGF2ZSB0aGluCisgICAgICAgIGJvcmRlcnMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgQmFja2dy
b3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZAorICAgICAgICBzdHJhdGVneSByZXF1aXJlcyBhIGJv
cmRlciBhdCBsZWFzdCB0d28gcGl4ZWxzIHdpZGUgb24gYWxsIHNpZGVzLiBUaGlzCisgICAgICAg
IHBhdGNoIGludHJvZHVjZSBkcmF3aW5nIHN0cmF0ZWd5IEJhY2tncm91bmRCbGVlZEJhY2tncm91
bmRPdmVyQm9yZGVyLgorICAgICAgICBUaGlzIGFwcHJvYWNoIGNvbnNpc3RzIGluIGRyYXdpbmcg
dGhlIGJvcmRlciBmaXJzdCwgd2l0aCBhbiBpbnNldCBpbm5lcgorICAgICAgICBlZGdlIChmb3Ig
YW50aS1hbGlhc2VkIGNvbXBvc2l0aW5nIHRvIHdvcmsgd2VsbCkuICBUaGlzIGFwcHJvYWNoIG9u
bHkKKyAgICAgICAgd29ya3Mgd2l0aCBvcGFxdWUgc29saWQgZWRnZXMgYW5kIG9wYXF1ZSBzaW5n
bGUtbGF5ZXIgYmFja2dyb3VuZHMuCisgICAgICAgIEJ5IHVzaW5nIHRoaXMgYXBwcm9hY2ggcmF0
aGVyIHRoYW4gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgICAgIHdl
IHNhdmUgdHdvIGNsaXBQYXRoLCBvbmUgc2F2ZSBhbmQgb25lIHNhdmVMYXllciBvbiB0aGUKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0LiBUaGlzIHBhdGNoIGdldHMgZ29vZCBjb3ZlcmFnZSBmcm9t
IGV4aXN0aW5nIGxheW91dAorICAgICAgICB0ZXN0cy4gT25lIGFkZGl0aW9uYWwgdGVzdCB3YXMg
YWRkZWQgdG8gZXhlcmNpc2UgbWl0cmluZywgdGhpY2sgZWRnZXMKKyAgICAgICAgYW5kIGFudGkt
YWxpYXNpbmcgZWRnZSBjYXNlcyB1bmRlciB0aGUgbmV3IHBhaW50aW5nIGFsZ29yaXRobS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6ZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlKToKKyAgICAg
ICAgQWRkZWQgc2VsZWN0aW9uIGNyaXRlcmlhIGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlcgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAg
QWRkZWQgYSBwcmVsaW1pbmFyeSBwYWludEJvcmRlciBwYXNzIGZvciBCYWNrZ3JvdW5kT3ZlckJv
cmRlcgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQpOgorICAg
ICAgICBJbnNldHRpbmcgdGhlIGJhY2tncm91bmQgdG8gdG8gaW5uZXJCb3JkZXIgd2hlbiBibGVl
ZEF2b2lkYW5jZSBpcworICAgICAgICBCYWNrZ3JvdW5kT3ZlckJvcmRlci4gIFRoaXMgd2h5IEJh
Y2tncm91bmRPdmVyQm9yZGVyIG9ubHkgd29ya3MgZm9yCisgICAgICAgIE9wYXF1ZSBzb2xpZCBl
ZGdlcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpi
YWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcik6CisgICAgICAgIFV0aWxpdHkgbWV0aG9kIHVz
ZSBieSBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgdG8gdGVzdCB0aGUKKyAgICAg
ICAgYmFja2dyb3VuZCdzIGVsaWdpYmlsaXR5IGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlciBibGVl
ZCBhdm9pZGFuY2UKKyAgICAgICAgc3RyYXRlZ3kuICBUaGUgcmVhc29uIHRoZSBiYWNrZ3JvdW5k
IG11c3QgYmUgYSBzaW5nbGUgbGF5ZXIgaXMgdG8gYXZvaWQKKyAgICAgICAgY29sb3IgYmxlZWRp
bmcgZnJvbSBsYXllciBjb21wb3NpdGluZyBhbG9uZyBhbnRpLWFsaWFzZWQgZWRnZXMKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3Vu
ZE92ZXJCb3JkZXIgYnkgYXBwbHlpbmcgYSBvbmUgcGl4ZWwgaW5zZXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRG
b3JCbGVlZEF2b2lkYW5jZSk6CisgICAgICAgIFNldCB0aGUgYmFja2dyb3VuZCByZWN0IHRvIHRo
ZSBpbm5lciBib3JkZXIgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXll
ckV4dGVuZGVkKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJCb3Jk
ZXIgYnkgdXNpbmcgCisgICAgICAgIGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxl
ZWRBdm9pZGFuY2UKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlclNpZGVzKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJC
b3JkZXIgYnkgYXBwbHlpbmcgcGVyLXNpZGUgaW5zZXQKKyAgICAgICAgYWRqdXN0bWVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJv
cmRlclNpZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlcik6CisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVy
IGJ5IHVzaW5nIGFuIGFkanVzdGVkIGlubmVyCisgICAgICAgIGJvcmRlciwgYnV0IG5vdCBpZiBz
aWRlcyBhcmUgcGFpbnRlZCBpbmRpdmlkdWFsbHkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6CisKIDIw
MTItMTEtMTQgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBVc2UgYSBub2RlIGltYWdlIGlmIHRoZXJlIGlzIG5vIGRyYWcgaW1hZ2Ugc2V0
IGZvciBEcmFnJkRyb3AKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CShyZXZpc2lvbiAxMzQ2MjIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMwLDExICs4MzAsOCBAQCBCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UgUmVuZGVyQm94OjpkZXRlCiAgICAgRmxvYXRTaXplIGNvbnRleHRTY2FsaW5nKHN0
YXRpY19jYXN0PGZsb2F0PihjdG0ueFNjYWxlKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oY3RtLnlT
Y2FsZSgpKSk7CiAgICAgaWYgKGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2UoY29udGV4dFNj
YWxpbmcpKQogICAgICAgICByZXR1cm4gQmFja2dyb3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZDsK
LSAgICAKLSAgICAvLyBGSVhNRTogdGhlcmUgaXMgb25lIG1vcmUgc3RyYXRlZ3kgcG9zc2libGUs
IGZvciBvcGFxdWUgYmFja2dyb3VuZHMgYW5kCi0gICAgLy8gdHJhbnNsdWNlbnQgYm9yZGVycy4g
SW4gdGhhdCBjYXNlIHdlIGNvdWxkIGF2b2lkIHVzaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyLAot
ICAgIC8vIGFuZCBwYWludCB0aGUgYm9yZGVyIGZpcnN0LCBhbmQgdGhlbiBwYWludCB0aGUgYmFj
a2dyb3VuZCBjbGlwcGVkIHRvIHRoZQotICAgIC8vIGluc2lkZSBvZiB0aGUgYm9yZGVyLgorICAg
IGlmICghc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSAmJiBib3JkZXJPYnNjdXJlc0JhY2tncm91bmQo
KSAmJiBiYWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcigpKQorICAgICAgICByZXR1cm4gQmFj
a2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXI7CiAKICAgICByZXR1cm4gQmFja2dyb3Vu
ZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXI7CiB9CkBAIC04NjgsMTIgKzg2NSwxNSBAQCB2b2lk
IFJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWluCiAgICAgICAgIHBhaW50SW5mby5j
b250ZXh0LT5hZGRSb3VuZGVkUmVjdENsaXAoYm9yZGVyKTsKICAgICAgICAgcGFpbnRJbmZvLmNv
bnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7CiAgICAgfQotICAgIAorCiAgICAgLy8g
SWYgd2UgaGF2ZSBhIG5hdGl2ZSB0aGVtZSBhcHBlYXJhbmNlLCBwYWludCB0aGF0IGJlZm9yZSBw
YWludGluZyBvdXIgYmFja2dyb3VuZC4KICAgICAvLyBUaGUgdGhlbWUgd2lsbCB0ZWxsIHVzIHdo
ZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50IHRoZSBDU1MgYmFja2dyb3VuZC4KICAg
ICBJbnRSZWN0IHNuYXBwZWRQYWludFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChwYWludFJlY3Qp
KTsKICAgICBib29sIHRoZW1lUGFpbnRlZCA9IHN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSAmJiAh
dGhlbWUoKS0+cGFpbnQodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KTsKICAgICBp
ZiAoIXRoZW1lUGFpbnRlZCkgeworICAgICAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dy
b3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpCisgICAgICAgICAgICBwYWludEJvcmRlcihw
YWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOworCiAgICAgICAg
IHBhaW50QmFja2dyb3VuZChwYWludEluZm8sIHBhaW50UmVjdCwgYmxlZWRBdm9pZGFuY2UpOwog
CiAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCkBAIC04ODIsNyArODgyLDcg
QEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbgogICAgIHBhaW50Qm94
U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBJbnNldCk7CiAKICAgICAvLyBU
aGUgdGhlbWUgd2lsbCB0ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50
IHRoZSBDU1MgYm9yZGVyLgotICAgIGlmICgoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSB8fCAo
IXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLT5wYWludEJvcmRlck9ubHkodGhpcywgcGFpbnRJbmZv
LCBzbmFwcGVkUGFpbnRSZWN0KSkpICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQorICAgIGlmIChi
bGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3ZlckJvcmRlciAmJiAo
IXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLT5w
YWludEJvcmRlck9ubHkodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KSkpICYmIHN0
eWxlKCktPmhhc0JvcmRlcigpKQogICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8sIHBhaW50
UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwogCiAgICAgaWYgKGJsZWVkQXZvaWRhbmNl
ID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQpAQCAtOTAzLDYgKzkwMywy
NSBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCYWNrZ3JvdW5kKGNvbnN0IFBhCiAgICAgfQogfQog
Citib29sIFJlbmRlckJveDo6YmFja2dyb3VuZElzU2luZ2xlT3BhcXVlTGF5ZXIoKSBjb25zdAor
eworICAgIGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyID0gc3R5bGUoKS0+YmFja2dyb3VuZExh
eWVycygpOworICAgIGlmICghZmlsbExheWVyIHx8IGZpbGxMYXllci0+bmV4dCgpIHx8IGZpbGxM
YXllci0+Y2xpcCgpICE9IEJvcmRlckZpbGxCb3ggfHwgZmlsbExheWVyLT5jb21wb3NpdGUoKSAh
PSBDb21wb3NpdGVTb3VyY2VPdmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBD
bGlwcGVkIHdpdGggbG9jYWwgc2Nyb2xsaW5nCisgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpICYm
IGZpbGxMYXllci0+YXR0YWNobWVudCgpID09IExvY2FsQmFja2dyb3VuZEF0dGFjaG1lbnQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbG9yIGJnQ29sb3IgPSBzdHlsZSgpLT52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAgIGlmIChi
Z0NvbG9yLmlzVmFsaWQoKSAmJiBiZ0NvbG9yLmFscGhhKCkgPT0gMjU1KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBGSVhNRTogcmV0dXJuIHRydWUgaWYgYSBiYWNrZ3JvdW5k
IGltYWdlIGlzIHByZXNlbnQgYW5kIGlzIG9wYXF1ZQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFp
bnRXaXRoaW5Sb290KHRoaXMpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8
IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlTWFzayB8fCBwYWludEluZm8uY29udGV4dC0+
cGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAkocmV2aXNpb24gMTM0NjIyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzAsNiArNTcwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJlY3QmKTsK
IAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7CisgICAgYm9vbCBiYWNrZ3JvdW5kSXNT
aW5nbGVPcGFxdWVMYXllcigpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQg
cGFpbnRDdXN0b21IaWdobGlnaHQoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgYmVoaW5kVGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDYyMikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY0Nyw3ICs2NDcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0Ojpjb21wdXRlCiB9CiAKIFJvdW5kZWRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpnZXRC
YWNrZ3JvdW5kUm91bmRlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgSW5saW5l
Rmxvd0JveCogYm94LCBMYXlvdXRVbml0IGlubGluZUJveFdpZHRoLCBMYXlvdXRVbml0IGlubGlu
ZUJveEhlaWdodCwKLSAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVk
ZUxvZ2ljYWxSaWdodEVkZ2UpCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29s
IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAogewogICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSB2aWV3KCk7CiAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0gc3R5bGUoKS0+Z2V0Um91
bmRlZEJvcmRlckZvcihib3JkZXJSZWN0LCByZW5kZXJWaWV3LCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CkBAIC02OTEsMTcgKzY5MSwzMSBAQCB2b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpjbGlwUm91bmRlZEluCiAgICAgfQogfQogCi1zdGF0aWMg
TGF5b3V0UmVjdCBiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UpCitzdGF0aWMgTGF5b3V0UmVjdCBzaHJp
bmtSZWN0QnlPbmVQaXhlbChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJl
Y3QmIHJlY3QpCiB7Ci0gICAgaWYgKGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZFNo
cmlua0JhY2tncm91bmQpCi0gICAgICAgIHJldHVybiBib3JkZXJSZWN0OwotCi0gICAgLy8gV2Ug
c2hyaW5rIHRoZSByZWN0YW5nbGUgYnkgb25lIHBpeGVsIG9uIGVhY2ggc2lkZSBiZWNhdXNlIHRo
ZSBibGVlZCBpcyBvbmUgcGl4ZWwgbWF4aW11bS4KKyAgICBMYXlvdXRSZWN0IHNocnVua1JlY3Qg
PSByZWN0OwogICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBjb250ZXh0LT5nZXRDVE0o
KTsKLSAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGJvcmRlclJlY3Q7Ci0gICAgYWRqdXN0
ZWRSZWN0LmluZmxhdGVYKC1zdGF0aWNfY2FzdDxMYXlvdXRVbml0PihjZWlsKDEgLyB0cmFuc2Zv
cm0ueFNjYWxlKCkpKSk7Ci0gICAgYWRqdXN0ZWRSZWN0LmluZmxhdGVZKC1zdGF0aWNfY2FzdDxM
YXlvdXRVbml0PihjZWlsKDEgLyB0cmFuc2Zvcm0ueVNjYWxlKCkpKSk7Ci0gICAgcmV0dXJuIGFk
anVzdGVkUmVjdDsKKyAgICBzaHJ1bmtSZWN0LmluZmxhdGVYKC1zdGF0aWNfY2FzdDxMYXlvdXRV
bml0PihjZWlsKDEgLyB0cmFuc2Zvcm0ueFNjYWxlKCkpKSk7CisgICAgc2hydW5rUmVjdC5pbmZs
YXRlWSgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgxIC8gdHJhbnNmb3JtLnlTY2FsZSgp
KSkpOworICAgIHJldHVybiBzaHJ1bmtSZWN0OworfQorCitMYXlvdXRSZWN0IFJlbmRlckJveE1v
ZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlKSBjb25zdAoreworICAgIC8vIFdlIHNocmluayB0
aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBlYWNoIHNpZGUgdG8gbWFrZSBpdCBmdWxseSBv
dmVybGFwIHRoZSBhbnRpLWFsaWFzZWQgYmFja2dyb3VuZCBib3JkZXIKKyAgICByZXR1cm4gKGJs
ZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyKSA/IHNo
cmlua1JlY3RCeU9uZVBpeGVsKGNvbnRleHQsIHJlY3QpIDogcmVjdDsKK30KKworUm91bmRlZFJl
Y3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9y
QmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0
JiBib3JkZXJSZWN0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIElu
bGluZUZsb3dCb3gqIGJveCwgY29uc3QgTGF5b3V0U2l6ZSYgYm94U2l6ZSwgYm9vbCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAorewor
ICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5k
KSB7CisgICAgICAgIC8vIFdlIHNocmluayB0aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBl
YWNoIHNpZGUgYmVjYXVzZSB0aGUgYmxlZWQgaXMgb25lIHBpeGVsIG1heGltdW0uCisgICAgICAg
IHJldHVybiBnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3Qoc2hyaW5rUmVjdEJ5T25lUGl4ZWwoY29u
dGV4dCwgYm9yZGVyUmVjdCksIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdodCgp
LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAg
fQorICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3Zl
ckJvcmRlcikKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmdldFJvdW5kZWRJbm5lckJvcmRlckZv
cihib3JkZXJSZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0
RWRnZSk7CisKKyAgICByZXR1cm4gZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGJvcmRlclJlY3Qs
IGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdodCgpLCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFwcGx5
Qm94U2hhZG93Rm9yQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0
eWxlKiBzdHlsZSkKQEAgLTc3Myw3ICs3ODcsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludEZpbGxMYXllCiAgICAgICAgICAgICBhcHBseUJveFNoYWRvd0ZvckJhY2tncm91bmQo
Y29udGV4dCwgc3R5bGUoKSk7CiAKICAgICAgICAgaWYgKGhhc1JvdW5kZWRCb3JkZXIgJiYgYmxl
ZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsKLSAg
ICAgICAgICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChi
YWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVjdCwgYmxl
ZWRBdm9pZGFuY2UpLCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQoKSwgaW5j
bHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAgICAgICAgIFJvdW5kZWRSZWN0
IGJvcmRlciA9IGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2Uo
Y29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIGJveCwgYm94U2l6ZSwgaW5jbHVkZUxlZnRF
ZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVk
UmVjdChib3JkZXIsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChy
ZWN0KSwgYmdDb2xvciwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKQEAgLTc4NSw4ICs3OTksNyBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllCiAgICAgYm9vbCBjbGlw
VG9Cb3JkZXJSYWRpdXMgPSBoYXNSb3VuZGVkQm9yZGVyICYmICEoaXNCb3JkZXJGaWxsICYmIGJs
ZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKTsKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIGNsaXBUb0JvcmRlclN0YXRlU2F2ZXIoKmNvbnRl
eHQsIGNsaXBUb0JvcmRlclJhZGl1cyk7CiAgICAgaWYgKGNsaXBUb0JvcmRlclJhZGl1cykgewot
ICAgICAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGlzQm9yZGVyRmlsbCA/IGJhY2tncm91
bmRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVlZEF2b2lk
YW5jZSkgOiByZWN0OwotICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSBnZXRCYWNrZ3JvdW5k
Um91bmRlZFJlY3QoYWRqdXN0ZWRSZWN0LCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5o
ZWlnaHQoKSwgaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAgICAgUm91
bmRlZFJlY3QgYm9yZGVyID0gaXNCb3JkZXJGaWxsID8gYmFja2dyb3VuZFJvdW5kZWRSZWN0QWRq
dXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5jZSwgYm94
LCBib3hTaXplLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2UpIDogZ2V0QmFja2dy
b3VuZFJvdW5kZWRSZWN0KHJlY3QsIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdo
dCgpLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2UpOwogCiAgICAgICAgIC8vIENs
aXAgdG8gdGhlIHBhZGRpbmcgb3IgY29udGVudCBib3hlcyBhcyBuZWNlc3NhcnkuCiAgICAgICAg
IGlmIChiZ0xheWVyLT5jbGlwKCkgPT0gQ29udGVudEZpbGxCb3gpIHsKQEAgLTE3MjksOCArMTc0
Miw4IEBAIHN0YXRpYyBJbnRSZWN0IGNhbGN1bGF0ZVNpZGVSZWN0KGNvbnN0IFIKIH0KIAogdm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSb3VuZGVk
UmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyRWRnZSBl
ZGdlc1tdLCBCb3JkZXJFZGdlRmxhZ3MgZWRnZVNldCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
IGJsZWVkQXZvaWRhbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvcikKKyAgICBj
b25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBCb3JkZXJFZGdlIGVk
Z2VzW10sIEJvcmRlckVkZ2VGbGFncyBlZGdlU2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2Ug
YmxlZWRBdm9pZGFuY2UsCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3IqIG92ZXJy
aWRlQ29sb3IpCiB7CiAgICAgYm9vbCByZW5kZXJSYWRpaSA9IG91dGVyQm9yZGVyLmlzUm91bmRl
ZCgpOwogCkBAIC0xNzM4LDkgKzE3NTEsMTQgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRCb3JkZXJTaQogICAgIGlmIChyZW5kZXJSYWRpaSkKICAgICAgICAgcm91bmRlZFBhdGgu
YWRkUm91bmRlZFJlY3Qob3V0ZXJCb3JkZXIpOwogICAgIAorICAgIC8vIFRoZSBpbm5lciBib3Jk
ZXIgYWRqdXN0bWVudCBmb3IgYmxlZWQgYXZvaWRhbmNlIG1vZGUgQmFja2dyb3VuZEJsZWVkQmFj
a2dyb3VuZE92ZXJCb3JkZXIKKyAgICAvLyBpcyBvbmx5IGFwcGxpZWQgdG8gc2lkZVJlY3QsIHdo
aWNoIGlzIG9rYXkgc2luY2UgQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIKKyAg
ICAvLyBpcyBvbmx5IHRvIGJlIHVzZWQgZm9yIHNvbGlkIGJvcmRlcnMgYW5kIHRoZSBzaGFwZSBv
ZiB0aGUgYm9yZGVyIHBhaW50ZWQgYnkgZHJhd0JveFNpZGVGcm9tUGF0aAorICAgIC8vIG9ubHkg
ZGVwZW5kcyBvbiBzaWRlUmVjdCB3aGVuIHBhaW50aW5nIHNvbGlkIGJvcmRlcnMuCisKICAgICBp
ZiAoZWRnZXNbQlNUb3BdLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBC
U1RvcCkpIHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsK
LSAgICAgICAgc2lkZVJlY3Quc2V0SGVpZ2h0KGVkZ2VzW0JTVG9wXS53aWR0aCk7CisgICAgICAg
IHNpZGVSZWN0LnNldEhlaWdodChlZGdlc1tCU1RvcF0ud2lkdGggKyBpbm5lckJvcmRlckFkanVz
dG1lbnQueSgpKTsKIAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9y
ZGVyU3R5bGVIYXNJbm5lckRldGFpbChlZGdlc1tCU1RvcF0uc3R5bGUpIHx8IGJvcmRlcldpbGxB
cmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS50b3BMZWZ0KCksIGlubmVyQm9yZGVyLnJh
ZGlpKCkudG9wUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3ND
b250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNUb3As
IEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVl
ZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzQ4LDcgKzE3NjYsNyBAQCB2b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRnZXNbQlNC
b3R0b21dLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBCU0JvdHRvbSkp
IHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAg
ICAgc2lkZVJlY3Quc2hpZnRZRWRnZVRvKHNpZGVSZWN0Lm1heFkoKSAtIGVkZ2VzW0JTQm90dG9t
XS53aWR0aCk7CisgICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5tYXhZKCkg
LSBlZGdlc1tCU0JvdHRvbV0ud2lkdGggLSBpbm5lckJvcmRlckFkanVzdG1lbnQueSgpKTsKIAog
ICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVIYXNJbm5l
ckRldGFpbChlZGdlc1tCU0JvdHRvbV0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2Uo
aW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCkuYm90
dG9tUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3NDb250ZXh0
LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNCb3R0b20sIEJT
TGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2
b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Us
IGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzU2LDcgKzE3NzQsNyBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRnZXNbQlNMZWZ0
XS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNMZWZ0KSkgewogICAg
ICAgICBJbnRSZWN0IHNpZGVSZWN0ID0gb3V0ZXJCb3JkZXIucmVjdCgpOwotICAgICAgICBzaWRl
UmVjdC5zZXRXaWR0aChlZGdlc1tCU0xlZnRdLndpZHRoKTsKKyAgICAgICAgc2lkZVJlY3Quc2V0
V2lkdGgoZWRnZXNbQlNMZWZ0XS53aWR0aCArIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkpOwog
CiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lu
bmVyRGV0YWlsKGVkZ2VzW0JTTGVmdF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2Uo
aW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCkudG9w
TGVmdCgpKSk7CiAgICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0
eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU0xlZnQsIEJTVG9wLCBC
U0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5j
ZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlh
bGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzY0LDE0ICsxNzgyLDE0IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2kKIAogICAgIGlmIChlZGdlc1tCU1JpZ2h0XS5z
aG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNSaWdodCkpIHsKICAgICAg
ICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAgICAgc2lkZVJl
Y3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2VzW0JTUmlnaHRdLndpZHRoKTsK
KyAgICAgICAgc2lkZVJlY3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2VzW0JT
UmlnaHRdLndpZHRoIC0gaW5uZXJCb3JkZXJBZGp1c3RtZW50LngoKSk7CiAKICAgICAgICAgYm9v
bCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRn
ZXNbQlNSaWdodF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIu
cmFkaWkoKS5ib3R0b21SaWdodCgpLCBpbm5lckJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkpKTsK
ICAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVy
Qm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTUmlnaHQsIEJTVG9wLCBCU0JvdHRvbSwg
ZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3Zl
cnJpZGVDb2xvcik7CiAgICAgfQogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQs
IGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVy
LCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsCit2b2lkIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGlj
c0NvbnRleHQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJlY3QmIG91
dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBvaW50
JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyRWRnZSBlZGdlc1tdLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0
RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMpCiB7CiAg
ICAgQm9yZGVyRWRnZUZsYWdzIGVkZ2VzVG9EcmF3ID0gQWxsQm9yZGVyRWRnZXM7CkBAIC0xODAy
LDcgKzE4MjAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludFRyYW5zbHVjCiAg
ICAgICAgICAgICBjb21tb25Db2xvciA9IENvbG9yKGNvbW1vbkNvbG9yLnJlZCgpLCBjb21tb25D
b2xvci5ncmVlbigpLCBjb21tb25Db2xvci5ibHVlKCkpOwogICAgICAgICB9CiAKLSAgICAgICAg
cGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5u
ZXJCb3JkZXIsIGVkZ2VzLCBjb21tb25Db2xvckVkZ2VTZXQsIGJsZWVkQXZvaWRhbmNlLCBpbmNs
dWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzLCAm
Y29tbW9uQ29sb3IpOworICAgICAgICBwYWludEJvcmRlclNpZGVzKGdyYXBoaWNzQ29udGV4dCwg
c3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBl
ZGdlcywgY29tbW9uQ29sb3JFZGdlU2V0LCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgJmNvbW1vbkNvbG9y
KTsKICAgICAgICAgICAgIAogICAgICAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCiAgICAg
ICAgICAgICBncmFwaGljc0NvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBAIC0xODI1
LDcgKzE4NDMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihjCiAg
ICAgQm9yZGVyRWRnZSBlZGdlc1s0XTsKICAgICBnZXRCb3JkZXJFZGdlSW5mbyhlZGdlcywgc3R5
bGUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKICAg
ICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkQm9yZGVyRm9yKHJl
Y3QsIHZpZXcoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UpOwotICAgIFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRJbm5l
ckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSk7CisgICAgUm91bmRlZFJlY3QgaW5uZXJCb3JkZXIgPSBzdHlsZS0+Z2V0Um91bmRl
ZElubmVyQm9yZGVyRm9yKGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2Uo
Z3JhcGhpY3NDb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5jZSksIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKIAogICAgIGJvb2wgaGF2ZUFscGhhQ29s
b3IgPSBmYWxzZTsKICAgICBib29sIGhhdmVBbGxTb2xpZEVkZ2VzID0gdHJ1ZTsKQEAgLTE5NjEs
MTAgKzE5NzksMTIgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoYwog
CiAgICAgLy8gSWYgb25seSBvbmUgZWRnZSB2aXNpYmxlIGFudGlhbGlhc2luZyBkb2Vzbid0IGNy
ZWF0ZSBzZWFtcwogICAgIGJvb2wgYW50aWFsaWFzID0gc2hvdWxkQW50aWFsaWFzTGluZXMoZ3Jh
cGhpY3NDb250ZXh0KSB8fCBudW1FZGdlc1Zpc2libGUgPT0gMTsKKyAgICBSb3VuZGVkUmVjdCB1
bmFkanVzdGVkSW5uZXJCb3JkZXIgPSAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVk
QmFja2dyb3VuZE92ZXJCb3JkZXIpID8gc3R5bGUtPmdldFJvdW5kZWRJbm5lckJvcmRlckZvcihy
ZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgOiBp
bm5lckJvcmRlcjsKKyAgICBJbnRQb2ludCBpbm5lckJvcmRlckFkanVzdG1lbnQoaW5uZXJCb3Jk
ZXIucmVjdCgpLngoKSAtIHVuYWRqdXN0ZWRJbm5lckJvcmRlci5yZWN0KCkueCgpLCBpbm5lckJv
cmRlci5yZWN0KCkueSgpIC0gdW5hZGp1c3RlZElubmVyQm9yZGVyLnJlY3QoKS55KCkpOwogICAg
IGlmIChoYXZlQWxwaGFDb2xvcikKLSAgICAgICAgcGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVz
KGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgZWRnZXMs
IGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSwgYW50aWFsaWFzKTsKKyAgICAgICAgcGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVz
KGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCB1bmFkanVzdGVkSW5uZXJCb3Jk
ZXIsIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgZWRnZXMsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzKTsKICAg
ICBlbHNlCi0gICAgICAgIHBhaW50Qm9yZGVyU2lkZXMoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwg
b3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBlZGdlcywgQWxsQm9yZGVyRWRnZXMsIGJsZWVkQXZv
aWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwg
YW50aWFsaWFzKTsKKyAgICAgICAgcGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0
eWxlLCBvdXRlckJvcmRlciwgdW5hZGp1c3RlZElubmVyQm9yZGVyLCBpbm5lckJvcmRlckFkanVz
dG1lbnQsIGVkZ2VzLCBBbGxCb3JkZXJFZGdlcywgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMpOwogfQogCiB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lkZUZyb21QYXRoKEdyYXBoaWNzQ29u
dGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBjb25z
dCBQYXRoJiBib3JkZXJQYXRoLCBjb25zdCBCb3JkZXJFZGdlIGVkZ2VzW10sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNp
b24gMTM0NjIyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDggQEAgdHlwZWRlZiB1bnNpZ25lZCBC
b3JkZXJFZGdlRmxhZ3M7CiBlbnVtIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSB7CiAgICAgQmFj
a2dyb3VuZEJsZWVkTm9uZSwKICAgICBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5kLAot
ICAgIEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyCisgICAgQmFja2dyb3VuZEJs
ZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92
ZXJCb3JkZXIKIH07CiAKIGVudW0gQ29udGVudENoYW5nZVR5cGUgewpAQCAtMTUxLDcgKzE1Miw3
IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgTmluZVBpZWNl
SW1hZ2UmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIpOwogICAgIHZv
aWQgcGFpbnRCb3hTaGFkb3coY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIGNv
bnN0IFJlbmRlclN0eWxlKiwgU2hhZG93U3R5bGUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKICAgICB2b2lk
IHBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBj
b25zdCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRh
bmNlLCBJbmxpbmVGbG93Qm94KiA9IDAsIGNvbnN0IExheW91dFNpemUmID0gTGF5b3V0U2l6ZSgp
LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlck9iamVjdCog
YmFja2dyb3VuZE9iamVjdCA9IDApOwotICAgIAorCiAgICAgdmlydHVhbCBib29sIGJveFNoYWRv
d1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElu
bGluZUZsb3dCb3gqID0gMCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNz
ZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4KQEAgLTIz
Myw2ICsyMzQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBnZXRCb3JkZXJFZGdlSW5mbyhjbGFz
cyBCb3JkZXJFZGdlW10sIGNvbnN0IFJlbmRlclN0eWxlKiwgYm9vbCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpIGNvbnN0
OwogICAgIGJvb2wgYm9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kRWRnZShjb25zdCBGbG9hdFNpemUm
IGNvbnRleHRTY2FsZSkgY29uc3Q7CiAgICAgYm9vbCBib3JkZXJPYnNjdXJlc0JhY2tncm91bmQo
KSBjb25zdDsKKyAgICBSb3VuZGVkUmVjdCBiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZv
ckJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBCYWNr
Z3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqLCBjb25zdCBMYXlvdXRTaXplJiwg
Ym9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
KSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRB
dm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFBhaW50QXRMb3dRdWFsaXR5
KEdyYXBoaWNzQ29udGV4dCosIEltYWdlKiwgY29uc3Qgdm9pZCosIGNvbnN0IExheW91dFNpemUm
KTsKIApAQCAtMjg1LDcgKzI4OCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBjYWxjdWxhdGVJ
bWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSosIGNvbnN0IEludFNpemUmIHNjYWxl
ZFBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QpIGNvbnN0Owog
CiAgICAgUm91bmRlZFJlY3QgZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGNvbnN0IExheW91dFJl
Y3QmLCBJbmxpbmVGbG93Qm94KiwgTGF5b3V0VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5b3V0VW5p
dCBpbmxpbmVCb3hIZWlnaHQsCi0gICAgICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwg
Ym9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAgICAgIGJvb2wgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3Q7CiAKIAogICAg
IHZvaWQgY2xpcEJvcmRlclNpZGVQb2x5Z29uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLApAQCAt
Mjk0LDExICsyOTcsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50T25lQm9yZGVyU2lkZShH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5kZWRSZWN0JiBv
dXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzaWRlUmVjdCwgQm94U2lkZSwgQm94
U2lkZSBhZGphY2VudFNpZGUxLCBCb3hTaWRlIGFkamFjZW50U2lkZTIsIGNvbnN0IGNsYXNzIEJv
cmRlckVkZ2VbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUGF0aCos
IEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3Iq
IG92ZXJyaWRlQ29sb3IgPSAwKTsKLSAgICB2b2lkIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRl
cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5kZWRSZWN0
JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAorICAgIHZvaWQg
cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJlbmRl
clN0eWxlKiwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVj
dCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzIEJvcmRlckVkZ2VbXSwgQmFja2dy
b3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOwogICAgIHZvaWQg
cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNv
bnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9y
ZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10s
IEJvcmRlckVkZ2VGbGFncywgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxv
Z2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UsIGNvbnN0IENvbG9yKiBvdmVy
cmlkZUNvbG9yID0gMCk7CisgICAgICAgIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVz
dG1lbnQsIGNvbnN0IGNsYXNzIEJvcmRlckVkZ2VbXSwgQm9yZGVyRWRnZUZsYWdzLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UsCisgICAgICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwg
Ym9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMgPSBmYWxzZSwgY29u
c3QgQ29sb3IqIG92ZXJyaWRlQ29sb3IgPSAwKTsKICAgICB2b2lkIGRyYXdCb3hTaWRlRnJvbVBh
dGgoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFBhdGgmLCBjb25z
dCBjbGFzcyBCb3JkZXJFZGdlW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQg
dGhpY2tuZXNzLCBmbG9hdCBkcmF3VGhpY2tuZXNzLCBCb3hTaWRlLCBjb25zdCBSZW5kZXJTdHls
ZSosIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLCBFQm9yZGVyU3R5bGUsIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29s
IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDYyMikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTExLTEyICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAg
Qm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cg
dG8gZHJhdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIE5l
dyB0ZXN0IHRoYXQgcHVycG9zZWx5IHRyaWdnZXJzIHRoZSBCYWNrZ3JvdW5kT3ZlckJvcmRlciBw
YWludGluZyBwYXRoCisgICAgICAgIGluIFdlYkNvcmU6OlJlbmRlckJveCwgdG8gdGVzdCBpdCB3
aXRoIHRoaWNrIGJvcmRlcnMsIG9mZi1kaWFnb25hbAorICAgICAgICBtaXRyaW5nLCBhbiBhbnRp
LWFsaWFzZWQgcm91bmRlZCBib3JkZXIgd2VkZ2UsIGFuZCBhIGJvcmRlciBvZiB3aWR0aCAwLgor
CisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3Jk
ZXItMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9UZXN0RXhwZWN0YXRpb25zOiBBZGRlZCBFeHBlY3RhdGlvbnMuCisgICAgICAgIEFkZGVk
IGV4cGVjdGF0aW9ucyBmb3IgdGVzdHMgcGl4ZWxzIHJlc3VsdHMgdGhhdCByZXF1aXJlIHJlYmFz
ZWxpbmluZworCiAyMDEyLTExLTE0ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNYXJrIHdlYmdsLWJhY2tncm91bmQtY29sb3Iu
aHRtbCBhcyBmYWlsaW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1y
YWRpdXMtd2lkZS1ib3JkZXItMDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVz
LXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBA
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMjAp
IHNpemUgNzg0eDU2MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwLDApIHNpemUgMjAw
eDIwMCBbYmdjb2xvcj0jMDA4MDAwXSBbYm9yZGVyOiAoMTBweCBzb2xpZCAjRkYwMDAwKSBub25l
ICgxMHB4IHNvbGlkICNGRjAwMDApICgzNnB4IHNvbGlkICMwMDAwRkYpXQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJv
cmRlci0wNS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2Jv
cmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
OSBAQAorPHN0eWxlPgorICAgIGRpdiN0IHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBib3JkZXI6IDIwcHggc29saWQgcmdiYSgyNTUsMCww
LDEpOworICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsKKyAgICAgICAgYm9yZGVyLXRvcC1y
aWdodC1yYWRpdXM6IDBweDsKKyAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4
OworICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLDAsMjU1LDEpOworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsK
KyAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAxMHB4Owor
ICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4OworICAgICAgICBib3JkZXItbGVmdC13
aWR0aDogMzZweDsKKyAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7CisgICAgfQorPC9z
dHlsZT4KKzxkaXYgaWQ9InQiPjwvZGl2PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzQ2MjIpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBA
IC0zNjM3LDYgKzM2MzcsMTMgQEAgd2Via2l0Lm9yZy9iLzkzNjI0IFsgV2luIFJlbGVhc2UgXSBp
bnNwZQogIyBTdGFydGVkIGZhaWxpbmcgYXJvdW5kIHIxMjI3NzAKIHdlYmtpdC5vcmcvYi85MTQ0
NSBbIExpbnV4IF0gcGx1Z2lucy9lbWJlZC1hdHRyaWJ1dGVzLXN0eWxlLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIFBhc3MgXQogCisjIE5lZWRzIHJlYmFzZWxpbmVkIGFmdGVyIGZpeCBmb3IgYnVn
IDEwMTk3NAord2Via2l0Lm9yZy9iLzEwMTk3NCBbIE1hYyBMaW51eCBdIGZhc3QvYm9yZGVycy9i
b3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3Mg
XQord2Via2l0Lm9yZy9iLzEwMTk3NCBmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZS1hcHBl
YXJhbmNlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQord2Via2l0Lm9yZy9iLzEwMTk3
NCBzdmcvY3VzdG9tL3N2Zy1mb250cy1pbi1odG1sLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBh
c3MgXQord2Via2l0Lm9yZy9iLzEwMTk3NCBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRl
LWJvcmRlci0wMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi8x
MDE5NzQgZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0luc2V0MDEuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgUGFzcyBdCisKIHdlYmtpdC5vcmcvYi8xMDE1NjEgWyBXaW4gTGludXggXSBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9tb250aC1waWNrZXItYXBwZWFy
YW5jZS5odG1sIFsgTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvMTAxNTYxIFsgV2luIExpbnV4IF0g
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvbW9udGgtcGlja2Vy
LWFwcGVhcmFuY2Utc3RlcC5odG1sIFsgTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvMTAxNTYxIFsg
TWFjIF0gcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvbW9udGgt
cGlja2VyLWFwcGVhcmFuY2UuaHRtbCBbIEltYWdlIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0w
NS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zh
c3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXdpZGUtYm9yZGVyLTA1LWV4cGVjdGVkLnBuZwpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
CgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldI
UmphR1ZqYTNOMWJRQmtPR0k1TVdKbQpaamM0T0RRME1UbGxaRFV6WmpCaFpXVmhZMlkzWkRNMk1K
a1BIblVBQUJZSVNVUkJWSGljN2QxTmlGM25lY0R4NXpxQmpoZnhuUW1GCktFMmFtWEZwN0FRU1hX
VVJKNFZvN3NTTGxGSjdKSVZpS0RFYUNVTzdNUjRybTFKS0pEbnRMbGhTM0VXN0NKcUpzekMwV0RO
Tm9VNEMKOGloSmEzVVRqWnpTcUMzeFRFeExCSVhlU1JidFFNQ25pNUUvSkk4MEgzck94NzMzOTFz
SU5CNmY4eXkwK1BPZTk3eW5WUlJGQUFDUQo1NTY2QndBQUdEUUNDd0FnbWNBQ0FFZ21zQUFBa2dr
c0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3CkFBQ1NDU3dBZ0dR
Q0N3QWdtY0FDQUVnbXNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSTl0NjZCeGhZeGZKeVJNVG1uei83
V2F5dWJ2NjgKZGVsU1hTUDF2YUtvZXdJQTJCR0JsYURvOWVMcTFWaGUzZ3lwellScTFUMFZBRkFY
Z2JWSHhjcEtYTG9VeTh1eHN0SmFXNnQ3SEFDZwpRUVRXTGhScmE3RzBGTXZMcmNWRkMxUUF3TzBJ
ck8wVnk4dXh1QmhMUzFhcUFJQ2RFRmkzVmF5c3hQeThyZ0lBZGt0ZzNhcFlXNHVGCmhaaWYxMVVB
d040SXJMY1ZpNHV4c05CYVhLeDdFQUNndndtc0tIcTkrT1kzNCt4WlMxWUFRSXFoRHF3YlR3UFBu
bTJ0cjljOUN3QXcKT0lZMHNJcGVMNzcrOWRhcFU5WGNibVZmWFAxQXJJN0Y4c1RiUDd3MGNadmY1
amFjNHc1QXZ4aTZ3TnBNcTdKWHJkWkdZK21CV05rWApWejRZVi9lVmR4OEFvSW1HSzdDSzA2ZExU
YXZlU0h4emY1dy9JS29BWUtnTlMyRDk5OSsvOHV0UC9tRkoyOWg3SS9GM0Q4VGlnN0g0CnNUSXVE
d0QwbWNFUHJMVzE0dGl4V0Y3KzdHajdwOTJIcmsvOTJpc3pQMzEyOHIvK0tlWGl2Wkg0K2tOeDlq
T3hmbS9LOVFDQVFkQXEKaWtIZU9uejZkSEgyYkt5djMvcmx3SWtQLzJybS9oOVBiYncwZGUydjMv
L0wxL2R3WldsVnZlTGtJUDliQldDUURHeGdyYXdVeDQvSApsU3ZiZjVSNWFuL3ZVUHZpMU05Zk9Q
QWZmN3ZEaTU5N0tFNTFwVlhWQkJZQS9XSXdBK3YwNmVMVXFlM1Q2aGFqN1RjT2ZlS25VOFhMCmov
NzRMMjYzckxVMkdzZG1Zbm55cmtkazl3UVdBUDFpMEFKcmJhMDRjbVJIQzFkM3R2K2ovOXZkZDIx
bWZYNzYxZWZlK3FHRnEzb0oKTEFENnhVQUYxc0pDTVRlM3hZNnJ1ekhhZnFQNzRQVlB0SmUrTi80
bmx6LzB5OFFyczFzQ0M0QitNVGh2RVI0L1hwdy9uNWxXbTlaLwpjYy9peHZjV3UzOGE5Nm9yQUdC
SEJpR3dzaDRMYnUwTEorS3paMHE1TWdBd29QbytzSmFYaThPSGt4OEwzakRTaXk5OE9RNmN6Nzh5
CkFERFEranV3RmhhSzJkbHlGcTVHZW5IMDRmamdsVkl1RGdBTXRIdnFIbUR2VHB3b3JhNzJyY1Fm
ZlVwZEFRQjcwNWNyV0wxZThlVXYKUnhsYjJpTWk5cTNFMGVtNHQ2d1BRZ01BQTYvL0FxdlhLeDUr
dUxRdDdTTzllT3lJdWdJQTdrYWZQU0lzdmE2T1BoeGpxNlZjSEFBWQpHdjBVV0ZYVWxYMVhBTUJk
NjV2QVVsY0FRTC9vajhBcXQ2NGk0dEVuMUJVQWtLVVBBcXYwdXBwNkpqNytZbGtYQndDR1R4OEVW
cmwxCk5iRWMweWZMdWpnQU1KU2FIbGpIanhjbDF0WG9hangydUt5TEF3RERxdEdCZGVKRVVkWnBv
cHNlKzZJanJ3Q0FkTTBOcklXRjRzeVoKTXV0cTVyaU43UUJBR1JvYVdNdkxwWDFuY05NRFMzSGdm
SW5YQndDR1dCTURhM1cxT0Z6cXpxaVJYaHlhTGZNR0FNQlFhMkpnZmZHTApzYjVlNXZMVm8wL1ll
Z1VBbEtkeGdWWHVhNE1SOGNDU1U2OEFnRkkxSzdBV0ZrcCtiWENrRjcvN2RJblhCd0JvVkdDdHJo
WnpjeVhmClkrcXJNYlphOGowQWdHSFhvTUFxZmV2VnhISjg5a3lKMXdjQWlJam1CTll6ejVTODlT
b2labzZYZTMwQWdJaG9TR0N0ckJRblQ1WmMKVi9zWFBCd0VBS3JSaU1BNlh2YlMwa2d2dXFkTHZn
Y0F3QTMxQjFZVkR3Y2Zlczd5RlFCUW1ab0RhM1cxT0ZQMnZ2T1JYbnpHM25ZQQpvRG8xQjlZVFQ1
VDg1bUJFUFBTY2M5c0JnQ3JWR1ZoTFM4WEZpeVhYMWVocVRKOHM5eFlBQURlck03Q2VydUJNOVlO
L1h2NDlBQUJ1ClVsdGdQZk5Nc2JwYTh2TFZTQzgrNXJPREFFRFY2Z21zWHEvOHZlMFJzZjk1dTY4
QWdPclZFMWpQUFZmKzN2YUkrTXpaMG04QkFQQXUKTlFSV1JjdFhEeTQ2K3dvQXFFVU5nVlhSOHRX
bm55djlGZ0FBVzJrVlJWSGwvVlpYaS92dkw3K3U5bDJKUC81VTZYZWhXc1hKU3YrdApBc0NlVmIy
QzlmenpsZHptMDM5WnlXMEFBTFpRYVdCVnRQc3F3dWtNQUVDTktnMnM1NSt2WlBmVmc0dE9ad0FB
YWxScFlKMnQ1dGlFCmozNjdrdHNBQUd5dHVzQmFYQ3ovNlBaTm5nOENBTFdxTHJBcTJ0N3UrU0FB
VUxlS0FtdDF0WGp4eFVxV3J6d2ZCQURxVmxGZ1ZiUjgKRlo0UEFnRDFxeWl3NXVjcnVZM25nd0JB
QTFRUldGZXVWTFc5L1NNL3FPSXVBQUIzVkVWZ2ZldGJGZHdrSWlJbWxxdTZFd0RBYlZVUgpXQmN1
VkhDVGlKRmUvTWFQS3JrVEFNQ2RsQjVZMVIxL05YR3BpcnNBQUd5bjlNRDZRV1hib2h6UUFBQTBR
K21CVmRIendZaVlmTG1xCk93RUEzRW01Z2JXNld0WHp3ZEhWR0Z1dDRrWUFBTnNwTjdDK1hkbFR1
L0h2VjNVbkFJQnRsQnRZbHlyYmQ5NSt2YW83QVFCc285ekEKcXVqN2crRUVMQUNnUVVvTXJDdFhp
dkl1ZmlzYnNBQ0F4aWd4c0tvN29DRUVGZ0RRSUNVR1ZuVWJzQ1ljMEFBQU5FaXBqd2pMdS9iTgo3
SEFIQUpxa3JNRHE5YW82QVNzaVB2QnFSVGNDQU5pQnNnSnJaYVdrQzI5bFg1VTNBd0RZUmxtQjlj
TWZsblRocmRqaERnQTBTVm1CCnRiWlcwb1czSXJBQWdDWVppTUFDQUdpU3NnTHI0c1hLem5CM1Jn
TUEwQ3psZmlvSEFHQUlsUkpZTDc5YzRVZHlISUlGQURSTS82OWcKQ1N3QW9HRktDYXhLejJnQUFH
aVkvbC9CbWxpdWV3SUFnSnVVRWxqT2FBQUFocG5BQWdCSTF2K1BDQUVBR2taZ0FRQWtLeVd3cWp2
RwpIUUNnZWZwL0JlditpM1ZQQUFCd2svNFBMQUNBaGhGWUFBREpCQllBUURLQkJRQ1FUR0FCQUNR
VFdQU0hpVjdkRXdEQWpna3Mrc1A5CkFndUEvaUd3NkJQdmVVL2RFd0RBVGdrcytzUjk5OVU5QVFE
c2xNQUNBRWdtc09nUEV4c2pkWThBQURzbHNPZ1A0Mk9UZFk4QUFEc2wKc09nVEkxYXdBT2diQW92
KzhJbldCK29lQVFCMlNtRFJIOFk3M2JwSEFJQ2RFbGowaHdQdisrMjZSd0NBblJKWTlJR0pYclNt
cCt1ZQpBZ0IyU21EUkIzd25CNEQrSXJEb0ExTXRaelFBMEU4RUZuM2dJKy83Y04wakFNQXVDQ3o2
d0VjbTl0YzlBZ0RzZ3NDaUQweC82a2pkCkl3REFMZ2dzbXU3enIwVjBPblZQQVFDN0lMQm91cW4x
MGRiWVdOMVRBTUF1Q0N5YTd2Yy9PRlgzQ0FDd093S0xSbXR2eElHUGY3N3UKS1FCZ2R3UVdqZmJ3
YXhHZisxemRVd0RBN2dnc0d1MlIxKzl0SFRoUTl4UUFzRHNDaTBZN09INnc3aEVBWU5jRUZzMDEw
WXZKMy9tOQp1cWNBZ0YwVFdEVFgwNWNqSG5tazdpa0FZTmNFRnMzMXBmLzV6ZGFrenp3RDBIOEVG
ZzExL0VjeDlzZ2YxRDBGQU95RndLS2hIbjgxCjRrdGZxbnNLQU5nTGdVVVRUZlJpS2lZYzBBQkFu
eEpZTk5HeGxZZ2pSK3FlQWdEMlNHRFJSSTlmOVh3UWdENG1zR2ljSS84YUU2T2UKRHdMUXh3UVdq
Zk8xNzBZY08xYjNGQUN3ZHdLTFpqbitvNWhjajNqODhib0hBWUM5RTFnMHk1OTlQNG9qUjV3dkNr
QmZFMWcwaU9VcgpBQWFEd0tJcDJodnh0ZTlHTVRIUk9uU283bGtBNEs0SUxKcml4Q3N4dGhGeDZs
VGRnd0RBM1JKWU5FSjdJNTc4NXlqYTdYajAwYnBuCkFZQzdKYkJvaE5Ndng5aEd4SWtUcmJHeHVt
Y0JnTHNsc0tqZjlHbzh0Ymw4OWVTVGRjOENBQWtFRmpWcmI4UTNsaUxDOGhVQWcwTmcKVWJQVEw4
Zmt1dVVyQUFhS3dLSk9tdzhISXl4ZkFUQlFCQmExZWV2aG9PVXJBQWFNd0tJMjUvNGhKdGNqSXVM
MGFjdFhBQXdTZ1VVOQpEdjhramw2TmlDZ21KbHBQUFZYM09BQ1FTV0JSZzg3UDMzeHpNQ0xPbjY5
ekZBQW9nY0NpYXUyTk9MOFVZeHNSRWNYMGRLdmJyWGtnCkFNZ21zS2phNGd2UnVSNnh1YmY5Rzkr
b2V4d0F5Q2V3cU5UOGhlaXV2Zm1YRXlkYWs1TTFEZ01BSlJGWVZPZnBWMjVzYkkrSW90TnAKZmVV
cnRZNERBR1VSV0ZUazhFL2kyZSs4NCsvMnRnTXd1QVFXVmJqcHRjR0k0dlRwVnFkVDN6Z0FVQzZC
UmVuZStkcGdiTDQ1Nk9FZwpBQU5OWUZHdTlrWXN6OTk0YlRDOE9RakFjQkJZbE9pV3VvcUlPSGZP
bTRNQUREeUJSVm5lWFZmRjdHenI2Tkg2SmdLQWlnZ3NTckZGClhYVTZMVzhPQWpBY0JCYjV0cWly
ZGp0ZWZMRytpUUNnVWdLTFpPUHI3OXAzRlJHTGk3WmVBVEE4M2x2M0FBeVUyU3R4ZnVuV0h4YnoK
ODc3b0RNQlFFVmlrT2ZOU3pGMis5WWZGMDAvYjJBN0FzQkZZSkdodnhPSUw3L2lLODV1SzJkbldz
OC9XTUJBQTFFcGdjYmM2UDQvegpTKy9hZE9XMVFRQ0dtTURpcmt5dHhZVVgzdjRNemx1S1RpY3VY
cXhqSWdDb244Qmk3K1plaVRQZjJlTG5tM1hWR2h1cmZDSUFhQVNCCnhWNk1yOGY4NGhhYnJrSmRB
WURBWWc5bXJzWDV4UzBlQzRhNkFvQ0lFRmpzU25zakZpN0V6TDl0L1YvVkZRQnNFbGpzMUIwV3Jr
SmQKQWNBN0NDeTJkK2VGcTlnODc4cUpEQUR3Sm9IRk5vNnV4Sm1YYnJ0d0ZSSEYzRnpyekprS0p3
S0FwaE5ZM05iVVdzd3Z4c1Q2blg2bgptSi8zSlJ3QXVJWEFZZ3RUYTNGcWVldFRHTjVTdE51eHVP
Z3J6Z0R3YmdLTG00eXZ4Nm5sbUYzWjV0ZUtUaWN1WEdoTlRGUXhFd0QwCkc0SEZEZVByTVhjNTVp
NXYvNXUydEFQQW5Ra3NZbW90WmxlMlg3V0t6Y2VDNTg3WmRBVUFkeWF3aHRyUmxaaTdISjNyTy9y
bFltb3EKNXVjOUZnU0FiUW1zWVRTK0hyTXI4ZFRsT3gyK2NJdmk1TW5XcVZNbHpnUUFBMFJnRFpl
WmEzSG8ybzZlQnI2bDZIVGkvUGxXcDFQYQpVQUF3YUFUVzRHdHZ4S0ZyTVhNdHVtdTdXTEtLelIx
WGMzTVdyZ0JndHdUV3dIcXJxdzVmMjh2L2JzY1ZBT3lad0JvbzdZM29yc1grCjYzSDQyazYzcnI5
Yk1UNGU4L05PRUFXQVBSTllmZS9nV25TdXg0SHIwVjNiNXJNMjIvSk1FQUJTQ0t4KzB0NkkvZGRq
N0IxL1RxL2wKWEhrenJlS3BwMXBqWXpsWEJJQWhKckNhNHVEYXJUL3BYSS9SamJkemFzK1AvTzVN
V2dGQXVsWlJGUGtYYmFWZjhpYnQrOTdvUG5oOQphdVR5b2RlZW5melBmeXozWm9OTFdnRkFTZm9w
c0Q3NTBmL3I3cnMyODR1RnoxODlWOG9OaGtZeFBoNm5Uc1hNakxRQ2dESTBQYkRhCjk3MXg2Sk92
VGNYeXpLdGZmZjh2WDArNzdyQXFabWJpNk5IVzRjTjFEd0lBZzZ5aGdYVncvL3FoOXNYdTlSY08v
UHZmWkV3MDdJcngKOFppZGpkbFo1MW9CUUFVYUZGampIL3JWekcvOXk5VEdTOTFyZjJXeEtrVXhQ
aDR6TTNIc21BL2RBRUNWYWc0czI5WExvS3NBb0Y3MQpCSmJ0NnVtS2RqdTYzZWgyNDlBaHp3RUJv
RjdWQlpidDZ1bUs4ZkhvZHFQVGlXN1hZaFVBTkVmcGdXVzdlcUxpNE1HWW5JeE9KL2J2CmowN0hJ
UXNBMEV5bEJOYkVoMjFYMzR1aTNZNzkrMi84cGRPSjBkR0lpRzQzSWxyVDA3V05CUURzVWltQkJR
QXd6TzZwZXdBQWdFRWoKc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFD
Q1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFn
QklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNB
QUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3
QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJ
TEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpu
QUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdt
CnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNT
Q1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNB
WkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NB
SUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNB
RWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdB
QUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpM
QUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtB
Z3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21j
QUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVND
YXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFK
SUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJ
QmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dB
Z21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJ
QVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJB
QUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2dr
c0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FD
Q3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Na
d0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJ
SnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFB
a2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0Fn
R1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxB
Q0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFB
Z0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpz
QUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NT
d0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpB
SUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlK
bkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVn
bQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFD
U0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFD
QVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdz
QUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FD
QUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3
QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklK
TEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJr
QWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdt
Y0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaUDhQdnd2OFRPdGYv
RGtBQUFBQVNVVk9SSzVDWUlJPQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174201</attachid>
            <date>2012-11-14 10:47:45 -0800</date>
            <delta_ts>2012-11-14 11:12:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101974-20121114134544.patch</filename>
            <type>text/plain</type>
            <size>37381</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDYyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDEyLTExLTEyICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgQm94ZXMgd2l0aCByb3VuZGVk
IGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cgdG8gZHJhdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFdpdGggdGhlIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24gUmVuZGVyQm94OjoKKyAgICAgICAgZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlKCkgdXNlcyB0aGUgc2xvdyBwYXRoCisgICAgICAgIEJhY2tncm91bmRCbGVlZFVz
ZVRyYW5zcGFyZW5jeUxheWVyIGZvciBzb21lIHZlcnkgY29tbW9uIHVzZSBjYXNlcywKKyAgICAg
ICAgbm90YWJseSBmb3IgZHJhd2luZyByZWN0YW5nbGVzIHdpdGggcm91bmRlZCBjb3JuZXJzIHRo
YXQgaGF2ZSB0aGluCisgICAgICAgIGJvcmRlcnMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgQmFja2dy
b3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZAorICAgICAgICBzdHJhdGVneSByZXF1aXJlcyBhIGJv
cmRlciBhdCBsZWFzdCB0d28gcGl4ZWxzIHdpZGUgb24gYWxsIHNpZGVzLiBUaGlzCisgICAgICAg
IHBhdGNoIGludHJvZHVjZSBkcmF3aW5nIHN0cmF0ZWd5IEJhY2tncm91bmRCbGVlZEJhY2tncm91
bmRPdmVyQm9yZGVyLgorICAgICAgICBUaGlzIGFwcHJvYWNoIGNvbnNpc3RzIGluIGRyYXdpbmcg
dGhlIGJvcmRlciBmaXJzdCwgd2l0aCBhbiBpbnNldCBpbm5lcgorICAgICAgICBlZGdlIChmb3Ig
YW50aS1hbGlhc2VkIGNvbXBvc2l0aW5nIHRvIHdvcmsgd2VsbCkuICBUaGlzIGFwcHJvYWNoIG9u
bHkKKyAgICAgICAgd29ya3Mgd2l0aCBvcGFxdWUgc29saWQgZWRnZXMgYW5kIG9wYXF1ZSBzaW5n
bGUtbGF5ZXIgYmFja2dyb3VuZHMuCisgICAgICAgIEJ5IHVzaW5nIHRoaXMgYXBwcm9hY2ggcmF0
aGVyIHRoYW4gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgICAgIHdl
IHNhdmUgdHdvIGNsaXBQYXRoLCBvbmUgc2F2ZSBhbmQgb25lIHNhdmVMYXllciBvbiB0aGUKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0LiBUaGlzIHBhdGNoIGdldHMgZ29vZCBjb3ZlcmFnZSBmcm9t
IGV4aXN0aW5nIGxheW91dAorICAgICAgICB0ZXN0cy4gT25lIGFkZGl0aW9uYWwgdGVzdCB3YXMg
YWRkZWQgdG8gZXhlcmNpc2UgbWl0cmluZywgdGhpY2sgZWRnZXMKKyAgICAgICAgYW5kIGFudGkt
YWxpYXNpbmcgZWRnZSBjYXNlcyB1bmRlciB0aGUgbmV3IHBhaW50aW5nIGFsZ29yaXRobS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6ZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlKToKKyAgICAg
ICAgQWRkZWQgc2VsZWN0aW9uIGNyaXRlcmlhIGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlcgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAg
QWRkZWQgYSBwcmVsaW1pbmFyeSBwYWludEJvcmRlciBwYXNzIGZvciBCYWNrZ3JvdW5kT3ZlckJv
cmRlcgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQpOgorICAg
ICAgICBJbnNldHRpbmcgdGhlIGJhY2tncm91bmQgdG8gdG8gaW5uZXJCb3JkZXIgd2hlbiBibGVl
ZEF2b2lkYW5jZSBpcworICAgICAgICBCYWNrZ3JvdW5kT3ZlckJvcmRlci4gIFRoaXMgd2h5IEJh
Y2tncm91bmRPdmVyQm9yZGVyIG9ubHkgd29ya3MgZm9yCisgICAgICAgIE9wYXF1ZSBzb2xpZCBl
ZGdlcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpi
YWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcik6CisgICAgICAgIFV0aWxpdHkgbWV0aG9kIHVz
ZSBieSBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgdG8gdGVzdCB0aGUKKyAgICAg
ICAgYmFja2dyb3VuZCdzIGVsaWdpYmlsaXR5IGZvciBCYWNrZ3JvdW5kT3ZlckJvcmRlciBibGVl
ZCBhdm9pZGFuY2UKKyAgICAgICAgc3RyYXRlZ3kuICBUaGUgcmVhc29uIHRoZSBiYWNrZ3JvdW5k
IG11c3QgYmUgYSBzaW5nbGUgbGF5ZXIgaXMgdG8gYXZvaWQKKyAgICAgICAgY29sb3IgYmxlZWRp
bmcgZnJvbSBsYXllciBjb21wb3NpdGluZyBhbG9uZyBhbnRpLWFsaWFzZWQgZWRnZXMKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3Vu
ZE92ZXJCb3JkZXIgYnkgYXBwbHlpbmcgYSBvbmUgcGl4ZWwgaW5zZXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6YmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRG
b3JCbGVlZEF2b2lkYW5jZSk6CisgICAgICAgIFNldCB0aGUgYmFja2dyb3VuZCByZWN0IHRvIHRo
ZSBpbm5lciBib3JkZXIgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVyCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXll
ckV4dGVuZGVkKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJCb3Jk
ZXIgYnkgdXNpbmcgCisgICAgICAgIGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxl
ZWRBdm9pZGFuY2UKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlclNpZGVzKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgQmFja2dyb3VuZE92ZXJC
b3JkZXIgYnkgYXBwbHlpbmcgcGVyLXNpZGUgaW5zZXQKKyAgICAgICAgYWRqdXN0bWVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJv
cmRlclNpZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJvcmRlcik6CisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIEJhY2tncm91bmRPdmVyQm9yZGVy
IGJ5IHVzaW5nIGFuIGFkanVzdGVkIGlubmVyCisgICAgICAgIGJvcmRlciwgYnV0IG5vdCBpZiBz
aWRlcyBhcmUgcGFpbnRlZCBpbmRpdmlkdWFsbHkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6CisKIDIw
MTItMTEtMTQgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBVc2UgYSBub2RlIGltYWdlIGlmIHRoZXJlIGlzIG5vIGRyYWcgaW1hZ2Ugc2V0
IGZvciBEcmFnJkRyb3AKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CShyZXZpc2lvbiAxMzQ2MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMwLDExICs4MzAsOCBAQCBCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UgUmVuZGVyQm94OjpkZXRlCiAgICAgRmxvYXRTaXplIGNvbnRleHRTY2FsaW5nKHN0
YXRpY19jYXN0PGZsb2F0PihjdG0ueFNjYWxlKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oY3RtLnlT
Y2FsZSgpKSk7CiAgICAgaWYgKGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2UoY29udGV4dFNj
YWxpbmcpKQogICAgICAgICByZXR1cm4gQmFja2dyb3VuZEJsZWVkU2hyaW5rQmFja2dyb3VuZDsK
LSAgICAKLSAgICAvLyBGSVhNRTogdGhlcmUgaXMgb25lIG1vcmUgc3RyYXRlZ3kgcG9zc2libGUs
IGZvciBvcGFxdWUgYmFja2dyb3VuZHMgYW5kCi0gICAgLy8gdHJhbnNsdWNlbnQgYm9yZGVycy4g
SW4gdGhhdCBjYXNlIHdlIGNvdWxkIGF2b2lkIHVzaW5nIGEgdHJhbnNwYXJlbmN5IGxheWVyLAot
ICAgIC8vIGFuZCBwYWludCB0aGUgYm9yZGVyIGZpcnN0LCBhbmQgdGhlbiBwYWludCB0aGUgYmFj
a2dyb3VuZCBjbGlwcGVkIHRvIHRoZQotICAgIC8vIGluc2lkZSBvZiB0aGUgYm9yZGVyLgorICAg
IGlmICghc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSAmJiBib3JkZXJPYnNjdXJlc0JhY2tncm91bmQo
KSAmJiBiYWNrZ3JvdW5kSXNTaW5nbGVPcGFxdWVMYXllcigpKQorICAgICAgICByZXR1cm4gQmFj
a2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXI7CiAKICAgICByZXR1cm4gQmFja2dyb3Vu
ZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXI7CiB9CkBAIC04NjgsMTIgKzg2NSwxNSBAQCB2b2lk
IFJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWluCiAgICAgICAgIHBhaW50SW5mby5j
b250ZXh0LT5hZGRSb3VuZGVkUmVjdENsaXAoYm9yZGVyKTsKICAgICAgICAgcGFpbnRJbmZvLmNv
bnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7CiAgICAgfQotICAgIAorCiAgICAgLy8g
SWYgd2UgaGF2ZSBhIG5hdGl2ZSB0aGVtZSBhcHBlYXJhbmNlLCBwYWludCB0aGF0IGJlZm9yZSBw
YWludGluZyBvdXIgYmFja2dyb3VuZC4KICAgICAvLyBUaGUgdGhlbWUgd2lsbCB0ZWxsIHVzIHdo
ZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50IHRoZSBDU1MgYmFja2dyb3VuZC4KICAg
ICBJbnRSZWN0IHNuYXBwZWRQYWludFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChwYWludFJlY3Qp
KTsKICAgICBib29sIHRoZW1lUGFpbnRlZCA9IHN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSAmJiAh
dGhlbWUoKS0+cGFpbnQodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KTsKICAgICBp
ZiAoIXRoZW1lUGFpbnRlZCkgeworICAgICAgICBpZiAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dy
b3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpCisgICAgICAgICAgICBwYWludEJvcmRlcihw
YWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOworCiAgICAgICAg
IHBhaW50QmFja2dyb3VuZChwYWludEluZm8sIHBhaW50UmVjdCwgYmxlZWRBdm9pZGFuY2UpOwog
CiAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCkBAIC04ODIsNyArODgyLDcg
QEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbgogICAgIHBhaW50Qm94
U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBJbnNldCk7CiAKICAgICAvLyBU
aGUgdGhlbWUgd2lsbCB0ZWxsIHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBhbHNvIHBhaW50
IHRoZSBDU1MgYm9yZGVyLgotICAgIGlmICgoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSB8fCAo
IXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLT5wYWludEJvcmRlck9ubHkodGhpcywgcGFpbnRJbmZv
LCBzbmFwcGVkUGFpbnRSZWN0KSkpICYmIHN0eWxlKCktPmhhc0JvcmRlcigpKQorICAgIGlmIChi
bGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3ZlckJvcmRlciAmJiAo
IXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLT5w
YWludEJvcmRlck9ubHkodGhpcywgcGFpbnRJbmZvLCBzbmFwcGVkUGFpbnRSZWN0KSkpICYmIHN0
eWxlKCktPmhhc0JvcmRlcigpKQogICAgICAgICBwYWludEJvcmRlcihwYWludEluZm8sIHBhaW50
UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwogCiAgICAgaWYgKGJsZWVkQXZvaWRhbmNl
ID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKQpAQCAtOTAzLDYgKzkwMywy
NSBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCYWNrZ3JvdW5kKGNvbnN0IFBhCiAgICAgfQogfQog
Citib29sIFJlbmRlckJveDo6YmFja2dyb3VuZElzU2luZ2xlT3BhcXVlTGF5ZXIoKSBjb25zdAor
eworICAgIGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyID0gc3R5bGUoKS0+YmFja2dyb3VuZExh
eWVycygpOworICAgIGlmICghZmlsbExheWVyIHx8IGZpbGxMYXllci0+bmV4dCgpIHx8IGZpbGxM
YXllci0+Y2xpcCgpICE9IEJvcmRlckZpbGxCb3ggfHwgZmlsbExheWVyLT5jb21wb3NpdGUoKSAh
PSBDb21wb3NpdGVTb3VyY2VPdmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBD
bGlwcGVkIHdpdGggbG9jYWwgc2Nyb2xsaW5nCisgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpICYm
IGZpbGxMYXllci0+YXR0YWNobWVudCgpID09IExvY2FsQmFja2dyb3VuZEF0dGFjaG1lbnQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbG9yIGJnQ29sb3IgPSBzdHlsZSgpLT52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAgIGlmIChi
Z0NvbG9yLmlzVmFsaWQoKSAmJiBiZ0NvbG9yLmFscGhhKCkgPT0gMjU1KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAKKyAgICAvLyBGSVhNRTogcmV0dXJuIHRydWUgaWYgYSBiYWNrZ3JvdW5k
IGltYWdlIGlzIHByZXNlbnQgYW5kIGlzIG9wYXF1ZQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFp
bnRXaXRoaW5Sb290KHRoaXMpIHx8IHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8
IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlTWFzayB8fCBwYWludEluZm8uY29udGV4dC0+
cGFpbnRpbmdEaXNhYmxlZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAkocmV2aXNpb24gMTM0NjI2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzAsNiArNTcwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJlY3QmKTsK
IAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7CisgICAgYm9vbCBiYWNrZ3JvdW5kSXNT
aW5nbGVPcGFxdWVMYXllcigpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQg
cGFpbnRDdXN0b21IaWdobGlnaHQoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgYmVoaW5kVGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDYyNikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY0Nyw3ICs2NDcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0Ojpjb21wdXRlCiB9CiAKIFJvdW5kZWRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpnZXRC
YWNrZ3JvdW5kUm91bmRlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgSW5saW5l
Rmxvd0JveCogYm94LCBMYXlvdXRVbml0IGlubGluZUJveFdpZHRoLCBMYXlvdXRVbml0IGlubGlu
ZUJveEhlaWdodCwKLSAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVk
ZUxvZ2ljYWxSaWdodEVkZ2UpCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29s
IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAogewogICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSB2aWV3KCk7CiAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0gc3R5bGUoKS0+Z2V0Um91
bmRlZEJvcmRlckZvcihib3JkZXJSZWN0LCByZW5kZXJWaWV3LCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CkBAIC02OTEsMTcgKzY5MSwzMSBAQCB2b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpjbGlwUm91bmRlZEluCiAgICAgfQogfQogCi1zdGF0aWMg
TGF5b3V0UmVjdCBiYWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UpCitzdGF0aWMgTGF5b3V0UmVjdCBzaHJp
bmtSZWN0QnlPbmVQaXhlbChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJl
Y3QmIHJlY3QpCiB7Ci0gICAgaWYgKGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZFNo
cmlua0JhY2tncm91bmQpCi0gICAgICAgIHJldHVybiBib3JkZXJSZWN0OwotCi0gICAgLy8gV2Ug
c2hyaW5rIHRoZSByZWN0YW5nbGUgYnkgb25lIHBpeGVsIG9uIGVhY2ggc2lkZSBiZWNhdXNlIHRo
ZSBibGVlZCBpcyBvbmUgcGl4ZWwgbWF4aW11bS4KKyAgICBMYXlvdXRSZWN0IHNocnVua1JlY3Qg
PSByZWN0OwogICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBjb250ZXh0LT5nZXRDVE0o
KTsKLSAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGJvcmRlclJlY3Q7Ci0gICAgYWRqdXN0
ZWRSZWN0LmluZmxhdGVYKC1zdGF0aWNfY2FzdDxMYXlvdXRVbml0PihjZWlsKDEgLyB0cmFuc2Zv
cm0ueFNjYWxlKCkpKSk7Ci0gICAgYWRqdXN0ZWRSZWN0LmluZmxhdGVZKC1zdGF0aWNfY2FzdDxM
YXlvdXRVbml0PihjZWlsKDEgLyB0cmFuc2Zvcm0ueVNjYWxlKCkpKSk7Ci0gICAgcmV0dXJuIGFk
anVzdGVkUmVjdDsKKyAgICBzaHJ1bmtSZWN0LmluZmxhdGVYKC1zdGF0aWNfY2FzdDxMYXlvdXRV
bml0PihjZWlsKDEgLyB0cmFuc2Zvcm0ueFNjYWxlKCkpKSk7CisgICAgc2hydW5rUmVjdC5pbmZs
YXRlWSgtc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4oY2VpbCgxIC8gdHJhbnNmb3JtLnlTY2FsZSgp
KSkpOworICAgIHJldHVybiBzaHJ1bmtSZWN0OworfQorCitMYXlvdXRSZWN0IFJlbmRlckJveE1v
ZGVsT2JqZWN0Ojpib3JkZXJJbm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlKSBjb25zdAoreworICAgIC8vIFdlIHNocmluayB0
aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBlYWNoIHNpZGUgdG8gbWFrZSBpdCBmdWxseSBv
dmVybGFwIHRoZSBhbnRpLWFsaWFzZWQgYmFja2dyb3VuZCBib3JkZXIKKyAgICByZXR1cm4gKGJs
ZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVyKSA/IHNo
cmlua1JlY3RCeU9uZVBpeGVsKGNvbnRleHQsIHJlY3QpIDogcmVjdDsKK30KKworUm91bmRlZFJl
Y3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9y
QmxlZWRBdm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0
JiBib3JkZXJSZWN0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIElu
bGluZUZsb3dCb3gqIGJveCwgY29uc3QgTGF5b3V0U2l6ZSYgYm94U2l6ZSwgYm9vbCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdAorewor
ICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5k
KSB7CisgICAgICAgIC8vIFdlIHNocmluayB0aGUgcmVjdGFuZ2xlIGJ5IG9uZSBwaXhlbCBvbiBl
YWNoIHNpZGUgYmVjYXVzZSB0aGUgYmxlZWQgaXMgb25lIHBpeGVsIG1heGltdW0uCisgICAgICAg
IHJldHVybiBnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3Qoc2hyaW5rUmVjdEJ5T25lUGl4ZWwoY29u
dGV4dCwgYm9yZGVyUmVjdCksIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdodCgp
LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAg
fQorICAgIGlmIChibGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRCYWNrZ3JvdW5kT3Zl
ckJvcmRlcikKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmdldFJvdW5kZWRJbm5lckJvcmRlckZv
cihib3JkZXJSZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0
RWRnZSk7CisKKyAgICByZXR1cm4gZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGJvcmRlclJlY3Qs
IGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdodCgpLCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFwcGx5
Qm94U2hhZG93Rm9yQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0
eWxlKiBzdHlsZSkKQEAgLTc3Myw3ICs3ODcsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludEZpbGxMYXllCiAgICAgICAgICAgICBhcHBseUJveFNoYWRvd0ZvckJhY2tncm91bmQo
Y29udGV4dCwgc3R5bGUoKSk7CiAKICAgICAgICAgaWYgKGhhc1JvdW5kZWRCb3JkZXIgJiYgYmxl
ZWRBdm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsKLSAg
ICAgICAgICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChi
YWNrZ3JvdW5kUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVjdCwgYmxl
ZWRBdm9pZGFuY2UpLCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQoKSwgaW5j
bHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAgICAgICAgIFJvdW5kZWRSZWN0
IGJvcmRlciA9IGJhY2tncm91bmRSb3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2Uo
Y29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIGJveCwgYm94U2l6ZSwgaW5jbHVkZUxlZnRF
ZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVk
UmVjdChib3JkZXIsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChy
ZWN0KSwgYmdDb2xvciwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKQEAgLTc4NSw4ICs3OTksNyBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllCiAgICAgYm9vbCBjbGlw
VG9Cb3JkZXJSYWRpdXMgPSBoYXNSb3VuZGVkQm9yZGVyICYmICEoaXNCb3JkZXJGaWxsICYmIGJs
ZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyKTsKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIGNsaXBUb0JvcmRlclN0YXRlU2F2ZXIoKmNvbnRl
eHQsIGNsaXBUb0JvcmRlclJhZGl1cyk7CiAgICAgaWYgKGNsaXBUb0JvcmRlclJhZGl1cykgewot
ICAgICAgICBMYXlvdXRSZWN0IGFkanVzdGVkUmVjdCA9IGlzQm9yZGVyRmlsbCA/IGJhY2tncm91
bmRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVlZEF2b2lk
YW5jZSkgOiByZWN0OwotICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSBnZXRCYWNrZ3JvdW5k
Um91bmRlZFJlY3QoYWRqdXN0ZWRSZWN0LCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5o
ZWlnaHQoKSwgaW5jbHVkZUxlZnRFZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAgICAgUm91
bmRlZFJlY3QgYm9yZGVyID0gaXNCb3JkZXJGaWxsID8gYmFja2dyb3VuZFJvdW5kZWRSZWN0QWRq
dXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5jZSwgYm94
LCBib3hTaXplLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2UpIDogZ2V0QmFja2dy
b3VuZFJvdW5kZWRSZWN0KHJlY3QsIGJveCwgYm94U2l6ZS53aWR0aCgpLCBib3hTaXplLmhlaWdo
dCgpLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2UpOwogCiAgICAgICAgIC8vIENs
aXAgdG8gdGhlIHBhZGRpbmcgb3IgY29udGVudCBib3hlcyBhcyBuZWNlc3NhcnkuCiAgICAgICAg
IGlmIChiZ0xheWVyLT5jbGlwKCkgPT0gQ29udGVudEZpbGxCb3gpIHsKQEAgLTE3MjksOCArMTc0
Miw4IEBAIHN0YXRpYyBJbnRSZWN0IGNhbGN1bGF0ZVNpZGVSZWN0KGNvbnN0IFIKIH0KIAogdm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSb3VuZGVk
UmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyRWRnZSBl
ZGdlc1tdLCBCb3JkZXJFZGdlRmxhZ3MgZWRnZVNldCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
IGJsZWVkQXZvaWRhbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvcikKKyAgICBj
b25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBCb3JkZXJFZGdlIGVk
Z2VzW10sIEJvcmRlckVkZ2VGbGFncyBlZGdlU2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2Ug
YmxlZWRBdm9pZGFuY2UsCisgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3IqIG92ZXJy
aWRlQ29sb3IpCiB7CiAgICAgYm9vbCByZW5kZXJSYWRpaSA9IG91dGVyQm9yZGVyLmlzUm91bmRl
ZCgpOwogCkBAIC0xNzM4LDkgKzE3NTEsMTQgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRCb3JkZXJTaQogICAgIGlmIChyZW5kZXJSYWRpaSkKICAgICAgICAgcm91bmRlZFBhdGgu
YWRkUm91bmRlZFJlY3Qob3V0ZXJCb3JkZXIpOwogICAgIAorICAgIC8vIFRoZSBpbm5lciBib3Jk
ZXIgYWRqdXN0bWVudCBmb3IgYmxlZWQgYXZvaWRhbmNlIG1vZGUgQmFja2dyb3VuZEJsZWVkQmFj
a2dyb3VuZE92ZXJCb3JkZXIKKyAgICAvLyBpcyBvbmx5IGFwcGxpZWQgdG8gc2lkZVJlY3QsIHdo
aWNoIGlzIG9rYXkgc2luY2UgQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIKKyAg
ICAvLyBpcyBvbmx5IHRvIGJlIHVzZWQgZm9yIHNvbGlkIGJvcmRlcnMgYW5kIHRoZSBzaGFwZSBv
ZiB0aGUgYm9yZGVyIHBhaW50ZWQgYnkgZHJhd0JveFNpZGVGcm9tUGF0aAorICAgIC8vIG9ubHkg
ZGVwZW5kcyBvbiBzaWRlUmVjdCB3aGVuIHBhaW50aW5nIHNvbGlkIGJvcmRlcnMuCisKICAgICBp
ZiAoZWRnZXNbQlNUb3BdLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBC
U1RvcCkpIHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsK
LSAgICAgICAgc2lkZVJlY3Quc2V0SGVpZ2h0KGVkZ2VzW0JTVG9wXS53aWR0aCk7CisgICAgICAg
IHNpZGVSZWN0LnNldEhlaWdodChlZGdlc1tCU1RvcF0ud2lkdGggKyBpbm5lckJvcmRlckFkanVz
dG1lbnQueSgpKTsKIAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9y
ZGVyU3R5bGVIYXNJbm5lckRldGFpbChlZGdlc1tCU1RvcF0uc3R5bGUpIHx8IGJvcmRlcldpbGxB
cmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS50b3BMZWZ0KCksIGlubmVyQm9yZGVyLnJh
ZGlpKCkudG9wUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3ND
b250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNUb3As
IEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVl
ZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzQ4LDcgKzE3NjYsNyBAQCB2b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRnZXNbQlNC
b3R0b21dLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBCU0JvdHRvbSkp
IHsKICAgICAgICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAg
ICAgc2lkZVJlY3Quc2hpZnRZRWRnZVRvKHNpZGVSZWN0Lm1heFkoKSAtIGVkZ2VzW0JTQm90dG9t
XS53aWR0aCk7CisgICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5tYXhZKCkg
LSBlZGdlc1tCU0JvdHRvbV0ud2lkdGggLSBpbm5lckJvcmRlckFkanVzdG1lbnQueSgpKTsKIAog
ICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVIYXNJbm5l
ckRldGFpbChlZGdlc1tCU0JvdHRvbV0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2Uo
aW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCkuYm90
dG9tUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3NDb250ZXh0
LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNCb3R0b20sIEJT
TGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2
b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Us
IGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzU2LDcgKzE3NzQsNyBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpCiAKICAgICBpZiAoZWRnZXNbQlNMZWZ0
XS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNMZWZ0KSkgewogICAg
ICAgICBJbnRSZWN0IHNpZGVSZWN0ID0gb3V0ZXJCb3JkZXIucmVjdCgpOwotICAgICAgICBzaWRl
UmVjdC5zZXRXaWR0aChlZGdlc1tCU0xlZnRdLndpZHRoKTsKKyAgICAgICAgc2lkZVJlY3Quc2V0
V2lkdGgoZWRnZXNbQlNMZWZ0XS53aWR0aCArIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkpOwog
CiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lu
bmVyRGV0YWlsKGVkZ2VzW0JTTGVmdF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2Uo
aW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCkudG9w
TGVmdCgpKSk7CiAgICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0
eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU0xlZnQsIEJTVG9wLCBC
U0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5j
ZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlh
bGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzY0LDE0ICsxNzgyLDE0IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2kKIAogICAgIGlmIChlZGdlc1tCU1JpZ2h0XS5z
aG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNSaWdodCkpIHsKICAgICAg
ICAgSW50UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAgICAgc2lkZVJl
Y3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2VzW0JTUmlnaHRdLndpZHRoKTsK
KyAgICAgICAgc2lkZVJlY3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2VzW0JT
UmlnaHRdLndpZHRoIC0gaW5uZXJCb3JkZXJBZGp1c3RtZW50LngoKSk7CiAKICAgICAgICAgYm9v
bCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRn
ZXNbQlNSaWdodF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIu
cmFkaWkoKS5ib3R0b21SaWdodCgpLCBpbm5lckJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkpKTsK
ICAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVy
Qm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTUmlnaHQsIEJTVG9wLCBCU0JvdHRvbSwg
ZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3Zl
cnJpZGVDb2xvcik7CiAgICAgfQogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQs
IGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVy
LCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsCit2b2lkIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGlj
c0NvbnRleHQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgUm91bmRlZFJlY3QmIG91
dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBvaW50
JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyRWRnZSBlZGdlc1tdLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0
RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMpCiB7CiAg
ICAgQm9yZGVyRWRnZUZsYWdzIGVkZ2VzVG9EcmF3ID0gQWxsQm9yZGVyRWRnZXM7CkBAIC0xODAy
LDcgKzE4MjAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludFRyYW5zbHVjCiAg
ICAgICAgICAgICBjb21tb25Db2xvciA9IENvbG9yKGNvbW1vbkNvbG9yLnJlZCgpLCBjb21tb25D
b2xvci5ncmVlbigpLCBjb21tb25Db2xvci5ibHVlKCkpOwogICAgICAgICB9CiAKLSAgICAgICAg
cGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5u
ZXJCb3JkZXIsIGVkZ2VzLCBjb21tb25Db2xvckVkZ2VTZXQsIGJsZWVkQXZvaWRhbmNlLCBpbmNs
dWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzLCAm
Y29tbW9uQ29sb3IpOworICAgICAgICBwYWludEJvcmRlclNpZGVzKGdyYXBoaWNzQ29udGV4dCwg
c3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgaW5uZXJCb3JkZXJBZGp1c3RtZW50LCBl
ZGdlcywgY29tbW9uQ29sb3JFZGdlU2V0LCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgJmNvbW1vbkNvbG9y
KTsKICAgICAgICAgICAgIAogICAgICAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCiAgICAg
ICAgICAgICBncmFwaGljc0NvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBAIC0xODI1
LDcgKzE4NDMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihjCiAg
ICAgQm9yZGVyRWRnZSBlZGdlc1s0XTsKICAgICBnZXRCb3JkZXJFZGdlSW5mbyhlZGdlcywgc3R5
bGUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKICAg
ICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkQm9yZGVyRm9yKHJl
Y3QsIHZpZXcoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UpOwotICAgIFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRJbm5l
ckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSk7CisgICAgUm91bmRlZFJlY3QgaW5uZXJCb3JkZXIgPSBzdHlsZS0+Z2V0Um91bmRl
ZElubmVyQm9yZGVyRm9yKGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2Uo
Z3JhcGhpY3NDb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5jZSksIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKIAogICAgIGJvb2wgaGF2ZUFscGhhQ29s
b3IgPSBmYWxzZTsKICAgICBib29sIGhhdmVBbGxTb2xpZEVkZ2VzID0gdHJ1ZTsKQEAgLTE5NjEs
MTAgKzE5NzksMTIgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoYwog
CiAgICAgLy8gSWYgb25seSBvbmUgZWRnZSB2aXNpYmxlIGFudGlhbGlhc2luZyBkb2Vzbid0IGNy
ZWF0ZSBzZWFtcwogICAgIGJvb2wgYW50aWFsaWFzID0gc2hvdWxkQW50aWFsaWFzTGluZXMoZ3Jh
cGhpY3NDb250ZXh0KSB8fCBudW1FZGdlc1Zpc2libGUgPT0gMTsKKyAgICBSb3VuZGVkUmVjdCB1
bmFkanVzdGVkSW5uZXJCb3JkZXIgPSAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVk
QmFja2dyb3VuZE92ZXJCb3JkZXIpID8gc3R5bGUtPmdldFJvdW5kZWRJbm5lckJvcmRlckZvcihy
ZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgOiBp
bm5lckJvcmRlcjsKKyAgICBJbnRQb2ludCBpbm5lckJvcmRlckFkanVzdG1lbnQoaW5uZXJCb3Jk
ZXIucmVjdCgpLngoKSAtIHVuYWRqdXN0ZWRJbm5lckJvcmRlci5yZWN0KCkueCgpLCBpbm5lckJv
cmRlci5yZWN0KCkueSgpIC0gdW5hZGp1c3RlZElubmVyQm9yZGVyLnJlY3QoKS55KCkpOwogICAg
IGlmIChoYXZlQWxwaGFDb2xvcikKLSAgICAgICAgcGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVz
KGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgZWRnZXMs
IGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSwgYW50aWFsaWFzKTsKKyAgICAgICAgcGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVz
KGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCB1bmFkanVzdGVkSW5uZXJCb3Jk
ZXIsIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgZWRnZXMsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzKTsKICAg
ICBlbHNlCi0gICAgICAgIHBhaW50Qm9yZGVyU2lkZXMoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwg
b3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBlZGdlcywgQWxsQm9yZGVyRWRnZXMsIGJsZWVkQXZv
aWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwg
YW50aWFsaWFzKTsKKyAgICAgICAgcGFpbnRCb3JkZXJTaWRlcyhncmFwaGljc0NvbnRleHQsIHN0
eWxlLCBvdXRlckJvcmRlciwgdW5hZGp1c3RlZElubmVyQm9yZGVyLCBpbm5lckJvcmRlckFkanVz
dG1lbnQsIGVkZ2VzLCBBbGxCb3JkZXJFZGdlcywgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMpOwogfQogCiB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lkZUZyb21QYXRoKEdyYXBoaWNzQ29u
dGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBib3JkZXJSZWN0LCBjb25z
dCBQYXRoJiBib3JkZXJQYXRoLCBjb25zdCBCb3JkZXJFZGdlIGVkZ2VzW10sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNp
b24gMTM0NjI2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDggQEAgdHlwZWRlZiB1bnNpZ25lZCBC
b3JkZXJFZGdlRmxhZ3M7CiBlbnVtIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSB7CiAgICAgQmFj
a2dyb3VuZEJsZWVkTm9uZSwKICAgICBCYWNrZ3JvdW5kQmxlZWRTaHJpbmtCYWNrZ3JvdW5kLAot
ICAgIEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyCisgICAgQmFja2dyb3VuZEJs
ZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92
ZXJCb3JkZXIKIH07CiAKIGVudW0gQ29udGVudENoYW5nZVR5cGUgewpAQCAtMTUxLDcgKzE1Miw3
IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgTmluZVBpZWNl
SW1hZ2UmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIpOwogICAgIHZv
aWQgcGFpbnRCb3hTaGFkb3coY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIGNv
bnN0IFJlbmRlclN0eWxlKiwgU2hhZG93U3R5bGUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKTsKICAgICB2b2lk
IHBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBj
b25zdCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRh
bmNlLCBJbmxpbmVGbG93Qm94KiA9IDAsIGNvbnN0IExheW91dFNpemUmID0gTGF5b3V0U2l6ZSgp
LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlck9iamVjdCog
YmFja2dyb3VuZE9iamVjdCA9IDApOwotICAgIAorCiAgICAgdmlydHVhbCBib29sIGJveFNoYWRv
d1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElu
bGluZUZsb3dCb3gqID0gMCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNz
ZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4KQEAgLTIz
Myw2ICsyMzQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBnZXRCb3JkZXJFZGdlSW5mbyhjbGFz
cyBCb3JkZXJFZGdlW10sIGNvbnN0IFJlbmRlclN0eWxlKiwgYm9vbCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpIGNvbnN0
OwogICAgIGJvb2wgYm9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kRWRnZShjb25zdCBGbG9hdFNpemUm
IGNvbnRleHRTY2FsZSkgY29uc3Q7CiAgICAgYm9vbCBib3JkZXJPYnNjdXJlc0JhY2tncm91bmQo
KSBjb25zdDsKKyAgICBSb3VuZGVkUmVjdCBiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3RlZEZv
ckJsZWVkQXZvaWRhbmNlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBCYWNr
Z3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqLCBjb25zdCBMYXlvdXRTaXplJiwg
Ym9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
KSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRB
dm9pZGFuY2UoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRC
bGVlZEF2b2lkYW5jZSkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFBhaW50QXRMb3dRdWFsaXR5
KEdyYXBoaWNzQ29udGV4dCosIEltYWdlKiwgY29uc3Qgdm9pZCosIGNvbnN0IExheW91dFNpemUm
KTsKIApAQCAtMjg1LDcgKzI4OCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBjYWxjdWxhdGVJ
bWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSosIGNvbnN0IEludFNpemUmIHNjYWxl
ZFBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QpIGNvbnN0Owog
CiAgICAgUm91bmRlZFJlY3QgZ2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGNvbnN0IExheW91dFJl
Y3QmLCBJbmxpbmVGbG93Qm94KiwgTGF5b3V0VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5b3V0VW5p
dCBpbmxpbmVCb3hIZWlnaHQsCi0gICAgICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwg
Ym9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAgICAgIGJvb2wgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3Q7CiAKIAogICAg
IHZvaWQgY2xpcEJvcmRlclNpZGVQb2x5Z29uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLApAQCAt
Mjk0LDExICsyOTcsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50T25lQm9yZGVyU2lkZShH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5kZWRSZWN0JiBv
dXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBzaWRlUmVjdCwgQm94U2lkZSwgQm94
U2lkZSBhZGphY2VudFNpZGUxLCBCb3hTaWRlIGFkamFjZW50U2lkZTIsIGNvbnN0IGNsYXNzIEJv
cmRlckVkZ2VbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUGF0aCos
IEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3Iq
IG92ZXJyaWRlQ29sb3IgPSAwKTsKLSAgICB2b2lkIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRl
cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5kZWRSZWN0
JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAorICAgIHZvaWQg
cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJlbmRl
clN0eWxlKiwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVj
dCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzIEJvcmRlckVkZ2VbXSwgQmFja2dy
b3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOwogICAgIHZvaWQg
cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNv
bnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9y
ZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10s
IEJvcmRlckVkZ2VGbGFncywgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxv
Z2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UsIGNvbnN0IENvbG9yKiBvdmVy
cmlkZUNvbG9yID0gMCk7CisgICAgICAgIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVz
dG1lbnQsIGNvbnN0IGNsYXNzIEJvcmRlckVkZ2VbXSwgQm9yZGVyRWRnZUZsYWdzLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UsCisgICAgICAgIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwg
Ym9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMgPSBmYWxzZSwgY29u
c3QgQ29sb3IqIG92ZXJyaWRlQ29sb3IgPSAwKTsKICAgICB2b2lkIGRyYXdCb3hTaWRlRnJvbVBh
dGgoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFBhdGgmLCBjb25z
dCBjbGFzcyBCb3JkZXJFZGdlW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQg
dGhpY2tuZXNzLCBmbG9hdCBkcmF3VGhpY2tuZXNzLCBCb3hTaWRlLCBjb25zdCBSZW5kZXJTdHls
ZSosIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLCBFQm9yZGVyU3R5bGUsIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29s
IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDYyNikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTExLTEyICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAg
Qm94ZXMgd2l0aCByb3VuZGVkIGNvcm5lcnMgYW5kIHRoaW4gYm9yZGVycyBhcmUgdG9vIHNsb3cg
dG8gZHJhdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIE5l
dyB0ZXN0IHRoYXQgcHVycG9zZWx5IHRyaWdnZXJzIHRoZSBCYWNrZ3JvdW5kT3ZlckJvcmRlciBw
YWludGluZyBwYXRoCisgICAgICAgIGluIFdlYkNvcmU6OlJlbmRlckJveCwgdG8gdGVzdCBpdCB3
aXRoIHRoaWNrIGJvcmRlcnMsIG9mZi1kaWFnb25hbAorICAgICAgICBtaXRyaW5nLCBhbiBhbnRp
LWFsaWFzZWQgcm91bmRlZCBib3JkZXIgd2VkZ2UsIGFuZCBhIGJvcmRlciBvZiB3aWR0aCAwLgor
CisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3Jk
ZXItMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9UZXN0RXhwZWN0YXRpb25zOiBBZGRlZCBFeHBlY3RhdGlvbnMuCisgICAgICAgIEFkZGVk
IGV4cGVjdGF0aW9ucyBmb3IgdGVzdHMgcGl4ZWxzIHJlc3VsdHMgdGhhdCByZXF1aXJlIHJlYmFz
ZWxpbmluZworCiAyMDEyLTExLTE0ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmViYXNlbGluZSBmYXN0L21lZGlhL21xLWpzLW1lZGlhLWV4Y2Vw
dC0wMS5odG1sIGFmdGVyIHIxMzQ2MTguCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMv
Ym9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRl
ci1yYWRpdXMtd2lkZS1ib3JkZXItMDUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCwyMCkgc2l6ZSA3ODR4NTYwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMjAsMCkg
c2l6ZSAyMDB4MjAwIFtiZ2NvbG9yPSMwMDgwMDBdIFtib3JkZXI6ICgxMHB4IHNvbGlkICNGRjAw
MDApIG5vbmUgKDEwcHggc29saWQgI0ZGMDAwMCkgKDM2cHggc29saWQgIzAwMDBGRildCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVz
LXdpZGUtYm9yZGVyLTA1Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jv
cmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRlci0wNS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5IEBACis8c3R5bGU+CisgICAgZGl2I3QgeworICAgICAgICB3aWR0aDogMjAwcHg7
CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCByZ2Jh
KDI1NSwwLDAsMSk7CisgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OworICAgICAgICBib3Jk
ZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4OworICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFk
aXVzOiAwcHg7CisgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsMCwyNTUsMSk7Cisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBib3gtc2l6aW5nOiBib3Jk
ZXItYm94OworICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgIGJvcmRlci10b3Atd2lkdGg6
IDEwcHg7CisgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDEwcHg7CisgICAgICAgIGJvcmRl
ci1sZWZ0LXdpZHRoOiAzNnB4OworICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsKKyAg
ICB9Cis8L3N0eWxlPgorPGRpdiBpZD0idCI+PC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNDYyNikKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTMwODYsNiArMzA4NiwxMyBAQCB3ZWJraXQub3JnL2IvNzY1NzIgaHR0cC90ZXN0
cy9kb3dubG9hZCBbCiAKIHdlYmtpdC5vcmcvYi83NzMxNCBbIE1hYyBXaW4gXSBmYXN0L2V2ZW50
cy90b3VjaC9zZW5kLW9uY2FuY2VsLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCisjIE5l
ZWRzIHJlYmFzZWxpbmluZyBhZnRlciBmaXggZm9yIGJ1ZyAxMDE5NzQKK3dlYmtpdC5vcmcvYi8x
MDE5NzQgWyBNYWMgTGludXggXSBmYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJvcmRl
ci0wNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMDE5NzQg
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uLW1lc3NhZ2UtYXBwZWFyYW5jZS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMDE5NzQgc3ZnL2N1c3RvbS9zdmctZm9udHMt
aW4taHRtbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMDE5
NzQgZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDEuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgUGFzcyBdCit3ZWJraXQub3JnL2IvMTAxOTc0IGZhc3QvYm9yZGVycy9ib3Jk
ZXJSYWRpdXNJbnNldDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQorCiAjIFNraXBw
ZWQgdW50aWwgc2V0VG91Y2hQb2ludFJhZGl1cyBnZXQgaW1wbGVtZW50ZWQKIHdlYmtpdC5vcmcv
Yi85MTAxMiB0b3VjaGFkanVzdG1lbnQvZm9jdXNvdXQtb24tdG91Y2guaHRtbCBbIFNraXAgXQog
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ib3JkZXJzL2Jv
cmRlci1yYWRpdXMtd2lkZS1ib3JkZXItMDUtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90
IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy13aWRlLWJv
cmRlci0wNS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICAr
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFB
QUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdWamEzTjFiUUJrT0dJNU1XSm0KWmpjNE9EUTBN
VGxsWkRVelpqQmhaV1ZoWTJZM1pETTJNSmtQSG5VQUFCWUlTVVJCVkhpYzdkMU5pRjNuZWNEeDV6
cUJqaGZ4blFtRgpLRTJhbVhGcDdBUVNYV1VSSjRWbzdzU0xsRko3SklWaUtERWFDVU83TVI0cm0x
SktKRG50TGxoUzNFVzdDSnFKc3pDMFdETk5vVTRDCjhpaEphM1VUalp6U3FDM3hURXhMQklYZVNS
YnRRTUNuaTVFL0pJODBIM3JPeDczMzkxc0lOQjZmOHl5MCtQT2U5N3luVlJSRkFBQ1EKNTU2NkJ3
QUFHRFFDQ3dBZ21jQUNBRWdtc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJ
TEFDQ1p3QUlBU0NhdwpBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ21zQUFBa2drc0FJQmtBZ3NBSUpu
QUFnQkk5dDY2QnhoWXhmSnlSTVRtbnovN1dheXVidjY4CmRlbFNYU1AxdmFLb2V3SUEyQkdCbGFE
bzllTHExVmhlM2d5cHpZUnExVDBWQUZBWGdiVkh4Y3BLWExvVXk4dXhzdEphVzZ0N0hBQ2cKUVFU
V0xoUnJhN0cwRk12THJjVkZDMVFBd08wSXJPMFZ5OHV4dUJoTFMxYXFBSUNkRUZpM1ZheXN4UHk4
cmdJQWRrdGczYXBZVzR1RgpoWmlmMTFVQXdONElyTGNWaTR1eHNOQmFYS3g3RUFDZ3Z3bXNLSHE5
K09ZMzQreFpTMVlBUUlxaERxd2JUd1BQbm0ydHI5YzlDd0F3Ck9JWTBzSXBlTDc3KzlkYXBVOVhj
Ym1WZlhQMUFySTdGOHNUYlA3dzBjWnZmNWphYzR3NUF2eGk2d05wTXE3SlhyZFpHWSttQldOa1gK
Vno0WVYvZVZkeDhBb0ltR0s3Q0swNmRMVGF2ZVNIeHpmNXcvSUtvQVlLZ05TMkQ5OTkrLzh1dFAv
bUZKMjloN0kvRjNEOFRpZzdINApzVEl1RHdEMG1jRVByTFcxNHRpeFdGNys3R2o3cDkySHJrLzky
aXN6UDMxMjhyLytLZVhpdlpINCtrTng5ak94Zm0vSzlRQ0FRZEFxCmlrSGVPbno2ZEhIMmJLeXYz
L3Jsd0lrUC8ycm0vaDlQYmJ3MGRlMnYzLy9MMS9kd1pXbFZ2ZUxrSVA5YkJXQ1FER3hncmF3VXg0
L0gKbFN2YmY1UjVhbi92VVB2aTFNOWZPUEFmZjd2RGk1OTdLRTUxcFZYVkJCWUEvV0l3QSt2MDZl
TFVxZTNUNmhhajdUY09mZUtuVThYTApqLzc0TDI2M3JMVTJHc2RtWW5ueXJrZGs5d1FXQVAxaTBB
SnJiYTA0Y21SSEMxZDN0ditqLzl2ZGQyMW1mWDc2MWVmZStxR0ZxM29KCkxBRDZ4VUFGMXNKQ01U
ZTN4WTZydXpIYWZxUDc0UFZQdEplK04vNG5sei8weThRcnMxc0NDNEIrTVRodkVSNC9YcHcvbjVs
V205Wi8KY2MvaXh2Y1d1MzhhOTZvckFHQkhCaUd3c2g0TGJ1MExKK0t6WjBxNU1nQXdvUG8rc0ph
WGk4T0hreDhMM2pEU2l5OThPUTZjejc4eQpBRERRK2p1d0ZoYUsyZGx5RnE1R2VuSDA0ZmpnbFZJ
dURnQU10SHZxSG1EdlRwd29yYTcycmNRZmZVcGRBUUI3MDVjcldMMWU4ZVV2ClJ4bGIyaU1pOXEz
RTBlbTR0NndQUWdNQUE2Ly9BcXZYS3g1K3VMUXQ3U085ZU95SXVnSUE3a2FmUFNJc3ZhNk9QaHhq
cTZWY0hBQVkKR3YwVVdGWFVsWDFYQU1CZDY1dkFVbGNBUUwvb2o4QXF0NjRpNHRFbjFCVUFrS1VQ
QXF2MHVwcDZKajcrWWxrWEJ3Q0dUeDhFVnJsMQpOYkVjMHlmTHVqZ0FNSlNhSGxqSGp4Y2wxdFhv
YWp4MnVLeUxBd0REcXRHQmRlSkVVZFpwb3BzZSs2SWpyd0NBZE0wTnJJV0Y0c3laCk11dHE1cmlO
N1FCQUdSb2FXTXZMcFgxbmNOTURTM0hnZkluWEJ3Q0dXQk1EYTNXMU9GenF6cWlSWGh5YUxmTUdB
TUJRYTJKZ2ZmR0wKc2I1ZTV2TFZvMC9ZZWdVQWxLZHhnVlh1YTRNUjhjQ1NVNjhBZ0ZJMUs3QVdG
a3ArYlhDa0Y3LzdkSW5YQndCb1ZHQ3RyaFp6Y3lYZgpZK3FyTWJaYThqMEFnR0hYb01BcWZldlZ4
SEo4OWt5SjF3Y0FpSWptQk5Zeno1Uzg5U29pWm82WGUzMEFnSWhvU0dDdHJCUW5UNVpjClYvc1hQ
QndFQUtyUmlNQTZYdmJTMGtndnVxZEx2Z2NBd0EzMUIxWVZEd2NmZXM3eUZRQlFtWm9EYTNXMU9G
UDJ2dk9SWG56RzNuWUEKb0RvMUI5WVRUNVQ4NW1CRVBQU2NjOXNCZ0NyVkdWaExTOFhGaXlYWDFl
aHFUSjhzOXhZQUFEZXJNN0NlcnVCTTlZTi9YdjQ5QUFCdQpVbHRnUGZOTXNicGE4dkxWU0M4KzVy
T0RBRURWNmdtc1hxLzh2ZTBSc2Y5NXU2OEFnT3JWRTFqUFBWZiszdmFJK016WjBtOEJBUEF1Ck5R
UldSY3RYRHk0Nit3b0FxRVVOZ1ZYUjh0V25ueXY5RmdBQVcya1ZSVkhsL1ZaWGkvdnZMNyt1OWwy
SlAvNVU2WGVoV3NYSlN2K3QKQXNDZVZiMkM5Znp6bGR6bTAzOVp5VzBBQUxaUWFXQlZ0UHNxd3Vr
TUFFQ05LZzJzNTUrdlpQZlZnNHRPWndBQWFsUnBZSjJ0NXRpRQpqMzY3a3RzQUFHeXR1c0JhWEN6
LzZQWk5uZzhDQUxXcUxyQXEydDd1K1NBQVVMZUtBbXQxdFhqeHhVcVdyendmQkFEcVZsRmdWYlI4
CkZaNFBBZ0QxcXlpdzV1Y3J1WTNuZ3dCQUExUVJXRmV1VkxXOS9TTS9xT0l1QUFCM1ZFVmdmZXRi
RmR3a0lpSW1scXU2RXdEQWJWVVIKV0JjdVZIQ1RpSkZlL01hUEtya1RBTUNkbEI1WTFSMS9OWEdw
aXJzQUFHeW45TUQ2UVdYYm9oelFBQUEwUSttQlZkSHp3WWlZZkxtcQpPd0VBM0VtNWdiVzZXdFh6
d2RIVkdGdXQ0a1lBQU5zcE43QytYZGxUdS9IdlYzVW5BSUJ0bEJ0WWx5cmJkOTUrdmFvN0FRQnNv
OXpBCnF1ajdnK0VFTEFDZ1FVb01yQ3RYaXZJdWZpc2JzQUNBeGlneHNLbzdvQ0VFRmdEUUlDVUdW
blVic0NZYzBBQUFORWlwandqTHUvYk4KN0hBSEFKcWtyTURxOWFvNkFTc2lQdkJxUlRjQ0FOaUJz
Z0pyWmFXa0MyOWxYNVUzQXdEWVJsbUI5Y01mbG5UaHJkamhEZ0EwU1ZtQgp0YlpXMG9XM0lyQUFn
Q1laaU1BQ0FHaVNzZ0xyNHNYS3puQjNSZ01BMEN6bGZpb0hBR0FJbFJKWUw3OWM0VWR5SElJRkFE
Uk0vNjlnCkNTd0FvR0ZLQ2F4S3oyZ0FBR2lZL2wvQm1saXVld0lBZ0p1VUVsak9hQUFBaHBuQUFn
QkkxditQQ0FFQUdrWmdBUUFrS3lXd3FqdkcKSFFDZ2VmcC9CZXYraTNWUEFBQndrLzRQTEFDQWho
RllBQURKQkJZQVFES0JCUUNRVEdBQkFDUVRXUFNIaVY3ZEV3REFqZ2tzK3NQOQpBZ3VBL2lHdzZC
UHZlVS9kRXdEQVRna3Mrc1I5OTlVOUFRRHNsTUFDQUVnbXNPZ1BFeHNqZFk4QUFEc2xzT2dQNDJP
VGRZOEFBRHNsCnNPZ1RJMWF3QU9nYkFvdis4SW5XQitvZUFRQjJTbURSSDhZNzNicEhBSUNkRWxq
MGh3UHYrKzI2UndDQW5SSlk5SUdKWHJTbXArdWUKQWdCMlNtRFJCM3duQjREK0lyRG9BMU10WnpR
QTBFOEVGbjNnSSsvN2NOMGpBTUF1Q0N6NndFY205dGM5QWdEc2dzQ2lEMHgvNmtqZApJd0RBTGdn
c211N3pyMFYwT25WUEFRQzdJTEJvdXFuMTBkYllXTjFUQU1BdUNDeWE3dmMvT0ZYM0NBQ3dPd0tM
Um10dnhJR1BmNzd1CktRQmdkd1FXamZid2F4R2YrMXpkVXdEQTdnZ3NHdTJSMSs5dEhUaFE5eFFB
c0RzQ2kwWTdPSDZ3N2hFQVlOY0VGczAxMFl2SjMvbTkKdXFjQWdGMFRXRFRYMDVjakhubWs3aWtB
WU5jRUZzMzFwZi81emRha3p6d0QwSDhFRmcxMS9FY3g5c2dmMUQwRkFPeUZ3S0toSG44MQo0a3Rm
cW5zS0FOZ0xnVVVUVGZSaUtpWWMwQUJBbnhKWU5OR3hsWWdqUitxZUFnRDJTR0RSUkk5ZjlYd1Fn
RDRtc0dpY0kvOGFFNk9lCkR3TFF4d1FXamZPMTcwWWNPMWIzRkFDd2R3S0xaam4rbzVoY2ozajg4
Ym9IQVlDOUUxZzB5NTk5UDRvalI1d3ZDa0JmRTFnMGlPVXIKQUFhRHdLSXAyaHZ4dGU5R01USFJP
blNvN2xrQTRLNElMSnJpeENzeHRoRng2bFRkZ3dEQTNSSllORUo3STU3ODV5amE3WGowMGJwbgpB
WUM3SmJCb2hOTXZ4OWhHeElrVHJiR3h1bWNCZ0xzbHNLamY5R284dGJsODllU1RkYzhDQUFrRUZq
VnJiOFEzbGlMQzhoVUFnME5nClViUFRMOGZrdXVVckFBYUt3S0pPbXc4SEl5eGZBVEJRQkJhMWVl
dmhvT1VyQUFhTXdLSTI1LzRoSnRjakl1TDBhY3RYQUF3U2dVVTkKRHY4a2psNk5pQ2dtSmxwUFBW
WDNPQUNRU1dCUmc4N1AzM3h6TUNMT242OXpGQUFvZ2NDaWF1Mk5PTDhVWXhzUkVjWDBkS3Ziclhr
ZwpBTWdtc0tqYTRndlJ1UjZ4dWJmOUc5K29leHdBeUNld3FOVDhoZWl1dmZtWEV5ZGFrNU0xRGdN
QUpSRllWT2ZwVjI1c2JJK0lvdE5wCmZlVXJ0WTREQUdVUldGVGs4RS9pMmUrODQrLzJ0Z013dUFR
V1ZianB0Y0dJNHZUcFZxZFQzemdBVUM2QlJlbmUrZHBnYkw0NTZPRWcKQUFOTllGR3U5a1lzejk5
NGJUQzhPUWpBY0JCWWxPaVd1b3FJT0hmT200TUFERHlCUlZuZVhWZkY3R3pyNk5INkpnS0FpZ2dz
U3JGRgpYWFU2TFc4T0FqQWNCQmI1dHFpcmRqdGVmTEcraVFDZ1VnS0xaT1ByNzlwM0ZSR0xpN1pl
QVRBODNsdjNBQXlVMlN0eGZ1bldIeGJ6Cjg3N29ETUJRRVZpa09mTlN6RjIrOVlmRjAwL2IyQTdB
c0JGWUpHaHZ4T0lMNy9pSzg1dUsyZG5XczgvV01CQUExRXBnY2JjNlA0L3oKUysvYWRPVzFRUUNH
bU1EaXJreXR4WVVYM3Y0TXpsdUtUaWN1WHF4aklnQ29uOEJpNytaZWlUUGYyZUxubTNYVkdodXJm
Q0lBYUFTQgp4VjZNcjhmODRoYWJya0pkQVlEQVlnOW1yc1g1eFMwZUM0YTZBb0NJRUZqc1Nuc2pG
aTdFekw5dC9WL1ZGUUJzRWxqczFCMFdya0pkCkFjQTdDQ3kyZCtlRnE5Zzg3OHFKREFEd0pvSEZO
bzZ1eEptWGJydHdGUkhGM0Z6cnpKa0tKd0tBcGhOWTNOYlVXc3d2eHNUNm5YNm4KbUovM0pSd0F1
SVhBWWd0VGEzRnFlZXRUR041U3ROdXh1T2dyemdEd2JnS0xtNHl2eDZubG1GM1o1dGVLVGljdVhH
aE5URlF4RXdEMApHNEhGRGVQck1YYzU1aTV2LzV1MnRBUEFuUWtzWW1vdFpsZTJYN1dLemNlQzU4
N1pkQVVBZHlhd2h0clJsWmk3SEozck8vcmxZbW9xCjV1YzlGZ1NBYlFtc1lUUytIck1yOGRUbE94
MitjSXZpNU1uV3FWTWx6Z1FBQTBSZ0RaZVphM0hvMm82ZUJyNmw2SFRpL1BsV3AxUGEKVUFBd2FB
VFc0R3R2eEtGck1YTXR1bXU3V0xLS3pSMVhjM01XcmdCZ3R3VFd3SHFycXc1ZjI4di9ic2NWQU95
WndCb283WTNvcnNYKwo2M0g0Mms2M3JyOWJNVDRlOC9OT0VBV0FQUk5ZZmUvZ1duU3V4NEhyMFYz
YjVyTTIyL0pNRUFCU0NLeCswdDZJL2RkajdCMS9UcS9sClhIa3pyZUtwcDFwall6bFhCSUFoSnJD
YTR1RGFyVC9wWEkvUmpiZHphcytQL081TVdnRkF1bFpSRlBrWGJhVmY4aWJ0Kzk3b1BuaDkKYXVU
eW9kZWVuZnpQZnl6M1pvTkxXZ0ZBU2ZvcHNENzUwZi9yN3JzMjg0dUZ6MTg5VjhvTmhrWXhQaDZu
VHNYTWpMUUNnREkwUGJEYQo5NzF4NkpPdlRjWHl6S3RmZmY4dlgwKzc3ckFxWm1iaTZOSFc0Y04x
RHdJQWc2eWhnWFZ3Ly9xaDlzWHU5UmNPL1B2ZlpFdzA3SXJ4CjhaaWRqZGxaNTFvQlFBVWFGRmpq
SC9yVnpHLzl5OVRHUzkxcmYyV3hLa1V4UGg0ek0zSHNtQS9kQUVDVmFnNHMyOVhMb0tzQW9GNzEK
QkpidDZ1bUtkanU2M2VoMjQ5QWh6d0VCb0Y3VkJaYnQ2dW1LOGZIb2RxUFRpVzdYWWhVQU5FZnBn
V1c3ZXFMaTRNR1luSXhPSi9idgpqMDdISVFzQTBFeWxCTmJFaDIxWDM0dWkzWTc5KzIvOHBkT0ow
ZEdJaUc0M0lsclQwN1dOQlFEc1VpbUJCUUF3ek82cGV3QUFnRUVqCnNBQUFrZ2tzQUlCa0Fnc0FJ
Sm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FF
Z20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FB
Q1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxB
Q0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fn
c0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNB
Q0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nh
d0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJ
SkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlC
a0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0Fn
bWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3QUlB
U0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklKckFB
QUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFrZ2tz
QUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdHUUND
d0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFDQ1p3
QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFnQklK
ckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNBQUFr
Z2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3QWdH
UUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJTEFD
Q1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpuQUFn
QklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdtCnNB
QUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNTQ1N3
QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNBWkFJ
TEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NBSUpu
QUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNBRWdt
CnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdBQUNT
Q1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpMQUNB
WkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtBZ3NB
SUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21jQUNB
RWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVNDYXdB
QUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFKSUpM
QUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJQmtB
Z3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dBZ21j
QUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJQVND
YXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJBQUFK
SUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2drc0FJ
QmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FDQ3dB
Z21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Nad0FJ
QVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJSnJB
QUFKSUpMQUNBWkFJTEFDQ1p3QUlBU0Nhd0FBQ1NDU3dBZ0dRQ0N3QWdtY0FDQUVnbQpzQUFBa2dr
c0FJQmtBZ3NBSUpuQUFnQklKckFBQUpJSkxBQ0FaQUlMQUNDWndBSUFTQ2F3QUFDU0NTd0FnR1FD
Q3dBZ21jQUNBRWdtCnNBQUFrZ2tzQUlCa0Fnc0FJSm5BQWdCSUpyQUFBSklKTEFDQVpBSUxBQ0Na
d0FJQVNDYXdBQUNTQ1N3QWdHUUNDd0FnbWNBQ0FFZ20Kc0FBQWtna3NBSUJrQWdzQUlKbkFBZ0JJ
SnJBQUFKSUpMQUNBWlA4UHZ3djhUT3RmL0RrQUFBQUFTVVZPUks1Q1lJST0KCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>