<?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>185024</bug_id>
          
          <creation_ts>2018-04-25 22:14:05 -0700</creation_ts>
          <short_desc>[LFC] Implement BlockFormattingContext::layout logic and its dependencies</short_desc>
          <delta_ts>2018-04-27 11:18:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1417980</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 22:14:05 -0700</bug_when>
    <thetext>They are all empty functions though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417981</commentid>
    <comment_count>1</comment_count>
      <attachid>338856</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 22:19:11 -0700</bug_when>
    <thetext>Created attachment 338856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417982</commentid>
    <comment_count>2</comment_count>
      <attachid>338856</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 22:21:08 -0700</bug_when>
    <thetext>Comment on attachment 338856
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [LFC] Implement BlockFormattingContext::layout logic and its dependencies

I think I&apos;ll split this patch and create (at least) 3 separate patches.
1. Floating context construction logic
2. BlockFormttingContext::layout()
3. Other, unrelated changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418083</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-26 09:51:42 -0700</bug_when>
    <thetext>bug 185031
bug 185032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418534</commentid>
    <comment_count>4</comment_count>
      <attachid>338999</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-27 10:31:32 -0700</bug_when>
    <thetext>Created attachment 338999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418538</commentid>
    <comment_count>5</comment_count>
      <attachid>338999</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-04-27 10:36:37 -0700</bug_when>
    <thetext>Comment on attachment 338999
Patch

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

&gt; Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp:69
&gt; +        // Travers down on the descendants and compute width/static position until we find a leaf node.

Probably &quot;traverse down&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418539</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-27 10:37:12 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; Comment on attachment 338999 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338999&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp:69
&gt; &gt; +        // Travers down on the descendants and compute width/static position until we find a leaf node.
&gt; 
&gt; Probably &quot;traverse down&quot;
Most probably!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418542</commentid>
    <comment_count>7</comment_count>
      <attachid>339003</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-27 10:39:25 -0700</bug_when>
    <thetext>Created attachment 339003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418561</commentid>
    <comment_count>8</comment_count>
      <attachid>339003</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 11:17:52 -0700</bug_when>
    <thetext>Comment on attachment 339003
Patch

Clearing flags on attachment: 339003

Committed r231108: &lt;https://trac.webkit.org/changeset/231108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418562</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-27 11:17:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418563</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-27 11:18:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/39797958&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338856</attachid>
            <date>2018-04-25 22:19:11 -0700</date>
            <delta_ts>2018-04-27 10:31:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185024-20180425221910.patch</filename>
            <type>text/plain</type>
            <size>23279</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY0NjI5MmZjNjU2YWIw
MjQzMzUwMzMzNjIyNmMzMmE2ODA1OTllYi4uNWY5NjkwMWQ0YmI1YzlhOGI2N2U0MGJlNDAyYzVi
MTAzM2NmZWY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA0LTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW1wbGVtZW50IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBsb2dpYyBhbmQgaXRzIGRlcGVuZGVuY2llcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsYXlvdXQv
RmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdD
b250ZXh0OjpGbG9hdGluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9h
dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvbik6CisgICAgICAgICogbGF5b3V0L0Zsb2F0aW5n
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjpGbG9h
dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvRmxvYXRpbmdTdGF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1N0YXRlOjpjcmVhdGUpOgorICAgICAgICAqIGxheW91
dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdDb250ZXh0OjpGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRP
dXRPZkZsb3dEZXNjZW5kYW50cyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0dGluZ1N0YXRl
KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZvcm1hdHRpbmdTdGF0ZTo6ZmxvYXRpbmdTdGF0ZSBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
YXlvdXRDb250ZXh0Ojp1cGRhdGVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
YXlvdXRDb250ZXh0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRD
b250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlv
dXRDb250ZXh0Ojpmb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgICogbGF5b3V0L0xheW91dENv
bnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlIGNvbnN0KToKKyAg
ICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaDoK
KyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nU3RhdGU6OkJsb2Nr
Rm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdT
dGF0ZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVGb3JtYXR0aW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nU3RhdGU6OklubGluZUZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgICogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmg6CisKIDIwMTgtMDQtMjUg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBBZGQgc3Vw
cG9ydCBmb3IgaXM8PiBhbmQgZG93bmNhc3Q8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0Zsb2F0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRp
bmdDb250ZXh0LmNwcAppbmRleCA5Mjg3MmFhM2E3NDljMDBkNTJlZmQ2YTE4MzkwZDFhNzM1YWVm
OGExLi5mNzQzMGNkYTQ0YjQ5NTg5NGU2Y2IxMzgzNzZmZjNmNDA5YTI4ZTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcApAQCAtMjUsMyArMjUsMjQgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZsb2F0aW5nQ29udGV4dC5oIgorCisjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZsb2F0aW5nQ29udGV4dCk7CisKK0Zsb2F0
aW5nQ29udGV4dDo6RmxvYXRpbmdDb250ZXh0KEZsb2F0aW5nU3RhdGUmKQoreworfQorCit2b2lk
IEZsb2F0aW5nQ29udGV4dDo6Y29tcHV0ZVBvc2l0aW9uKGNvbnN0IEJveCYpCit7Cit9CisKK30K
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3Rh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3RhdGUuY3BwCmluZGV4IDVl
MDBiYTcwYjlhNWY1N2I4NTM4N2JhN2IwYzBkYTA1M2FjYWVjMzYuLjQwZmExNjQwZDE5ZDFjZTYx
ZDcwYmU5YTlhNGQyY2FlNzJhYTZiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9GbG9hdGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdT
dGF0ZS5jcHAKQEAgLTI1LDMgKzI1LDIxIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJGbG9hdGluZ1N0YXRlLmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKKworI2luY2x1ZGUgIkZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQg
eworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmxvYXRpbmdTdGF0ZSk7CisKK0Zsb2F0
aW5nU3RhdGU6OkZsb2F0aW5nU3RhdGUoKQoreworfQorCit9Cit9CisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvRmxvYXRpbmdTdGF0ZS5oCmluZGV4IGNiMTc4MWI4YzY3ZmU2ZjNjYjZkNGNmZGVi
NDlmODZlMjUzMzUwNGUuLjZmZTdlMjI1NzBmZmIwZGUyNmJmYTAyZDA4ZDJlNzM4Yzk3MDBlNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ1N0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nU3RhdGUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0zNiwxMCArMzcsMTMgQEAgbmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBGb3JtYXR0aW5n
U3RhdGU7CiAKIC8vIEZsb2F0aW5nU3RhdGUgaG9sZHMgdGhlIGZsb2F0aW5nIGJveGVzIHBlciBm
b3JtYXR0aW5nIGNvbnRleHQuCi1jbGFzcyBGbG9hdGluZ1N0YXRlIHsKK2NsYXNzIEZsb2F0aW5n
U3RhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGbG9hdGluZ1N0YXRlPiB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChGbG9hdGluZ1N0YXRlKTsKIHB1YmxpYzoKLSAgICBGbG9hdGluZ1N0YXRl
KEZvcm1hdHRpbmdTdGF0ZSYgcGFyZW50Rm9ybWF0dGluZ1N0YXRlKTsKKyAgICBzdGF0aWMgUmVm
PEZsb2F0aW5nU3RhdGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmxvYXRpbmdT
dGF0ZSgpKTsgfQorCitwcml2YXRlOgorICAgIEZsb2F0aW5nU3RhdGUoKTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDk4NTViYWQ0
Mjk1ZTdhOWI1YzhiZGY1ZjJjODdkM2Y0MWIxNGQ0ZWMuLjc2NWI2YzM3MDcyNjM0ZGFhY2E5ZWYz
NDZkNDBhY2E1Nzc5ZmRmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcApAQCAtMzUsOCArMzUsOCBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZvcm1hdHRpbmdDb250ZXh0KTsKIAotRm9ybWF0dGluZ0Nv
bnRleHQ6OkZvcm1hdHRpbmdDb250ZXh0KEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQotICAg
IDogbV9yb290KG1ha2VXZWFrUHRyKGZvcm1hdHRpbmdDb250ZXh0Um9vdCkpCitGb3JtYXR0aW5n
Q29udGV4dDo6Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQm94JiBmb3JtYXR0aW5nQ29udGV4dFJv
b3QpCisgICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIoY29uc3RfY2FzdDxCb3gmPihmb3JtYXR0aW5n
Q29udGV4dFJvb3QpKSkKIHsKIH0KIApAQCAtODQsNiArODQsMTQgQEAgTGF5b3V0VW5pdCBGb3Jt
YXR0aW5nQ29udGV4dDo6bWFyZ2luUmlnaHQoY29uc3QgQm94JikgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAordm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hp
bGRyZW4oY29uc3QgQ29udGFpbmVyJikgY29uc3QKK3sKK30KKwordm9pZCBGb3JtYXR0aW5nQ29u
dGV4dDo6bGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMoKSBjb25zdAoreworfQorCiB9CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZTg2
Y2ZmOTJkMjc3NWEzMDU3Nzc0ODM3YjI5NGYwNGVlN2Y4MWQ1MS4uN2U2ODQ3NTljYzIzY2NlMjA5
YWJjZmI0ZGNmMzFhYzBmNGMzZWIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmgKQEAgLTM1LDE3ICszNSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5h
bWVzcGFjZSBMYXlvdXQgewogCi1jbGFzcyBGb3JtYXR0aW5nU3RhdGU7CiBjbGFzcyBCb3g7Citj
bGFzcyBDb250YWluZXI7CitjbGFzcyBGb3JtYXR0aW5nU3RhdGU7CitjbGFzcyBMYXlvdXRDb250
ZXh0OwogCiBjbGFzcyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChGb3JtYXR0aW5nQ29udGV4dCk7CiBwdWJsaWM6Ci0gICAgRm9ybWF0dGluZ0NvbnRleHQo
Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworICAgIEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0
IEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKICAgICB2aXJ0dWFsIH5Gb3JtYXR0aW5nQ29u
dGV4dCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dChGb3JtYXR0aW5nU3RhdGUmKSA9IDA7
Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPiBmb3JtYXR0aW5n
U3RhdGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxheW91dChMYXlvdXRDb250ZXh0
JiwgRm9ybWF0dGluZ1N0YXRlJikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEZv
cm1hdHRpbmdTdGF0ZT4gZm9ybWF0dGluZ1N0YXRlKGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3Qs
IGNvbnN0IExheW91dENvbnRleHQmKSBjb25zdCA9IDA7CiAKICAgICBjb25zdCBCb3gmIHJvb3Qo
KSBjb25zdCB7IHJldHVybiAqbV9yb290OyB9CiAKQEAgLTYxLDYgKzYzLDkgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KGNvbnN0IEJveCYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Q7CiAg
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KGNvbnN0IEJveCYpIGNvbnN0OworICAg
IAorICAgIHZvaWQgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQ29udGFpbmVy
JikgY29uc3Q7CisgICAgdm9pZCBsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cygpIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIFdlYWtQdHI8Qm94PiBtX3Jvb3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCmluZGV4IDhmYTBkNDM4Y2NmN2M1MzA5NmEzOGRiNGM0NGFm
YzEyZTQxMGM5M2YuLjZkNjJmMTFiMTFkODEwMjJmNjM5M2YxYWM1YTRjYTI3YjkyZTA2NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCkBAIC0zNSw3ICszNSwx
MyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZv
cm1hdHRpbmdTdGF0ZSk7CiAKLUZvcm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKCkKK0Zv
cm1hdHRpbmdTdGF0ZTo6Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3Qs
IFJlZjxGbG9hdGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpCisgICAgOiBtX2Zvcm1hdHRpbmdS
b290KG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8Qm94Jj4oZm9ybWF0dGluZ1Jvb3QpKSkKKyAgICAs
IG1fZmxvYXRpbmdTdGF0ZShXVEZNb3ZlKGZsb2F0aW5nU3RhdGUpKQoreworfQorCitGb3JtYXR0
aW5nU3RhdGU6On5Gb3JtYXR0aW5nU3RhdGUoKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggZTM0YzAwOWMzYzA2MzFmNDJiYWE1YjZmMmY2MWM3MDVl
ZmJhMjE5ZC4uZGI0MzZlZGUyNzk5YTgyMmM4NDA3YWI3OWEwNmExZjYzNTk3YmE4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaApAQCAtMjcsMjUgKzI3LDMxIEBACiAK
ICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAorI2luY2x1ZGUgIkZsb2F0
aW5nU3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgTGF5b3V0IHsKIAog
Y2xhc3MgQm94OwotY2xhc3MgRmxvYXRpbmdTdGF0ZTsKIGNsYXNzIFN0eWxlRGlmZjsKIAogY2xh
c3MgRm9ybWF0dGluZ1N0YXRlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZvcm1hdHRp
bmdTdGF0ZSk7CiBwdWJsaWM6Ci0gICAgRm9ybWF0dGluZ1N0YXRlKCk7CisgICAgRm9ybWF0dGlu
Z1N0YXRlKGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3QsIFJlZjxGbG9hdGluZ1N0YXRlPiYmKTsK
KyAgICB2aXJ0dWFsIH5Gb3JtYXR0aW5nU3RhdGUoKTsKIAotICAgIEZsb2F0aW5nU3RhdGUmIGZs
b2F0aW5nU3RhdGUoKTsKKyAgICBGbG9hdGluZ1N0YXRlJiBmbG9hdGluZ1N0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9mbG9hdGluZ1N0YXRlOyB9CiAKICAgICB2b2lkIG1hcmtOZWVkc0xheW91dChj
b25zdCBCb3gmLCBTdHlsZURpZmYpOwogICAgIGJvb2wgbmVlZHNMYXlvdXQoY29uc3QgQm94Jik7
CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxCb3g+IG1fZm9ybWF0dGluZ1Jvb3Q7CisgICAgUmVm
PEZsb2F0aW5nU3RhdGU+IG1fZmxvYXRpbmdTdGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCA5MzhkZDJiMDg1ZGNlNzNmZWZiOTYwZGQyZDkx
MWYyZTUyYTM1NzkxLi41NWY1OWY2ZTBjY2ViMThhMzgxNzA1YWNkOGE2Y2E0ZmJkYmI2ZjMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCkBAIC00NywxOSArNDcsMjYg
QEAgTGF5b3V0Q29udGV4dDo6TGF5b3V0Q29udGV4dChCb3gmIHJvb3QpCiAKIHZvaWQgTGF5b3V0
Q29udGV4dDo6dXBkYXRlTGF5b3V0KCkKIHsKLSAgICBhdXRvIGNvbnRleHQgPSBmb3JtYXR0aW5n
Q29udGV4dCgqbV9yb290KTsKLSAgICBhdXRvIHN0YXRlID0gZm9ybWF0dGluZ1N0YXRlKCpjb250
ZXh0KTsKLSAgICBjb250ZXh0LT5sYXlvdXQoc3RhdGUpOworICAgIGxheW91dCgqbV9yb290KTsK
K30KKwordm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXQoY29uc3QgQm94JiBmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpCit7CisgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hl
c0Zvcm1hdHRpbmdDb250ZXh0KCkpOworCisgICAgYXV0byBjb250ZXh0ID0gZm9ybWF0dGluZ0Nv
bnRleHQoZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICBhdXRvJiBzdGF0ZSA9IGZvcm1hdHRp
bmdTdGF0ZSgqY29udGV4dCk7CisgICAgY29udGV4dC0+bGF5b3V0KCp0aGlzLCBzdGF0ZSk7CiB9
CiAKIEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0Q29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKGNvbnN0
IEZvcm1hdHRpbmdDb250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiAqbV9mb3JtYXR0aW5n
U3RhdGVzLmVuc3VyZSgmY29udGV4dC5yb290KCksIFsmY29udGV4dF0gewotICAgICAgICByZXR1
cm4gY29udGV4dC5mb3JtYXR0aW5nU3RhdGUoKTsKKyAgICByZXR1cm4gKm1fZm9ybWF0dGluZ1N0
YXRlcy5lbnN1cmUoJmNvbnRleHQucm9vdCgpLCBbdGhpcywgJmNvbnRleHRdIHsKKyAgICAgICAg
cmV0dXJuIGNvbnRleHQuZm9ybWF0dGluZ1N0YXRlKGNvbnRleHQucm9vdCgpLCAqdGhpcyk7CiAg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ0Nv
bnRleHQ+IExheW91dENvbnRleHQ6OmZvcm1hdHRpbmdDb250ZXh0KEJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KQorc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBMYXlvdXRDb250
ZXh0Ojpmb3JtYXR0aW5nQ29udGV4dChjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkK
IHsKICAgICBpZiAoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCgpKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0Pihmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRDb250ZXh0LmgKaW5kZXggMTUwMDdkNjBhNjIxYWE2NGEwYWE5YWI0YjNkMzg4NWY2OTQ1
YTVkZS4uOTdmZjYyZTRhOTkwOGRlYWI5YTk0ZjI1ZWFjYzc1ZjIyMjAyYzczMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBAIC01OSwxMCArNTksMTMgQEAgcHVibGljOgog
CiAgICAgdm9pZCBtYXJrTmVlZHNMYXlvdXQoY29uc3QgQm94JiwgU3R5bGVEaWZmKTsKICAgICBi
b29sIG5lZWRzTGF5b3V0KGNvbnN0IEJveCYpIGNvbnN0OworICAgIHZvaWQgbGF5b3V0KGNvbnN0
IEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKworICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9y
bWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0IEJveCYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEZv
cm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0Jik7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBmb3JtYXR0aW5nQ29udGV4
dChCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZvcm1h
dHRpbmdDb250ZXh0PiBmb3JtYXR0aW5nQ29udGV4dChjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCk7CiAKICAgICBXZWFrUHRyPEJveD4gbV9yb290OwogICAgIEhhc2hNYXA8Y29uc3Qg
Qm94Kiwgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdTdGF0ZT4+IG1fZm9ybWF0dGluZ1N0YXRl
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGQzN2UxODE0YmJlZGU2ZDc3
MzdkYmQwMTE1ZmNjZDc1ZjYxZDFjZWQuLjFiYjM0NmIyNGM5MjQ2MGFlZGU4NjlkNDJhMDdlOTZl
YTE1MDMyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjksNiArMjks
OSBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSAi
QmxvY2tGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJGbG9hdGluZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKKyNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzYsMTggKzM5LDczIEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoQmxvY2tGb3JtYXR0aW5nQ29udGV4dCk7CiAKLUJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQoQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3Qp
CitCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJv
eCYgZm9ybWF0dGluZ0NvbnRleHRSb290KQogICAgIDogRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0
dGluZ0NvbnRleHRSb290KQogewogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dChGb3JtYXR0aW5nU3RhdGUmKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0
aW5nU3RhdGUpCiB7CisgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cworICAg
IC8vIEluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LCBib3hlcyBhcmUgbGFpZCBvdXQgb25l
IGFmdGVyIHRoZSBvdGhlciwgdmVydGljYWxseSwgYmVnaW5uaW5nIGF0IHRoZSB0b3Agb2YgYSBj
b250YWluaW5nIGJsb2NrLgorICAgIC8vIFRoZSB2ZXJ0aWNhbCBkaXN0YW5jZSBiZXR3ZWVuIHR3
byBzaWJsaW5nIGJveGVzIGlzIGRldGVybWluZWQgYnkgdGhlICdtYXJnaW4nIHByb3BlcnRpZXMu
CisgICAgLy8gVmVydGljYWwgbWFyZ2lucyBiZXR3ZWVuIGFkamFjZW50IGJsb2NrLWxldmVsIGJv
eGVzIGluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGNvbGxhcHNlLgorICAgIGlmICghaXM8
Q29udGFpbmVyPihyb290KCkpKQorICAgICAgICByZXR1cm47CisgICAgYXV0byYgZm9ybWF0dGlu
Z1Jvb3QgPSBkb3duY2FzdDxDb250YWluZXI+KHJvb3QoKSk7CisgICAgVmVjdG9yPGNvbnN0IEJv
eCo+IGxheW91dFF1ZXVlOworICAgIEZsb2F0aW5nQ29udGV4dCBmbG9hdGluZ0NvbnRleHQoZm9y
bWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKSk7CisgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3Jk
ZXIgdHJlZSB0cmF2ZXJzYWwgbGF5b3V0LgorICAgIC8vIFRoZSByb290IGNvbnRhaW5lciBsYXlv
dXQgaXMgZG9uZSBpbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGl0IGxpdmVzIGluLCBub3QgdGhh
dCBvbmUgaXQgY3JlYXRlcywgc28gbGV0J3Mgc3RhcnQgd2l0aCB0aGUgZmlyc3QgY2hpbGQuCisg
ICAgaWYgKGZvcm1hdHRpbmdSb290Lmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKQorICAgICAg
ICBsYXlvdXRRdWV1ZS5hcHBlbmQoZm9ybWF0dGluZ1Jvb3QuZmlyc3RJbkZsb3dPckZsb2F0aW5n
Q2hpbGQoKSk7CisgICAgLy8gMS4gR28gYWxsIHRoZSB3YXkgZG93biB0byB0aGUgbGVhZiBub2Rl
CisgICAgLy8gMi4gQ29tcHV0ZSBzdGF0aWMgcG9zaXRpb24gYW5kIHdpZHRoIGFzIHdlIHRyYXZl
cnMgZG93bgorICAgIC8vIDMuIEFzIHdlIGNsaW1iIGJhY2sgb24gdGhlIHRyZWUsIGNvbXB1dGUg
aGVpZ2h0IGFuZCBmaW5pYWxpemUgcG9zaXRpb24KKyAgICAvLyAoQW55IHN1YnRyZWVzIHdpdGgg
bmV3IGZvcm1hdHRpbmcgY29udGV4dHMgbmVlZCB0byBsYXlvdXQgc3luY2hyb25vdXNseSkKKyAg
ICB3aGlsZSAoIWxheW91dFF1ZXVlLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBUcmF2ZXJzIGRv
d24gb24gdGhlIGRlc2NlbmRhbnRzIHVudGlsIHdlIGZpbmQgYSBsZWFmIG5vZGUuCisgICAgICAg
IHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0UXVl
dWUubGFzdCgpOworICAgICAgICAgICAgY29tcHV0ZVdpZHRoKGxheW91dEJveCk7CisgICAgICAg
ICAgICBjb21wdXRlU3RhdGljUG9zaXRpb24obGF5b3V0Qm94KTsKKyAgICAgICAgICAgIGlmIChs
YXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAg
ICAgbGF5b3V0Q29udGV4dC5sYXlvdXQobGF5b3V0Qm94KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghaXM8Q29udGFpbmVyPihsYXlvdXRC
b3gpIHx8ICFkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCkuaGFzSW5GbG93T3JGbG9hdGlu
Z0NoaWxkKCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBsYXlvdXRRdWV1
ZS5hcHBlbmQoZG93bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpLmZpcnN0SW5GbG93T3JGbG9h
dGluZ0NoaWxkKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2xpbWIgYmFjayBvbiB0aGUg
YW5jZXN0b3JzIGFuZCBjb21wdXRlIGhlaWdodC9maW5hbCBwb3NpdGlvbi4KKyAgICAgICAgd2hp
bGUgKCFsYXlvdXRRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIEFsbCBpbmZsb3cg
ZGVzY2VuZGFudHMgKGlmIHRoZXJlIGFyZSBhbnkpIGFyZSBsYWlkIG91dCBieSBub3cuIExldCdz
IGNvbXB1dGUgdGhlIGJveCdzIGhlaWdodC4KKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9
ICpsYXlvdXRRdWV1ZS50YWtlTGFzdCgpOworICAgICAgICAgICAgY29tcHV0ZUhlaWdodChsYXlv
dXRCb3gpOworICAgICAgICAgICAgLy8gQWRqdXN0IHBvc2l0aW9uIG5vdyB0aGF0IHdlIGhhdmUg
YWxsIHRoZSBwcmV2aW91cyBmbG9hdHMgcGxhY2VkIGluIHRoaXMgY29udGV4dCAtaWYgbmVlZGVk
LgorICAgICAgICAgICAgZmxvYXRpbmdDb250ZXh0LmNvbXB1dGVQb3NpdGlvbihsYXlvdXRCb3gp
OworICAgICAgICAgICAgaWYgKCFpczxDb250YWluZXI+KGxheW91dEJveCkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvJiBjb250YWluZXIgPSBkb3duY2FzdDxD
b250YWluZXI+KGxheW91dEJveCk7CisgICAgICAgICAgICAvLyBNb3ZlIGluLWZsb3cgcG9zaXRp
b25lZCBjaGlsZHJlbiB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi4KKyAgICAgICAgICAgIHBsYWNl
SW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgICAgICAgICBpZiAoYXV0
byogbmV4dFNpYmxpbmcgPSBjb250YWluZXIubmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkp
IHsKKyAgICAgICAgICAgICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQobmV4dFNpYmxpbmcpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAg
IC8vIFBsYWNlIHRoZSBpbmZsb3cgcG9zaXRpb25lZCBjaGlsZHJlbi4KKyAgICBwbGFjZUluRmxv
d1Bvc2l0aW9uZWRDaGlsZHJlbihmb3JtYXR0aW5nUm9vdCk7CisgICAgLy8gQW5kIHRha2UgY2Fy
ZSBvZiBvdXQtb2YtZmxvdyBib3hlcyBhcyB0aGUgZmluYWwgc3RlcC4KKyAgICBsYXlvdXRPdXRP
ZkZsb3dEZXNjZW5kYW50cygpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRl
PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSBjb25zdAorc3RkOjp1
bmlxdWVfcHRyPEZvcm1hdHRpbmdTdGF0ZT4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0
dGluZ1N0YXRlKGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3QsIGNvbnN0IExheW91dENvbnRleHQm
KSBjb25zdAogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrRm9ybWF0dGluZ1N0
YXRlPigpOworICAgIC8vIEJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCBhbHdheXMgZXN0YWJsaXNo
ZXMgYSBuZXcgZmxvYXRpbmcgc3RhdGUuCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Qmxv
Y2tGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdSb290LCBGbG9hdGluZ1N0YXRlOjpjcmVhdGUo
KSk7CiB9CiAKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0
aW9uKGNvbnN0IEJveCYpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IGYx
MmU3ZTc2MmQ1MzM0MWVhMjZjY2RlN2ExZDgxYmU5YzlmZGJiZmEuLjVmMTYwMDk3NzVlOWY2NDEw
NzAxYjY2NTE5OWViZjRiNTdjYmJhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBA
IC0zNywxNiArMzcsMTcgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIEJsb2NrRm9ybWF0
dGluZ1N0YXRlOwogY2xhc3MgQm94OworY2xhc3MgTGF5b3V0Q29udGV4dDsKIAogLy8gVGhpcyBj
bGFzcyBpbXBsZW1lbnRzIHRoZSBsYXlvdXQgbG9naWMgZm9yIGJsb2NrIGZvcm1hdHRpbmcgY29u
dGV4dHMuCiAvLyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdXJlbi5odG1sI2Jsb2Nr
LWZvcm1hdHRpbmcKIGNsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQgOiBwdWJsaWMgRm9ybWF0
dGluZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQmxvY2tGb3JtYXR0aW5n
Q29udGV4dCk7CiBwdWJsaWM6Ci0gICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4dChCb3gmIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCk7CisgICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4dChjb25zdCBCb3gm
IGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKLSAgICB2b2lkIGxheW91dChGb3JtYXR0aW5nU3Rh
dGUmKSBvdmVycmlkZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPiBmb3Jt
YXR0aW5nU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGxheW91dChMYXlvdXRDb250
ZXh0JiwgRm9ybWF0dGluZ1N0YXRlJikgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEZv
cm1hdHRpbmdTdGF0ZT4gZm9ybWF0dGluZ1N0YXRlKGNvbnN0IEJveCYgZm9ybWF0dGluZ1Jvb3Qs
IGNvbnN0IExheW91dENvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAg
IHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IEJveCYpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcAppbmRleCAyNDRkODI1NGFjZWY3ZjFjMzI5MWRlOTc2
MjA0YWY4MmRlNTdmZTJjLi5mODRkMDljZTJmMzFkNTUwZDliMzQyZDViMTNkZjJkMjM0MTUzYTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMzUsOCArMzUsOCBAQCBuYW1lc3Bh
Y2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEJsb2NrRm9ybWF0dGlu
Z1N0YXRlKTsKIAotQmxvY2tGb3JtYXR0aW5nU3RhdGU6OkJsb2NrRm9ybWF0dGluZ1N0YXRlKCkK
LSAgICA6IEZvcm1hdHRpbmdTdGF0ZSgpCitCbG9ja0Zvcm1hdHRpbmdTdGF0ZTo6QmxvY2tGb3Jt
YXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3JtYXR0aW5nUm9vdCwgUmVmPEZsb2F0aW5nU3RhdGU+
JiYgZmxvYXRpbmdTdGF0ZSkKKyAgICA6IEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdCwg
V1RGTW92ZShmbG9hdGluZ1N0YXRlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oCmlu
ZGV4IDU0ODViZGEyZjY4ZGRlYWNjMTRlMjhiZDVjOTVmMWJjNzRjNTYzM2YuLmE5ODc2NDU0MjIw
ODU0MTkwZWY4YmMxNGE4YjU4YTNmNGM1ZWUwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmgK
QEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBCbG9ja0Zvcm1hdHRp
bmdTdGF0ZSA6IHB1YmxpYyBGb3JtYXR0aW5nU3RhdGUgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoQmxvY2tGb3JtYXR0aW5nU3RhdGUpOwogcHVibGljOgotICAgIEJsb2NrRm9ybWF0dGlu
Z1N0YXRlKCk7CisgICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3JtYXR0aW5n
Um9vdCwgUmVmPEZsb2F0aW5nU3RhdGU+JiYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuY3BwCmluZGV4IDdkMWI3NjQwM2Q5Y2I0Mzk3N2YzNWQ5MTdiYzcxOGQyNDRi
YjVhZjYuLmUwMTFkZjg5MDQxZTQ3OWUzNDc3YTQ1OThhOGIzZmQwOTBkYzA0MDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIklubGluZUZvcm1hdHRp
bmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRl
eHQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zNiwxOCArMzgsMjMgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCk7CiAKLUlubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChCb3gmIGZvcm1hdHRpbmdD
b250ZXh0Um9vdCkKK0lubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dChjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKICAgICA6IEZvcm1hdHRpbmdD
b250ZXh0KGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKIHsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0KEZvcm1hdHRpbmdTdGF0ZSYpCit2b2lkIElubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXQoTGF5b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0ZSYpCiB7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nU3RhdGU+IElubGluZUZvcm1hdHRpbmdDb250
ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdT
dGF0ZT4gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZShjb25zdCBCb3gm
IGZvcm1hdHRpbmdSb290LCBjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0KSBjb25z
dAogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPElubGluZUZvcm1hdHRpbmdTdGF0ZT4o
KTsKKyAgICAvLyBJZiB0aGUgYmxvY2sgY29udGFpbmVyIGJveCB0aGF0IGluaXRpYXRlcyB0aGlz
IGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgYWxzbyBlc3RhYmxpc2hlcyBhIGJsb2NrIGNvbnRl
eHQsIGNyZWF0ZSBhIG5ldyBmbG9hdCBmb3IKKyAgICBpZiAoZm9ybWF0dGluZ1Jvb3QuZXN0YWJs
aXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPElubGluZUZvcm1hdHRpbmdTdGF0ZT4oZm9ybWF0dGluZ1Jvb3QsIEZsb2F0aW5nU3Rh
dGU6OmNyZWF0ZSgpKTsKKyAgICAvLyBGaW5kIHRoZSBmb3JtYXR0aW5nIHN0YXRlIGluIHdoaWNo
IHRoaXMgZm9ybWF0dGluZyByb290IGxpdmVzLCBub3QgdGhlIG9uZSBpdCBjcmVhdGVzICh0aGlz
KSBhbmQgdXNlIGl0cyBmbG9hdGluZyBzdGF0ZS4KKyAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUg
PSBsYXlvdXRDb250ZXh0LmZvcm1hdHRpbmdTdGF0ZUZvckJveChmb3JtYXR0aW5nUm9vdCk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihmb3JtYXR0
aW5nUm9vdCwgZm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDYwMjYwNjBlOWVjNGU3ODdmMjMwNTAxNjQ5
YTJkYmU4OThkMjcxMjUuLjBkNmU5ZjhiMGVkMjBjYWE1YTg2MmIzYjNhZTkxNzI2MjhhNWQ4NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMzUsMTYgKzM1LDE3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGU7CitjbGFzcyBMYXlvdXRDb250ZXh0OwogCiAvLyBUaGlzIGNsYXNzIGltcGxl
bWVudHMgdGhlIGxheW91dCBsb2dpYyBmb3IgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dHMuCiAv
LyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdXJlbi5odG1sI2lubGluZS1mb3JtYXR0
aW5nCiBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCA6IHB1YmxpYyBGb3JtYXR0aW5nQ29u
dGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCk7CiBwdWJsaWM6Ci0gICAgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoQm94JiBmb3JtYXR0aW5n
Q29udGV4dFJvb3QpOworICAgIElubGluZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJveCYgZm9y
bWF0dGluZ0NvbnRleHRSb290KTsKIAotICAgIHZvaWQgbGF5b3V0KEZvcm1hdHRpbmdTdGF0ZSYp
IG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nU3RhdGU+IGZvcm1hdHRp
bmdTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgbGF5b3V0KExheW91dENvbnRleHQm
LCBGb3JtYXR0aW5nU3RhdGUmKSBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0
dGluZ1N0YXRlPiBmb3JtYXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3JtYXR0aW5nUm9vdCwgY29u
c3QgTGF5b3V0Q29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggOTMwYTg4NTA0MTkyYjJmNzVhYzUyZmQ2ZWMxYThjOGEy
NjA2NTY0MC4uOWU5ZGIwZDkzNzhiYTY0ODE4Nzk5Y2ExYmM2NDI1OWUzOTUwZDcwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAorI2luY2x1ZGUgIkxheW91dEJveC5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM1LDggKzM2LDggQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOwogCi1JbmxpbmVGb3JtYXR0aW5nU3Rh
dGU6OklubGluZUZvcm1hdHRpbmdTdGF0ZSgpCi0gICAgOiBGb3JtYXR0aW5nU3RhdGUoKQorSW5s
aW5lRm9ybWF0dGluZ1N0YXRlOjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3Jt
YXR0aW5nUm9vdCwgUmVmPEZsb2F0aW5nU3RhdGU+JiYgZmxvYXRpbmdTdGF0ZSkKKyAgICA6IEZv
cm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdCwgV1RGTW92ZShmbG9hdGluZ1N0YXRlKSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaAppbmRleCBlZDliY2RhZGM3ODQ0ZjE3ZTBl
N2VhODYxNzM0ZDA1YjMxZWU1NWJjLi5hNzNlZjk1ZDA3MDBiZGI4ZDlmYzNlYTQxMzMwOWMzMDYw
YjM5ODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaApAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgTGF5b3V0IHsKIGNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZSA6IHB1YmxpYyBG
b3JtYXR0aW5nU3RhdGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW5saW5lRm9ybWF0
dGluZ1N0YXRlKTsKIHB1YmxpYzoKLSAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUoKTsKKyAgICBJ
bmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3JtYXR0aW5nUm9vdCwgUmVmPEZsb2F0
aW5nU3RhdGU+JiYpOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338999</attachid>
            <date>2018-04-27 10:31:32 -0700</date>
            <delta_ts>2018-04-27 10:39:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185024-20180427103131.patch</filename>
            <type>text/plain</type>
            <size>13655</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgyNDE3MDVmM2Y1MGFj
OWExZjM0MDVkNTBkOWMzOTRlY2I4NmEyMi4uZTA0ZmY1YjY4ZjZmMzFlMzUwMjdkYWM1NDZlYWM0
N2EyNWY3ZGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE4LTA0LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW1wbGVtZW50IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBsb2dpYyBhbmQgaXRzIGRlcGVuZGVuY2llcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIHRoZSBsb2dpYyBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFjY29y
ZGluZyB0bworICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdXJlbi5odG1s
I2Jsb2NrLWZvcm1hdHRpbmcKKworICAgICAgICAxLiBUcmF2ZXJzIHRoZSB0cmVlIGl0ZXJhdGl2
ZWx5IChpbiBwb3N0LW9yZGVyIGZhc2hpb24pIGFuZCBjb21wdXRlIHRoZSB3aWR0aC9zdGF0aWMg
cG9zaXRpb24gZm9yIHRoZSBjb250YWluZXJzIGFzCisgICAgICAgIHdlIHZpc2l0IHRoZSBkZXNj
ZW5kYW50IG5vZGVzIHVudGlsIHdlIGhpdCBhIGxlYWYgbm9kZS4KKyAgICAgICAgMi4gQ29tcHV0
ZSB0aGUgcG9zaXRpb24vZ2VvbWV0cnkgb2YgdGhlIGxlYWYgbm9kZSBhbmQgbW92ZSBvdmVyIHRv
IGl0cyBzaWJsaW5nKHMpLgorICAgICAgICAzLiBGaW5hbGl6ZSB0aGUgY29udGFpbmVyJ3MgaGVp
Z2h0L2ZpbmFsIHBvc2l0aW9uIGFzIHdlIGNsaW1iIGJhY2sgb24gdGhlIHRyZWUuCisgICAgICAg
IDQuIFJ1biBsYXlvdXQgb24gdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRzLiAgCisKKyAgICAg
ICAgTm90ZSB0aGF0IHN1YnRyZWVzIHdpdGggYSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCBuZWVk
IHRvIGJlIGxhaWQgb3V0IGNvbXBsZXRlbHkgYmVmb3JlIG1vdmluZyBvbiB0byB0aGUgbmV4dCBi
b3guCisgICAgICAgIFRoZSBmb3JtYXR0aW5nIHJvb3QgYm94IGlzIGxhaWQgb3V0IGluIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMgaW4sIGhvd2V2ZXIgaXRzIGRlc2NlbmRhbnRzIGdl
dCBsYWlkIG91dAorICAgICAgICBpbiBhIHNlcGFyYXRlIGZvcm1hdHRpbmcgY29udGV4dCAoZXhj
bHVkaW5nIG91dC1vZi1mbG93IGJveGVzIHRoYXQgZG9uJ3QgYmVsb25nIHRvIHRoZSByb290KS4g
CisKKyAgICAgICAgKiBsYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjpGbG9hdGluZ0NvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvbik6CisgICAg
ICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91
dE91dE9mRmxvd0Rlc2NlbmRhbnRzIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGlu
Z0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OnVwZGF0ZUxheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0
YXRlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAqIGxheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCk6
IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6bGF5b3V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDoKKwogMjAxOC0w
NC0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEZv
cm1hdHRpbmcgY29udGV4dHMgc2hvdWxkIGNyZWF0ZSBmbG9hdGluZyBzdGF0ZXMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDkyODcyYWEzYTc0OWMwMGQ1
MmVmZDZhMTgzOTBkMWE3MzVhZWY4YTEuLmY3NDMwY2RhNDRiNDk1ODk0ZTZjYjEzODM3NmZmM2Y0
MDlhMjhlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9GbG9hdGluZ0NvbnRleHQuY3BwCkBA
IC0yNSwzICsyNSwyNCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmxvYXRp
bmdDb250ZXh0LmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKwor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBMYXlvdXQgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmxvYXRp
bmdDb250ZXh0KTsKKworRmxvYXRpbmdDb250ZXh0OjpGbG9hdGluZ0NvbnRleHQoRmxvYXRpbmdT
dGF0ZSYpCit7Cit9CisKK3ZvaWQgRmxvYXRpbmdDb250ZXh0Ojpjb21wdXRlUG9zaXRpb24oY29u
c3QgQm94JikKK3sKK30KKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBkY2EwNDc1ZWE1OGE3ZThjZjMyODg2NTljZTU1MWIx
NjU1M2IwYzUzLi45ODQwYTNmYjI0MGUxMDQzOGQ1N2JmZWYwOGZjYzVhMzYwYTNlOTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTg1LDYgKzg1
LDE0IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Om1hcmdpblJpZ2h0KGNvbnN0IEJv
eCYpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OnBs
YWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IENvbnRhaW5lciYpIGNvbnN0Cit7Cit9
CisKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKCkg
Y29uc3QKK3sKK30KKwogfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5oCmluZGV4IGJkZTMxZTIxMjI2MjkxNTY4MWNhNzA0NjA1MGEwOGIwZTQwNGU3
NjAuLmM2YzE0NjE0M2RmNWI3Mzg1ZTdhOWU0NDc0OTVjZjIxZWRlNjUyNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBCb3g7CitjbGFzcyBD
b250YWluZXI7CiBjbGFzcyBGb3JtYXR0aW5nU3RhdGU7CiBjbGFzcyBMYXlvdXRDb250ZXh0Owog
CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBGb3JtYXR0aW5nQ29udGV4dChjb25zdCBC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0Q29udGV4dCYpOwogICAgIHZpcnR1YWwg
fkZvcm1hdHRpbmdDb250ZXh0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KEZvcm1hdHRp
bmdTdGF0ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KExheW91dENvbnRleHQmLCBG
b3JtYXR0aW5nU3RhdGUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8
Rm9ybWF0dGluZ1N0YXRlPiBjcmVhdGVGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+
JiYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGVPckZp
bmRGbG9hdGluZ1N0YXRlKCkgY29uc3QgPSAwOwogCkBAIC02Niw2ICs2Nyw5IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0IEJveCYpIGNvbnN0
OwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodChjb25zdCBCb3gmKSBjb25zdDsK
IAorICAgIHZvaWQgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQ29udGFpbmVy
JikgY29uc3Q7CisgICAgdm9pZCBsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cygpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIFdlYWtQdHI8Qm94PiBtX3Jvb3Q7CiAgICAgTGF5b3V0Q29udGV4dCYg
bV9sYXlvdXRDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCmlu
ZGV4IDRjOWI2ZmQwOTJhOTJlZmQ4Zjg4YTJlMDA1ZjY4ZGY0ODZmMmJjN2QuLjljMmQ0YjcxZjkw
MTU5NTZjNzliMDRlODdjYjk4NzA3MjdmMjk1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBMYXlvdXRDb250ZXh0Ojp1cGRh
dGVMYXlvdXQoKQogewogICAgIGF1dG8gY29udGV4dCA9IGZvcm1hdHRpbmdDb250ZXh0KCptX3Jv
b3QpOwogICAgIGF1dG8mIHN0YXRlID0gZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoKm1fcm9v
dCwgKmNvbnRleHQpOwotICAgIGNvbnRleHQtPmxheW91dChzdGF0ZSk7CisgICAgY29udGV4dC0+
bGF5b3V0KCp0aGlzLCBzdGF0ZSk7CiB9CiAKIEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0Q29udGV4
dDo6Zm9ybWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdApAQCAt
NjAsNyArNjAsNyBAQCBGb3JtYXR0aW5nU3RhdGUmIExheW91dENvbnRleHQ6OmZvcm1hdHRpbmdT
dGF0ZUZvckJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29ucwogICAgIHJldHVybiAqbV9mb3Jt
YXR0aW5nU3RhdGVzLmdldCgmcm9vdCk7CiB9CiAKLUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0Q29u
dGV4dDo6ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoQm94JiBmb3JtYXR0aW5nQ29udGV4dFJv
b3QsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBjb250ZXh0KQorRm9ybWF0dGluZ1N0YXRlJiBM
YXlvdXRDb250ZXh0Ojplc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBCb3gmIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGNvbnRleHQpCiB7CiAg
ICAgcmV0dXJuICptX2Zvcm1hdHRpbmdTdGF0ZXMuZW5zdXJlKCZmb3JtYXR0aW5nQ29udGV4dFJv
b3QsIFt0aGlzLCAmY29udGV4dF0gewogICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVGb3Jt
YXR0aW5nU3RhdGUoY29udGV4dC5jcmVhdGVPckZpbmRGbG9hdGluZ1N0YXRlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKaW5kZXggNjU4OWU1MTk0MGIzNTQ4NDY2MWVjMmU3
YWI1NmJmYjMwMzU0MTFhYS4uNTc2OGJkMmZlNDY1Y2EyMzM3YWJjZDVmMDI5YmNmZmMxYzI4ZjRh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBAIC02MSwxMSArNjEsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNMYXlvdXQoY29uc3QgQm94JikgY29uc3Q7CiAKICAg
ICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckJveChjb25zdCBCb3gmKSBjb25z
dDsKLQotcHJpdmF0ZToKLSAgICBGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkRm9ybWF0dGlu
Z1N0YXRlKEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4
dCYpOworICAgIEZvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoY29u
c3QgQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0Jik7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBmb3JtYXR0aW5nQ29udGV4
dChjb25zdCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKK3ByaXZhdGU6CiAgICAgV2Vh
a1B0cjxCb3g+IG1fcm9vdDsKICAgICBIYXNoTWFwPGNvbnN0IEJveCosIHN0ZDo6dW5pcXVlX3B0
cjxGb3JtYXR0aW5nU3RhdGU+PiBtX2Zvcm1hdHRpbmdTdGF0ZXM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZTgwNTQ1YjlmMDM2YjI5MGFhNjc1MzFmYjE1ZDNkZTQ2
YjU2OTdjZS4uYmI2ODg3ZmNjMjVhNzdkMmMxZGMzMTIzOTNmNTVmMTA2YmU2OGJiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yOSw3ICsyOSwxMSBAQAogI2lmIEVOQUJM
RShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5n
U3RhdGUuaCIKKyNpbmNsdWRlICJGbG9hdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJGbG9hdGlu
Z1N0YXRlLmgiCisjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGFp
bmVyLmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDggKzQ2LDYzIEBAIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQm94JiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QsCiB7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6bGF5b3V0KEZvcm1hdHRpbmdTdGF0ZSYpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmxheW91dChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdGUmIGZv
cm1hdHRpbmdTdGF0ZSkgY29uc3QKIHsKKyAgICAvLyA5LjQuMSBCbG9jayBmb3JtYXR0aW5nIGNv
bnRleHRzCisgICAgLy8gSW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQsIGJveGVzIGFyZSBs
YWlkIG91dCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCB2ZXJ0aWNhbGx5LCBiZWdpbm5pbmcgYXQgdGhl
IHRvcCBvZiBhIGNvbnRhaW5pbmcgYmxvY2suCisgICAgLy8gVGhlIHZlcnRpY2FsIGRpc3RhbmNl
IGJldHdlZW4gdHdvIHNpYmxpbmcgYm94ZXMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgJ21hcmdpbicg
cHJvcGVydGllcy4KKyAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zIGJldHdlZW4gYWRqYWNlbnQgYmxv
Y2stbGV2ZWwgYm94ZXMgaW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgY29sbGFwc2UuCisg
ICAgaWYgKCFpczxDb250YWluZXI+KHJvb3QoKSkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRv
JiBmb3JtYXR0aW5nUm9vdCA9IGRvd25jYXN0PENvbnRhaW5lcj4ocm9vdCgpKTsKKyAgICBWZWN0
b3I8Y29uc3QgQm94Kj4gbGF5b3V0UXVldWU7CisgICAgRmxvYXRpbmdDb250ZXh0IGZsb2F0aW5n
Q29udGV4dChmb3JtYXR0aW5nU3RhdGUuZmxvYXRpbmdTdGF0ZSgpKTsKKyAgICAvLyBUaGlzIGlz
IGEgcG9zdC1vcmRlciB0cmVlIHRyYXZlcnNhbCBsYXlvdXQuCisgICAgLy8gVGhlIHJvb3QgY29u
dGFpbmVyIGxheW91dCBpcyBkb25lIGluIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMg
aW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVhdGVzLCBzbyBsZXQncyBzdGFydCB3aXRoIHRoZSBmaXJz
dCBjaGlsZC4KKyAgICBpZiAoZm9ybWF0dGluZ1Jvb3QuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxk
KCkpCisgICAgICAgIGxheW91dFF1ZXVlLmFwcGVuZChmb3JtYXR0aW5nUm9vdC5maXJzdEluRmxv
d09yRmxvYXRpbmdDaGlsZCgpKTsKKyAgICAvLyAxLiBHbyBhbGwgdGhlIHdheSBkb3duIHRvIHRo
ZSBsZWFmIG5vZGUKKyAgICAvLyAyLiBDb21wdXRlIHN0YXRpYyBwb3NpdGlvbiBhbmQgd2lkdGgg
YXMgd2UgdHJhdmVycyBkb3duCisgICAgLy8gMy4gQXMgd2UgY2xpbWIgYmFjayBvbiB0aGUgdHJl
ZSwgY29tcHV0ZSBoZWlnaHQgYW5kIGZpbmlhbGl6ZSBwb3NpdGlvbgorICAgIC8vIChBbnkgc3Vi
dHJlZXMgd2l0aCBuZXcgZm9ybWF0dGluZyBjb250ZXh0cyBuZWVkIHRvIGxheW91dCBzeW5jaHJv
bm91c2x5KQorICAgIHdoaWxlICghbGF5b3V0UXVldWUuaXNFbXB0eSgpKSB7CisgICAgICAgIC8v
IFRyYXZlcnMgZG93biBvbiB0aGUgZGVzY2VuZGFudHMgYW5kIGNvbXB1dGUgd2lkdGgvc3RhdGlj
IHBvc2l0aW9uIHVudGlsIHdlIGZpbmQgYSBsZWFmIG5vZGUuCisgICAgICAgIHdoaWxlICh0cnVl
KSB7CisgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0UXVldWUubGFzdCgpOwor
ICAgICAgICAgICAgY29tcHV0ZVdpZHRoKGxheW91dEJveCk7CisgICAgICAgICAgICBjb21wdXRl
U3RhdGljUG9zaXRpb24obGF5b3V0Qm94KTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCb3guZXN0
YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBmb3Jt
YXR0aW5nQ29udGV4dCA9IGxheW91dENvbnRleHQuZm9ybWF0dGluZ0NvbnRleHQobGF5b3V0Qm94
KTsKKyAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0KGxheW91dENvbnRl
eHQsIGxheW91dENvbnRleHQuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Qm94LCAq
Zm9ybWF0dGluZ0NvbnRleHQpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmICghaXM8Q29udGFpbmVyPihsYXlvdXRCb3gpIHx8ICFkb3duY2Fz
dDxDb250YWluZXI+KGxheW91dEJveCkuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpCisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQoZG93bmNh
c3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpLmZpcnN0SW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpOwor
ICAgICAgICB9CisKKyAgICAgICAgLy8gQ2xpbWIgYmFjayBvbiB0aGUgYW5jZXN0b3JzIGFuZCBj
b21wdXRlIGhlaWdodC9maW5hbCBwb3NpdGlvbi4KKyAgICAgICAgd2hpbGUgKCFsYXlvdXRRdWV1
ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIEFsbCBpbmZsb3cgZGVzY2VuZGFudHMgKGlm
IHRoZXJlIGFyZSBhbnkpIGFyZSBsYWlkIG91dCBieSBub3cuIExldCdzIGNvbXB1dGUgdGhlIGJv
eCdzIGhlaWdodC4KKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpsYXlvdXRRdWV1ZS50
YWtlTGFzdCgpOworICAgICAgICAgICAgY29tcHV0ZUhlaWdodChsYXlvdXRCb3gpOworICAgICAg
ICAgICAgLy8gQWRqdXN0IHBvc2l0aW9uIG5vdyB0aGF0IHdlIGhhdmUgYWxsIHRoZSBwcmV2aW91
cyBmbG9hdHMgcGxhY2VkIGluIHRoaXMgY29udGV4dCAtaWYgbmVlZGVkLgorICAgICAgICAgICAg
ZmxvYXRpbmdDb250ZXh0LmNvbXB1dGVQb3NpdGlvbihsYXlvdXRCb3gpOworICAgICAgICAgICAg
aWYgKCFpczxDb250YWluZXI+KGxheW91dEJveCkpCisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICBhdXRvJiBjb250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXI+KGxheW91
dEJveCk7CisgICAgICAgICAgICAvLyBNb3ZlIGluLWZsb3cgcG9zaXRpb25lZCBjaGlsZHJlbiB0
byB0aGVpciBmaW5hbCBwb3NpdGlvbi4KKyAgICAgICAgICAgIHBsYWNlSW5GbG93UG9zaXRpb25l
ZENoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgICAgICAgICBpZiAoYXV0byogbmV4dFNpYmxpbmcg
PSBjb250YWluZXIubmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQobmV4dFNpYmxpbmcpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8vIFBsYWNlIHRoZSBp
bmZsb3cgcG9zaXRpb25lZCBjaGlsZHJlbi4KKyAgICBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGls
ZHJlbihmb3JtYXR0aW5nUm9vdCk7CisgICAgLy8gQW5kIHRha2UgY2FyZSBvZiBvdXQtb2YtZmxv
dyBib3hlcyBhcyB0aGUgZmluYWwgc3RlcC4KKyAgICBsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50
cygpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPiBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYgZmxv
YXRpbmdTdGF0ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggMDI2Mzk4
YmEyNzVkM2I2MTNiMjQ3M2QzMmY5YmRjMGI3YzBjZWY1NS4uYWFkZTVhNjU1NmEzNmY0ZmZjNTZm
ZjFiNTJmYTY2MDc3N2Y3NGFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCA6IHB1YmxpYyBGb3JtYXR0
aW5nQ29udGV4dCB7CiBwdWJsaWM6CiAgICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4dChjb25zdCBC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0Q29udGV4dCYpOwogCi0gICAgdm9pZCBs
YXlvdXQoRm9ybWF0dGluZ1N0YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYXlvdXQoTGF5b3V0
Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxGb3JtYXR0aW5nU3RhdGU+IGNyZWF0ZUZvcm1hdHRpbmdTdGF0ZShSZWY8RmxvYXRp
bmdTdGF0ZT4mJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmPEZsb2F0aW5nU3RhdGU+IGNyZWF0
ZU9yRmluZEZsb2F0aW5nU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDIyYTQ4MDdiNmRmZWI5ZDVjOWI3N2ViMGVkMDRlNzli
ZjUwYTEyZGIuLjIyMzUyNjZiNzA3YTIwYjE2NjQwNTIxOWQ5Y2I2NGMzZWFlMjU2YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJveCYgZm9y
bWF0dGluZ0NvbnRleHRSb28KIHsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
bGF5b3V0KEZvcm1hdHRpbmdTdGF0ZSYpCit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojps
YXlvdXQoTGF5b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0ZSYpIGNvbnN0CiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDM2NTgwZTFkYjQ0MDNlMzY0NWY3NzFj
M2IxMTkwNTg1ODkwMzA5ZmIuLmYyNTg3ZjQwZmM2ZGU2MGRhM2E2ZjdhYWMwNWY4M2Y0NmE3YzU0
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNDMsNyArNDMsNyBAQCBj
bGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dCB7
CiBwdWJsaWM6CiAgICAgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQm94JiBmb3JtYXR0
aW5nQ29udGV4dFJvb3QsIExheW91dENvbnRleHQmKTsKIAotICAgIHZvaWQgbGF5b3V0KEZvcm1h
dHRpbmdTdGF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgbGF5b3V0KExheW91dENvbnRleHQmLCBG
b3JtYXR0aW5nU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9y
bWF0dGluZ1N0YXRlPiBjcmVhdGVGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGVPckZpbmRGbG9h
dGluZ1N0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339003</attachid>
            <date>2018-04-27 10:39:25 -0700</date>
            <delta_ts>2018-04-27 11:17:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185024-20180427103925.patch</filename>
            <type>text/plain</type>
            <size>13658</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgyNDE3MDVmM2Y1MGFj
OWExZjM0MDVkNTBkOWMzOTRlY2I4NmEyMi4uZjI0YTE2OTNkMzA0MDBhNmRmNGNiYTVmOGEwNDMw
YTVkYmZkMTVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE4LTA0LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW1wbGVtZW50IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBsb2dpYyBhbmQgaXRzIGRlcGVuZGVuY2llcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIHRoZSBsb2dpYyBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGFjY29y
ZGluZyB0bworICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdXJlbi5odG1s
I2Jsb2NrLWZvcm1hdHRpbmcKKworICAgICAgICAxLiBUcmF2ZXJzZSB0aGUgdHJlZSBpdGVyYXRp
dmVseSAoaW4gcG9zdC1vcmRlciBmYXNoaW9uKSBhbmQgY29tcHV0ZSB0aGUgd2lkdGgvc3RhdGlj
IHBvc2l0aW9uIGZvciB0aGUgY29udGFpbmVycyBhcworICAgICAgICB3ZSB2aXNpdCB0aGUgZGVz
Y2VuZGFudCBub2RlcyB1bnRpbCB3ZSBoaXQgYSBsZWFmIG5vZGUuCisgICAgICAgIDIuIENvbXB1
dGUgdGhlIHBvc2l0aW9uL2dlb21ldHJ5IG9mIHRoZSBsZWFmIG5vZGUgYW5kIG1vdmUgb3ZlciB0
byBpdHMgc2libGluZyhzKS4KKyAgICAgICAgMy4gRmluYWxpemUgdGhlIGNvbnRhaW5lcidzIGhl
aWdodC9maW5hbCBwb3NpdGlvbiBhcyB3ZSBjbGltYiBiYWNrIG9uIHRoZSB0cmVlLgorICAgICAg
ICA0LiBSdW4gbGF5b3V0IG9uIHRoZSBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cy4gIAorCisgICAg
ICAgIE5vdGUgdGhhdCBzdWJ0cmVlcyB3aXRoIGEgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgbmVl
ZCB0byBiZSBsYWlkIG91dCBjb21wbGV0ZWx5IGJlZm9yZSBtb3Zpbmcgb24gdG8gdGhlIG5leHQg
Ym94LgorICAgICAgICBUaGUgZm9ybWF0dGluZyByb290IGJveCBpcyBsYWlkIG91dCBpbiB0aGUg
Zm9ybWF0dGluZyBjb250ZXh0IGl0IGxpdmVzIGluLCBob3dldmVyIGl0cyBkZXNjZW5kYW50cyBn
ZXQgbGFpZCBvdXQKKyAgICAgICAgaW4gYSBzZXBhcmF0ZSBmb3JtYXR0aW5nIGNvbnRleHQgKGV4
Y2x1ZGluZyBvdXQtb2YtZmxvdyBib3hlcyB0aGF0IGRvbid0IGJlbG9uZyB0byB0aGUgcm9vdCku
IAorCisgICAgICAgICogbGF5b3V0L0Zsb2F0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6RmxvYXRpbmdDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0Ojpjb21wdXRlUG9zaXRpb24pOgorICAg
ICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXRPdXRPZkZsb3dEZXNjZW5kYW50cyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojp1cGRhdGVMYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojplc3RhYmxpc2hlZEZvcm1hdHRpbmdT
dGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuaDoKKyAgICAgICAgKiBsYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQp
OiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0Lmg6CisKIDIwMTgt
MDQtMjcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBG
b3JtYXR0aW5nIGNvbnRleHRzIHNob3VsZCBjcmVhdGUgZmxvYXRpbmcgc3RhdGVzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zsb2F0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcAppbmRleCA5Mjg3MmFhM2E3NDljMDBk
NTJlZmQ2YTE4MzkwZDFhNzM1YWVmOGExLi5mNzQzMGNkYTQ0YjQ5NTg5NGU2Y2IxMzgzNzZmZjNm
NDA5YTI4ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRmxvYXRpbmdDb250ZXh0LmNwcApA
QCAtMjUsMyArMjUsMjQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZsb2F0
aW5nQ29udGV4dC5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZsb2F0
aW5nQ29udGV4dCk7CisKK0Zsb2F0aW5nQ29udGV4dDo6RmxvYXRpbmdDb250ZXh0KEZsb2F0aW5n
U3RhdGUmKQoreworfQorCit2b2lkIEZsb2F0aW5nQ29udGV4dDo6Y29tcHV0ZVBvc2l0aW9uKGNv
bnN0IEJveCYpCit7Cit9CisKK30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZGNhMDQ3NWVhNThhN2U4Y2YzMjg4NjU5Y2U1NTFi
MTY1NTNiMGM1My4uOTg0MGEzZmIyNDBlMTA0MzhkNTdiZmVmMDhmY2M1YTM2MGEzZTkxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC04NSw2ICs4
NSwxNCBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjptYXJnaW5SaWdodChjb25zdCBC
b3gmKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCit2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpw
bGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBDb250YWluZXImKSBjb25zdAorewor
fQorCit2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cygp
IGNvbnN0Cit7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuaAppbmRleCBiZGUzMWUyMTIyNjI5MTU2ODFjYTcwNDYwNTBhMDhiMGU0MDRl
NzYwLi5jNmMxNDYxNDNkZjViNzM4NWU3YTllNDQ3NDk1Y2YyMWVkZTY1MjZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgQm94OworY2xhc3Mg
Q29udGFpbmVyOwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgTGF5b3V0Q29udGV4dDsK
IApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgRm9ybWF0dGluZ0NvbnRleHQoY29uc3Qg
Qm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dENvbnRleHQmKTsKICAgICB2aXJ0dWFs
IH5Gb3JtYXR0aW5nQ29udGV4dCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dChGb3JtYXR0
aW5nU3RhdGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxheW91dChMYXlvdXRDb250ZXh0Jiwg
Rm9ybWF0dGluZ1N0YXRlJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PEZvcm1hdHRpbmdTdGF0ZT4gY3JlYXRlRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRl
PiYmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZWY8RmxvYXRpbmdTdGF0ZT4gY3JlYXRlT3JG
aW5kRmxvYXRpbmdTdGF0ZSgpIGNvbnN0ID0gMDsKIApAQCAtNjYsNiArNjcsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbShjb25zdCBCb3gmKSBjb25z
dDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luUmlnaHQoY29uc3QgQm94JikgY29uc3Q7
CiAKKyAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IENvbnRhaW5l
ciYpIGNvbnN0OworICAgIHZvaWQgbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMoKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICBXZWFrUHRyPEJveD4gbV9yb290OwogICAgIExheW91dENvbnRleHQm
IG1fbGF5b3V0Q29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApp
bmRleCA0YzliNmZkMDkyYTkyZWZkOGY4OGEyZTAwNWY2OGRmNDg2ZjJiYzdkLi45YzJkNGI3MWY5
MDE1OTU2Yzc5YjA0ZTg3Y2I5ODcwNzI3ZjI5NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xh
eW91dENvbnRleHQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgTGF5b3V0Q29udGV4dDo6dXBk
YXRlTGF5b3V0KCkKIHsKICAgICBhdXRvIGNvbnRleHQgPSBmb3JtYXR0aW5nQ29udGV4dCgqbV9y
b290KTsKICAgICBhdXRvJiBzdGF0ZSA9IGVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKCptX3Jv
b3QsICpjb250ZXh0KTsKLSAgICBjb250ZXh0LT5sYXlvdXQoc3RhdGUpOworICAgIGNvbnRleHQt
PmxheW91dCgqdGhpcywgc3RhdGUpOwogfQogCiBGb3JtYXR0aW5nU3RhdGUmIExheW91dENvbnRl
eHQ6OmZvcm1hdHRpbmdTdGF0ZUZvckJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKQEAg
LTYwLDcgKzYwLDcgQEAgRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRDb250ZXh0Ojpmb3JtYXR0aW5n
U3RhdGVGb3JCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnMKICAgICByZXR1cm4gKm1fZm9y
bWF0dGluZ1N0YXRlcy5nZXQoJnJvb3QpOwogfQogCi1Gb3JtYXR0aW5nU3RhdGUmIExheW91dENv
bnRleHQ6OmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKEJveCYgZm9ybWF0dGluZ0NvbnRleHRS
b290LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgY29udGV4dCkKK0Zvcm1hdHRpbmdTdGF0ZSYg
TGF5b3V0Q29udGV4dDo6ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoY29uc3QgQm94JiBmb3Jt
YXR0aW5nQ29udGV4dFJvb3QsIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBjb250ZXh0KQogewog
ICAgIHJldHVybiAqbV9mb3JtYXR0aW5nU3RhdGVzLmVuc3VyZSgmZm9ybWF0dGluZ0NvbnRleHRS
b290LCBbdGhpcywgJmNvbnRleHRdIHsKICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRm9y
bWF0dGluZ1N0YXRlKGNvbnRleHQuY3JlYXRlT3JGaW5kRmxvYXRpbmdTdGF0ZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCmluZGV4IDY1ODllNTE5NDBiMzU0ODQ2NjFlYzJl
N2FiNTZiZmIzMDM1NDExYWEuLjU3NjhiZDJmZTQ2NWNhMjMzN2FiY2Q1ZjAyOWJjZmZjMWMyOGY0
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaApAQCAtNjEsMTEgKzYxLDEw
IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRzTGF5b3V0KGNvbnN0IEJveCYpIGNvbnN0OwogCiAg
ICAgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JCb3goY29uc3QgQm94JikgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gICAgRm9ybWF0dGluZ1N0YXRlJiBlc3RhYmxpc2hlZEZvcm1hdHRp
bmdTdGF0ZShCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgY29uc3QgRm9ybWF0dGluZ0NvbnRl
eHQmKTsKKyAgICBGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNv
bnN0IEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYp
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4dD4gZm9ybWF0dGluZ0NvbnRl
eHQoY29uc3QgQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCitwcml2YXRlOgogICAgIFdl
YWtQdHI8Qm94PiBtX3Jvb3Q7CiAgICAgSGFzaE1hcDxjb25zdCBCb3gqLCBzdGQ6OnVuaXF1ZV9w
dHI8Rm9ybWF0dGluZ1N0YXRlPj4gbV9mb3JtYXR0aW5nU3RhdGVzOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGU4MDU0NWI5ZjAzNmIyOTBhYTY3NTMxZmIxNWQzZGU0
NmI1Njk3Y2UuLmI1N2YxZTdkZjI0N2U1NzliMTdiOTA3N2U1OWM0MDJiYjZhNWFkNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjksNyArMjksMTEgQEAKICNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGlu
Z1N0YXRlLmgiCisjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRmxvYXRp
bmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRh
aW5lci5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Miw4ICs0Niw2MyBAQCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJveCYg
Zm9ybWF0dGluZ0NvbnRleHRSb290LAogewogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmxheW91dChGb3JtYXR0aW5nU3RhdGUmKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpsYXlvdXQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0YXRlJiBm
b3JtYXR0aW5nU3RhdGUpIGNvbnN0CiB7CisgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0cworICAgIC8vIEluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LCBib3hlcyBhcmUg
bGFpZCBvdXQgb25lIGFmdGVyIHRoZSBvdGhlciwgdmVydGljYWxseSwgYmVnaW5uaW5nIGF0IHRo
ZSB0b3Agb2YgYSBjb250YWluaW5nIGJsb2NrLgorICAgIC8vIFRoZSB2ZXJ0aWNhbCBkaXN0YW5j
ZSBiZXR3ZWVuIHR3byBzaWJsaW5nIGJveGVzIGlzIGRldGVybWluZWQgYnkgdGhlICdtYXJnaW4n
IHByb3BlcnRpZXMuCisgICAgLy8gVmVydGljYWwgbWFyZ2lucyBiZXR3ZWVuIGFkamFjZW50IGJs
b2NrLWxldmVsIGJveGVzIGluIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGNvbGxhcHNlLgor
ICAgIGlmICghaXM8Q29udGFpbmVyPihyb290KCkpKQorICAgICAgICByZXR1cm47CisgICAgYXV0
byYgZm9ybWF0dGluZ1Jvb3QgPSBkb3duY2FzdDxDb250YWluZXI+KHJvb3QoKSk7CisgICAgVmVj
dG9yPGNvbnN0IEJveCo+IGxheW91dFF1ZXVlOworICAgIEZsb2F0aW5nQ29udGV4dCBmbG9hdGlu
Z0NvbnRleHQoZm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKSk7CisgICAgLy8gVGhpcyBp
cyBhIHBvc3Qtb3JkZXIgdHJlZSB0cmF2ZXJzYWwgbGF5b3V0LgorICAgIC8vIFRoZSByb290IGNv
bnRhaW5lciBsYXlvdXQgaXMgZG9uZSBpbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGl0IGxpdmVz
IGluLCBub3QgdGhhdCBvbmUgaXQgY3JlYXRlcywgc28gbGV0J3Mgc3RhcnQgd2l0aCB0aGUgZmly
c3QgY2hpbGQuCisgICAgaWYgKGZvcm1hdHRpbmdSb290Lmhhc0luRmxvd09yRmxvYXRpbmdDaGls
ZCgpKQorICAgICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQoZm9ybWF0dGluZ1Jvb3QuZmlyc3RJbkZs
b3dPckZsb2F0aW5nQ2hpbGQoKSk7CisgICAgLy8gMS4gR28gYWxsIHRoZSB3YXkgZG93biB0byB0
aGUgbGVhZiBub2RlCisgICAgLy8gMi4gQ29tcHV0ZSBzdGF0aWMgcG9zaXRpb24gYW5kIHdpZHRo
IGFzIHdlIHRyYXZlcnNlIGRvd24KKyAgICAvLyAzLiBBcyB3ZSBjbGltYiBiYWNrIG9uIHRoZSB0
cmVlLCBjb21wdXRlIGhlaWdodCBhbmQgZmluaWFsaXplIHBvc2l0aW9uCisgICAgLy8gKEFueSBz
dWJ0cmVlcyB3aXRoIG5ldyBmb3JtYXR0aW5nIGNvbnRleHRzIG5lZWQgdG8gbGF5b3V0IHN5bmNo
cm9ub3VzbHkpCisgICAgd2hpbGUgKCFsYXlvdXRRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
Ly8gVHJhdmVyc2UgZG93biBvbiB0aGUgZGVzY2VuZGFudHMgYW5kIGNvbXB1dGUgd2lkdGgvc3Rh
dGljIHBvc2l0aW9uIHVudGlsIHdlIGZpbmQgYSBsZWFmIG5vZGUuCisgICAgICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSAqbGF5b3V0UXVldWUubGFzdCgp
OworICAgICAgICAgICAgY29tcHV0ZVdpZHRoKGxheW91dEJveCk7CisgICAgICAgICAgICBjb21w
dXRlU3RhdGljUG9zaXRpb24obGF5b3V0Qm94KTsKKyAgICAgICAgICAgIGlmIChsYXlvdXRCb3gu
ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byBm
b3JtYXR0aW5nQ29udGV4dCA9IGxheW91dENvbnRleHQuZm9ybWF0dGluZ0NvbnRleHQobGF5b3V0
Qm94KTsKKyAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0KGxheW91dENv
bnRleHQsIGxheW91dENvbnRleHQuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Qm94
LCAqZm9ybWF0dGluZ0NvbnRleHQpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmICghaXM8Q29udGFpbmVyPihsYXlvdXRCb3gpIHx8ICFkb3du
Y2FzdDxDb250YWluZXI+KGxheW91dEJveCkuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQoZG93
bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpLmZpcnN0SW5GbG93T3JGbG9hdGluZ0NoaWxkKCkp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2xpbWIgYmFjayBvbiB0aGUgYW5jZXN0b3JzIGFu
ZCBjb21wdXRlIGhlaWdodC9maW5hbCBwb3NpdGlvbi4KKyAgICAgICAgd2hpbGUgKCFsYXlvdXRR
dWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIEFsbCBpbmZsb3cgZGVzY2VuZGFudHMg
KGlmIHRoZXJlIGFyZSBhbnkpIGFyZSBsYWlkIG91dCBieSBub3cuIExldCdzIGNvbXB1dGUgdGhl
IGJveCdzIGhlaWdodC4KKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpsYXlvdXRRdWV1
ZS50YWtlTGFzdCgpOworICAgICAgICAgICAgY29tcHV0ZUhlaWdodChsYXlvdXRCb3gpOworICAg
ICAgICAgICAgLy8gQWRqdXN0IHBvc2l0aW9uIG5vdyB0aGF0IHdlIGhhdmUgYWxsIHRoZSBwcmV2
aW91cyBmbG9hdHMgcGxhY2VkIGluIHRoaXMgY29udGV4dCAtaWYgbmVlZGVkLgorICAgICAgICAg
ICAgZmxvYXRpbmdDb250ZXh0LmNvbXB1dGVQb3NpdGlvbihsYXlvdXRCb3gpOworICAgICAgICAg
ICAgaWYgKCFpczxDb250YWluZXI+KGxheW91dEJveCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICBhdXRvJiBjb250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXI+KGxh
eW91dEJveCk7CisgICAgICAgICAgICAvLyBNb3ZlIGluLWZsb3cgcG9zaXRpb25lZCBjaGlsZHJl
biB0byB0aGVpciBmaW5hbCBwb3NpdGlvbi4KKyAgICAgICAgICAgIHBsYWNlSW5GbG93UG9zaXRp
b25lZENoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgICAgICAgICBpZiAoYXV0byogbmV4dFNpYmxp
bmcgPSBjb250YWluZXIubmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICBsYXlvdXRRdWV1ZS5hcHBlbmQobmV4dFNpYmxpbmcpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8vIFBsYWNlIHRo
ZSBpbmZsb3cgcG9zaXRpb25lZCBjaGlsZHJlbi4KKyAgICBwbGFjZUluRmxvd1Bvc2l0aW9uZWRD
aGlsZHJlbihmb3JtYXR0aW5nUm9vdCk7CisgICAgLy8gQW5kIHRha2UgY2FyZSBvZiBvdXQtb2Yt
ZmxvdyBib3hlcyBhcyB0aGUgZmluYWwgc3RlcC4KKyAgICBsYXlvdXRPdXRPZkZsb3dEZXNjZW5k
YW50cygpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPiBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYg
ZmxvYXRpbmdTdGF0ZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggMDI2
Mzk4YmEyNzVkM2I2MTNiMjQ3M2QzMmY5YmRjMGI3YzBjZWY1NS4uYWFkZTVhNjU1NmEzNmY0ZmZj
NTZmZjFiNTJmYTY2MDc3N2Y3NGFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCA6IHB1YmxpYyBGb3Jt
YXR0aW5nQ29udGV4dCB7CiBwdWJsaWM6CiAgICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4dChjb25z
dCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0Q29udGV4dCYpOwogCi0gICAgdm9p
ZCBsYXlvdXQoRm9ybWF0dGluZ1N0YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYXlvdXQoTGF5
b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxGb3JtYXR0aW5nU3RhdGU+IGNyZWF0ZUZvcm1hdHRpbmdTdGF0ZShSZWY8Rmxv
YXRpbmdTdGF0ZT4mJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmPEZsb2F0aW5nU3RhdGU+IGNy
ZWF0ZU9yRmluZEZsb2F0aW5nU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDIyYTQ4MDdiNmRmZWI5ZDVjOWI3N2ViMGVkMDRl
NzliZjUwYTEyZGIuLjIyMzUyNjZiNzA3YTIwYjE2NjQwNTIxOWQ5Y2I2NGMzZWFlMjU2YWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJveCYg
Zm9ybWF0dGluZ0NvbnRleHRSb28KIHsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDo6bGF5b3V0KEZvcm1hdHRpbmdTdGF0ZSYpCit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0
OjpsYXlvdXQoTGF5b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0ZSYpIGNvbnN0CiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDM2NTgwZTFkYjQ0MDNlMzY0NWY3
NzFjM2IxMTkwNTg1ODkwMzA5ZmIuLmYyNTg3ZjQwZmM2ZGU2MGRhM2E2ZjdhYWMwNWY4M2Y0NmE3
YzU0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNDMsNyArNDMsNyBA
QCBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4
dCB7CiBwdWJsaWM6CiAgICAgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQm94JiBmb3Jt
YXR0aW5nQ29udGV4dFJvb3QsIExheW91dENvbnRleHQmKTsKIAotICAgIHZvaWQgbGF5b3V0KEZv
cm1hdHRpbmdTdGF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgbGF5b3V0KExheW91dENvbnRleHQm
LCBGb3JtYXR0aW5nU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Rm9ybWF0dGluZ1N0YXRlPiBjcmVhdGVGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+
JiYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGVPckZpbmRG
bG9hdGluZ1N0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>