<?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>145783</bug_id>
          
          <creation_ts>2015-06-08 21:54:28 -0700</creation_ts>
          <short_desc>Support transform-box to switch sizing box in SVG</short_desc>
          <delta_ts>2017-05-22 12:39:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>fs</cc>
    
    <cc>jonlee</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1100573</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2015-06-08 21:54:28 -0700</bug_when>
    <thetext>transform-box was added to CSS Transforms to allow the user to switch between the objectBoundingBox and the SVG viewport for computing the transform origin and the reference dimension for transforms with percentage.

http://dev.w3.org/csswg/css-transforms/#transform-box</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291891</commentid>
    <comment_count>1</comment_count>
    <who name="Fredrik Söderquist">fs</who>
    <bug_when>2017-03-28 07:33:32 -0700</bug_when>
    <thetext>Gecko is set to ship this in version 55, and an implementation will land in Blink shortly. It&apos;d be good to have some feedback from WebKit, especially wrt https://github.com/w3c/csswg-drafts/issues/857.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305197</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-05 11:06:30 -0700</bug_when>
    <thetext>*** Bug 171023 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309480</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-16 23:01:41 -0700</bug_when>
    <thetext>Following https://github.com/w3c/csswg-drafts/issues/928, implementing transform-box will be a behavior change. Percentage values in transform-origin and transforms will no longer resolve against the fill-box by default, but instead use view-box.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311064</commentid>
    <comment_count>4</comment_count>
      <attachid>310781</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-20 15:06:58 -0700</bug_when>
    <thetext>Created attachment 310781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311091</commentid>
    <comment_count>5</comment_count>
      <attachid>310790</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-20 21:21:49 -0700</bug_when>
    <thetext>Created attachment 310790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311471</commentid>
    <comment_count>6</comment_count>
      <attachid>310790</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-05-22 11:51:02 -0700</bug_when>
    <thetext>Comment on attachment 310790
Patch

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

&gt; Source/WebCore/css/CSSProperties.json:5963
&gt; +            &quot;codegen-properties&quot;: {
&gt; +            },

Remove?

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1134
&gt; +    FloatPoint3D originTranslate;

originTranslation? You&apos;re nouning a verb :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311489</commentid>
    <comment_count>7</comment_count>
      <attachid>310790</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-22 12:19:28 -0700</bug_when>
    <thetext>Comment on attachment 310790
Patch

Clearing flags on attachment: 310790

Committed r217236: &lt;http://trac.webkit.org/changeset/217236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311490</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-22 12:19:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311498</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-22 12:39:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/32332230&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310781</attachid>
            <date>2017-05-20 15:06:58 -0700</date>
            <delta_ts>2017-05-20 21:21:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145783-20170520150657.patch</filename>
            <type>text/plain</type>
            <size>36775</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgwYmM2MWM5ZDAzNmJk
YjVlYmU0NWZjOTA0OTAxMGIyYWFjNGY3My4uOGE1NWU0YzgzNTlhYmI5MzA3ZjI4OWQ4NmVjZDQz
ZTI5N2ZkNmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE3LTA1LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgdHJh
bnNmb3JtLWJveCB0byBzd2l0Y2ggc2l6aW5nIGJveCBpbiBTVkcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgQ1NTICJ0
cmFuc2Zvcm0tYm94IiBwcm9wZXJ0eSwgYXMgZGVzY3JpYmVkIGF0CisgICAgICAgIDxodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXRyYW5zZm9ybXMvI3RyYW5zZm9ybS1ib3g+LgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBwZXJjZW50YWdlIHZhbHVl
cyBpbiB0cmFuc2Zvcm0tb3JpZ2luIGluIFNWRy4KKyAgICAgICAgV2hlbiB0aGVzZSB3ZXJlIGFk
ZGVkIGluIHIxMTA1MzIsIHBlcmNlbnRhZ2UgdmFsdWVzIGluIHRyYW5zZm9ybS1vcmlnaW4gd2Vy
ZSBtYWRlCisgICAgICAgIHJlbGF0aXZlIHRvIHRoZSBib3VuZGluZyBib3gsIGJ1dCBhYnNvbHV0
ZSB2YWx1ZXMgcmVsYXRpdmUgdG8gdGhlIHZpZXcgYm94LgorICAgICAgICA8aHR0cHM6Ly9naXRo
dWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzg5NT4gaGFzIGNvbmNsdWRlZCB0aGF0IHRo
aXMgYmVoYXZpb3IKKyAgICAgICAgaXMgY29uZnVzaW5nLiBUaGUgbmV3IGJlaGF2aW9yIGlzIHRo
YXQsIGZvciBTVkcgZWxlbWVudHMsIGJvdGggYWJzb2x1dGUgYW5kCisgICAgICAgIHBlcmNlbnRh
Z2UgdmFsdWVzIGFyZSByZWxhdGl2ZSB0byB0aGUgcmVmZXJlbmNlIGJveCwgd2hpY2ggaXMgc3Bl
Y2lmaWVkIGJ5IHRoZQorICAgICAgICBuZXcgdHJhbnNmb3JtLWJveCBwcm9wZXJ0eS4KKworICAg
ICAgICBUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgdHJhbnNmb3JtLWJveCBpcyBib3JkZXItYm94LCB3
aXRoIHRoZSBzdmcuY3NzIFVBIHN0eWxlc2hlZXQKKyAgICAgICAgc3VwcGx5aW5nIGEgZGVmYXVs
dCBvZiB2aWV3LWJveCBmb3IgdGhlIHJlbGV2YW50IFNWRyBlbGVtZW50cyBwZXIKKyAgICAgICAg
PGh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcyL3N0eWxpbmcuaHRtbCNVQVN0eWxlU2hlZXQ+Lgor
CisgICAgICAgIEZvciBub24tU1ZHIGVsZW1lbnRzLCB0aGUgdXNlZCB2YWx1ZSBpcyBhbHdheXMg
Ym9yZGVyLWJveCwgc28gdGhlcmUgaXMgbm8gY2hhbmdlCisgICAgICAgIGluIGJlaGF2aW9yLgor
CisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy90cmFuc2Zvcm0tYm94LXBhcnNpbmcuaHRtbAorICAg
ICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvc3ZnLXRyYW5zZm9ybS1ib3guaHRtbAorCisgICAg
ICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKiBj
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUcmFuc2Zvcm1Cb3gpOgorICAgICAgICAqIGNzcy9DU1NQ
cm9wZXJ0aWVzLmpzb246CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAg
ICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZSk6CisgICAgICAgICogY3NzL3N2
Zy5jc3M6CisgICAgICAgICgqOm5vdChzdmcpLCk6CisgICAgICAgICgqKTogRGVsZXRlZC4KKyAg
ICAgICAgKGh0bWx8KiA+IHN2Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpjb21w
dXRlVHJhbnNmb3JtZWRFeHRlbnRWaWFUcmFuc2Zvcm1MaXN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OmFwcGx5VHJhbnNmb3JtKTogVGhlIHRyYW5zZm9ybU9yaWdpblgoKS5pc1BlcmNlbnQoKSB0ZXN0
cworICAgICAgICB3ZXJlIGFkZGVkIHRvIHN1cHBvcnQgdGhlIHdlaXJkICIlIHZhbHVlcyBhcmUg
cmVsYXRpdmUgdG8gYm91bmRpbmcgYm94IiBpbiBTVkcuIE5vdworICAgICAgICBpdCdzIHVwIHRv
IHRoZSBjYWxsZXIgdG8gcGFzcyBhIG5vbi16ZXJvIG9yaWdpbiB3aGVuIHRoYXQgbWF0dGVycywg
YW5kCisgICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgp
IGlzIHRoZSBvbmx5IGNhbGxlciB0aGF0IGRvZXMgc28uCisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzVHJh
bnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp0cmFuc2Zvcm1Cb3gpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFRyYW5zZm9ybUJveCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYW5zZm9ybUJveCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVRyYW5zZm9ybURhdGE6OlN0eWxlVHJhbnNmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVRyYW5zZm9ybURhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVRyYW5zZm9ybURhdGEuaDoKKyAgICAgICAgKiBzdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYXBoaWNzRWxlbWVudDo6YW5pbWF0ZWRMb2Nh
bFRyYW5zZm9ybSk6IENvbnN1bHQgdGhlIHRyYW5zZm9ybS1ib3gKKyAgICAgICAgc3R5bGUgdG8g
Y29tcHV0ZSB0aGUgcmVmZXJlbmNlIGJveCBhcyB0aGUgYm91bmRpbmcgYm94LCBvciB0aGUgdmll
dyBib3guCisKIDIwMTctMDUtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRv
IGNhbnZhcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggOWI5MTJhOGY1Y2ZlMjkyM2YxMTRj
M2FhNWQxOGI2N2ZiOWU2MTY5NC4uMzIwYWI0NGE2NDE0NTAzODcwMTNhNzFhMmE5YjM2YWI0ODc2
ZWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDUt
MjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3Vw
cG9ydCB0cmFuc2Zvcm0tYm94IHRvIHN3aXRjaCBzaXppbmcgYm94IGluIFNWRworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRyYW5zZm9ybS1ib3gg
dG8gdGhlIGxpc3Qgb2YgYXV0b2NvbXBsZXRpb25zLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9FeHRlcm5hbC9Db2RlTWlycm9yL2Nzcy5qczoKKwogMjAxNy0wNS0xOSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVXNlIGluaXRp
YWxMYXlvdXQgZm9yIFNldHRpbmdzIHRhYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA3NWUxYjVkZmZjYWU4YWIzZDU0YzU3
YzQ0MDMzZjFhMjU5YjUyOTUxLi4wNDYwZTUxMzk3ZTkyMWVmNDkxYjZhNTJiM2E0NzZhMjg4OWI1
NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcApAQCAtMjMxLDYgKzIzMSw3IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlE
IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5VGV4dFRyYW5zZm9ybSwK
ICAgICBDU1NQcm9wZXJ0eVRvcCwKICAgICBDU1NQcm9wZXJ0eVRyYW5zZm9ybSwKKyAgICBDU1NQ
cm9wZXJ0eVRyYW5zZm9ybUJveCwKICAgICBDU1NQcm9wZXJ0eVRyYW5zZm9ybU9yaWdpbiwKICAg
ICBDU1NQcm9wZXJ0eVRyYW5zZm9ybVN0eWxlLAogICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbkRl
bGF5LApAQCAtMzY4Miw2ICszNjgzLDggQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxl
RXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwKICAgICAg
ICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUtPnNwZWFrKCkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNmb3JtOgogICAgICAgICAgICAgcmV0dXJuIGNv
bXB1dGVkVHJhbnNmb3JtKHJlbmRlcmVyLCAqc3R5bGUpOworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5VHJhbnNmb3JtQm94OgorICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUoc3R5bGUtPnRyYW5zZm9ybUJveCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRy
YW5zZm9ybU9yaWdpbjogewogICAgICAgICAgICAgYXV0byBsaXN0ID0gQ1NTVmFsdWVMaXN0Ojpj
cmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCA5ZTQ5
MWZhN2NkNmJhY2E1MDdmMjhlNDRiZDM5Njc4MDI3OWQ5Njg5Li42YTQzNjZkMDExY2Y0Nzk1MGVi
M2ExZmMyY2ZiODMxYWRjMGMxNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTQ0MTQsNiArNDQxNCw0MiBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRyYW5zZm9ybVN0eWxlM0QoKSBjb25z
dAogICAgIHJldHVybiBUcmFuc2Zvcm1TdHlsZTNERmxhdDsKIH0KIAordGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRyYW5zZm9ybUJveCBib3gp
CisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoYm94KSB7CisgICAgY2FzZSBUcmFuc2Zv
cm1Cb3g6OkJvcmRlckJveDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3Jk
ZXJCb3g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpGaWxsQm94Ogor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGxCb3g7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpWaWV3Qm94OgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYW5zZm9ybUJveCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJvcmRlckJveDoKKyAgICAgICAgcmV0dXJuIFRy
YW5zZm9ybUJveDo6Qm9yZGVyQm94OworICAgIGNhc2UgQ1NTVmFsdWVGaWxsQm94OgorICAgICAg
ICByZXR1cm4gVHJhbnNmb3JtQm94OjpGaWxsQm94OworICAgIGNhc2UgQ1NTVmFsdWVWaWV3Qm94
OgorICAgICAgICByZXR1cm4gVHJhbnNmb3JtQm94OjpWaWV3Qm94OworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBUcmFuc2Zvcm1Cb3g6OkJvcmRlckJveDsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkF4aXMgZSkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpz
b24KaW5kZXggMWFiY2I1MGNkMDZjN2UzNTE0ODUyNDlhYmYxYmRmOTM5Mzg2YmY3Mi4uNTdjM2Ez
Zjk5OTIxNmMzZjU0OTBkZTYxZTdhMjc1OWMwNmFhMGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydGllcy5qc29uCkBAIC01OTUzLDYgKzU5NTMsMTkgQEAKICAgICAgICAgICAgICAgICAi
dXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdHJhbnNmb3Jtcy0xLyN0cmFuc2Zvcm0t
cHJvcGVydHkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJ0cmFuc2Zvcm0t
Ym94IjogeworICAgICAgICAgICAgInZhbHVlcyIgOiBbCisgICAgICAgICAgICAgICAgImJvcmRl
ci1ib3giLAorICAgICAgICAgICAgICAgICJmaWxsLWJveCIsCisgICAgICAgICAgICAgICAgInZp
ZXctYm94IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMi
OiB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAg
ICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy10cmFuc2Zvcm1zIiwKKyAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdHJhbnNmb3Jtcy8jcHJvcGRlZi10
cmFuc2Zvcm0tYm94IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAidHJhbnNm
b3JtLW9yaWdpbiI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAg
ICAgICAgICAgICAgImFsaWFzZXMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCmluZGV4IDJlOWE2MjJhNmNkNzAzZTBmN2RmMTE5NGZmODBkNzJkODcyZDgwZjkuLmM0NWUw
ZWFhN2I2NmViMDBhMTQxOWU0OTE0NzI1YmEyMmRmMWVjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMjQ3LDYgKzEyNDcsMTEgQEAgdHJhbnNsYXRlWQogdHJh
bnNsYXRlWgogdHJhbnNsYXRlM2QKIAorLy8gdHJhbnNmb3JtLWJveAorLy8gYm9yZGVyLWJveAor
Ly8gdmlldy1ib3gKK2ZpbGwtYm94CisKIC8vIG1vdGlvbiBwYXRoCiBwYXRoCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggM2UwODcy
NmUzYjY5NjllYjUxMjZmMGFmOWJhODJjYzFjZjRhZDc1OC4uYjlhZjQxZWI2OWVhZWY2ZDJiNDBl
ZThlZDZlYjE2ZDc1OTAyMjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTQwNzEsNiArNDA3MSw4IEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgQ1NTCiAgICAgICAgIHJldHVybiBjb25zdW1lTGluZVdpZHRoKG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlU
cmFuc2Zvcm06CiAgICAgICAgIHJldHVybiBjb25zdW1lVHJhbnNmb3JtKG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNmb3JtQm94OgorICAgICAgICBy
ZXR1cm4gY29uc3VtZUlkZW50PENTU1ZhbHVlQm9yZGVyQm94LCBDU1NWYWx1ZVZpZXdCb3gsIENT
U1ZhbHVlRmlsbEJveD4obV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zZm9ybU9y
aWdpblg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBlcnNwZWN0aXZlT3JpZ2luWDoKICAgICAgICAg
cmV0dXJuIGNvbnN1bWVQb3NpdGlvblgobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3Zn
LmNzcwppbmRleCAxY2Y4ODgxYjY5Y2ZlZTFhZTUxYWEyOWUxZmMxNDVmNmEzMTE3OGNiLi41MzUz
N2U4MjIyNTU4NGQ3MTAwMjhkZGY0M2RjNTdkZmJjNjIzYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3Mvc3ZnLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3ZnLmNzcwpAQCAt
NzIsMTIgKzcyLDggQEAgdGV4dCwgdHNwYW4sIHRyZWYgewogICAgIG91dGxpbmU6IGF1dG8gNXB4
IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcgogfQogCi0vKiBDU1MgdHJhbnNmb3JtIHNwZWNpZmlj
YXRpb246ICJ0cmFuc2Zvcm0tb3JpZ2luIDAgMCBmb3IgU1ZHIGVsZW1lbnRzIHdpdGhvdXQgYXNz
b2NpYXRlZCBDU1MgbGF5b3V0IGJveCwgNTAlIDUwJSBmb3IgYWxsIG90aGVyIGVsZW1lbnRzIi4g
Ki8KLSAKLSogewotICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOwotfQotCi1odG1s
fCogPiBzdmcgewotICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKKyo6bm90
KHN2ZyksCisqOm5vdChmb3JlaWduT2JqZWN0KSA+IHN2ZyB7CisgICAgdHJhbnNmb3JtLW9yaWdp
bjogMCAwOworICAgIHRyYW5zZm9ybS1ib3g6IHZpZXctYm94OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCA1ZTkzZjgzNjc3ZDVm
NTZjYWViN2Q4MGU5MGQ4MjA3YTE1ZWVhZTc0Li40Y2Y1ZTI5ZDBiOTM4NmFmZmUyNzI2YzczYWFl
ZTIyMzkzNTE1M2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcApAQCAtODAyLDEzICs4MDIsMTAgQEAgYm9vbCBBbmltYXRpb25CYXNlOjpj
b21wdXRlVHJhbnNmb3JtZWRFeHRlbnRWaWFUcmFuc2Zvcm1MaXN0KGNvbnN0IEZsb2F0UmVjdCYg
cmUKICAgICAKICAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gY29udGFpbnNSb3RhdGlv
bihzdHlsZS50cmFuc2Zvcm0oKS5vcGVyYXRpb25zKCkpIHx8IHN0eWxlLnRyYW5zZm9ybSgpLmFm
ZmVjdGVkQnlUcmFuc2Zvcm1PcmlnaW4oKTsKICAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4p
IHsKLSAgICAgICAgZmxvYXQgb2Zmc2V0WCA9IHN0eWxlLnRyYW5zZm9ybU9yaWdpblgoKS5pc1Bl
cmNlbnQoKSA/IHJlbmRlcmVyQm94LngoKSA6IDA7Ci0gICAgICAgIGZsb2F0IG9mZnNldFkgPSBz
dHlsZS50cmFuc2Zvcm1PcmlnaW5ZKCkuaXNQZXJjZW50KCkgPyByZW5kZXJlckJveC55KCkgOiAw
OwotCi0gICAgICAgIHRyYW5zZm9ybU9yaWdpbi5zZXRYKGZsb2F0VmFsdWVGb3JMZW5ndGgoc3R5
bGUudHJhbnNmb3JtT3JpZ2luWCgpLCByZW5kZXJlckJveC53aWR0aCgpKSArIG9mZnNldFgpOwot
ICAgICAgICB0cmFuc2Zvcm1PcmlnaW4uc2V0WShmbG9hdFZhbHVlRm9yTGVuZ3RoKHN0eWxlLnRy
YW5zZm9ybU9yaWdpblkoKSwgcmVuZGVyZXJCb3guaGVpZ2h0KCkpICsgb2Zmc2V0WSk7CisgICAg
ICAgIHRyYW5zZm9ybU9yaWdpbi5zZXRYKHJlbmRlcmVyQm94LngoKSArIGZsb2F0VmFsdWVGb3JM
ZW5ndGgoc3R5bGUudHJhbnNmb3JtT3JpZ2luWCgpLCByZW5kZXJlckJveC53aWR0aCgpKSk7Cisg
ICAgICAgIHRyYW5zZm9ybU9yaWdpbi5zZXRZKHJlbmRlcmVyQm94LnkoKSArIGZsb2F0VmFsdWVG
b3JMZW5ndGgoc3R5bGUudHJhbnNmb3JtT3JpZ2luWSgpLCByZW5kZXJlckJveC5oZWlnaHQoKSkp
OwogICAgICAgICAvLyBJZ25vcmUgdHJhbnNmb3JtT3JpZ2luWiBiZWNhdXNlIHdlJ2xsIGJhaWwg
aWYgd2UgZW5jb3VudGVyIGFueSAzRCB0cmFuc2Zvcm1zLgotICAgICAgICAKKwogICAgICAgICBm
bG9hdEJvdW5kcy5tb3ZlQnkoLXRyYW5zZm9ybU9yaWdpbik7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAzZjQ4MDM0MGE4
NDg5ZjNiYmM5YWNkMjI0ZmI2ZmJkZTA3ODBjMTY5Li5kYTE3MDY1NzNlYjM2ZWY2Nzc5ZmE1MDVj
MWZkMjgzZWVjZGY5OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKQEAgLTExMzAsMjQgKzExMzAsMjAgQEAgdm9pZCBSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxv
YXRSZWMKIHsKICAgICBhdXRvJiBvcGVyYXRpb25zID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
dHJhbnNmb3JtLT5vcGVyYXRpb25zLm9wZXJhdGlvbnMoKTsKICAgICBib29sIGFwcGx5VHJhbnNm
b3JtT3JpZ2luID0gcmVxdWlyZVRyYW5zZm9ybU9yaWdpbihvcGVyYXRpb25zLCBhcHBseU9yaWdp
bik7Ci0KLSAgICBmbG9hdCBvZmZzZXRYID0gdHJhbnNmb3JtT3JpZ2luWCgpLmlzUGVyY2VudCgp
ID8gYm91bmRpbmdCb3gueCgpIDogMDsKLSAgICBmbG9hdCBvZmZzZXRZID0gdHJhbnNmb3JtT3Jp
Z2luWSgpLmlzUGVyY2VudCgpID8gYm91bmRpbmdCb3gueSgpIDogMDsKLQorICAgIAorICAgIEZs
b2F0UG9pbnQzRCBvcmlnaW5UcmFuc2xhdGU7CiAgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2lu
KSB7Ci0gICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUzZChmbG9hdFZhbHVlRm9yTGVuZ3RoKHRy
YW5zZm9ybU9yaWdpblgoKSwgYm91bmRpbmdCb3gud2lkdGgoKSkgKyBvZmZzZXRYLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh0cmFuc2Zvcm1Pcmln
aW5ZKCksIGJvdW5kaW5nQm94LmhlaWdodCgpKSArIG9mZnNldFksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5aKCkpOworICAgICAgICBvcmlnaW5UcmFuc2xh
dGUuc2V0WChib3VuZGluZ0JveC54KCkgKyBmbG9hdFZhbHVlRm9yTGVuZ3RoKHRyYW5zZm9ybU9y
aWdpblgoKSwgYm91bmRpbmdCb3gud2lkdGgoKSkpOworICAgICAgICBvcmlnaW5UcmFuc2xhdGUu
c2V0WShib3VuZGluZ0JveC55KCkgKyBmbG9hdFZhbHVlRm9yTGVuZ3RoKHRyYW5zZm9ybU9yaWdp
blkoKSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpKTsKKyAgICAgICAgb3JpZ2luVHJhbnNsYXRlLnNl
dFoodHJhbnNmb3JtT3JpZ2luWigpKTsKKyAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKG9y
aWdpblRyYW5zbGF0ZS54KCksIG9yaWdpblRyYW5zbGF0ZS55KCksIG9yaWdpblRyYW5zbGF0ZS56
KCkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogb3BlcmF0aW9ucykKICAg
ICAgICAgb3BlcmF0aW9uLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CiAK
LSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKLSAgICAgICAgdHJhbnNmb3JtLnRyYW5z
bGF0ZTNkKC1mbG9hdFZhbHVlRm9yTGVuZ3RoKHRyYW5zZm9ybU9yaWdpblgoKSwgYm91bmRpbmdC
b3gud2lkdGgoKSkgLSBvZmZzZXRYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWZs
b2F0VmFsdWVGb3JMZW5ndGgodHJhbnNmb3JtT3JpZ2luWSgpLCBib3VuZGluZ0JveC5oZWlnaHQo
KSkgLSBvZmZzZXRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRyYW5zZm9ybU9y
aWdpblooKSk7Ci0gICAgfQorICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikKKyAgICAgICAg
dHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC1vcmlnaW5UcmFuc2xhdGUueCgpLCAtb3JpZ2luVHJhbnNs
YXRlLnkoKSwgLW9yaWdpblRyYW5zbGF0ZS56KCkpOwogfQogCiB2b2lkIFJlbmRlclN0eWxlOjpz
ZXRQYWdlU2NhbGVUcmFuc2Zvcm0oZmxvYXQgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGU0NjU3YjFmMGVkMTdhMDFiZDkwMGUxOGY5
OTU5YTg2ZTE2MzY0NzIuLmU4MGY5NThlM2M4ZGNkMjdlNzViZDNkODIxZTRhMjUxNTZiOGJlNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02
MDgsMTAgKzYwOCwxMSBAQCBwdWJsaWM6CiAgICAgQ29sdW1uU3BhbiBjb2x1bW5TcGFuKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29sdW1uU3Bhbj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bXVsdGlDb2wtPmNvbHVtblNwYW4pOyB9CiAKICAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zJiB0cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50
cmFuc2Zvcm0tPm9wZXJhdGlvbnM7IH0KKyAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsg
cmV0dXJuICFtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPm9wZXJhdGlvbnMub3Bl
cmF0aW9ucygpLmlzRW1wdHkoKTsgfQogICAgIGNvbnN0IExlbmd0aCYgdHJhbnNmb3JtT3JpZ2lu
WCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9ybS0+eDsg
fQogICAgIGNvbnN0IExlbmd0aCYgdHJhbnNmb3JtT3JpZ2luWSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9ybS0+eTsgfQogICAgIGZsb2F0IHRyYW5zZm9y
bU9yaWdpblooKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zv
cm0tPno7IH0KLSAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuICFtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPm9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmlzRW1w
dHkoKTsgfQorICAgIFRyYW5zZm9ybUJveCB0cmFuc2Zvcm1Cb3goKSBjb25zdCB7IHJldHVybiBt
X3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPnRyYW5zZm9ybUJveDsgfQogCiAgICAg
VGV4dEVtcGhhc2lzRmlsbCB0ZXh0RW1waGFzaXNGaWxsKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGV4dEVtcGhhc2lzRmlsbD4obV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lz
RmlsbCk7IH0KICAgICBUZXh0RW1waGFzaXNNYXJrIHRleHRFbXBoYXNpc01hcmsoKSBjb25zdDsK
QEAgLTExMzUsMTAgKzExMzYsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRDb2x1bW5SdWxl
KCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgcnVs
ZSwgQm9yZGVyVmFsdWUoKSk7IH0KICAgICB2b2lkIHNldENvbHVtblNwYW4oQ29sdW1uU3BhbiBj
b2x1bW5TcGFuKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRp
Q29sLCBjb2x1bW5TcGFuLCBjb2x1bW5TcGFuKTsgfQogICAgIHZvaWQgaW5oZXJpdENvbHVtblBy
b3BlcnRpZXNGcm9tKGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnQpIHsgbV9yYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS5tdWx0aUNvbCA9IHBhcmVudC5tX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5tdWx0aUNvbDsgfQorCiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9ucyYgb3BzKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIHRy
YW5zZm9ybSwgb3BlcmF0aW9ucywgb3BzKTsgfQogICAgIHZvaWQgc2V0VHJhbnNmb3JtT3JpZ2lu
WChMZW5ndGgmJiBsZW5ndGgpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0
YSwgdHJhbnNmb3JtLCB4LCBXVEZNb3ZlKGxlbmd0aCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zv
cm1PcmlnaW5ZKExlbmd0aCYmIGxlbmd0aCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCB0cmFuc2Zvcm0sIHksIFdURk1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lkIHNl
dFRyYW5zZm9ybU9yaWdpblooZmxvYXQgZikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCB0cmFuc2Zvcm0sIHosIGYpOyB9CisgICAgdm9pZCBzZXRUcmFuc2Zvcm1Cb3go
VHJhbnNmb3JtQm94IGJveCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCB0cmFuc2Zvcm0sIHRyYW5zZm9ybUJveCwgYm94KTsgfQorCiAgICAgdm9pZCBzZXRTcGVhayhF
U3BlYWsgcykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIHNwZWFrLCBzKTsgfQogICAg
IHZvaWQgc2V0VGV4dENvbWJpbmUoVGV4dENvbWJpbmUgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIHRleHRDb21iaW5lLCB2KTsgfQogICAgIHZvaWQgc2V0VGV4dERlY29yYXRp
b25Db2xvcihjb25zdCBDb2xvciYgYykgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEs
IHRleHREZWNvcmF0aW9uQ29sb3IsIGMpOyB9CkBAIC0xNTMyLDYgKzE1MzYsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0o
KSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUcmFuc2Zvcm1PcGVyYXRpb25zPiBvcHM7IHJldHVy
biBvcHM7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1PcmlnaW5YKCkgeyBy
ZXR1cm4gTGVuZ3RoKDUwLjBmLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlh
bFRyYW5zZm9ybU9yaWdpblkoKSB7IHJldHVybiBMZW5ndGgoNTAuMGYsIFBlcmNlbnQpOyB9Cisg
ICAgc3RhdGljIFRyYW5zZm9ybUJveCBpbml0aWFsVHJhbnNmb3JtQm94KCkgeyByZXR1cm4gVHJh
bnNmb3JtQm94OjpCb3JkZXJCb3g7IH0KICAgICBzdGF0aWMgRVBvaW50ZXJFdmVudHMgaW5pdGlh
bFBvaW50ZXJFdmVudHMoKSB7IHJldHVybiBQRV9BVVRPOyB9CiAgICAgc3RhdGljIGZsb2F0IGlu
aXRpYWxUcmFuc2Zvcm1PcmlnaW5aKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBFVHJhbnNm
b3JtU3R5bGUzRCBpbml0aWFsVHJhbnNmb3JtU3R5bGUzRCgpIHsgcmV0dXJuIFRyYW5zZm9ybVN0
eWxlM0RGbGF0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGU5ZGYxOTAwYzhlZjg1NmVhNjdmYWY2MmU0MjNk
MTU2YjU5NDA1MzguLjBkNGMwNzU4NjBhNGVhODMzOGI3MjM3YWE2MDAwYTRmY2U2ZjczMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCkBAIC01ODMsNyArNTgzLDEzIEBAIGVudW0gRVRyYW5zZm9ybVN0eWxlM0Qgewog
ZW51bSBFQmFja2ZhY2VWaXNpYmlsaXR5IHsKICAgICBCYWNrZmFjZVZpc2liaWxpdHlWaXNpYmxl
LCBCYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4KIH07Ci0gICAgCisKK2VudW0gY2xhc3MgVHJhbnNm
b3JtQm94IHsKKyAgICBCb3JkZXJCb3gsCisgICAgRmlsbEJveCwKKyAgICBWaWV3Qm94Cit9Owor
CiBlbnVtIEVMaW5lQ2xhbXBUeXBlIHsgTGluZUNsYW1wTGluZUNvdW50LCBMaW5lQ2xhbXBQZXJj
ZW50YWdlIH07CiAKIGVudW0gSHlwaGVucyB7IEh5cGhlbnNOb25lLCBIeXBoZW5zTWFudWFsLCBI
eXBoZW5zQXV0byB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlVHJhbnNmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVUcmFuc2Zvcm1EYXRhLmNwcAppbmRleCBlYWY3YTZhNDM3ZTkzNjExNjgzYmU2YTFhOWU0
M2JhMDA4MGEzOTU3Li5lYmEzMjIyZDQ3NDBkOWUzYzMxOWJkYThjODA0OWQ0NTU4NmY2MDQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zvcm1E
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zv
cm1EYXRhLmNwcApAQCAtMzEsNiArMzEsNyBAQCBTdHlsZVRyYW5zZm9ybURhdGE6OlN0eWxlVHJh
bnNmb3JtRGF0YSgpCiAgICAgLCB4KFJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3JtT3JpZ2lu
WCgpKQogICAgICwgeShSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYW5zZm9ybU9yaWdpblkoKSkKICAg
ICAsIHooUmVuZGVyU3R5bGU6OmluaXRpYWxUcmFuc2Zvcm1PcmlnaW5aKCkpCisgICAgLCB0cmFu
c2Zvcm1Cb3goUmVuZGVyU3R5bGU6OmluaXRpYWxUcmFuc2Zvcm1Cb3goKSkKIHsKIH0KIApAQCAt
NDAsNiArNDEsNyBAQCBpbmxpbmUgU3R5bGVUcmFuc2Zvcm1EYXRhOjpTdHlsZVRyYW5zZm9ybURh
dGEoY29uc3QgU3R5bGVUcmFuc2Zvcm1EYXRhJiBvdGhlcikKICAgICAsIHgob3RoZXIueCkKICAg
ICAsIHkob3RoZXIueSkKICAgICAsIHoob3RoZXIueikKKyAgICAsIHRyYW5zZm9ybUJveChvdGhl
ci50cmFuc2Zvcm1Cb3gpCiB7CiB9CiAKQEAgLTUwLDcgKzUyLDcgQEAgUmVmPFN0eWxlVHJhbnNm
b3JtRGF0YT4gU3R5bGVUcmFuc2Zvcm1EYXRhOjpjb3B5KCkgY29uc3QKIAogYm9vbCBTdHlsZVRy
YW5zZm9ybURhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVUcmFuc2Zvcm1EYXRhJiBvdGhlcikg
Y29uc3QKIHsKLSAgICByZXR1cm4geCA9PSBvdGhlci54ICYmIHkgPT0gb3RoZXIueSAmJiB6ID09
IG90aGVyLnogJiYgb3BlcmF0aW9ucyA9PSBvdGhlci5vcGVyYXRpb25zOworICAgIHJldHVybiB4
ID09IG90aGVyLnggJiYgeSA9PSBvdGhlci55ICYmIHogPT0gb3RoZXIueiAmJiB0cmFuc2Zvcm1C
b3ggPT0gb3RoZXIudHJhbnNmb3JtQm94ICYmIG9wZXJhdGlvbnMgPT0gb3RoZXIub3BlcmF0aW9u
czsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5oCmluZGV4IDZiNDZhMzU2YjQxZmMx
YjYxMjNlODJjNDdkMjEwNjAzYWFhYzkyNjguLmEzNmM5ZmFkNmI0YTUzMDlmYWZhZTA4N2JhM2Yw
ZmM2MDAyNzA4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVRyYW5zZm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVUcmFuc2Zvcm1EYXRhLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiTGVuZ3RoLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBM
ZW5ndGggeDsKICAgICBMZW5ndGggeTsKICAgICBmbG9hdCB6OworICAgIFRyYW5zZm9ybUJveCB0
cmFuc2Zvcm1Cb3g7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVUcmFuc2Zvcm1EYXRhKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IGY1ZjkyOTMyOTg5NGZj
ODU2Njg4YzJlMzk5YTJhOWUxZjY1MzBkNGQuLjkwN2I1MjA5YTc5Yjc0Yjc4ODNhNTFiOTE0ZDFj
NjZiYWQ5MmY1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQ
YXRoRGF0YS5oIgogI2luY2x1ZGUgIlNWR1JlY3QuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCkBAIC03OSwxMCArODAsMjYgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR0dyYXBoaWNz
RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAKICAgICAvLyBJZiBDU1Mg
cHJvcGVydHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVyd2lzZSBmYWxsYmFjayB0byBhdHRyaWJ1
dGUgKGlmIHNldCkuCiAgICAgaWYgKHN0eWxlICYmIHN0eWxlLT5oYXNUcmFuc2Zvcm0oKSkgewor
ICAgICAgICAKKyAgICAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OworICAgICAgICBzd2l0Y2gg
KHN0eWxlLT50cmFuc2Zvcm1Cb3goKSkgeworICAgICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Rmls
bEJveDoKKyAgICAgICAgICAgIGJvdW5kaW5nQm94ID0gcmVuZGVyZXIoKS0+b2JqZWN0Qm91bmRp
bmdCb3goKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRyYW5zZm9ybUJveDo6
Qm9yZGVyQm94OgorICAgICAgICAgICAgLy8gRm9yIFNWRyBlbGVtZW50cyB3aXRob3V0IGFuIGFz
c29jaWF0ZWQgQ1NTIGxheW91dCBib3gsIHRoZSB1c2VkIHZhbHVlIGZvciBib3JkZXItYm94IGlz
IHZpZXctYm94LgorICAgICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Vmlld0JveDoKKyAgICAgICAg
ICAgIGlmIChhdXRvICp2aWV3cG9ydEVsZW1lbnQgPSBuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoaXM8U1ZHU1ZHRWxlbWVudD4oKnZpZXdwb3J0RWxlbWVu
dCkpCisgICAgICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94ID0gZG93bmNhc3Q8U1ZHU1ZHRWxl
bWVudD4oKnZpZXdwb3J0RWxlbWVudCkudmlld0JveCgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIC8vIE5vdGU6IG9iamVj
dEJvdW5kaW5nQm94IGlzIGFuIGVtcHR5UmVjdCBmb3IgZWxlbWVudHMgbGlrZSBwYXR0ZXJuIG9y
IGNsaXBQYXRoLgogICAgICAgICAvLyBTZWUgdGhlICJPYmplY3QgYm91bmRpbmcgYm94IHVuaXRz
IiBzZWN0aW9uIG9mIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNmb3Jtcy8KICAg
ICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwotICAgICAgICBzdHlsZS0+YXBw
bHlUcmFuc2Zvcm0odHJhbnNmb3JtLCByZW5kZXJlcigpLT5vYmplY3RCb3VuZGluZ0JveCgpKTsK
KyAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gpOwog
CiAgICAgICAgIC8vIEZsYXR0ZW4gYW55IDNEIHRyYW5zZm9ybS4KICAgICAgICAgbWF0cml4ID0g
dHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNmb3JtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2Nzcy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvY3NzLmpz
CmluZGV4IGExZDVhMzg4ZTVhNjJmOWVmMWE4OGY4ZjYxZDQzODkwYmViOWE2NzcuLjBlNjVjMjFm
YTMwMWY1NDg3NGVhZGE0MjIxZDg1MDI5MDNmYTMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvY3NzLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3Iv
Y3NzLmpzCkBAIC01MTksNyArNTE5LDcgQEAgQ29kZU1pcnJvci5kZWZpbmVNb2RlKCJjc3MiLCBm
dW5jdGlvbihjb25maWcsIHBhcnNlckNvbmZpZykgewogICAgICJ0ZXh0LWVtcGhhc2lzLXBvc2l0
aW9uIiwgInRleHQtZW1waGFzaXMtc3R5bGUiLCAidGV4dC1oZWlnaHQiLAogICAgICJ0ZXh0LWlu
ZGVudCIsICJ0ZXh0LWp1c3RpZnkiLCAidGV4dC1vdXRsaW5lIiwgInRleHQtb3ZlcmZsb3ciLCAi
dGV4dC1zaGFkb3ciLAogICAgICJ0ZXh0LXNpemUtYWRqdXN0IiwgInRleHQtc3BhY2UtY29sbGFw
c2UiLCAidGV4dC10cmFuc2Zvcm0iLCAidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iLAotICAgICJ0
ZXh0LXdyYXAiLCAidG9wIiwgInRyYW5zZm9ybSIsICJ0cmFuc2Zvcm0tb3JpZ2luIiwgInRyYW5z
Zm9ybS1zdHlsZSIsCisgICAgInRleHQtd3JhcCIsICJ0b3AiLCAidHJhbnNmb3JtIiwgInRyYW5z
Zm9ybS1ib3giLCAidHJhbnNmb3JtLW9yaWdpbiIsICJ0cmFuc2Zvcm0tc3R5bGUiLAogICAgICJ0
cmFuc2l0aW9uIiwgInRyYW5zaXRpb24tZGVsYXkiLCAidHJhbnNpdGlvbi1kdXJhdGlvbiIsCiAg
ICAgInRyYW5zaXRpb24tcHJvcGVydHkiLCAidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iLCAi
dW5pY29kZS1iaWRpIiwKICAgICAidXNlci1zZWxlY3QiLCAidmVydGljYWwtYWxpZ24iLCAidmlz
aWJpbGl0eSIsICJ2b2ljZS1iYWxhbmNlIiwgInZvaWNlLWR1cmF0aW9uIiwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNmE0
NTlhZjRjNDI1NWU2NDMwZDg3NTg2Yzg1YmU0YTViYzczODU1Li5jMjE1NWExOWZiN2I2ODM3M2Rl
ZmQ1ZWY3MTFkMjcwOWEzYzcxMzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDUtMjAg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCB0cmFuc2Zvcm0tYm94IHRvIHN3aXRjaCBzaXppbmcgYm94IGluIFNWRworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRlc3RzIHRoYXQgcmVs
aWVkIG9uIHRoZSBvbGQgIiUgdmFsdWVzIHJlbGF0aXZlIHRvIHRoZSBib3VuZGluZyBib3giIGJl
aGF2aW9yLAorICAgICAgICBhbmQgbmV3IHRlc3RzIGZvciBwYXJzaW5nIGFuZCByZW5kZXJpbmcg
d2l0aCB0cmFuc2Zvcm0tYm94LgorCisgICAgICAgICogZmFzdC9jc3MvdHJhbnNmb3JtLWJveC1w
YXJzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFu
c2Zvcm0tb3JpZ2luLWNzcy54aHRtbDoKKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2Ut
dHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnhodG1sOgorICAgICAgICAq
IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbDoKKyAgICAgICAg
KiBzdmcvdHJhbnNmb3Jtcy9zdmctdHJhbnNmb3JtLWJveC1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9zdmctdHJhbnNmb3JtLWJveC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54
aHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0bWw6CisKIDIwMTctMDUt
MjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01TRV1bTWFj
XSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRvIGNhbnZhcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdHJhbnNmb3JtLWJveC1wYXJzaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy90cmFuc2Zvcm0tYm94LXBhcnNpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MjkxOGI1ZGRiODFiZDdmNDJjZjFhMDU5NDA0ZWYxOTYwMjVlMDc4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdHJhbnNmb3JtLWJveC1wYXJzaW5nLmh0bWwKQEAgLTAs
MCArMSw5MCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8c3ZnIGlkPSJzdmdSb290IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciPgorICAgICAgICA8Zm9yZWlnbk9iamVjdCBpZD0iZm9yZWlnbk9iamVjdCI+CisgICAgICAg
ICAgICA8aHRtbD4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJpbnNpZGUtZm9yZWlnbi1vYmpl
Y3QiPjwvZGl2PgorICAgICAgICAgICAgPC9odG1sPgorICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+
CisgICAgICAgIDxmb3JlaWduT2JqZWN0PgorICAgICAgICAgICAgPHN2ZyBpZD0ibmVzdGVkLXN2
ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAvPgorICAgICAgICA8L2ZvcmVp
Z25PYmplY3Q+CisgICAgPC9zdmc+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgY2hlY2tzIHBhcnNpbmcgb2YgdGhlICd0cmFuc2Zvcm0tYm94JyBwcm9wZXJ0
eSIpOworCisgICAgICAgIGZ1bmN0aW9uIHRlc3RQcm9wZXJ0eVZhbHVlKGRlY2xhcmF0aW9uLCBw
cm9wZXJ0eSkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBk
ZWNsYXJhdGlvbik7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7
CisKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShw
cm9wZXJ0eSk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
dGVzdENvbXB1dGVkU3R5bGUoZGVjbGFyYXRpb24sIHByb3BlcnR5KQorICAgICAgICB7CisgICAg
ICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
ICAgICBkaXYuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGRlY2xhcmF0aW9uKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAgICAgICAgICAgdmFyIHJlc3Vs
dCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0
eSk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgc3ZnTlMgPSAi
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciOworCisgICAgICAgIGZ1bmN0aW9uIHRlc3RTVkdD
b21wdXRlZFN0eWxlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0eSkKKyAgICAgICAgeworICAgICAgICAg
ICAgdmFyIHN2Z1Jvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ZnUm9vdCcpOworCisg
ICAgICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmdOUywgInJl
Y3QiKTsKKyAgICAgICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJzdHlsZSIsIGRlY2xhcmF0aW9u
KTsKKyAgICAgICAgICAgIHN2Z1Jvb3QuYXBwZW5kQ2hpbGQocmVjdCk7CisKKyAgICAgICAgICAg
IHZhciByZXN1bHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyZWN0KS5nZXRQcm9wZXJ0eVZh
bHVlKHByb3BlcnR5KTsKKyAgICAgICAgICAgIHN2Z1Jvb3QucmVtb3ZlQ2hpbGQocmVjdCk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBm
dW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZU9uRWxlbWVudFdpdGhJZChlbGVtZW50SWQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0t
Ym94Iik7CisgICAgICAgIH0KKworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RQ
cm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0tYm94OiBib3JkZXItYm94IiwgInRyYW5zZm9ybS1ib3gi
KScsICdib3JkZXItYm94Jyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdFBy
b3BlcnR5VmFsdWUoInRyYW5zZm9ybS1ib3g6IGZpbGwtYm94IiwgInRyYW5zZm9ybS1ib3giKScs
ICdmaWxsLWJveCcpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RQcm9wZXJ0
eVZhbHVlKCJ0cmFuc2Zvcm0tYm94OiB2aWV3LWJveCIsICJ0cmFuc2Zvcm0tYm94IiknLCAndmll
dy1ib3gnKTsKKworICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygndGVzdENvbXB1dGVkU3R5bGUoIiIsICJ0cmFuc2Zvcm0tYm94IiknLCAnYm9yZGVyLWJv
eCcpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCJ0
cmFuc2Zvcm0tYm94OiBmaWxsLWJveCIsICJ0cmFuc2Zvcm0tYm94IiknLCAnZmlsbC1ib3gnKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgidHJhbnNm
b3JtLWJveDogdmlldy1ib3giLCAidHJhbnNmb3JtLWJveCIpJywgJ3ZpZXctYm94Jyk7CisKKyAg
ICAgICAgZGVidWcoJycpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RTVkdD
b21wdXRlZFN0eWxlKCIiLCAidHJhbnNmb3JtLWJveCIpJywgJ3ZpZXctYm94Jyk7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdFNWR0NvbXB1dGVkU3R5bGUoInRyYW5zZm9ybS1i
b3g6IGZpbGwtYm94IiwgInRyYW5zZm9ybS1ib3giKScsICdmaWxsLWJveCcpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RTVkdDb21wdXRlZFN0eWxlKCJ0cmFuc2Zvcm0tYm94
OiBib3JkZXItYm94IiwgInRyYW5zZm9ybS1ib3giKScsICdib3JkZXItYm94Jyk7CisKKyAgICAg
ICAgZGVidWcoJycpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRl
ZFN0eWxlT25FbGVtZW50V2l0aElkKCJmb3JlaWduT2JqZWN0IiknLCAndmlldy1ib3gnKTsKKwor
ICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgIGRlYnVnKCdUZXN0IGRlZmF1bHQgdmFsdWUgb24g
ZWxlbWVudHMgd2l0aCBDU1MgbGF5b3V0IGJveGVzJyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygndGVzdENvbXB1dGVkU3R5bGVPbkVsZW1lbnRXaXRoSWQoInN2Z1Jvb3QiKScsICdi
b3JkZXItYm94Jyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVk
U3R5bGVPbkVsZW1lbnRXaXRoSWQoIm5lc3RlZC1zdmciKScsICdib3JkZXItYm94Jyk7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGVPbkVsZW1lbnRXaXRo
SWQoImluc2lkZS1mb3JlaWduLW9iamVjdCIpJywgJ2JvcmRlci1ib3gnKTsKKworICAgICAgICBk
ZWJ1ZygnJyk7CisgICAgPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy54
aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2lu
LWNzcy54aHRtbAppbmRleCAzOGY5NGNlZGM0ODU2ZGFjOGY4MDY0OTY0MzFmOWFmNWJmNDdhYjk5
Li41OGFkYjBkOWNjODZjYjYxODg3MmRmZDVmZWJlNDgxMzdiMDk4YTNkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1jc3MueGh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmln
aW4tY3NzLnhodG1sCkBAIC05LDExICs5LDExIEBAIFRoZSBncmVlbiAxMDB4MTAwIHJlY3Rhbmds
ZSBzaG91bGQgYXBwZWFyIGF0IDI1LDI1LgogCiA8Ym9keT4KICAgPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4
OyBsZWZ0OiAwcHg7Ij4KLSAgICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iNTBweCIgaGVpZ2h0
PSI1MHB4IiB4PSI1MCIgeT0iNTAiIGZpbGw9ImdyZWVuIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zv
cm06IHNjYWxlKDIsIDIpOyIvPgorICAgICAgPHJlY3QgaWQ9InJlY3QiIHdpZHRoPSI1MHB4IiBo
ZWlnaHQ9IjUwcHgiIHg9IjUwIiB5PSI1MCIgZmlsbD0iZ3JlZW4iIHN0eWxlPSJ0cmFuc2Zvcm06
IHNjYWxlKDIsIDIpOyB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDsiLz4KICAgPC9zdmc+CiAKICAg
PHNjcmlwdD48IVtDREFUQVsKLSAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN0Jyku
c3R5bGUud2Via2l0VHJhbnNmb3JtT3JpZ2luID0gIjUwJSA1MCUiOworICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3JlY3QnKS5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSAiNTAlIDUwJSI7
CiAgIF1dPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0aW9uLWF0
dHJpYnV0ZS54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zv
cm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUueGh0bWwKaW5kZXggYzAzZWUyYjViYjFm
NmE3MDU0ZWJlNmFjODJjNDM3ZTY4M2FhOTVlMS4uNWNlOGY3MGY0NmFjZmNmNDIyMDcwYTgzZjg2
MTk1NDI0YmQyOWM1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hh
bmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS54aHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50
YXRpb24tYXR0cmlidXRlLnhodG1sCkBAIC04LDcgKzgsNyBAQCBUaGUgZ3JlZW4gMTAweDEwMCBy
ZWN0YW5nbGUgc2hvdWxkIGFwcGVhciBhdCAyNSwyNS4KIAogPGJvZHk+CiAgIDxzdmcgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0
b3A6IDBweDsgbGVmdDogMHB4OyI+Ci0gICAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjUwcHgi
IGhlaWdodD0iNTBweCIgeD0iNTAiIHk9IjUwIiBmaWxsPSJncmVlbiIgdHJhbnNmb3JtLW9yaWdp
bj0iMCAwIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDIsIDIpOyIvPgorICAgICAg
PHJlY3QgaWQ9InJlY3QiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHg9IjUwIiB5PSI1MCIg
ZmlsbD0iZ3JlZW4iIHRyYW5zZm9ybS1vcmlnaW49IjAgMCIgc3R5bGU9InRyYW5zZm9ybTogc2Nh
bGUoMiwgMik7IHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94OyIvPgogICA8L3N2Zz4KIAogICA8c2Ny
aXB0PjwhW0NEQVRBWwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVy
Y2VudC10cmFuc2Zvcm0tdmFsdWVzLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMv
cGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLnhodG1sCmluZGV4IDVlMjY0OGI0ZWMwMjcxNDM4ZTFl
NTk2Nzg1ZGY1ZjJiOWQxMzI5ZjYuLmYwYTE2YjlhMTNiYmZmZDg1MWYyYzIzYTA0YmJjN2JmYTMx
ZDIwY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJh
bnNmb3JtLXZhbHVlcy54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJj
ZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwKQEAgLTEsNiArMSw2IEBACiA8aHRtbCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CiA8Ym9keT4KLSAgPHA+VGVzdCBmb3IgYnVn
IDxhIGhyZWY9IiI+NzkwNjg8L2E+IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmln
aW4gYW5kIHJlbGF0aXZlIHZhbHVlcworICA8cD5UZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cDov
L3dlYmtpdC5vcmcvYi83OTA2OCI+NzkwNjg8L2E+IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5z
Zm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZhbHVlcwogICBWZXJpZnkgdGhhdCBDU1MgdHJhbnNm
b3JtIHRyYW5zbGF0ZSB2YWx1ZXMgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHBlcmNlbnRhZ2VzLgog
ICA8L3A+CiAgIFlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcyBhbmQg
b25lIDgweDYwIGdyZWVuIHJlY3RhbmdsZS4gICBUaGUgZ3JlZW4gcmVjdGFuZ2xlIG9ic2N1cmVz
IHR3bwpAQCAtOCw5ICs4LDkgQEAKICAgPHA+CiAgIDwvcD4KICAgPHN2ZyBzdHlsZT0icG9zaXRp
b246YWJzb2x1dGU7IGxlZnQ6MHB4OyB0b3A6MHB4OyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIj4KLSAgICA8cmVjdCBpZD0icjEiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4MCIg
aGVpZ2h0PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZSg1MCUpIi8+Ci0gICAgPHJlY3QgaWQ9InIyIiB4PSI5MCIgeT0iMjYwIiB3aWR0aD0iODAiIGhl
aWdodD0iNjAiIGZpbGw9InJlZCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTUwJSwgLTEwMCUpIi8+Ci0gICAgPHJlY3QgaWQ9InIzIiB4PSIxMCIgeT0iMjAwIiB3aWR0aD0i
ODAiIGhlaWdodD0iNjAiIGZpbGw9ImdyZWVuIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZSg1MCUsIDAlKSIvPgorICAgIDxyZWN0IGlkPSJyMSIgeD0iMTAiIHk9IjIwMCIgd2lk
dGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSJ0cmFuc2Zvcm0tYm94OiBmaWxs
LWJveDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlKSIvPgorICAgIDxyZWN0IGlkPSJyMiIgeD0i
OTAiIHk9IjI2MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSJ0cmFu
c2Zvcm0tYm94OiBmaWxsLWJveDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpIi8+
CisgICAgPHJlY3QgaWQ9InIzIiB4PSIxMCIgeT0iMjAwIiB3aWR0aD0iODAiIGhlaWdodD0iNjAi
IGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3JtLWJveDogZmlsbC1ib3g7IHRyYW5zZm9ybTog
dHJhbnNsYXRlKDUwJSwgMCUpIi8+CiAgIDwvc3ZnPgogICA8cHJlIGlkPSJsb2ciPjwvcHJlPgog
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvc3ZnLXRyYW5z
Zm9ybS1ib3gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3N2Zy10
cmFuc2Zvcm0tYm94LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBjNjE3ZjQyZGJmNTNkOTEx
YjAxNjNmNDZhYmZkMWE5YzU4YjJhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2
Zy90cmFuc2Zvcm1zL3N2Zy10cmFuc2Zvcm0tYm94LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICBz
dmcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgIDwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5PgorCisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPHA+WW91IHNob3VsZCBzZWUgbm8gcmVkIGJveGVzIGJlbG93PC9wPgorICAgICAgICA8c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94
PSIwIDAgNjAwIDQwMCIgc3R5bGU9IiB3aWR0aDogNjAwcHg7IGhlaWdodDogNDAwcHg7Ij4KKyAg
ICAgICAgICAgIDwhLS0gdHJhbnNmb3JtLWJveDogdmlldy1ib3ggLS0+CisgICAgICAgICAgICA8
cmVjdCB4PSIyMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiAv
PgorICAgICAgICAgICAgPHJlY3QgeD0iNDgwIiB5PSI0MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUw
IiBmaWxsPSJncmVlbiIgLz4KKyAgICAgICAgICAgIDxyZWN0IHg9IjEyMCIgeT0iMTIwIiB3aWR0
aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiAvPgorICAgICAgICAgICAgPHJlY3QgeD0i
MjAiIHk9IjIwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCIgZmlsbD0iZ3JlZW4iIC8+CisgICAg
ICAgICAgICA8cmVjdCB4PSI0ODAiIHk9IjI2MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxs
PSJncmVlbiIgLz4KKyAgICAgICAgICAgIDxyZWN0IHg9IjEyMCIgeT0iMzIwIiB3aWR0aD0iNTAi
IGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiAvPgorICAgICAgICA8L3N2Zz4KKyAgICA8L2Rpdj4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9y
bXMvc3ZnLXRyYW5zZm9ybS1ib3guaHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3N2
Zy10cmFuc2Zvcm0tYm94Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjUwNmY1Mzk0ZGI3NTQ2MjgwMjQxYWFm
Y2ZjOTdmYmY1MWRlZTRmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFu
c2Zvcm1zL3N2Zy10cmFuc2Zvcm0tYm94Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBF
IGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICBzdmcgeworICAgICAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxi
b2R5PgorCisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPHA+WW91IHNob3Vs
ZCBzZWUgbm8gcmVkIGJveGVzIGJlbG93PC9wPgorICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgNjAwIDQwMCIg
c3R5bGU9IiB3aWR0aDogNjAwcHg7IGhlaWdodDogNDAwcHg7Ij4KKyAgICAgICAgICAgIDwhLS0g
dHJhbnNmb3JtLWJveDogdmlldy1ib3ggLS0+CisgICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0i
MTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iNTAiIGZpbGw9InJlZCIgLz4KKyAgICAgICAgICAgIDxy
ZWN0IHg9IjIwIiB5PSI1IiB3aWR0aD0iNTAiIGhlaWdodD0iMjUiIGZpbGw9ImdyZWVuIiBzdHls
ZT0idHJhbnNmb3JtOiBzY2FsZSgyLCAyKTsgdHJhbnNmb3JtLW9yaWdpbjogMjBweCAwOyB0cmFu
c2Zvcm0tYm94OiB2aWV3LWJveDsiIC8+CisKKyAgICAgICAgICAgIDxyZWN0IHg9IjQ4MCIgeT0i
NDAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0icmVkIiAvPgorICAgICAgICAgICAgPHJl
Y3QgeD0iMCIgeT0iMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9
InRyYW5zZm9ybTogdHJhbnNsYXRlKDgwJSwgMTAlKTsgdHJhbnNmb3JtLWJveDogdmlldy1ib3g7
IiAvPgorCisgICAgICAgICAgICA8cmVjdCB4PSIxMjAiIHk9IjEyMCIgd2lkdGg9IjUwIiBoZWln
aHQ9IjUwIiBmaWxsPSJyZWQiIC8+CisgICAgICAgICAgICA8cmVjdCB4PSIxODAiIHk9IjEwIiB3
aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3JtOiByb3Rh
dGUoOTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOiAxMjBweCA2MHB4OyB0cmFuc2Zvcm0tYm94OiB2
aWV3LWJveDsiIC8+CisgICAgICAgICAgICA8cmVjdCB4PSIxODAiIHk9IjEwIiB3aWR0aD0iNTAi
IGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoOTBkZWcp
OyB0cmFuc2Zvcm0tb3JpZ2luOiAyMCUgMTUlOyB0cmFuc2Zvcm0tYm94OiB2aWV3LWJveDsiIC8+
CisKKyAgICAgICAgICAgIDwhLS0gdHJhbnNmb3JtLWJveDogZmlsbC1ib3ggLS0+CisgICAgICAg
ICAgICA8cmVjdCB4PSIyMCIgeT0iMjAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjUwIiBmaWxsPSJy
ZWQiIC8+CisgICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0iMjAwIiB3aWR0aD0iNTAiIGhlaWdo
dD0iMjUiIGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZSgyLCAyKTsgdHJhbnNm
b3JtLWJveDogZmlsbC1ib3g7IiAvPgorCisgICAgICAgICAgICA8cmVjdCB4PSI0ODAiIHk9IjI2
MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiIC8+CisgICAgICAgICAgICA8cmVj
dCB4PSI0MzAiIHk9IjMxMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC0xMDAlKTsgdHJhbnNmb3JtLWJveDogZmls
bC1ib3g7IiAvPgorCisgICAgICAgICAgICA8cmVjdCB4PSIxMjAiIHk9IjMyMCIgd2lkdGg9IjUw
IiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiIC8+CisgICAgICAgICAgICA8cmVjdCB4PSI3MCIgeT0i
MjcwIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3Jt
OiByb3RhdGUoMTgwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjogNTBweCA1MHB4OyB0cmFuc2Zvcm0t
Ym94OiBmaWxsLWJveDsiIC8+CisgICAgICAgICAgICA8cmVjdCB4PSI5NSIgeT0iMzQ1IiB3aWR0
aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUo
OTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTsgdHJhbnNmb3JtLWJveDogZmlsbC1i
b3g7IiAvPgorICAgICAgICA8L3N2Zz4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1j
c3MtcHJvcGVydHkueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0t
b3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbAppbmRleCAyMDViYWVmYWViNjFjMDRlNTA1NDVhNmY5
N2Q1NThiNzA2NGVkM2YwLi45YWFjNzRmNDQ3YWIxNjgyMjMyMDY3NDI4NDkwZDJmZWRhZDUyNDAz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2lu
LWNzcy1wcm9wZXJ0eS54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFu
c2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbApAQCAtMTAsNyArMTAsNyBAQAogCiAjdHJh
bnNmb3JtT3JpZ2luUmVjdCB7CiAgICAgZmlsbDogZ3JlZW47Ci0gICAgLXdlYmtpdC10cmFuc2Zv
cm06IHJvdGF0ZSg5MGRlZyk7CisgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwogfQogPC9z
dHlsZT4KIApAQCAtMzAsMTMgKzMwLDEzIEBACiAgICAgZnVuY3Rpb24gYWRkVHJhbnNmb3JtT3Jp
Z2luUmVjdCh4LCB5LCBzKQogICAgIHsKICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnROUyhzdmdOUywgInJlY3QiKTsKLSAgICAgICB2YXIgdHJhbnNmb3JtT3JpZ2luID0g
KHR5cGVvZihzKSA9PSAic3RyaW5nIikgPyBzIDogICh4ICsgc1swXSkgKyAiICIgKyAoeSArIHNb
MV0pOworICAgICAgIHZhciB0cmFuc2Zvcm1PcmlnaW4gPSAodHlwZW9mKHMpID09ICJzdHJpbmci
KSA/IHMgOiAgKHggKyBzWzBdKSArICJweCAiICsgKHkgKyBzWzFdKSArICJweCI7CiAgICAgICAg
cmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInRyYW5zZm9ybU9yaWdpblJlY3QiKTsKICAgICAgICBy
ZWN0LnNldEF0dHJpYnV0ZSgieCIsIHgpOwogICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ5Iiwg
eSk7CiAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgMzApOwogICAgICAgIHJlY3Qu
c2V0QXR0cmlidXRlKCJoZWlnaHQiLCAzMCk7Ci0gICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInN0
eWxlIiwgIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogIiArIHRyYW5zZm9ybU9yaWdpbiArICI7
Iik7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgInRyYW5zZm9ybS1ib3g6IHZp
ZXctYm94OyB0cmFuc2Zvcm0tb3JpZ2luOiAiICsgdHJhbnNmb3JtT3JpZ2luICsgIjsiKTsKICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnUm9vdCIpLmFwcGVuZENoaWxkKHJlY3Qp
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9zdmctdnMtY3Nz
LnhodG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9zdmctdnMtY3NzLnhodG1sCmluZGV4IDY5
ZjAxYzk3MjM0NDNlMGRhYTgyZjhiMjAzY2VmZjQ0NTdkOGExOTUuLjU3MzE1OWU4ZTU4MjFjNDAy
YTc5M2EwOWFlYzNkMTEzMWVjZjFjYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zZm9y
bXMvc3ZnLXZzLWNzcy54aHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL3N2Zy12cy1j
c3MueGh0bWwKQEAgLTk3LDkgKzk3LDkgQEAKICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgog
ICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEu
MSIgIAogICAgICAgICAgIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiBzdHlsZT0id2lkdGg6MjAwcHg7
IGhlaWdodDoyMDBweDsiPgotICAgICAgICAgIDxnIGlkPSJncm91cDEiIHg9IjAiIHk9IjAiIHdp
ZHRoPSI2MCIgaGVpZ2h0PSI2MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUsIDI1KSI+CisgICAg
ICAgICAgPGcgaWQ9Imdyb3VwMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUsIDI1KSI+CiAgICAg
ICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHN0cm9rZT0i
YmxhY2siIHN0cm9rZS13aWR0aD0iMXB4IiBzdHJva2UtZGFzaGFycmF5PSIxIDEiIGZpbGw9Im5v
bmUiIC8+Ci0gICAgICAgICAgICA8ZyBpZD0iZ3JvdXAyIiB4PSIwIiB5PSIwIiB3aWR0aD0iNjAi
IGhlaWdodD0iNjAiIHRyYW5zZm9ybT0ic2NhbGUoMikiID4KKyAgICAgICAgICAgIDxnIGlkPSJn
cm91cDIiIHRyYW5zZm9ybT0ic2NhbGUoMikiPgogICAgICAgICAgICAgICA8cmVjdCB4PSIwIiB5
PSIwIiB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1kYXNoYXJy
YXk9IjEgMSIgc3Ryb2tlLXdpZHRoPSIxcHgiIGZpbGw9Im5vbmUiIC8+CiAgICAgICAgICAgICAg
IDxyZWN0IGlkPSJncm91cDMiIHg9IjAiIHk9IjAiIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgc3Ry
b2tlPSJibHVlIiBmaWxsPSJub25lIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSkiIC8+CiAgICAgICAg
ICAgICA8L2c+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310790</attachid>
            <date>2017-05-20 21:21:49 -0700</date>
            <delta_ts>2017-05-22 12:19:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145783-20170520212148.patch</filename>
            <type>text/plain</type>
            <size>38366</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgwYmM2MWM5ZDAzNmJk
YjVlYmU0NWZjOTA0OTAxMGIyYWFjNGY3My4uOGE1NWU0YzgzNTlhYmI5MzA3ZjI4OWQ4NmVjZDQz
ZTI5N2ZkNmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE3LTA1LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgdHJh
bnNmb3JtLWJveCB0byBzd2l0Y2ggc2l6aW5nIGJveCBpbiBTVkcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgQ1NTICJ0
cmFuc2Zvcm0tYm94IiBwcm9wZXJ0eSwgYXMgZGVzY3JpYmVkIGF0CisgICAgICAgIDxodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXRyYW5zZm9ybXMvI3RyYW5zZm9ybS1ib3g+LgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBwZXJjZW50YWdlIHZhbHVl
cyBpbiB0cmFuc2Zvcm0tb3JpZ2luIGluIFNWRy4KKyAgICAgICAgV2hlbiB0aGVzZSB3ZXJlIGFk
ZGVkIGluIHIxMTA1MzIsIHBlcmNlbnRhZ2UgdmFsdWVzIGluIHRyYW5zZm9ybS1vcmlnaW4gd2Vy
ZSBtYWRlCisgICAgICAgIHJlbGF0aXZlIHRvIHRoZSBib3VuZGluZyBib3gsIGJ1dCBhYnNvbHV0
ZSB2YWx1ZXMgcmVsYXRpdmUgdG8gdGhlIHZpZXcgYm94LgorICAgICAgICA8aHR0cHM6Ly9naXRo
dWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzg5NT4gaGFzIGNvbmNsdWRlZCB0aGF0IHRo
aXMgYmVoYXZpb3IKKyAgICAgICAgaXMgY29uZnVzaW5nLiBUaGUgbmV3IGJlaGF2aW9yIGlzIHRo
YXQsIGZvciBTVkcgZWxlbWVudHMsIGJvdGggYWJzb2x1dGUgYW5kCisgICAgICAgIHBlcmNlbnRh
Z2UgdmFsdWVzIGFyZSByZWxhdGl2ZSB0byB0aGUgcmVmZXJlbmNlIGJveCwgd2hpY2ggaXMgc3Bl
Y2lmaWVkIGJ5IHRoZQorICAgICAgICBuZXcgdHJhbnNmb3JtLWJveCBwcm9wZXJ0eS4KKworICAg
ICAgICBUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgdHJhbnNmb3JtLWJveCBpcyBib3JkZXItYm94LCB3
aXRoIHRoZSBzdmcuY3NzIFVBIHN0eWxlc2hlZXQKKyAgICAgICAgc3VwcGx5aW5nIGEgZGVmYXVs
dCBvZiB2aWV3LWJveCBmb3IgdGhlIHJlbGV2YW50IFNWRyBlbGVtZW50cyBwZXIKKyAgICAgICAg
PGh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcyL3N0eWxpbmcuaHRtbCNVQVN0eWxlU2hlZXQ+Lgor
CisgICAgICAgIEZvciBub24tU1ZHIGVsZW1lbnRzLCB0aGUgdXNlZCB2YWx1ZSBpcyBhbHdheXMg
Ym9yZGVyLWJveCwgc28gdGhlcmUgaXMgbm8gY2hhbmdlCisgICAgICAgIGluIGJlaGF2aW9yLgor
CisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy90cmFuc2Zvcm0tYm94LXBhcnNpbmcuaHRtbAorICAg
ICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvc3ZnLXRyYW5zZm9ybS1ib3guaHRtbAorCisgICAg
ICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKiBj
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUcmFuc2Zvcm1Cb3gpOgorICAgICAgICAqIGNzcy9DU1NQ
cm9wZXJ0aWVzLmpzb246CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAg
ICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZSk6CisgICAgICAgICogY3NzL3N2
Zy5jc3M6CisgICAgICAgICgqOm5vdChzdmcpLCk6CisgICAgICAgICgqKTogRGVsZXRlZC4KKyAg
ICAgICAgKGh0bWx8KiA+IHN2Zyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpjb21w
dXRlVHJhbnNmb3JtZWRFeHRlbnRWaWFUcmFuc2Zvcm1MaXN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OmFwcGx5VHJhbnNmb3JtKTogVGhlIHRyYW5zZm9ybU9yaWdpblgoKS5pc1BlcmNlbnQoKSB0ZXN0
cworICAgICAgICB3ZXJlIGFkZGVkIHRvIHN1cHBvcnQgdGhlIHdlaXJkICIlIHZhbHVlcyBhcmUg
cmVsYXRpdmUgdG8gYm91bmRpbmcgYm94IiBpbiBTVkcuIE5vdworICAgICAgICBpdCdzIHVwIHRv
IHRoZSBjYWxsZXIgdG8gcGFzcyBhIG5vbi16ZXJvIG9yaWdpbiB3aGVuIHRoYXQgbWF0dGVycywg
YW5kCisgICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgp
IGlzIHRoZSBvbmx5IGNhbGxlciB0aGF0IGRvZXMgc28uCisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aGFzVHJh
bnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp0cmFuc2Zvcm1Cb3gpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFRyYW5zZm9ybUJveCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYW5zZm9ybUJveCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVRyYW5zZm9ybURhdGE6OlN0eWxlVHJhbnNmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVRyYW5zZm9ybURhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVRyYW5zZm9ybURhdGEuaDoKKyAgICAgICAgKiBzdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYXBoaWNzRWxlbWVudDo6YW5pbWF0ZWRMb2Nh
bFRyYW5zZm9ybSk6IENvbnN1bHQgdGhlIHRyYW5zZm9ybS1ib3gKKyAgICAgICAgc3R5bGUgdG8g
Y29tcHV0ZSB0aGUgcmVmZXJlbmNlIGJveCBhcyB0aGUgYm91bmRpbmcgYm94LCBvciB0aGUgdmll
dyBib3guCisKIDIwMTctMDUtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01TRV1bTWFjXSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRv
IGNhbnZhcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggOWI5MTJhOGY1Y2ZlMjkyM2YxMTRj
M2FhNWQxOGI2N2ZiOWU2MTY5NC4uMzIwYWI0NGE2NDE0NTAzODcwMTNhNzFhMmE5YjM2YWI0ODc2
ZWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDUt
MjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3Vw
cG9ydCB0cmFuc2Zvcm0tYm94IHRvIHN3aXRjaCBzaXppbmcgYm94IGluIFNWRworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRyYW5zZm9ybS1ib3gg
dG8gdGhlIGxpc3Qgb2YgYXV0b2NvbXBsZXRpb25zLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9FeHRlcm5hbC9Db2RlTWlycm9yL2Nzcy5qczoKKwogMjAxNy0wNS0xOSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVXNlIGluaXRp
YWxMYXlvdXQgZm9yIFNldHRpbmdzIHRhYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA3NWUxYjVkZmZjYWU4YWIzZDU0YzU3
YzQ0MDMzZjFhMjU5YjUyOTUxLi4wNDYwZTUxMzk3ZTkyMWVmNDkxYjZhNTJiM2E0NzZhMjg4OWI1
NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcApAQCAtMjMxLDYgKzIzMSw3IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlE
IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5VGV4dFRyYW5zZm9ybSwK
ICAgICBDU1NQcm9wZXJ0eVRvcCwKICAgICBDU1NQcm9wZXJ0eVRyYW5zZm9ybSwKKyAgICBDU1NQ
cm9wZXJ0eVRyYW5zZm9ybUJveCwKICAgICBDU1NQcm9wZXJ0eVRyYW5zZm9ybU9yaWdpbiwKICAg
ICBDU1NQcm9wZXJ0eVRyYW5zZm9ybVN0eWxlLAogICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbkRl
bGF5LApAQCAtMzY4Miw2ICszNjgzLDggQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxl
RXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwKICAgICAg
ICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUtPnNwZWFrKCkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNmb3JtOgogICAgICAgICAgICAgcmV0dXJuIGNv
bXB1dGVkVHJhbnNmb3JtKHJlbmRlcmVyLCAqc3R5bGUpOworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5VHJhbnNmb3JtQm94OgorICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUoc3R5bGUtPnRyYW5zZm9ybUJveCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRy
YW5zZm9ybU9yaWdpbjogewogICAgICAgICAgICAgYXV0byBsaXN0ID0gQ1NTVmFsdWVMaXN0Ojpj
cmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCA5ZTQ5
MWZhN2NkNmJhY2E1MDdmMjhlNDRiZDM5Njc4MDI3OWQ5Njg5Li42YTQzNjZkMDExY2Y0Nzk1MGVi
M2ExZmMyY2ZiODMxYWRjMGMxNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTQ0MTQsNiArNDQxNCw0MiBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRyYW5zZm9ybVN0eWxlM0QoKSBjb25z
dAogICAgIHJldHVybiBUcmFuc2Zvcm1TdHlsZTNERmxhdDsKIH0KIAordGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRyYW5zZm9ybUJveCBib3gp
CisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoYm94KSB7CisgICAgY2FzZSBUcmFuc2Zv
cm1Cb3g6OkJvcmRlckJveDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3Jk
ZXJCb3g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpGaWxsQm94Ogor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGxCb3g7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpWaWV3Qm94OgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYW5zZm9ybUJveCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJvcmRlckJveDoKKyAgICAgICAgcmV0dXJuIFRy
YW5zZm9ybUJveDo6Qm9yZGVyQm94OworICAgIGNhc2UgQ1NTVmFsdWVGaWxsQm94OgorICAgICAg
ICByZXR1cm4gVHJhbnNmb3JtQm94OjpGaWxsQm94OworICAgIGNhc2UgQ1NTVmFsdWVWaWV3Qm94
OgorICAgICAgICByZXR1cm4gVHJhbnNmb3JtQm94OjpWaWV3Qm94OworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBUcmFuc2Zvcm1Cb3g6OkJvcmRlckJveDsKK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkF4aXMgZSkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpz
b24KaW5kZXggMWFiY2I1MGNkMDZjN2UzNTE0ODUyNDlhYmYxYmRmOTM5Mzg2YmY3Mi4uNTdjM2Ez
Zjk5OTIxNmMzZjU0OTBkZTYxZTdhMjc1OWMwNmFhMGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydGllcy5qc29uCkBAIC01OTUzLDYgKzU5NTMsMTkgQEAKICAgICAgICAgICAgICAgICAi
dXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdHJhbnNmb3Jtcy0xLyN0cmFuc2Zvcm0t
cHJvcGVydHkiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJ0cmFuc2Zvcm0t
Ym94IjogeworICAgICAgICAgICAgInZhbHVlcyIgOiBbCisgICAgICAgICAgICAgICAgImJvcmRl
ci1ib3giLAorICAgICAgICAgICAgICAgICJmaWxsLWJveCIsCisgICAgICAgICAgICAgICAgInZp
ZXctYm94IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMi
OiB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAg
ICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy10cmFuc2Zvcm1zIiwKKyAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdHJhbnNmb3Jtcy8jcHJvcGRlZi10
cmFuc2Zvcm0tYm94IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAidHJhbnNm
b3JtLW9yaWdpbiI6IHsKICAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAg
ICAgICAgICAgICAgImFsaWFzZXMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCmluZGV4IDJlOWE2MjJhNmNkNzAzZTBmN2RmMTE5NGZmODBkNzJkODcyZDgwZjkuLmM0NWUw
ZWFhN2I2NmViMDBhMTQxOWU0OTE0NzI1YmEyMmRmMWVjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMjQ3LDYgKzEyNDcsMTEgQEAgdHJhbnNsYXRlWQogdHJh
bnNsYXRlWgogdHJhbnNsYXRlM2QKIAorLy8gdHJhbnNmb3JtLWJveAorLy8gYm9yZGVyLWJveAor
Ly8gdmlldy1ib3gKK2ZpbGwtYm94CisKIC8vIG1vdGlvbiBwYXRoCiBwYXRoCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggM2UwODcy
NmUzYjY5NjllYjUxMjZmMGFmOWJhODJjYzFjZjRhZDc1OC4uYjlhZjQxZWI2OWVhZWY2ZDJiNDBl
ZThlZDZlYjE2ZDc1OTAyMjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTQwNzEsNiArNDA3MSw4IEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgQ1NTCiAgICAgICAgIHJldHVybiBjb25zdW1lTGluZVdpZHRoKG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlU
cmFuc2Zvcm06CiAgICAgICAgIHJldHVybiBjb25zdW1lVHJhbnNmb3JtKG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNmb3JtQm94OgorICAgICAgICBy
ZXR1cm4gY29uc3VtZUlkZW50PENTU1ZhbHVlQm9yZGVyQm94LCBDU1NWYWx1ZVZpZXdCb3gsIENT
U1ZhbHVlRmlsbEJveD4obV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zZm9ybU9y
aWdpblg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBlcnNwZWN0aXZlT3JpZ2luWDoKICAgICAgICAg
cmV0dXJuIGNvbnN1bWVQb3NpdGlvblgobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3Zn
LmNzcwppbmRleCAxY2Y4ODgxYjY5Y2ZlZTFhZTUxYWEyOWUxZmMxNDVmNmEzMTE3OGNiLi41MzUz
N2U4MjIyNTU4NGQ3MTAwMjhkZGY0M2RjNTdkZmJjNjIzYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3Mvc3ZnLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3ZnLmNzcwpAQCAt
NzIsMTIgKzcyLDggQEAgdGV4dCwgdHNwYW4sIHRyZWYgewogICAgIG91dGxpbmU6IGF1dG8gNXB4
IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcgogfQogCi0vKiBDU1MgdHJhbnNmb3JtIHNwZWNpZmlj
YXRpb246ICJ0cmFuc2Zvcm0tb3JpZ2luIDAgMCBmb3IgU1ZHIGVsZW1lbnRzIHdpdGhvdXQgYXNz
b2NpYXRlZCBDU1MgbGF5b3V0IGJveCwgNTAlIDUwJSBmb3IgYWxsIG90aGVyIGVsZW1lbnRzIi4g
Ki8KLSAKLSogewotICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOwotfQotCi1odG1s
fCogPiBzdmcgewotICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKKyo6bm90
KHN2ZyksCisqOm5vdChmb3JlaWduT2JqZWN0KSA+IHN2ZyB7CisgICAgdHJhbnNmb3JtLW9yaWdp
bjogMCAwOworICAgIHRyYW5zZm9ybS1ib3g6IHZpZXctYm94OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCA1ZTkzZjgzNjc3ZDVm
NTZjYWViN2Q4MGU5MGQ4MjA3YTE1ZWVhZTc0Li40Y2Y1ZTI5ZDBiOTM4NmFmZmUyNzI2YzczYWFl
ZTIyMzkzNTE1M2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcApAQCAtODAyLDEzICs4MDIsMTAgQEAgYm9vbCBBbmltYXRpb25CYXNlOjpj
b21wdXRlVHJhbnNmb3JtZWRFeHRlbnRWaWFUcmFuc2Zvcm1MaXN0KGNvbnN0IEZsb2F0UmVjdCYg
cmUKICAgICAKICAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gY29udGFpbnNSb3RhdGlv
bihzdHlsZS50cmFuc2Zvcm0oKS5vcGVyYXRpb25zKCkpIHx8IHN0eWxlLnRyYW5zZm9ybSgpLmFm
ZmVjdGVkQnlUcmFuc2Zvcm1PcmlnaW4oKTsKICAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4p
IHsKLSAgICAgICAgZmxvYXQgb2Zmc2V0WCA9IHN0eWxlLnRyYW5zZm9ybU9yaWdpblgoKS5pc1Bl
cmNlbnQoKSA/IHJlbmRlcmVyQm94LngoKSA6IDA7Ci0gICAgICAgIGZsb2F0IG9mZnNldFkgPSBz
dHlsZS50cmFuc2Zvcm1PcmlnaW5ZKCkuaXNQZXJjZW50KCkgPyByZW5kZXJlckJveC55KCkgOiAw
OwotCi0gICAgICAgIHRyYW5zZm9ybU9yaWdpbi5zZXRYKGZsb2F0VmFsdWVGb3JMZW5ndGgoc3R5
bGUudHJhbnNmb3JtT3JpZ2luWCgpLCByZW5kZXJlckJveC53aWR0aCgpKSArIG9mZnNldFgpOwot
ICAgICAgICB0cmFuc2Zvcm1PcmlnaW4uc2V0WShmbG9hdFZhbHVlRm9yTGVuZ3RoKHN0eWxlLnRy
YW5zZm9ybU9yaWdpblkoKSwgcmVuZGVyZXJCb3guaGVpZ2h0KCkpICsgb2Zmc2V0WSk7CisgICAg
ICAgIHRyYW5zZm9ybU9yaWdpbi5zZXRYKHJlbmRlcmVyQm94LngoKSArIGZsb2F0VmFsdWVGb3JM
ZW5ndGgoc3R5bGUudHJhbnNmb3JtT3JpZ2luWCgpLCByZW5kZXJlckJveC53aWR0aCgpKSk7Cisg
ICAgICAgIHRyYW5zZm9ybU9yaWdpbi5zZXRZKHJlbmRlcmVyQm94LnkoKSArIGZsb2F0VmFsdWVG
b3JMZW5ndGgoc3R5bGUudHJhbnNmb3JtT3JpZ2luWSgpLCByZW5kZXJlckJveC5oZWlnaHQoKSkp
OwogICAgICAgICAvLyBJZ25vcmUgdHJhbnNmb3JtT3JpZ2luWiBiZWNhdXNlIHdlJ2xsIGJhaWwg
aWYgd2UgZW5jb3VudGVyIGFueSAzRCB0cmFuc2Zvcm1zLgotICAgICAgICAKKwogICAgICAgICBm
bG9hdEJvdW5kcy5tb3ZlQnkoLXRyYW5zZm9ybU9yaWdpbik7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAzZjQ4MDM0MGE4
NDg5ZjNiYmM5YWNkMjI0ZmI2ZmJkZTA3ODBjMTY5Li5kYTE3MDY1NzNlYjM2ZWY2Nzc5ZmE1MDVj
MWZkMjgzZWVjZGY5OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKQEAgLTExMzAsMjQgKzExMzAsMjAgQEAgdm9pZCBSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxv
YXRSZWMKIHsKICAgICBhdXRvJiBvcGVyYXRpb25zID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
dHJhbnNmb3JtLT5vcGVyYXRpb25zLm9wZXJhdGlvbnMoKTsKICAgICBib29sIGFwcGx5VHJhbnNm
b3JtT3JpZ2luID0gcmVxdWlyZVRyYW5zZm9ybU9yaWdpbihvcGVyYXRpb25zLCBhcHBseU9yaWdp
bik7Ci0KLSAgICBmbG9hdCBvZmZzZXRYID0gdHJhbnNmb3JtT3JpZ2luWCgpLmlzUGVyY2VudCgp
ID8gYm91bmRpbmdCb3gueCgpIDogMDsKLSAgICBmbG9hdCBvZmZzZXRZID0gdHJhbnNmb3JtT3Jp
Z2luWSgpLmlzUGVyY2VudCgpID8gYm91bmRpbmdCb3gueSgpIDogMDsKLQorICAgIAorICAgIEZs
b2F0UG9pbnQzRCBvcmlnaW5UcmFuc2xhdGU7CiAgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2lu
KSB7Ci0gICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUzZChmbG9hdFZhbHVlRm9yTGVuZ3RoKHRy
YW5zZm9ybU9yaWdpblgoKSwgYm91bmRpbmdCb3gud2lkdGgoKSkgKyBvZmZzZXRYLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh0cmFuc2Zvcm1Pcmln
aW5ZKCksIGJvdW5kaW5nQm94LmhlaWdodCgpKSArIG9mZnNldFksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5aKCkpOworICAgICAgICBvcmlnaW5UcmFuc2xh
dGUuc2V0WChib3VuZGluZ0JveC54KCkgKyBmbG9hdFZhbHVlRm9yTGVuZ3RoKHRyYW5zZm9ybU9y
aWdpblgoKSwgYm91bmRpbmdCb3gud2lkdGgoKSkpOworICAgICAgICBvcmlnaW5UcmFuc2xhdGUu
c2V0WShib3VuZGluZ0JveC55KCkgKyBmbG9hdFZhbHVlRm9yTGVuZ3RoKHRyYW5zZm9ybU9yaWdp
blkoKSwgYm91bmRpbmdCb3guaGVpZ2h0KCkpKTsKKyAgICAgICAgb3JpZ2luVHJhbnNsYXRlLnNl
dFoodHJhbnNmb3JtT3JpZ2luWigpKTsKKyAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKG9y
aWdpblRyYW5zbGF0ZS54KCksIG9yaWdpblRyYW5zbGF0ZS55KCksIG9yaWdpblRyYW5zbGF0ZS56
KCkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogb3BlcmF0aW9ucykKICAg
ICAgICAgb3BlcmF0aW9uLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CiAK
LSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKLSAgICAgICAgdHJhbnNmb3JtLnRyYW5z
bGF0ZTNkKC1mbG9hdFZhbHVlRm9yTGVuZ3RoKHRyYW5zZm9ybU9yaWdpblgoKSwgYm91bmRpbmdC
b3gud2lkdGgoKSkgLSBvZmZzZXRYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWZs
b2F0VmFsdWVGb3JMZW5ndGgodHJhbnNmb3JtT3JpZ2luWSgpLCBib3VuZGluZ0JveC5oZWlnaHQo
KSkgLSBvZmZzZXRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRyYW5zZm9ybU9y
aWdpblooKSk7Ci0gICAgfQorICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikKKyAgICAgICAg
dHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC1vcmlnaW5UcmFuc2xhdGUueCgpLCAtb3JpZ2luVHJhbnNs
YXRlLnkoKSwgLW9yaWdpblRyYW5zbGF0ZS56KCkpOwogfQogCiB2b2lkIFJlbmRlclN0eWxlOjpz
ZXRQYWdlU2NhbGVUcmFuc2Zvcm0oZmxvYXQgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGU0NjU3YjFmMGVkMTdhMDFiZDkwMGUxOGY5
OTU5YTg2ZTE2MzY0NzIuLmU4MGY5NThlM2M4ZGNkMjdlNzViZDNkODIxZTRhMjUxNTZiOGJlNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02
MDgsMTAgKzYwOCwxMSBAQCBwdWJsaWM6CiAgICAgQ29sdW1uU3BhbiBjb2x1bW5TcGFuKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29sdW1uU3Bhbj4obV9yYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bXVsdGlDb2wtPmNvbHVtblNwYW4pOyB9CiAKICAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zJiB0cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50
cmFuc2Zvcm0tPm9wZXJhdGlvbnM7IH0KKyAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsg
cmV0dXJuICFtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPm9wZXJhdGlvbnMub3Bl
cmF0aW9ucygpLmlzRW1wdHkoKTsgfQogICAgIGNvbnN0IExlbmd0aCYgdHJhbnNmb3JtT3JpZ2lu
WCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9ybS0+eDsg
fQogICAgIGNvbnN0IExlbmd0aCYgdHJhbnNmb3JtT3JpZ2luWSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9ybS0+eTsgfQogICAgIGZsb2F0IHRyYW5zZm9y
bU9yaWdpblooKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zv
cm0tPno7IH0KLSAgICBib29sIGhhc1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuICFtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPm9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmlzRW1w
dHkoKTsgfQorICAgIFRyYW5zZm9ybUJveCB0cmFuc2Zvcm1Cb3goKSBjb25zdCB7IHJldHVybiBt
X3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPnRyYW5zZm9ybUJveDsgfQogCiAgICAg
VGV4dEVtcGhhc2lzRmlsbCB0ZXh0RW1waGFzaXNGaWxsKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VGV4dEVtcGhhc2lzRmlsbD4obV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lz
RmlsbCk7IH0KICAgICBUZXh0RW1waGFzaXNNYXJrIHRleHRFbXBoYXNpc01hcmsoKSBjb25zdDsK
QEAgLTExMzUsMTAgKzExMzYsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRDb2x1bW5SdWxl
KCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBtdWx0aUNvbCwgcnVs
ZSwgQm9yZGVyVmFsdWUoKSk7IH0KICAgICB2b2lkIHNldENvbHVtblNwYW4oQ29sdW1uU3BhbiBj
b2x1bW5TcGFuKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG11bHRp
Q29sLCBjb2x1bW5TcGFuLCBjb2x1bW5TcGFuKTsgfQogICAgIHZvaWQgaW5oZXJpdENvbHVtblBy
b3BlcnRpZXNGcm9tKGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnQpIHsgbV9yYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS5tdWx0aUNvbCA9IHBhcmVudC5tX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5tdWx0aUNvbDsgfQorCiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9ucyYgb3BzKSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIHRy
YW5zZm9ybSwgb3BlcmF0aW9ucywgb3BzKTsgfQogICAgIHZvaWQgc2V0VHJhbnNmb3JtT3JpZ2lu
WChMZW5ndGgmJiBsZW5ndGgpIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0
YSwgdHJhbnNmb3JtLCB4LCBXVEZNb3ZlKGxlbmd0aCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zv
cm1PcmlnaW5ZKExlbmd0aCYmIGxlbmd0aCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCB0cmFuc2Zvcm0sIHksIFdURk1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lkIHNl
dFRyYW5zZm9ybU9yaWdpblooZmxvYXQgZikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLCB0cmFuc2Zvcm0sIHosIGYpOyB9CisgICAgdm9pZCBzZXRUcmFuc2Zvcm1Cb3go
VHJhbnNmb3JtQm94IGJveCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCB0cmFuc2Zvcm0sIHRyYW5zZm9ybUJveCwgYm94KTsgfQorCiAgICAgdm9pZCBzZXRTcGVhayhF
U3BlYWsgcykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIHNwZWFrLCBzKTsgfQogICAg
IHZvaWQgc2V0VGV4dENvbWJpbmUoVGV4dENvbWJpbmUgdikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIHRleHRDb21iaW5lLCB2KTsgfQogICAgIHZvaWQgc2V0VGV4dERlY29yYXRp
b25Db2xvcihjb25zdCBDb2xvciYgYykgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEs
IHRleHREZWNvcmF0aW9uQ29sb3IsIGMpOyB9CkBAIC0xNTMyLDYgKzE1MzYsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0o
KSB7IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUcmFuc2Zvcm1PcGVyYXRpb25zPiBvcHM7IHJldHVy
biBvcHM7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1PcmlnaW5YKCkgeyBy
ZXR1cm4gTGVuZ3RoKDUwLjBmLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlh
bFRyYW5zZm9ybU9yaWdpblkoKSB7IHJldHVybiBMZW5ndGgoNTAuMGYsIFBlcmNlbnQpOyB9Cisg
ICAgc3RhdGljIFRyYW5zZm9ybUJveCBpbml0aWFsVHJhbnNmb3JtQm94KCkgeyByZXR1cm4gVHJh
bnNmb3JtQm94OjpCb3JkZXJCb3g7IH0KICAgICBzdGF0aWMgRVBvaW50ZXJFdmVudHMgaW5pdGlh
bFBvaW50ZXJFdmVudHMoKSB7IHJldHVybiBQRV9BVVRPOyB9CiAgICAgc3RhdGljIGZsb2F0IGlu
aXRpYWxUcmFuc2Zvcm1PcmlnaW5aKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBFVHJhbnNm
b3JtU3R5bGUzRCBpbml0aWFsVHJhbnNmb3JtU3R5bGUzRCgpIHsgcmV0dXJuIFRyYW5zZm9ybVN0
eWxlM0RGbGF0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGU5ZGYxOTAwYzhlZjg1NmVhNjdmYWY2MmU0MjNk
MTU2YjU5NDA1MzguLjBkNGMwNzU4NjBhNGVhODMzOGI3MjM3YWE2MDAwYTRmY2U2ZjczMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCkBAIC01ODMsNyArNTgzLDEzIEBAIGVudW0gRVRyYW5zZm9ybVN0eWxlM0Qgewog
ZW51bSBFQmFja2ZhY2VWaXNpYmlsaXR5IHsKICAgICBCYWNrZmFjZVZpc2liaWxpdHlWaXNpYmxl
LCBCYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4KIH07Ci0gICAgCisKK2VudW0gY2xhc3MgVHJhbnNm
b3JtQm94IHsKKyAgICBCb3JkZXJCb3gsCisgICAgRmlsbEJveCwKKyAgICBWaWV3Qm94Cit9Owor
CiBlbnVtIEVMaW5lQ2xhbXBUeXBlIHsgTGluZUNsYW1wTGluZUNvdW50LCBMaW5lQ2xhbXBQZXJj
ZW50YWdlIH07CiAKIGVudW0gSHlwaGVucyB7IEh5cGhlbnNOb25lLCBIeXBoZW5zTWFudWFsLCBI
eXBoZW5zQXV0byB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlVHJhbnNmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVUcmFuc2Zvcm1EYXRhLmNwcAppbmRleCBlYWY3YTZhNDM3ZTkzNjExNjgzYmU2YTFhOWU0
M2JhMDA4MGEzOTU3Li5lYmEzMjIyZDQ3NDBkOWUzYzMxOWJkYThjODA0OWQ0NTU4NmY2MDQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zvcm1E
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zv
cm1EYXRhLmNwcApAQCAtMzEsNiArMzEsNyBAQCBTdHlsZVRyYW5zZm9ybURhdGE6OlN0eWxlVHJh
bnNmb3JtRGF0YSgpCiAgICAgLCB4KFJlbmRlclN0eWxlOjppbml0aWFsVHJhbnNmb3JtT3JpZ2lu
WCgpKQogICAgICwgeShSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYW5zZm9ybU9yaWdpblkoKSkKICAg
ICAsIHooUmVuZGVyU3R5bGU6OmluaXRpYWxUcmFuc2Zvcm1PcmlnaW5aKCkpCisgICAgLCB0cmFu
c2Zvcm1Cb3goUmVuZGVyU3R5bGU6OmluaXRpYWxUcmFuc2Zvcm1Cb3goKSkKIHsKIH0KIApAQCAt
NDAsNiArNDEsNyBAQCBpbmxpbmUgU3R5bGVUcmFuc2Zvcm1EYXRhOjpTdHlsZVRyYW5zZm9ybURh
dGEoY29uc3QgU3R5bGVUcmFuc2Zvcm1EYXRhJiBvdGhlcikKICAgICAsIHgob3RoZXIueCkKICAg
ICAsIHkob3RoZXIueSkKICAgICAsIHoob3RoZXIueikKKyAgICAsIHRyYW5zZm9ybUJveChvdGhl
ci50cmFuc2Zvcm1Cb3gpCiB7CiB9CiAKQEAgLTUwLDcgKzUyLDcgQEAgUmVmPFN0eWxlVHJhbnNm
b3JtRGF0YT4gU3R5bGVUcmFuc2Zvcm1EYXRhOjpjb3B5KCkgY29uc3QKIAogYm9vbCBTdHlsZVRy
YW5zZm9ybURhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVUcmFuc2Zvcm1EYXRhJiBvdGhlcikg
Y29uc3QKIHsKLSAgICByZXR1cm4geCA9PSBvdGhlci54ICYmIHkgPT0gb3RoZXIueSAmJiB6ID09
IG90aGVyLnogJiYgb3BlcmF0aW9ucyA9PSBvdGhlci5vcGVyYXRpb25zOworICAgIHJldHVybiB4
ID09IG90aGVyLnggJiYgeSA9PSBvdGhlci55ICYmIHogPT0gb3RoZXIueiAmJiB0cmFuc2Zvcm1C
b3ggPT0gb3RoZXIudHJhbnNmb3JtQm94ICYmIG9wZXJhdGlvbnMgPT0gb3RoZXIub3BlcmF0aW9u
czsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5oCmluZGV4IDZiNDZhMzU2YjQxZmMx
YjYxMjNlODJjNDdkMjEwNjAzYWFhYzkyNjguLmEzNmM5ZmFkNmI0YTUzMDlmYWZhZTA4N2JhM2Yw
ZmM2MDAyNzA4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVRyYW5zZm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVUcmFuc2Zvcm1EYXRhLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiTGVuZ3RoLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBM
ZW5ndGggeDsKICAgICBMZW5ndGggeTsKICAgICBmbG9hdCB6OworICAgIFRyYW5zZm9ybUJveCB0
cmFuc2Zvcm1Cb3g7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVUcmFuc2Zvcm1EYXRhKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IGY1ZjkyOTMyOTg5NGZj
ODU2Njg4YzJlMzk5YTJhOWUxZjY1MzBkNGQuLjkwN2I1MjA5YTc5Yjc0Yjc4ODNhNTFiOTE0ZDFj
NjZiYWQ5MmY1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQ
YXRoRGF0YS5oIgogI2luY2x1ZGUgIlNWR1JlY3QuaCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCkBAIC03OSwxMCArODAsMjYgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR0dyYXBoaWNz
RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAKICAgICAvLyBJZiBDU1Mg
cHJvcGVydHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVyd2lzZSBmYWxsYmFjayB0byBhdHRyaWJ1
dGUgKGlmIHNldCkuCiAgICAgaWYgKHN0eWxlICYmIHN0eWxlLT5oYXNUcmFuc2Zvcm0oKSkgewor
ICAgICAgICAKKyAgICAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OworICAgICAgICBzd2l0Y2gg
KHN0eWxlLT50cmFuc2Zvcm1Cb3goKSkgeworICAgICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Rmls
bEJveDoKKyAgICAgICAgICAgIGJvdW5kaW5nQm94ID0gcmVuZGVyZXIoKS0+b2JqZWN0Qm91bmRp
bmdCb3goKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRyYW5zZm9ybUJveDo6
Qm9yZGVyQm94OgorICAgICAgICAgICAgLy8gRm9yIFNWRyBlbGVtZW50cyB3aXRob3V0IGFuIGFz
c29jaWF0ZWQgQ1NTIGxheW91dCBib3gsIHRoZSB1c2VkIHZhbHVlIGZvciBib3JkZXItYm94IGlz
IHZpZXctYm94LgorICAgICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Vmlld0JveDoKKyAgICAgICAg
ICAgIGlmIChhdXRvICp2aWV3cG9ydEVsZW1lbnQgPSBuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoaXM8U1ZHU1ZHRWxlbWVudD4oKnZpZXdwb3J0RWxlbWVu
dCkpCisgICAgICAgICAgICAgICAgICAgIGJvdW5kaW5nQm94ID0gZG93bmNhc3Q8U1ZHU1ZHRWxl
bWVudD4oKnZpZXdwb3J0RWxlbWVudCkudmlld0JveCgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIC8vIE5vdGU6IG9iamVj
dEJvdW5kaW5nQm94IGlzIGFuIGVtcHR5UmVjdCBmb3IgZWxlbWVudHMgbGlrZSBwYXR0ZXJuIG9y
IGNsaXBQYXRoLgogICAgICAgICAvLyBTZWUgdGhlICJPYmplY3QgYm91bmRpbmcgYm94IHVuaXRz
IiBzZWN0aW9uIG9mIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNmb3Jtcy8KICAg
ICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwotICAgICAgICBzdHlsZS0+YXBw
bHlUcmFuc2Zvcm0odHJhbnNmb3JtLCByZW5kZXJlcigpLT5vYmplY3RCb3VuZGluZ0JveCgpKTsK
KyAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gpOwog
CiAgICAgICAgIC8vIEZsYXR0ZW4gYW55IDNEIHRyYW5zZm9ybS4KICAgICAgICAgbWF0cml4ID0g
dHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNmb3JtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yL2Nzcy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvY3NzLmpz
CmluZGV4IGExZDVhMzg4ZTVhNjJmOWVmMWE4OGY4ZjYxZDQzODkwYmViOWE2NzcuLjBlNjVjMjFm
YTMwMWY1NDg3NGVhZGE0MjIxZDg1MDI5MDNmYTMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvY3NzLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3Iv
Y3NzLmpzCkBAIC01MTksNyArNTE5LDcgQEAgQ29kZU1pcnJvci5kZWZpbmVNb2RlKCJjc3MiLCBm
dW5jdGlvbihjb25maWcsIHBhcnNlckNvbmZpZykgewogICAgICJ0ZXh0LWVtcGhhc2lzLXBvc2l0
aW9uIiwgInRleHQtZW1waGFzaXMtc3R5bGUiLCAidGV4dC1oZWlnaHQiLAogICAgICJ0ZXh0LWlu
ZGVudCIsICJ0ZXh0LWp1c3RpZnkiLCAidGV4dC1vdXRsaW5lIiwgInRleHQtb3ZlcmZsb3ciLCAi
dGV4dC1zaGFkb3ciLAogICAgICJ0ZXh0LXNpemUtYWRqdXN0IiwgInRleHQtc3BhY2UtY29sbGFw
c2UiLCAidGV4dC10cmFuc2Zvcm0iLCAidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iLAotICAgICJ0
ZXh0LXdyYXAiLCAidG9wIiwgInRyYW5zZm9ybSIsICJ0cmFuc2Zvcm0tb3JpZ2luIiwgInRyYW5z
Zm9ybS1zdHlsZSIsCisgICAgInRleHQtd3JhcCIsICJ0b3AiLCAidHJhbnNmb3JtIiwgInRyYW5z
Zm9ybS1ib3giLCAidHJhbnNmb3JtLW9yaWdpbiIsICJ0cmFuc2Zvcm0tc3R5bGUiLAogICAgICJ0
cmFuc2l0aW9uIiwgInRyYW5zaXRpb24tZGVsYXkiLCAidHJhbnNpdGlvbi1kdXJhdGlvbiIsCiAg
ICAgInRyYW5zaXRpb24tcHJvcGVydHkiLCAidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iLCAi
dW5pY29kZS1iaWRpIiwKICAgICAidXNlci1zZWxlY3QiLCAidmVydGljYWwtYWxpZ24iLCAidmlz
aWJpbGl0eSIsICJ2b2ljZS1iYWxhbmNlIiwgInZvaWNlLWR1cmF0aW9uIiwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNmE0
NTlhZjRjNDI1NWU2NDMwZDg3NTg2Yzg1YmU0YTViYzczODU1Li5jMjE1NWExOWZiN2I2ODM3M2Rl
ZmQ1ZWY3MTFkMjcwOWEzYzcxMzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMDUtMjAg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9y
dCB0cmFuc2Zvcm0tYm94IHRvIHN3aXRjaCBzaXppbmcgYm94IGluIFNWRworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRlc3RzIHRoYXQgcmVs
aWVkIG9uIHRoZSBvbGQgIiUgdmFsdWVzIHJlbGF0aXZlIHRvIHRoZSBib3VuZGluZyBib3giIGJl
aGF2aW9yLAorICAgICAgICBhbmQgbmV3IHRlc3RzIGZvciBwYXJzaW5nIGFuZCByZW5kZXJpbmcg
d2l0aCB0cmFuc2Zvcm0tYm94LgorCisgICAgICAgICogZmFzdC9jc3MvdHJhbnNmb3JtLWJveC1w
YXJzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFu
c2Zvcm0tb3JpZ2luLWNzcy54aHRtbDoKKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2Ut
dHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnhodG1sOgorICAgICAgICAq
IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbDoKKyAgICAgICAg
KiBzdmcvdHJhbnNmb3Jtcy9zdmctdHJhbnNmb3JtLWJveC1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9zdmctdHJhbnNmb3JtLWJveC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54
aHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0bWw6CisKIDIwMTctMDUt
MjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01TRV1bTWFj
XSBTdXBwb3J0IHBhaW50aW5nIE1TRSB2aWRlby1lbGVtZW50IHRvIGNhbnZhcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdHJhbnNmb3JtLWJveC1wYXJzaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3RyYW5zZm9ybS1ib3gtcGFyc2luZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzk1ZmY2OTIzNmE0NzUyMTc4MmYzODU3MWUxNzM1YWUzM2FlMGUyOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3RyYW5zZm9ybS1ib3gtcGFy
c2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorVGhpcyB0ZXN0cyBjaGVja3MgcGFy
c2luZyBvZiB0aGUgJ3RyYW5zZm9ybS1ib3gnIHByb3BlcnR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHRlc3RQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0tYm94OiBib3Jk
ZXItYm94IiwgInRyYW5zZm9ybS1ib3giKSBpcyAiYm9yZGVyLWJveCIKK1BBU1MgdGVzdFByb3Bl
cnR5VmFsdWUoInRyYW5zZm9ybS1ib3g6IGZpbGwtYm94IiwgInRyYW5zZm9ybS1ib3giKSBpcyAi
ZmlsbC1ib3giCitQQVNTIHRlc3RQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0tYm94OiB2aWV3LWJv
eCIsICJ0cmFuc2Zvcm0tYm94IikgaXMgInZpZXctYm94IgorCitQQVNTIHRlc3RDb21wdXRlZFN0
eWxlKCIiLCAidHJhbnNmb3JtLWJveCIpIGlzICJib3JkZXItYm94IgorUEFTUyB0ZXN0Q29tcHV0
ZWRTdHlsZSgidHJhbnNmb3JtLWJveDogZmlsbC1ib3giLCAidHJhbnNmb3JtLWJveCIpIGlzICJm
aWxsLWJveCIKK1BBU1MgdGVzdENvbXB1dGVkU3R5bGUoInRyYW5zZm9ybS1ib3g6IHZpZXctYm94
IiwgInRyYW5zZm9ybS1ib3giKSBpcyAidmlldy1ib3giCisKK1BBU1MgdGVzdFNWR0NvbXB1dGVk
U3R5bGUoIiIsICJ0cmFuc2Zvcm0tYm94IikgaXMgInZpZXctYm94IgorUEFTUyB0ZXN0U1ZHQ29t
cHV0ZWRTdHlsZSgidHJhbnNmb3JtLWJveDogZmlsbC1ib3giLCAidHJhbnNmb3JtLWJveCIpIGlz
ICJmaWxsLWJveCIKK1BBU1MgdGVzdFNWR0NvbXB1dGVkU3R5bGUoInRyYW5zZm9ybS1ib3g6IGJv
cmRlci1ib3giLCAidHJhbnNmb3JtLWJveCIpIGlzICJib3JkZXItYm94IgorCitQQVNTIHRlc3RD
b21wdXRlZFN0eWxlT25FbGVtZW50V2l0aElkKCJmb3JlaWduT2JqZWN0IikgaXMgInZpZXctYm94
IgorCitUZXN0IGRlZmF1bHQgdmFsdWUgb24gZWxlbWVudHMgd2l0aCBDU1MgbGF5b3V0IGJveGVz
CitQQVNTIHRlc3RDb21wdXRlZFN0eWxlT25FbGVtZW50V2l0aElkKCJzdmdSb290IikgaXMgImJv
cmRlci1ib3giCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlT25FbGVtZW50V2l0aElkKCJuZXN0ZWQt
c3ZnIikgaXMgImJvcmRlci1ib3giCitQQVNTIHRlc3RDb21wdXRlZFN0eWxlT25FbGVtZW50V2l0
aElkKCJpbnNpZGUtZm9yZWlnbi1vYmplY3QiKSBpcyAiYm9yZGVyLWJveCIKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3RyYW5zZm9ybS1ib3gtcGFyc2luZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvdHJhbnNmb3JtLWJveC1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI5MThi
NWRkYjgxYmQ3ZjQyY2YxYTA1OTQwNGVmMTk2MDI1ZTA3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3RyYW5zZm9ybS1ib3gtcGFyc2luZy5odG1sCkBAIC0wLDAgKzEs
OTAgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPHN2ZyBpZD0ic3ZnUm9vdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4K
KyAgICAgICAgPGZvcmVpZ25PYmplY3QgaWQ9ImZvcmVpZ25PYmplY3QiPgorICAgICAgICAgICAg
PGh0bWw+CisgICAgICAgICAgICAgICAgPGRpdiBpZD0iaW5zaWRlLWZvcmVpZ24tb2JqZWN0Ij48
L2Rpdj4KKyAgICAgICAgICAgIDwvaHRtbD4KKyAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAg
ICAgICA8Zm9yZWlnbk9iamVjdD4KKyAgICAgICAgICAgIDxzdmcgaWQ9Im5lc3RlZC1zdmciIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgLz4KKyAgICAgICAgPC9mb3JlaWduT2Jq
ZWN0PgorICAgIDwvc3ZnPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIGNoZWNrcyBwYXJzaW5nIG9mIHRoZSAndHJhbnNmb3JtLWJveCcgcHJvcGVydHkiKTsK
KworICAgICAgICBmdW5jdGlvbiB0ZXN0UHJvcGVydHlWYWx1ZShkZWNsYXJhdGlvbiwgcHJvcGVy
dHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICAgICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgZGVjbGFy
YXRpb24pOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworCisg
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gZGl2LnN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJvcGVy
dHkpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RD
b21wdXRlZFN0eWxlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0eSkKKyAgICAgICAgeworICAgICAgICAg
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAg
ZGl2LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBkZWNsYXJhdGlvbik7CisgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHN2Z05TID0gImh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKKworICAgICAgICBmdW5jdGlvbiB0ZXN0U1ZHQ29tcHV0
ZWRTdHlsZShkZWNsYXJhdGlvbiwgcHJvcGVydHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZh
ciBzdmdSb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N2Z1Jvb3QnKTsKKworICAgICAg
ICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICJyZWN0Iik7
CisgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBkZWNsYXJhdGlvbik7Cisg
ICAgICAgICAgICBzdmdSb290LmFwcGVuZENoaWxkKHJlY3QpOworCisgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocmVjdCkuZ2V0UHJvcGVydHlWYWx1ZShw
cm9wZXJ0eSk7CisgICAgICAgICAgICBzdmdSb290LnJlbW92ZUNoaWxkKHJlY3QpOworICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rp
b24gdGVzdENvbXB1dGVkU3R5bGVPbkVsZW1lbnRXaXRoSWQoZWxlbWVudElkKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtLWJveCIp
OworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0UHJvcGVy
dHlWYWx1ZSgidHJhbnNmb3JtLWJveDogYm9yZGVyLWJveCIsICJ0cmFuc2Zvcm0tYm94IiknLCAn
Ym9yZGVyLWJveCcpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RQcm9wZXJ0
eVZhbHVlKCJ0cmFuc2Zvcm0tYm94OiBmaWxsLWJveCIsICJ0cmFuc2Zvcm0tYm94IiknLCAnZmls
bC1ib3gnKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0UHJvcGVydHlWYWx1
ZSgidHJhbnNmb3JtLWJveDogdmlldy1ib3giLCAidHJhbnNmb3JtLWJveCIpJywgJ3ZpZXctYm94
Jyk7CisKKyAgICAgICAgZGVidWcoJycpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3Rlc3RDb21wdXRlZFN0eWxlKCIiLCAidHJhbnNmb3JtLWJveCIpJywgJ2JvcmRlci1ib3gnKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgidHJhbnNm
b3JtLWJveDogZmlsbC1ib3giLCAidHJhbnNmb3JtLWJveCIpJywgJ2ZpbGwtYm94Jyk7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoInRyYW5zZm9ybS1i
b3g6IHZpZXctYm94IiwgInRyYW5zZm9ybS1ib3giKScsICd2aWV3LWJveCcpOworCisgICAgICAg
IGRlYnVnKCcnKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0U1ZHQ29tcHV0
ZWRTdHlsZSgiIiwgInRyYW5zZm9ybS1ib3giKScsICd2aWV3LWJveCcpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RTVkdDb21wdXRlZFN0eWxlKCJ0cmFuc2Zvcm0tYm94OiBm
aWxsLWJveCIsICJ0cmFuc2Zvcm0tYm94IiknLCAnZmlsbC1ib3gnKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0U1ZHQ29tcHV0ZWRTdHlsZSgidHJhbnNmb3JtLWJveDogYm9y
ZGVyLWJveCIsICJ0cmFuc2Zvcm0tYm94IiknLCAnYm9yZGVyLWJveCcpOworCisgICAgICAgIGRl
YnVnKCcnKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHls
ZU9uRWxlbWVudFdpdGhJZCgiZm9yZWlnbk9iamVjdCIpJywgJ3ZpZXctYm94Jyk7CisKKyAgICAg
ICAgZGVidWcoJycpOworICAgICAgICBkZWJ1ZygnVGVzdCBkZWZhdWx0IHZhbHVlIG9uIGVsZW1l
bnRzIHdpdGggQ1NTIGxheW91dCBib3hlcycpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3Rlc3RDb21wdXRlZFN0eWxlT25FbGVtZW50V2l0aElkKCJzdmdSb290IiknLCAnYm9yZGVy
LWJveCcpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxl
T25FbGVtZW50V2l0aElkKCJuZXN0ZWQtc3ZnIiknLCAnYm9yZGVyLWJveCcpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlT25FbGVtZW50V2l0aElkKCJp
bnNpZGUtZm9yZWlnbi1vYmplY3QiKScsICdib3JkZXItYm94Jyk7CisKKyAgICAgICAgZGVidWco
JycpOworICAgIDwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1jc3MueGh0bWwg
Yi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1jc3Mu
eGh0bWwKaW5kZXggMzhmOTRjZWRjNDg1NmRhYzhmODA2NDk2NDMxZjlhZjViZjQ3YWI5OS4uNThh
ZGIwZDljYzg2Y2I2MTg4NzJkZmQ1ZmViZTQ4MTM3YjA5OGEzZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLnhodG1sCisr
KyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNz
cy54aHRtbApAQCAtOSwxMSArOSwxMSBAQCBUaGUgZ3JlZW4gMTAweDEwMCByZWN0YW5nbGUgc2hv
dWxkIGFwcGVhciBhdCAyNSwyNS4KIAogPGJvZHk+CiAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVm
dDogMHB4OyI+Ci0gICAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjUwcHgiIGhlaWdodD0iNTBw
eCIgeD0iNTAiIHk9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBz
Y2FsZSgyLCAyKTsiLz4KKyAgICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iNTBweCIgaGVpZ2h0
PSI1MHB4IiB4PSI1MCIgeT0iNTAiIGZpbGw9ImdyZWVuIiBzdHlsZT0idHJhbnNmb3JtOiBzY2Fs
ZSgyLCAyKTsgdHJhbnNmb3JtLWJveDogZmlsbC1ib3g7Ii8+CiAgIDwvc3ZnPgogCiAgIDxzY3Jp
cHQ+PCFbQ0RBVEFbCi0gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjdCcpLnN0eWxl
LndlYmtpdFRyYW5zZm9ybU9yaWdpbiA9ICI1MCUgNTAlIjsKKyAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZWN0Jykuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gIjUwJSA1MCUiOwogICBd
XT48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRyaWJ1
dGUueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9y
aWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnhodG1sCmluZGV4IGMwM2VlMmI1YmIxZjZhNzA1
NGViZTZhYzgyYzQzN2U2ODNhYTk1ZTEuLjVjZThmNzBmNDZhY2ZjZjQyMjA3MGE4M2Y4NjE5NTQy
NGJkMjljNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10
cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUueGh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0aW9u
LWF0dHJpYnV0ZS54aHRtbApAQCAtOCw3ICs4LDcgQEAgVGhlIGdyZWVuIDEwMHgxMDAgcmVjdGFu
Z2xlIHNob3VsZCBhcHBlYXIgYXQgMjUsMjUuCiAKIDxib2R5PgogICA8c3ZnIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAw
cHg7IGxlZnQ6IDBweDsiPgotICAgICAgPHJlY3QgaWQ9InJlY3QiIHdpZHRoPSI1MHB4IiBoZWln
aHQ9IjUwcHgiIHg9IjUwIiB5PSI1MCIgZmlsbD0iZ3JlZW4iIHRyYW5zZm9ybS1vcmlnaW49IjAg
MCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTsiLz4KKyAgICAgIDxyZWN0
IGlkPSJyZWN0IiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4PSI1MCIgeT0iNTAiIGZpbGw9
ImdyZWVuIiB0cmFuc2Zvcm0tb3JpZ2luPSIwIDAiIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlKDIs
IDIpOyB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDsiLz4KICAgPC9zdmc+CiAKICAgPHNjcmlwdD48
IVtDREFUQVsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQt
dHJhbnNmb3JtLXZhbHVlcy54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNl
bnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbAppbmRleCA1ZTI2NDhiNGVjMDI3MTQzOGUxZTU5Njc4
NWRmNWYyYjlkMTMyOWY2Li5mMGExNmI5YTEzYmJmZmQ4NTFmMmMyM2EwNGJiYzdiZmEzMWQyMGNl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9y
bS12YWx1ZXMueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10
cmFuc2Zvcm0tdmFsdWVzLnhodG1sCkBAIC0xLDYgKzEsNiBAQAogPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgogPGJvZHk+Ci0gIDxwPlRlc3QgZm9yIGJ1ZyA8YSBo
cmVmPSIiPjc5MDY4PC9hPiAtIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2luIGFu
ZCByZWxhdGl2ZSB2YWx1ZXMKKyAgPHA+VGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHA6Ly93ZWJr
aXQub3JnL2IvNzkwNjgiPjc5MDY4PC9hPiAtIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0t
b3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKICAgVmVyaWZ5IHRoYXQgQ1NTIHRyYW5zZm9ybSB0
cmFuc2xhdGUgdmFsdWVzIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBwZXJjZW50YWdlcy4KICAgPC9w
PgogICBZb3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMgYW5kIG9uZSA4
MHg2MCBncmVlbiByZWN0YW5nbGUuICAgVGhlIGdyZWVuIHJlY3RhbmdsZSBvYnNjdXJlcyB0d28K
QEAgLTgsOSArOCw5IEBACiAgIDxwPgogICA8L3A+CiAgIDxzdmcgc3R5bGU9InBvc2l0aW9uOmFi
c29sdXRlOyBsZWZ0OjBweDsgdG9wOjBweDsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyI+Ci0gICAgPHJlY3QgaWQ9InIxIiB4PSIxMCIgeT0iMjAwIiB3aWR0aD0iODAiIGhlaWdo
dD0iNjAiIGZpbGw9InJlZCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAl
KSIvPgotICAgIDxyZWN0IGlkPSJyMiIgeD0iOTAiIHk9IjI2MCIgd2lkdGg9IjgwIiBoZWlnaHQ9
IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUs
IC0xMDAlKSIvPgotICAgIDxyZWN0IGlkPSJyMyIgeD0iMTAiIHk9IjIwMCIgd2lkdGg9IjgwIiBo
ZWlnaHQ9IjYwIiBmaWxsPSJncmVlbiIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xh
dGUoNTAlLCAwJSkiLz4KKyAgICA8cmVjdCBpZD0icjEiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4
MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0idHJhbnNmb3JtLWJveDogZmlsbC1ib3g7
IHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSkiLz4KKyAgICA8cmVjdCBpZD0icjIiIHg9IjkwIiB5
PSIyNjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0idHJhbnNmb3Jt
LWJveDogZmlsbC1ib3g7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKSIvPgorICAg
IDxyZWN0IGlkPSJyMyIgeD0iMTAiIHk9IjIwMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxs
PSJncmVlbiIgc3R5bGU9InRyYW5zZm9ybS1ib3g6IGZpbGwtYm94OyB0cmFuc2Zvcm06IHRyYW5z
bGF0ZSg1MCUsIDAlKSIvPgogICA8L3N2Zz4KICAgPHByZSBpZD0ibG9nIj48L3ByZT4KIDwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3N2Zy10cmFuc2Zvcm0t
Ym94LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9zdmctdHJhbnNm
b3JtLWJveC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwYzYxN2Y0MmRiZjUzZDkxMWIwMTYz
ZjQ2YWJmZDFhOWM1OGIyYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJh
bnNmb3Jtcy9zdmctdHJhbnNmb3JtLWJveC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgc3ZnIHsK
KyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICA8L3N0eWxlPgorPC9o
ZWFkPgorCis8Ym9keT4KKworICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxw
PllvdSBzaG91bGQgc2VlIG5vIHJlZCBib3hlcyBiZWxvdzwvcD4KKyAgICAgICAgPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAw
IDYwMCA0MDAiIHN0eWxlPSIgd2lkdGg6IDYwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+CisgICAgICAg
ICAgICA8IS0tIHRyYW5zZm9ybS1ib3g6IHZpZXctYm94IC0tPgorICAgICAgICAgICAgPHJlY3Qg
eD0iMjAiIHk9IjEwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgLz4KKyAg
ICAgICAgICAgIDxyZWN0IHg9IjQ4MCIgeT0iNDAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmls
bD0iZ3JlZW4iIC8+CisgICAgICAgICAgICA8cmVjdCB4PSIxMjAiIHk9IjEyMCIgd2lkdGg9IjUw
IiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgLz4KKyAgICAgICAgICAgIDxyZWN0IHg9IjIwIiB5
PSIyMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiAvPgorICAgICAgICAg
ICAgPHJlY3QgeD0iNDgwIiB5PSIyNjAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iZ3Jl
ZW4iIC8+CisgICAgICAgICAgICA8cmVjdCB4PSIxMjAiIHk9IjMyMCIgd2lkdGg9IjUwIiBoZWln
aHQ9IjUwIiBmaWxsPSJncmVlbiIgLz4KKyAgICAgICAgPC9zdmc+CisgICAgPC9kaXY+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3N2
Zy10cmFuc2Zvcm0tYm94Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9zdmctdHJh
bnNmb3JtLWJveC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MDZmNTM5NGRiNzU0NjI4MDI0MWFhZmNmYzk3
ZmJmNTFkZWU0ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jt
cy9zdmctdHJhbnNmb3JtLWJveC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgc3ZnIHsKKyAgICAgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4K
KworICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxwPllvdSBzaG91bGQgc2Vl
IG5vIHJlZCBib3hlcyBiZWxvdzwvcD4KKyAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDYwMCA0MDAiIHN0eWxl
PSIgd2lkdGg6IDYwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+CisgICAgICAgICAgICA8IS0tIHRyYW5z
Zm9ybS1ib3g6IHZpZXctYm94IC0tPgorICAgICAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjEwIiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiIC8+CisgICAgICAgICAgICA8cmVjdCB4
PSIyMCIgeT0iNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjI1IiBmaWxsPSJncmVlbiIgc3R5bGU9InRy
YW5zZm9ybTogc2NhbGUoMiwgMik7IHRyYW5zZm9ybS1vcmlnaW46IDIwcHggMDsgdHJhbnNmb3Jt
LWJveDogdmlldy1ib3g7IiAvPgorCisgICAgICAgICAgICA8cmVjdCB4PSI0ODAiIHk9IjQwIiB3
aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9InJlZCIgLz4KKyAgICAgICAgICAgIDxyZWN0IHg9
IjAiIHk9IjAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iZ3JlZW4iIHN0eWxlPSJ0cmFu
c2Zvcm06IHRyYW5zbGF0ZSg4MCUsIDEwJSk7IHRyYW5zZm9ybS1ib3g6IHZpZXctYm94OyIgLz4K
KworICAgICAgICAgICAgPHJlY3QgeD0iMTIwIiB5PSIxMjAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1
MCIgZmlsbD0icmVkIiAvPgorICAgICAgICAgICAgPHJlY3QgeD0iMTgwIiB5PSIxMCIgd2lkdGg9
IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDkw
ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjogMTIwcHggNjBweDsgdHJhbnNmb3JtLWJveDogdmlldy1i
b3g7IiAvPgorICAgICAgICAgICAgPHJlY3QgeD0iMTgwIiB5PSIxMCIgd2lkdGg9IjUwIiBoZWln
aHQ9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJh
bnNmb3JtLW9yaWdpbjogMjAlIDE1JTsgdHJhbnNmb3JtLWJveDogdmlldy1ib3g7IiAvPgorCisg
ICAgICAgICAgICA8IS0tIHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94IC0tPgorICAgICAgICAgICAg
PHJlY3QgeD0iMjAiIHk9IjIwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCIgZmlsbD0icmVkIiAv
PgorICAgICAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjIwMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjI1
IiBmaWxsPSJncmVlbiIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGUoMiwgMik7IHRyYW5zZm9ybS1i
b3g6IGZpbGwtYm94OyIgLz4KKworICAgICAgICAgICAgPHJlY3QgeD0iNDgwIiB5PSIyNjAiIHdp
ZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0icmVkIiAvPgorICAgICAgICAgICAgPHJlY3QgeD0i
NDMwIiB5PSIzMTAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iZ3JlZW4iIHN0eWxlPSJ0
cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDAlLCAtMTAwJSk7IHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94
OyIgLz4KKworICAgICAgICAgICAgPHJlY3QgeD0iMTIwIiB5PSIzMjAiIHdpZHRoPSI1MCIgaGVp
Z2h0PSI1MCIgZmlsbD0icmVkIiAvPgorICAgICAgICAgICAgPHJlY3QgeD0iNzAiIHk9IjI3MCIg
d2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9InRyYW5zZm9ybTogcm90
YXRlKDE4MGRlZyk7IHRyYW5zZm9ybS1vcmlnaW46IDUwcHggNTBweDsgdHJhbnNmb3JtLWJveDog
ZmlsbC1ib3g7IiAvPgorICAgICAgICAgICAgPHJlY3QgeD0iOTUiIHk9IjM0NSIgd2lkdGg9IjUw
IiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDkwZGVn
KTsgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSA1MCU7IHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94OyIg
Lz4KKyAgICAgICAgPC9zdmc+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXBy
b3BlcnR5LnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdp
bi1jc3MtcHJvcGVydHkueGh0bWwKaW5kZXggMjA1YmFlZmFlYjYxYzA0ZTUwNTQ1YTZmOTdkNTU4
YjcwNjRlZDNmMC4uOWFhYzc0ZjQ0N2FiMTY4MjIzMjA2NzQyODQ5MGQyZmVkYWQ1MjQwMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3Mt
cHJvcGVydHkueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3Jt
LW9yaWdpbi1jc3MtcHJvcGVydHkueGh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKIAogI3RyYW5zZm9y
bU9yaWdpblJlY3QgewogICAgIGZpbGw6IGdyZWVuOwotICAgIC13ZWJraXQtdHJhbnNmb3JtOiBy
b3RhdGUoOTBkZWcpOworICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKIH0KIDwvc3R5bGU+
CiAKQEAgLTMwLDEzICszMCwxMyBAQAogICAgIGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdpblJl
Y3QoeCwgeSwgcykKICAgICB7CiAgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoc3ZnTlMsICJyZWN0Iik7Ci0gICAgICAgdmFyIHRyYW5zZm9ybU9yaWdpbiA9ICh0eXBl
b2YocykgPT0gInN0cmluZyIpID8gcyA6ICAoeCArIHNbMF0pICsgIiAiICsgKHkgKyBzWzFdKTsK
KyAgICAgICB2YXIgdHJhbnNmb3JtT3JpZ2luID0gKHR5cGVvZihzKSA9PSAic3RyaW5nIikgPyBz
IDogICh4ICsgc1swXSkgKyAicHggIiArICh5ICsgc1sxXSkgKyAicHgiOwogICAgICAgIHJlY3Qu
c2V0QXR0cmlidXRlKCJpZCIsICJ0cmFuc2Zvcm1PcmlnaW5SZWN0Iik7CiAgICAgICAgcmVjdC5z
ZXRBdHRyaWJ1dGUoIngiLCB4KTsKICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgieSIsIHkpOwog
ICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIDMwKTsKICAgICAgICByZWN0LnNldEF0
dHJpYnV0ZSgiaGVpZ2h0IiwgMzApOwotICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJzdHlsZSIs
ICItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICIgKyB0cmFuc2Zvcm1PcmlnaW4gKyAiOyIpOwor
ICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJzdHlsZSIsICJ0cmFuc2Zvcm0tYm94OiB2aWV3LWJv
eDsgdHJhbnNmb3JtLW9yaWdpbjogIiArIHRyYW5zZm9ybU9yaWdpbiArICI7Iik7CiAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2Z1Jvb3QiKS5hcHBlbmRDaGlsZChyZWN0KTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvc3ZnLXZzLWNzcy54aHRt
bCBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvc3ZnLXZzLWNzcy54aHRtbAppbmRleCA2OWYwMWM5
NzIzNDQzZTBkYWE4MmY4YjIwM2NlZmY0NDU3ZDhhMTk1Li41NzMxNTllOGU1ODIxYzQwMmE3OTNh
MDlhZWMzZDExMzFlY2YxY2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL3N2
Zy12cy1jc3MueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9zdmctdnMtY3NzLnho
dG1sCkBAIC05Nyw5ICs5Nyw5IEBACiAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAg
IDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiICAK
ICAgICAgICAgICB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgc3R5bGU9IndpZHRoOjIwMHB4OyBoZWln
aHQ6MjAwcHg7Ij4KLSAgICAgICAgICA8ZyBpZD0iZ3JvdXAxIiB4PSIwIiB5PSIwIiB3aWR0aD0i
NjAiIGhlaWdodD0iNjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDc1LCAyNSkiPgorICAgICAgICAg
IDxnIGlkPSJncm91cDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDc1LCAyNSkiPgogICAgICAgICAg
ICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiBzdHJva2U9ImJsYWNr
IiBzdHJva2Utd2lkdGg9IjFweCIgc3Ryb2tlLWRhc2hhcnJheT0iMSAxIiBmaWxsPSJub25lIiAv
PgotICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMiIgeD0iMCIgeT0iMCIgd2lkdGg9IjYwIiBoZWln
aHQ9IjYwIiB0cmFuc2Zvcm09InNjYWxlKDIpIiA+CisgICAgICAgICAgICA8ZyBpZD0iZ3JvdXAy
IiB0cmFuc2Zvcm09InNjYWxlKDIpIj4KICAgICAgICAgICAgICAgPHJlY3QgeD0iMCIgeT0iMCIg
d2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiBzdHJva2U9ImJsYWNrIiBzdHJva2UtZGFzaGFycmF5PSIx
IDEiIHN0cm9rZS13aWR0aD0iMXB4IiBmaWxsPSJub25lIiAvPgogICAgICAgICAgICAgICA8cmVj
dCBpZD0iZ3JvdXAzIiB4PSIwIiB5PSIwIiB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHN0cm9rZT0i
Ymx1ZSIgZmlsbD0ibm9uZSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIiAvPgogICAgICAgICAgICAg
PC9nPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>