<?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>204995</bug_id>
          
          <creation_ts>2019-12-08 06:37:26 -0800</creation_ts>
          <short_desc>[LFC][IFC] Switch over to float based types in inline layout</short_desc>
          <delta_ts>2019-12-08 07:10:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>koivisto</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>1596678</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-08 06:37:26 -0800</bug_when>
    <thetext>see bug 204986</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596679</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-08 06:42:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/57733349&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596680</commentid>
    <comment_count>2</comment_count>
      <attachid>385118</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-08 06:45:46 -0800</bug_when>
    <thetext>Created attachment 385118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596681</commentid>
    <comment_count>3</comment_count>
      <attachid>385118</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-08 06:48:44 -0800</bug_when>
    <thetext>Comment on attachment 385118
Patch

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

&gt; Source/WebCore/layout/LayoutUnits.h:37
&gt; +#define USE_FLOAT_AS_BASE_TYPE 1

USE_FLOAT_AS_INLINE_LAYOUT_UNIT or similar?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596682</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-08 06:49:39 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 385118 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385118&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/LayoutUnits.h:37
&gt; &gt; +#define USE_FLOAT_AS_BASE_TYPE 1
&gt; 
&gt; USE_FLOAT_AS_INLINE_LAYOUT_UNIT or similar?
so much better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596683</commentid>
    <comment_count>5</comment_count>
      <attachid>385119</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-08 06:59:45 -0800</bug_when>
    <thetext>Created attachment 385119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596684</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-08 07:10:13 -0800</bug_when>
    <thetext>Committed r253269: &lt;https://trac.webkit.org/changeset/253269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385118</attachid>
            <date>2019-12-08 06:45:46 -0800</date>
            <delta_ts>2019-12-08 06:59:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204995-20191208064545.patch</filename>
            <type>text/plain</type>
            <size>16952</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhhY2Q3ZWQ5YmE3YzBj
OGQ3NDg4ODM0Zjk2MzQyZTI5M2FlMjllNi4uNTJlYWE5NzBjMzllYzQ5NzdkOTY2Y2Y0M2Q2ZTZh
YmIxZWJhZjJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBTd2l0Y2gg
b3ZlciB0byBmbG9hdCBiYXNlZCB0eXBlcyBpbiBpbmxpbmUgbGF5b3V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5OTUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU3NzMzMzQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIER1ZSB0byB0aGUgcmVsYXRpdmVseSBzaWduaWZpY2FudCBkaWZmZXJlbmNl
IGJldHdlZW4gZmxvYXQgYW5kIExheW91dFVuaXQncyBwcmVjaXNpb24sIElGQworICAgICAgICBp
cyB1bmFibGUgdG8gcHJvZHVjZSBtYXRjaGluZyBsYXlvdXQgdW5kZXIgdGhlIHNhbWUgY29uc3Ry
YWludHMuCisgICAgICAgIExldCdzIHN3aXRjaCBvdmVyIHRvIGZsb2F0IGJhc2VkIHR5cGVzIHVu
dGlsIGFmdGVyIGVpdGhlciBDTEwgc3dpdGNoZXMgb3ZlciB0byBMYXlvdXRVbml0CisgICAgICAg
IG9yIExheW91dFVuaXQgZ2FpbnMgaGlnaCBlbm91Z2ggcHJlY2lzaW9uLgorCisgICAgICAgIFNl
ZSB3ZWJraXQub3JnL2IvMjA0OTg2IGZvciBtb3JlIGluZm8uCisKKyAgICAgICAgKiBsYXlvdXQv
TGF5b3V0VW5pdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bWF4SW5saW5lTGF5b3V0
VW5pdCk6CisgICAgICAgICogbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OmFyZUVzc2VudGlhbGx5RXF1YWwpOgorICAgICAgICAqIGxheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpsaW5lSGVpZ2h0Q29uc3RyYWludHMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OndvcmRCcmVha2lu
Z0JlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVy
OjphbGlnbkNvbnRlbnRIb3Jpem9udGFsbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmljcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpUcmltbWFibGVDb250ZW50OjphcHBl
bmQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6aW5saW5lSXRlbVdpZHRoKToKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VGV4dFV0aWw6OmZpeGVkUGl0Y2hXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OlRleHRVdGlsOjpzcGxpdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6TGluZUxheW91dDo6Zmlyc3RMaW5lQmFzZWxpbmUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6Omxhc3RMaW5lQmFzZWxpbmUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6
OnBhaW50KToKKwogMjAxOS0xMi0wNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0lGQ10gQ29udmVydCBJbmxpbmVMYXlvdXRVbml0L1BvaW50L1JlY3Qg
dG8gTGF5b3V0VW5pdC9Qb2ludC9SZWN0IHdoZW4gY3Jvc3NpbmcgaW5saW5lL2Jsb2NrIGJvdW5k
YXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oCmluZGV4IDg4OWM2YWQxYzU4NjgwYzli
NjExYTk4YjgxMjRlMjUwMDc3YWJhZjMuLjE4MmNhMDI2MDBhNmE3YWZkNWUwMGVjYTcxZjhkMDcz
NGFlYmZlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oCkBAIC0zNCwxNCArMzQs
MjMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1uYW1lc3BhY2UgRGlzcGxheSB7Ci1jbGFz
cyBCb3g7Ci19Ci0KKyNkZWZpbmUgVVNFX0ZMT0FUX0FTX0JBU0VfVFlQRSAxCisKKyNpZiBVU0Vf
RkxPQVRfQVNfQkFTRV9UWVBFCit1c2luZyBJbmxpbmVMYXlvdXRVbml0ID0gZmxvYXQ7Cit1c2lu
ZyBJbmxpbmVMYXlvdXRQb2ludCA9IEZsb2F0UG9pbnQ7Cit1c2luZyBJbmxpbmVMYXlvdXRTaXpl
ID0gRmxvYXRTaXplOwordXNpbmcgSW5saW5lTGF5b3V0UmVjdCA9IEZsb2F0UmVjdDsKKyNlbHNl
CiB1c2luZyBJbmxpbmVMYXlvdXRVbml0ID0gTGF5b3V0VW5pdDsKIHVzaW5nIElubGluZUxheW91
dFBvaW50ID0gTGF5b3V0UG9pbnQ7CiB1c2luZyBJbmxpbmVMYXlvdXRTaXplID0gTGF5b3V0U2l6
ZTsKIHVzaW5nIElubGluZUxheW91dFJlY3QgPSBMYXlvdXRSZWN0OworI2VuZGlmCisKK25hbWVz
cGFjZSBEaXNwbGF5IHsKK2NsYXNzIEJveDsKK30KIAogbmFtZXNwYWNlIExheW91dCB7CiAKQEAg
LTIxNCw2ICsyMjMsMTUgQEAgaW5saW5lIExheW91dFJlY3QgdG9MYXlvdXRSZWN0KGNvbnN0IElu
bGluZUxheW91dFJlY3QmIHJlY3QpCiAgICAgcmV0dXJuIExheW91dFJlY3QgeyByZWN0IH07CiB9
CiAKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0IG1heElubGluZUxheW91dFVuaXQoKQoreworI2lm
IFVTRV9GTE9BVF9BU19CQVNFX1RZUEUKKyAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46Om1heCgpOworI2Vsc2UKKyAgICByZXR1cm4gTGF5b3V0VW5pdDo6bWF4KCk7CisjZW5k
aWYKK30KKwogfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
VmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3Bw
CmluZGV4IDU4YzdlYmY0NWUwNzYzNGZhN2U5NmFmMGVhNjIzNDZlNjQ0OTY5OTguLjdlMTkxNDg2
ZGYyMmQzMzFlN2RjZDNmOTQ0YjQ0ZjNmM2NkMDZhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9W
ZXJpZmljYXRpb24uY3BwCkBAIC01NCw5ICs1NCw5IEBAIHN0YXRpYyBib29sIGFyZUVzc2VudGlh
bGx5RXF1YWwoTGF5b3V0VW5pdCBhLCBMYXlvdXRVbml0IGIpCiAgICAgcmV0dXJuIGFicyhhLnJh
d1ZhbHVlKCkgLSBiLnJhd1ZhbHVlKCkpIDw9IGVwc2lsb247CiB9CiAKLXN0YXRpYyBib29sIGFy
ZUVzc2VudGlhbGx5RXF1YWwoZmxvYXQgYSwgTGF5b3V0VW5pdCBiKQorc3RhdGljIGJvb2wgYXJl
RXNzZW50aWFsbHlFcXVhbChmbG9hdCBhLCBJbmxpbmVMYXlvdXRVbml0IGIpCiB7Ci0gICAgcmV0
dXJuIGFyZUVzc2VudGlhbGx5RXF1YWwoTGF5b3V0VW5pdCB7IGEgfSwgYik7CisgICAgcmV0dXJu
IGFyZUVzc2VudGlhbGx5RXF1YWwoTGF5b3V0VW5pdCB7IGEgfSwgTGF5b3V0VW5pdCB7IGIgfSk7
CiB9CiAKIHN0YXRpYyBib29sIGFyZUVzc2VudGlhbGx5RXF1YWwoTGF5b3V0UmVjdCBhLCBMYXlv
dXRSZWN0IGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggY2QzODRh
MzFjOThmMDU3ZTFjYjQzZjE2M2Q4NjBlNTdlYWYwMmZiMC4uMjkzNjZmZTBiZmU1NWJjYmUzZTky
Yjk0NjE1ODU4OWI1YzhiYThjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cApAQCAtMjIzLDcgKzIyMyw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENv
bnN0cmFpbnRzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEluCiAgICAgICAgIHJl
dHVybiBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9yQ29uc3RyYWludCh1c2VkSG9yaXpvbnRhbFZh
bHVlcyk7CiAgICAgfTsKIAotICAgIGF1dG8gY29uc3RyYWludHMgPSBnZW9tZXRyeSgpLmNvbnN0
cmFpbkJ5TWluTWF4V2lkdGgocm9vdCgpLCB7IHRvTGF5b3V0VW5pdChtYXhpbXVtTGluZVdpZHRo
KDApKSwgdG9MYXlvdXRVbml0KG1heGltdW1MaW5lV2lkdGgoSW5saW5lTGF5b3V0VW5pdDo6bWF4
KCkpKSB9KTsKKyAgICBhdXRvIGNvbnN0cmFpbnRzID0gZ2VvbWV0cnkoKS5jb25zdHJhaW5CeU1p
bk1heFdpZHRoKHJvb3QoKSwgeyB0b0xheW91dFVuaXQobWF4aW11bUxpbmVXaWR0aCgwKSksIHRv
TGF5b3V0VW5pdChtYXhpbXVtTGluZVdpZHRoKG1heElubGluZUxheW91dFVuaXQoKSkpIH0pOwog
ICAgIGZvcm1hdHRpbmdTdGF0ZSgpLnNldEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3Ry
YWludHMpOwogICAgIHJldHVybiBjb25zdHJhaW50czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVp
cmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRleCA2MGY1ZDUxZWQ5NWE2OTViYjYzNDRhNWQ5
Mjk2MzU3YzViZWE1ZTA2Li4yZWVkODU4ZmFmYWI0YzJkNmI2MjhiMzlhZjM4OWNiZGJlOGFmYzY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC03
OCw3ICs3OCw3IEBAIExpbmVCdWlsZGVyOjpDb25zdHJhaW50czo6SGVpZ2h0QW5kQmFzZWxpbmUg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluCiB7CiAgICAgLy8gY29tcHV0ZWRM
aW5lSGVpZ2h0IHRha2VzIGZvbnQtc2l6ZSBpbnRvIGFjY291bnQgd2hlbiBsaW5lLWhlaWdodCBp
cyBub3Qgc2V0LgogICAgIC8vIFN0cnV0IGlzIHRoZSBpbWFnaW5hcnkgYm94IHRoYXQgd2UgcHV0
IG9uIGV2ZXJ5IGxpbmUuIEl0IHNldHMgdGhlIGluaXRpYWwgdmVydGljYWwgY29uc3RyYWludHMg
Zm9yIGVhY2ggbmV3IGxpbmUuCi0gICAgYXV0byBzdHJ1dEhlaWdodCA9IGZvcm1hdHRpbmdSb290
LnN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CisgICAgSW5saW5lTGF5b3V0VW5pdCBzdHJ1
dEhlaWdodCA9IGZvcm1hdHRpbmdSb290LnN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAg
ICAgYXV0byBzdHJ1dEJhc2VsaW5lT2Zmc2V0ID0gTGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0
cmljcyhmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHN0cnV0SGVpZ2h0KS5h
c2NlbnQoKTsKICAgICBpZiAobGF5b3V0U3RhdGUoKS5pbk5vUXVpcmtzTW9kZSgpKQogICAgICAg
ICByZXR1cm4geyBzdHJ1dEhlaWdodCwgc3RydXRCYXNlbGluZU9mZnNldCwgeyB9IH07CkBAIC04
OSw3ICs4OSw3IEBAIExpbmVCdWlsZGVyOjpDb25zdHJhaW50czo6SGVpZ2h0QW5kQmFzZWxpbmUg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluCiAgICAgICAgIHJldHVybiB7IGlu
aXRpYWxCYXNlbGluZU9mZnNldCwgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0LCBEaXNwbGF5OjpMaW5l
Qm94OjpCYXNlbGluZSB7IHN0cnV0QmFzZWxpbmVPZmZzZXQsIHN0cnV0SGVpZ2h0IC0gc3RydXRC
YXNlbGluZU9mZnNldCB9IH07CiAgICAgfQogICAgIC8vIEZJWE1FOiBUaGUgb25seSByZWFzb24g
d2h5IHdlIHVzZSBpbnRWYWx1ZSgpIGhlcmUgaXMgdG8gbWF0Y2ggY3VycmVudCBpbmxpbmUgdHJl
ZSAoaW50ZWdyYWwpYmVoYXZpb3IuCi0gICAgYXV0byBpbml0aWFsTGluZUhlaWdodCA9IElubGlu
ZUxheW91dFVuaXQgeyBsaW5lSGVpZ2h0LmludFZhbHVlKCkgfTsKKyAgICBJbmxpbmVMYXlvdXRV
bml0IGluaXRpYWxMaW5lSGVpZ2h0ID0gbGluZUhlaWdodC5pbnRWYWx1ZSgpOwogICAgIGF1dG8g
aW5pdGlhbEJhc2VsaW5lT2Zmc2V0ID0gTGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmljcyhm
b3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIGluaXRpYWxMaW5lSGVpZ2h0KS5h
c2NlbnQoKTsKICAgICByZXR1cm4geyBpbml0aWFsTGluZUhlaWdodCwgaW5pdGlhbEJhc2VsaW5l
T2Zmc2V0LCBEaXNwbGF5OjpMaW5lQm94OjpCYXNlbGluZSB7IHN0cnV0QmFzZWxpbmVPZmZzZXQs
IHN0cnV0SGVpZ2h0IC0gc3RydXRCYXNlbGluZU9mZnNldCB9IH07CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJl
YWtlci5jcHAKaW5kZXggM2M5MDMxNjUyNjA5NGEzMzVmZGQwZTQxMWM3MmY5NWE2MmE5ZWI3NS4u
NjgzZDBhM2Q2ZmU2YTY3NjkxMTBmNGQyOTFiOWQxMzQwYTUxZmQ5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
cmVha2VyLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIE9wdGlvbmFsPExpbmVCcmVha2VyOjpCcmVh
a2luZ0NvbnRleHQ6OlBhcnRpYWxUcmFpbGluZ0NvbnRlbnQ+IExpbmVCcmVha2VyOjp3b3JkCiAg
ICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBhdmFpbGFibGUgd2lkdGggY2FuIHZlcnkg
d2VsbCBiZSBuZWdhdGl2ZSBlLmcuIHdoZW4gc29tZSBwYXJ0IG9mIHRoZSBjb250aW51b3VzIHRl
eHQgY29udGVudCBjYW4gbm90IGJlIGJyb2tlbiBpbnRvIHBhcnRzIC0+CiAgICAgICAgICAgICAv
LyA8c3BhbiBzdHlsZT0id29yZC1icmVhazoga2VlcC1hbGwiPnRleHRjb250ZW50d2l0aG5vYnJl
YWs8L3NwYW4+PHNwYW4+dGV4dGNvbnRlbnR3aXRoeWVzYnJlYWs8L3NwYW4+CiAgICAgICAgICAg
ICAvLyBXaGVuIHRoZSBmaXJzdCBzcGFuIGNvbXB1dGVzIGxvbmdlciB0aGFuIHRoZSBhdmFpbGFi
bGUgc3BhY2UsIGJ5IHRoZSB0aW1lIHdlIGdldCB0byB0aGUgc2Vjb25kIHNwYW4sIHRoZSBhZGp1
c3RlZCBhdmFpbGFibGUgc3BhY2UgYmVjb21lcyBuZWdhdGl2ZS4KLSAgICAgICAgICAgIGF1dG8g
YWRqdXN0ZWRBdmFpbGFibGVXaWR0aCA9IHN0ZDo6bWF4KDBfbHUsIGF2YWlsYWJsZVdpZHRoIC0g
YWNjdW11bGF0ZWRSdW5XaWR0aCk7CisgICAgICAgICAgICBhdXRvIGFkanVzdGVkQXZhaWxhYmxl
V2lkdGggPSBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCBhdmFpbGFibGVXaWR0aCAtIGFj
Y3VtdWxhdGVkUnVuV2lkdGgpOwogICAgICAgICAgICAgaWYgKGF1dG8gbGVmdFNpZGUgPSB0cnlC
cmVha2luZ1RleHRSdW4ocnVuLCBhZGp1c3RlZEF2YWlsYWJsZVdpZHRoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gQnJlYWtpbmdDb250ZXh0OjpQYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgaW5k
ZXgsIGxlZnRTaWRlLT5sZW5ndGgsIGxlZnRTaWRlLT5sb2dpY2FsV2lkdGgsIGxlZnRTaWRlLT5u
ZWVkc0h5cGhlbiB9OwogICAgICAgICAgICAgLy8gSWYgdGhpcyBydW4gaXMgbm90IGJyZWFrYWJs
ZSwgd2UgbmVlZCB0byBjaGVjayBpZiBhbnkgcHJldmlvdXMgcnVuIGlzIGJyZWFrYWJsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDg2ZjRlZmY3ODg3MDZmYTdjYjVkODIzYjdkZWU0NTJm
NDY1NjBlNmMuLmI3M2NiNGM4NmEwYmUzZmI4Mjc0YjM0ZWYxMzk0YjdlYjZmOGEzMDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTM0MywxMCArMzQzLDEwIEBAIHZvaWQgTGluZUJ1aWxk
ZXI6OmFsaWduQ29udGVudEhvcml6b250YWxseShSdW5MaXN0JiBydW5MaXN0LCBJc0xhc3RMaW5l
V2l0aElubGluCiAgICAgICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6UmlnaHQ6CiAgICAgICAgIGNh
c2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0UmlnaHQ6CiAgICAgICAgIGNhc2UgVGV4dEFsaWduTW9k
ZTo6RW5kOgotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KGF2YWlsYWJsZVdpZHRoKCksIDBf
bHUpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KGF2YWls
YWJsZVdpZHRoKCksIDApOwogICAgICAgICBjYXNlIFRleHRBbGlnbk1vZGU6OkNlbnRlcjoKICAg
ICAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJLaXRDZW50ZXI6Ci0gICAgICAgICAgICByZXR1
cm4gc3RkOjptYXgoYXZhaWxhYmxlV2lkdGgoKSAvIDIsIDBfbHUpOworICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KGF2YWlsYWJsZVdpZHRoKCkgLyAyLCAwKTsK
ICAgICAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpKdXN0aWZ5OgogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTU5OCw3ICs1OTgsNyBAQCB2
b2lkIExpbmVCdWlsZGVyOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgUnVuJiBy
dW4pCiAgICAgICAgICAgICAgICAgLy8gTm9uIGlubGluZS1ibG9jayBib3hlcyBzaXQgb24gdGhl
IGJhc2VsaW5lIChpbmNsdWRpbmcgdGhlaXIgYm90dG9tIG1hcmdpbikuCiAgICAgICAgICAgICAg
ICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOwogICAgICAg
ICAgICAgICAgIC8vIElnbm9yZSBuZWdhdGl2ZSBkZXNjZW50ICh5ZXMsIG5lZ2F0aXZlIGRlc2Nl
bnQgaXMgYSB0aGluZykuCi0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWln
aHRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0ICsgc3RkOjptYXgoMF9sdSwgYmFzZWxpbmUuZGVz
Y2VudCgpKSk7CisgICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdy
ZWF0ZXIobWFyZ2luQm94SGVpZ2h0ICsgc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oMCwgYmFz
ZWxpbmUuZGVzY2VudCgpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtNjgyLDEwICs2ODIsMTAgQEAgRGlzcGxheTo6TGluZUJveDo6QmFzZWxpbmUg
TGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmljcyhjb25zdCBGb250TWV0cmljcyYgZm8KICAg
ICBhdXRvIGFzY2VudCA9IGZvbnRNZXRyaWNzLmFzY2VudCgpOwogICAgIGF1dG8gZGVzY2VudCA9
IGZvbnRNZXRyaWNzLmRlc2NlbnQoKTsKICAgICAvLyAxMC44LjEgTGVhZGluZyBhbmQgaGFsZi1s
ZWFkaW5nCi0gICAgYXV0byBsZWFkaW5nID0gbGluZUxvZ2ljYWxIZWlnaHQgLSAoYXNjZW50ICsg
ZGVzY2VudCk7Ci0gICAgLy8gSW5saW5lIHRyZWUgaXMgYWxsIGludGVnZXIgYmFzZWQuCi0gICAg
YXV0byBhZGp1c3RlZEFzY2VudCA9IHN0ZDo6bWF4KChhc2NlbnQgKyBsZWFkaW5nIC8gMikuZmxv
b3IoKSwgMCk7Ci0gICAgYXV0byBhZGp1c3RlZERlc2NlbnQgPSBzdGQ6Om1heCgoZGVzY2VudCAr
IGxlYWRpbmcgLyAyKS5jZWlsKCksIDApOworICAgIGF1dG8gaGFsZkxlYWRpbmcgPSAobGluZUxv
Z2ljYWxIZWlnaHQgLSAoYXNjZW50ICsgZGVzY2VudCkpIC8gMjsKKyAgICAvLyBJbmxpbmUgdHJl
ZSBoZWlnaHQgaXMgYWxsIGludGVnZXIgYmFzZWQuCisgICAgYXV0byBhZGp1c3RlZEFzY2VudCA9
IHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KGZsb29yZihhc2NlbnQgKyBoYWxmTGVhZGluZyks
IDApOworICAgIGF1dG8gYWRqdXN0ZWREZXNjZW50ID0gc3RkOjptYXg8SW5saW5lTGF5b3V0VW5p
dD4oY2VpbGYoZGVzY2VudCArIGhhbGZMZWFkaW5nKSwgMCk7CiAgICAgcmV0dXJuIHsgYWRqdXN0
ZWRBc2NlbnQsIGFkanVzdGVkRGVzY2VudCB9OwogfQogCkBAIC03MTYsNyArNzE2LDcgQEAgdm9p
ZCBMaW5lQnVpbGRlcjo6VHJpbW1hYmxlQ29udGVudDo6YXBwZW5kKHNpemVfdCBydW5JbmRleCkK
ICAgICAgICAgdHJpbW1hYmxlV2lkdGggPSB0cmltbWFibGVSdW4udHJhaWxpbmdMZXR0ZXJTcGFj
aW5nKCk7CiAgICAgfQogICAgIC8vIHdvcmQtc3BhY2luZyBjb3VsZCB2ZXJ5IHdlbGwgYmUgbmVn
YXRpdmUsIGJ1dCBpdCBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIGxpbmUgZ2FpbnMgdGhhdCBtdWNo
IGV4dHJhIHNwYWNlIHdoZW4gdGhlIGNvbnRlbnQgaXMgdHJpbW1lZC4KLSAgICB0cmltbWFibGVX
aWR0aCA9IHN0ZDo6bWF4KDBfbHUsIHRyaW1tYWJsZVdpZHRoKTsKKyAgICB0cmltbWFibGVXaWR0
aCA9IHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KDAsIHRyaW1tYWJsZVdpZHRoKTsKIAogICAg
IEFTU0VSVCh0cmltbWFibGVXaWR0aCA+PSAwKTsKICAgICBtX3dpZHRoICs9IHRyaW1tYWJsZVdp
ZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
TGluZUxheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwCmluZGV4IDI2NDg5NzI0MDdiYmIzN2YzMTIyYjZm
YzA1ZWE4OWMzMDA2MThlMGQuLmFkNmYxYzdmZjRlNDg0ODA3ZTBjNDRmZTY0ZDIyMDA3NDJkMDQ3
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xp
bmVMYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNl
IExheW91dCB7CiBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCBpbmxpbmVJdGVtV2lkdGgoY29uc3Qg
Rm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBJbmxpbmVJdGVtJiBp
bmxpbmVJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCkKIHsKICAgICBp
ZiAoaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKQotICAgICAgICByZXR1cm4gMF9sdTsKKyAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBpZiAoaXM8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pKSB7
CiAgICAgICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+
KGlubGluZUl0ZW0pOwpAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCBp
bmxpbmVJdGVtV2lkdGgoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZQog
ICAgICAgICAgICAgYXV0byBlbmQgPSBpbmxpbmVUZXh0SXRlbS5pc0NvbGxhcHNpYmxlKCkgPyBp
bmxpbmVUZXh0SXRlbS5zdGFydCgpICsgMSA6IGlubGluZVRleHRJdGVtLmVuZCgpOwogICAgICAg
ICAgICAgY29udGVudFdpZHRoID0gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLmxheW91
dEJveCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBlbmQsIGNvbnRlbnRMb2dpY2FsTGVmdCk7
CiAgICAgICAgIH0KLSAgICAgICAgYXV0byB3b3JkU3BhY2luZyA9IGlubGluZVRleHRJdGVtLmlz
V2hpdGVzcGFjZSgpID8gSW5saW5lTGF5b3V0VW5pdChpbmxpbmVUZXh0SXRlbS5zdHlsZSgpLmZv
bnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKSkgOiAwX2x1OworICAgICAgICBhdXRvIHdvcmRTcGFj
aW5nID0gSW5saW5lTGF5b3V0VW5pdChpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSA/IGlu
bGluZVRleHRJdGVtLnN0eWxlKCkuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpIDogMCk7CiAg
ICAgICAgIHJldHVybiAqY29udGVudFdpZHRoICsgd29yZFNwYWNpbmc7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRV
dGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4
dFV0aWwuY3BwCmluZGV4IDQ1OGEyZjAyZjk3MzgwM2IyYjhjNzAxMjMwMGJmYjNkOTI3YjY0OTAu
LjFmMTNlNjg0ZTQ2ZjdkZWI0OWRkYzUwOGZkMzRkNmMxMjA0OTBjMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwu
Y3BwCkBAIC03MSw3ICs3MSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNv
bnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0CiAgICAgaWYgKG1l
YXN1cmVXaXRoRW5kU3BhY2UpCiAgICAgICAgIHdpZHRoIC09IChmb250LnNwYWNlV2lkdGgoKSAr
IGZvbnQud29yZFNwYWNpbmcoKSk7CiAKLSAgICByZXR1cm4gc3RkOjptYXgoMF9sdSwgSW5saW5l
TGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQod2lkdGgpKTsKKyAgICByZXR1cm4gc3RkOjptYXg8
SW5saW5lTGF5b3V0VW5pdD4oMCAsIElubGluZUxheW91dFVuaXQod2lkdGgpKTsKIH0KIAogSW5s
aW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6Zml4ZWRQaXRjaFdpZHRoKGNvbnN0IFN0cmluZ1ZpZXcm
IHRleHQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQg
dG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQpAQCAtOTAsNyArOTAsNyBA
QCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjpmaXhlZFBpdGNoV2lkdGgoY29uc3QgU3RyaW5n
VmlldyYgdGV4dCwgY29uc3QgUmVuZGVyUwogICAgICAgICAgICAgd2lkdGggKz0gZm9udC53b3Jk
U3BhY2luZygpOwogICAgIH0KIAotICAgIHJldHVybiBzdGQ6Om1heCgwX2x1LCBJbmxpbmVMYXlv
dXRVbml0Ojpmcm9tRmxvYXRSb3VuZCh3aWR0aCkpOworICAgIHJldHVybiBzdGQ6Om1heDxJbmxp
bmVMYXlvdXRVbml0PigwLCBJbmxpbmVMYXlvdXRVbml0KHdpZHRoKSk7CiB9CiAKIFRleHRVdGls
OjpTcGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0KGNvbnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25l
ZCBzdGFydFBvc2l0aW9uLCB1bnNpZ25lZCBsZW5ndGgsIElubGluZUxheW91dFVuaXQgdGV4dFdp
ZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsTGVmdCkKQEAgLTEwMCw3ICsxMDAsOCBAQCBUZXh0VXRpbDo6U3BsaXREYXRh
IFRleHRVdGlsOjpzcGxpdChjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnRQb3Np
dGlvbgogICAgIC8vIFBhdGhvbG9naWNhbCBjYXNlIG9mIChleHRyZW1lbHkpbG9uZyBzdHJpbmcg
YW5kIG5hcnJvdyBsaW5lcy4KICAgICAvLyBBZGp1c3QgdGhlIHJhbmdlIHNvIHRoYXQgd2UgY2Fu
IHBpY2sgYSByZWFzb25hYmxlIG1pZHBvaW50LgogICAgIElubGluZUxheW91dFVuaXQgYXZlcmFn
ZUNoYXJhY3RlcldpZHRoID0gdGV4dFdpZHRoIC8gbGVuZ3RoOwotICAgIGF1dG8gcmlnaHQgPSBz
dGQ6Om1pbjx1bnNpZ25lZD4obGVmdCArICgyICogYXZhaWxhYmxlV2lkdGggLyBhdmVyYWdlQ2hh
cmFjdGVyV2lkdGgpLnRvVW5zaWduZWQoKSwgKHN0YXJ0UG9zaXRpb24gKyBsZW5ndGggLSAxKSk7
CisgICAgdW5zaWduZWQgb2Zmc2V0ID0gdG9MYXlvdXRVbml0KDIgKiBhdmFpbGFibGVXaWR0aCAv
IGF2ZXJhZ2VDaGFyYWN0ZXJXaWR0aCkudG9VbnNpZ25lZCgpOworICAgIGF1dG8gcmlnaHQgPSBz
dGQ6Om1pbjx1bnNpZ25lZD4obGVmdCArIG9mZnNldCwgKHN0YXJ0UG9zaXRpb24gKyBsZW5ndGgg
LSAxKSk7CiAgICAgLy8gUHJlc2VydmUgdGhlIGxlZnQgd2lkdGggZm9yIHRoZSBmaW5hbCBzcGxp
dCBwb3NpdGlvbiBzbyB0aGF0IHdlIGRvbid0IG5lZWQgdG8gcmVtZWFzdXJlIHRoZSBsZWZ0IHNp
ZGUgYWdhaW4uCiAgICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0U2lkZVdpZHRoID0gMDsKICAgICB3
aGlsZSAobGVmdCA8IHJpZ2h0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmlu
ZGV4IGFhN2RiNmNkMjgzZGY1NjNiMTI0MWYyNWU3OWQ2MzE0ZDE2ODZmZmMuLjBjNmM2YzYwMTEy
NTQwMTkzOTJhOWEzOGE5YmU0YzhkNjY3NGMxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgTGF5b3V0VW5pdCBMaW5lTGF5b3V0OjpmaXJz
dExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgfQogCiAgICAgYXV0byYgZmlyc3RMaW5lQm94ID0g
aW5saW5lQ29udGVudC0+bGluZUJveGVzLmZpcnN0KCk7Ci0gICAgcmV0dXJuIGZpcnN0TGluZUJv
eC5sb2dpY2FsVG9wKCkgKyBmaXJzdExpbmVCb3guYmFzZWxpbmVPZmZzZXQoKTsKKyAgICByZXR1
cm4gTGF5b3V0Ojp0b0xheW91dFVuaXQoZmlyc3RMaW5lQm94LmxvZ2ljYWxUb3AoKSArIGZpcnN0
TGluZUJveC5iYXNlbGluZU9mZnNldCgpKTsKIH0KIAogTGF5b3V0VW5pdCBMaW5lTGF5b3V0Ojps
YXN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTEyOSw3ICsxMjksNyBAQCBMYXlvdXRVbml0IExp
bmVMYXlvdXQ6Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIH0KIAogICAgIGF1dG8mIGxh
c3RMaW5lQm94ID0gaW5saW5lQ29udGVudC0+bGluZUJveGVzLmxhc3QoKTsKLSAgICByZXR1cm4g
bGFzdExpbmVCb3gubG9naWNhbFRvcCgpICsgbGFzdExpbmVCb3guYmFzZWxpbmVPZmZzZXQoKTsK
KyAgICByZXR1cm4gTGF5b3V0Ojp0b0xheW91dFVuaXQobGFzdExpbmVCb3gubG9naWNhbFRvcCgp
ICsgbGFzdExpbmVCb3guYmFzZWxpbmVPZmZzZXQoKSk7CiB9CiAKIGNvbnN0IERpc3BsYXk6Oklu
bGluZUNvbnRlbnQqIExpbmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50KCkgY29uc3QKQEAg
LTI0MSw3ICsyNDEsNyBAQCB2b2lkIExpbmVMYXlvdXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIGF1dG8gYmFzZWxp
bmVPZmZzZXQgPSBwYWludE9mZnNldC55KCkgKyBsaW5lQm94LmxvZ2ljYWxUb3AoKSArIGxpbmVC
b3guYmFzZWxpbmVPZmZzZXQoKTsKIAogICAgICAgICBhdXRvIGJlaGF2aW9yID0gdGV4dENvbnRl
eHQuZXhwYW5zaW9uKCkgPyB0ZXh0Q29udGV4dC5leHBhbnNpb24oKS0+YmVoYXZpb3IgOiBEZWZh
dWx0RXhwYW5zaW9uOwotICAgICAgICBhdXRvIGhvcml6b250YWxFeHBhbnNpb24gPSB0ZXh0Q29u
dGV4dC5leHBhbnNpb24oKSA/IHRleHRDb250ZXh0LmV4cGFuc2lvbigpLT5ob3Jpem9udGFsRXhw
YW5zaW9uIDogMF9sdTsKKyAgICAgICAgYXV0byBob3Jpem9udGFsRXhwYW5zaW9uID0gdGV4dENv
bnRleHQuZXhwYW5zaW9uKCkgPyBMYXlvdXQ6OnRvTGF5b3V0VW5pdCh0ZXh0Q29udGV4dC5leHBh
bnNpb24oKS0+aG9yaXpvbnRhbEV4cGFuc2lvbikgOiAwX2x1OwogICAgICAgICBhdXRvIGxvZ2lj
YWxMZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgcnVuLmxvZ2ljYWxMZWZ0KCk7CiAKICAgICAgICAg
U3RyaW5nIHRleHRXaXRoSHlwaGVuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385119</attachid>
            <date>2019-12-08 06:59:45 -0800</date>
            <delta_ts>2019-12-08 06:59:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204995-20191208065944.patch</filename>
            <type>text/plain</type>
            <size>16979</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhhY2Q3ZWQ5YmE3YzBj
OGQ3NDg4ODM0Zjk2MzQyZTI5M2FlMjllNi4uNTJlYWE5NzBjMzllYzQ5NzdkOTY2Y2Y0M2Q2ZTZh
YmIxZWJhZjJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBTd2l0Y2gg
b3ZlciB0byBmbG9hdCBiYXNlZCB0eXBlcyBpbiBpbmxpbmUgbGF5b3V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5OTUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU3NzMzMzQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIER1ZSB0byB0aGUgcmVsYXRpdmVseSBzaWduaWZpY2FudCBkaWZmZXJlbmNl
IGJldHdlZW4gZmxvYXQgYW5kIExheW91dFVuaXQncyBwcmVjaXNpb24sIElGQworICAgICAgICBp
cyB1bmFibGUgdG8gcHJvZHVjZSBtYXRjaGluZyBsYXlvdXQgdW5kZXIgdGhlIHNhbWUgY29uc3Ry
YWludHMuCisgICAgICAgIExldCdzIHN3aXRjaCBvdmVyIHRvIGZsb2F0IGJhc2VkIHR5cGVzIHVu
dGlsIGFmdGVyIGVpdGhlciBDTEwgc3dpdGNoZXMgb3ZlciB0byBMYXlvdXRVbml0CisgICAgICAg
IG9yIExheW91dFVuaXQgZ2FpbnMgaGlnaCBlbm91Z2ggcHJlY2lzaW9uLgorCisgICAgICAgIFNl
ZSB3ZWJraXQub3JnL2IvMjA0OTg2IGZvciBtb3JlIGluZm8uCisKKyAgICAgICAgKiBsYXlvdXQv
TGF5b3V0VW5pdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bWF4SW5saW5lTGF5b3V0
VW5pdCk6CisgICAgICAgICogbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OmFyZUVzc2VudGlhbGx5RXF1YWwpOgorICAgICAgICAqIGxheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpsaW5lSGVpZ2h0Q29uc3RyYWludHMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OndvcmRCcmVha2lu
Z0JlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVy
OjphbGlnbkNvbnRlbnRIb3Jpem9udGFsbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmljcyk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpUcmltbWFibGVDb250ZW50OjphcHBl
bmQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6aW5saW5lSXRlbVdpZHRoKToKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VGV4dFV0aWw6OmZpeGVkUGl0Y2hXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OlRleHRVdGlsOjpzcGxpdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6TGluZUxheW91dDo6Zmlyc3RMaW5lQmFzZWxpbmUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6Omxhc3RMaW5lQmFzZWxpbmUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6
OnBhaW50KToKKwogMjAxOS0xMi0wNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0lGQ10gQ29udmVydCBJbmxpbmVMYXlvdXRVbml0L1BvaW50L1JlY3Qg
dG8gTGF5b3V0VW5pdC9Qb2ludC9SZWN0IHdoZW4gY3Jvc3NpbmcgaW5saW5lL2Jsb2NrIGJvdW5k
YXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oCmluZGV4IDg4OWM2YWQxYzU4NjgwYzli
NjExYTk4YjgxMjRlMjUwMDc3YWJhZjMuLjlhM2U1ZTJiMjdmOWNmMTM2NGUyMzY0ODUyNmFiMmJl
MGJlYjk2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oCkBAIC0zNCwxNCArMzQs
MjMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1uYW1lc3BhY2UgRGlzcGxheSB7Ci1jbGFz
cyBCb3g7Ci19Ci0KKyNkZWZpbmUgVVNFX0ZMT0FUX0FTX0lOTElORV9MQVlPVVRfVU5JVCAxCisK
KyNpZiBVU0VfRkxPQVRfQVNfSU5MSU5FX0xBWU9VVF9VTklUCit1c2luZyBJbmxpbmVMYXlvdXRV
bml0ID0gZmxvYXQ7Cit1c2luZyBJbmxpbmVMYXlvdXRQb2ludCA9IEZsb2F0UG9pbnQ7Cit1c2lu
ZyBJbmxpbmVMYXlvdXRTaXplID0gRmxvYXRTaXplOwordXNpbmcgSW5saW5lTGF5b3V0UmVjdCA9
IEZsb2F0UmVjdDsKKyNlbHNlCiB1c2luZyBJbmxpbmVMYXlvdXRVbml0ID0gTGF5b3V0VW5pdDsK
IHVzaW5nIElubGluZUxheW91dFBvaW50ID0gTGF5b3V0UG9pbnQ7CiB1c2luZyBJbmxpbmVMYXlv
dXRTaXplID0gTGF5b3V0U2l6ZTsKIHVzaW5nIElubGluZUxheW91dFJlY3QgPSBMYXlvdXRSZWN0
OworI2VuZGlmCisKK25hbWVzcGFjZSBEaXNwbGF5IHsKK2NsYXNzIEJveDsKK30KIAogbmFtZXNw
YWNlIExheW91dCB7CiAKQEAgLTIxNCw2ICsyMjMsMTUgQEAgaW5saW5lIExheW91dFJlY3QgdG9M
YXlvdXRSZWN0KGNvbnN0IElubGluZUxheW91dFJlY3QmIHJlY3QpCiAgICAgcmV0dXJuIExheW91
dFJlY3QgeyByZWN0IH07CiB9CiAKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0IG1heElubGluZUxh
eW91dFVuaXQoKQoreworI2lmIFVTRV9GTE9BVF9BU19JTkxJTkVfTEFZT1VUX1VOSVQKKyAgICBy
ZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpOworI2Vsc2UKKyAgICByZXR1
cm4gTGF5b3V0VW5pdDo6bWF4KCk7CisjZW5kaWYKK30KKwogfQogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCmluZGV4IDU4YzdlYmY0NWUwNzYzNGZhN2U5NmFm
MGVhNjIzNDZlNjQ0OTY5OTguLjdlMTkxNDg2ZGYyMmQzMzFlN2RjZDNmOTQ0YjQ0ZjNmM2NkMDZh
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCkBAIC01NCw5ICs1NCw5
IEBAIHN0YXRpYyBib29sIGFyZUVzc2VudGlhbGx5RXF1YWwoTGF5b3V0VW5pdCBhLCBMYXlvdXRV
bml0IGIpCiAgICAgcmV0dXJuIGFicyhhLnJhd1ZhbHVlKCkgLSBiLnJhd1ZhbHVlKCkpIDw9IGVw
c2lsb247CiB9CiAKLXN0YXRpYyBib29sIGFyZUVzc2VudGlhbGx5RXF1YWwoZmxvYXQgYSwgTGF5
b3V0VW5pdCBiKQorc3RhdGljIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbChmbG9hdCBhLCBJbmxp
bmVMYXlvdXRVbml0IGIpCiB7Ci0gICAgcmV0dXJuIGFyZUVzc2VudGlhbGx5RXF1YWwoTGF5b3V0
VW5pdCB7IGEgfSwgYik7CisgICAgcmV0dXJuIGFyZUVzc2VudGlhbGx5RXF1YWwoTGF5b3V0VW5p
dCB7IGEgfSwgTGF5b3V0VW5pdCB7IGIgfSk7CiB9CiAKIHN0YXRpYyBib29sIGFyZUVzc2VudGlh
bGx5RXF1YWwoTGF5b3V0UmVjdCBhLCBMYXlvdXRSZWN0IGIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggY2QzODRhMzFjOThmMDU3ZTFjYjQzZjE2M2Q4NjBlNTdlYWYw
MmZiMC4uMjkzNjZmZTBiZmU1NWJjYmUzZTkyYjk0NjE1ODU4OWI1YzhiYThjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjIzLDcgKzIyMyw3IEBAIEZvcm1hdHRp
bmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIElubGluZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlZEluCiAgICAgICAgIHJldHVybiBjb21wdXRlZEludHJpbnNpY1dpZHRoRm9y
Q29uc3RyYWludCh1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAgICAgfTsKIAotICAgIGF1dG8gY29u
c3RyYWludHMgPSBnZW9tZXRyeSgpLmNvbnN0cmFpbkJ5TWluTWF4V2lkdGgocm9vdCgpLCB7IHRv
TGF5b3V0VW5pdChtYXhpbXVtTGluZVdpZHRoKDApKSwgdG9MYXlvdXRVbml0KG1heGltdW1MaW5l
V2lkdGgoSW5saW5lTGF5b3V0VW5pdDo6bWF4KCkpKSB9KTsKKyAgICBhdXRvIGNvbnN0cmFpbnRz
ID0gZ2VvbWV0cnkoKS5jb25zdHJhaW5CeU1pbk1heFdpZHRoKHJvb3QoKSwgeyB0b0xheW91dFVu
aXQobWF4aW11bUxpbmVXaWR0aCgwKSksIHRvTGF5b3V0VW5pdChtYXhpbXVtTGluZVdpZHRoKG1h
eElubGluZUxheW91dFVuaXQoKSkpIH0pOwogICAgIGZvcm1hdHRpbmdTdGF0ZSgpLnNldEludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMoY29uc3RyYWludHMpOwogICAgIHJldHVybiBjb25zdHJhaW50
czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRl
eCA2MGY1ZDUxZWQ5NWE2OTViYjYzNDRhNWQ5Mjk2MzU3YzViZWE1ZTA2Li4yZWVkODU4ZmFmYWI0
YzJkNmI2MjhiMzlhZjM4OWNiZGJlOGFmYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC03OCw3ICs3OCw3IEBAIExpbmVCdWlsZGVyOjpDb25z
dHJhaW50czo6SGVpZ2h0QW5kQmFzZWxpbmUgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
czo6bGluCiB7CiAgICAgLy8gY29tcHV0ZWRMaW5lSGVpZ2h0IHRha2VzIGZvbnQtc2l6ZSBpbnRv
IGFjY291bnQgd2hlbiBsaW5lLWhlaWdodCBpcyBub3Qgc2V0LgogICAgIC8vIFN0cnV0IGlzIHRo
ZSBpbWFnaW5hcnkgYm94IHRoYXQgd2UgcHV0IG9uIGV2ZXJ5IGxpbmUuIEl0IHNldHMgdGhlIGlu
aXRpYWwgdmVydGljYWwgY29uc3RyYWludHMgZm9yIGVhY2ggbmV3IGxpbmUuCi0gICAgYXV0byBz
dHJ1dEhlaWdodCA9IGZvcm1hdHRpbmdSb290LnN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7
CisgICAgSW5saW5lTGF5b3V0VW5pdCBzdHJ1dEhlaWdodCA9IGZvcm1hdHRpbmdSb290LnN0eWxl
KCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAgICAgYXV0byBzdHJ1dEJhc2VsaW5lT2Zmc2V0ID0g
TGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZv
bnRNZXRyaWNzKCksIHN0cnV0SGVpZ2h0KS5hc2NlbnQoKTsKICAgICBpZiAobGF5b3V0U3RhdGUo
KS5pbk5vUXVpcmtzTW9kZSgpKQogICAgICAgICByZXR1cm4geyBzdHJ1dEhlaWdodCwgc3RydXRC
YXNlbGluZU9mZnNldCwgeyB9IH07CkBAIC04OSw3ICs4OSw3IEBAIExpbmVCdWlsZGVyOjpDb25z
dHJhaW50czo6SGVpZ2h0QW5kQmFzZWxpbmUgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
czo6bGluCiAgICAgICAgIHJldHVybiB7IGluaXRpYWxCYXNlbGluZU9mZnNldCwgaW5pdGlhbEJh
c2VsaW5lT2Zmc2V0LCBEaXNwbGF5OjpMaW5lQm94OjpCYXNlbGluZSB7IHN0cnV0QmFzZWxpbmVP
ZmZzZXQsIHN0cnV0SGVpZ2h0IC0gc3RydXRCYXNlbGluZU9mZnNldCB9IH07CiAgICAgfQogICAg
IC8vIEZJWE1FOiBUaGUgb25seSByZWFzb24gd2h5IHdlIHVzZSBpbnRWYWx1ZSgpIGhlcmUgaXMg
dG8gbWF0Y2ggY3VycmVudCBpbmxpbmUgdHJlZSAoaW50ZWdyYWwpYmVoYXZpb3IuCi0gICAgYXV0
byBpbml0aWFsTGluZUhlaWdodCA9IElubGluZUxheW91dFVuaXQgeyBsaW5lSGVpZ2h0LmludFZh
bHVlKCkgfTsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGluaXRpYWxMaW5lSGVpZ2h0ID0gbGluZUhl
aWdodC5pbnRWYWx1ZSgpOwogICAgIGF1dG8gaW5pdGlhbEJhc2VsaW5lT2Zmc2V0ID0gTGluZUJ1
aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRy
aWNzKCksIGluaXRpYWxMaW5lSGVpZ2h0KS5hc2NlbnQoKTsKICAgICByZXR1cm4geyBpbml0aWFs
TGluZUhlaWdodCwgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0LCBEaXNwbGF5OjpMaW5lQm94OjpCYXNl
bGluZSB7IHN0cnV0QmFzZWxpbmVPZmZzZXQsIHN0cnV0SGVpZ2h0IC0gc3RydXRCYXNlbGluZU9m
ZnNldCB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKaW5kZXggM2M5MDMxNjUyNjA5NGEz
MzVmZGQwZTQxMWM3MmY5NWE2MmE5ZWI3NS4uNjgzZDBhM2Q2ZmU2YTY3NjkxMTBmNGQyOTFiOWQx
MzQwYTUxZmQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcApAQCAtMTExLDcgKzExMSw3IEBA
IE9wdGlvbmFsPExpbmVCcmVha2VyOjpCcmVha2luZ0NvbnRleHQ6OlBhcnRpYWxUcmFpbGluZ0Nv
bnRlbnQ+IExpbmVCcmVha2VyOjp3b3JkCiAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRo
ZSBhdmFpbGFibGUgd2lkdGggY2FuIHZlcnkgd2VsbCBiZSBuZWdhdGl2ZSBlLmcuIHdoZW4gc29t
ZSBwYXJ0IG9mIHRoZSBjb250aW51b3VzIHRleHQgY29udGVudCBjYW4gbm90IGJlIGJyb2tlbiBp
bnRvIHBhcnRzIC0+CiAgICAgICAgICAgICAvLyA8c3BhbiBzdHlsZT0id29yZC1icmVhazoga2Vl
cC1hbGwiPnRleHRjb250ZW50d2l0aG5vYnJlYWs8L3NwYW4+PHNwYW4+dGV4dGNvbnRlbnR3aXRo
eWVzYnJlYWs8L3NwYW4+CiAgICAgICAgICAgICAvLyBXaGVuIHRoZSBmaXJzdCBzcGFuIGNvbXB1
dGVzIGxvbmdlciB0aGFuIHRoZSBhdmFpbGFibGUgc3BhY2UsIGJ5IHRoZSB0aW1lIHdlIGdldCB0
byB0aGUgc2Vjb25kIHNwYW4sIHRoZSBhZGp1c3RlZCBhdmFpbGFibGUgc3BhY2UgYmVjb21lcyBu
ZWdhdGl2ZS4KLSAgICAgICAgICAgIGF1dG8gYWRqdXN0ZWRBdmFpbGFibGVXaWR0aCA9IHN0ZDo6
bWF4KDBfbHUsIGF2YWlsYWJsZVdpZHRoIC0gYWNjdW11bGF0ZWRSdW5XaWR0aCk7CisgICAgICAg
ICAgICBhdXRvIGFkanVzdGVkQXZhaWxhYmxlV2lkdGggPSBzdGQ6Om1heDxJbmxpbmVMYXlvdXRV
bml0PigwLCBhdmFpbGFibGVXaWR0aCAtIGFjY3VtdWxhdGVkUnVuV2lkdGgpOwogICAgICAgICAg
ICAgaWYgKGF1dG8gbGVmdFNpZGUgPSB0cnlCcmVha2luZ1RleHRSdW4ocnVuLCBhZGp1c3RlZEF2
YWlsYWJsZVdpZHRoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gQnJlYWtpbmdDb250ZXh0OjpQ
YXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgaW5kZXgsIGxlZnRTaWRlLT5sZW5ndGgsIGxlZnRTaWRl
LT5sb2dpY2FsV2lkdGgsIGxlZnRTaWRlLT5uZWVkc0h5cGhlbiB9OwogICAgICAgICAgICAgLy8g
SWYgdGhpcyBydW4gaXMgbm90IGJyZWFrYWJsZSwgd2UgbmVlZCB0byBjaGVjayBpZiBhbnkgcHJl
dmlvdXMgcnVuIGlzIGJyZWFrYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDg2ZjRl
ZmY3ODg3MDZmYTdjYjVkODIzYjdkZWU0NTJmNDY1NjBlNmMuLmI3M2NiNGM4NmEwYmUzZmI4Mjc0
YjM0ZWYxMzk0YjdlYjZmOGEzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTM0Mywx
MCArMzQzLDEwIEBAIHZvaWQgTGluZUJ1aWxkZXI6OmFsaWduQ29udGVudEhvcml6b250YWxseShS
dW5MaXN0JiBydW5MaXN0LCBJc0xhc3RMaW5lV2l0aElubGluCiAgICAgICAgIGNhc2UgVGV4dEFs
aWduTW9kZTo6UmlnaHQ6CiAgICAgICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0UmlnaHQ6
CiAgICAgICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6RW5kOgotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWF4KGF2YWlsYWJsZVdpZHRoKCksIDBfbHUpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bWF4PElubGluZUxheW91dFVuaXQ+KGF2YWlsYWJsZVdpZHRoKCksIDApOwogICAgICAgICBjYXNl
IFRleHRBbGlnbk1vZGU6OkNlbnRlcjoKICAgICAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJL
aXRDZW50ZXI6Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYXgoYXZhaWxhYmxlV2lkdGgoKSAv
IDIsIDBfbHUpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+
KGF2YWlsYWJsZVdpZHRoKCkgLyAyLCAwKTsKICAgICAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpK
dXN0aWZ5OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTU5OCw3ICs1OTgsNyBAQCB2b2lkIExpbmVCdWlsZGVyOjphZGp1c3RCYXNlbGlu
ZUFuZExpbmVIZWlnaHQoY29uc3QgUnVuJiBydW4pCiAgICAgICAgICAgICAgICAgLy8gTm9uIGlu
bGluZS1ibG9jayBib3hlcyBzaXQgb24gdGhlIGJhc2VsaW5lIChpbmNsdWRpbmcgdGhlaXIgYm90
dG9tIG1hcmdpbikuCiAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRl
cihtYXJnaW5Cb3hIZWlnaHQpOwogICAgICAgICAgICAgICAgIC8vIElnbm9yZSBuZWdhdGl2ZSBk
ZXNjZW50ICh5ZXMsIG5lZ2F0aXZlIGRlc2NlbnQgaXMgYSB0aGluZykuCi0gICAgICAgICAgICAg
ICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0ICsg
c3RkOjptYXgoMF9sdSwgYmFzZWxpbmUuZGVzY2VudCgpKSk7CisgICAgICAgICAgICAgICAgbV9s
aW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0ICsgc3RkOjpt
YXg8SW5saW5lTGF5b3V0VW5pdD4oMCwgYmFzZWxpbmUuZGVzY2VudCgpKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNjgyLDEwICs2ODIsMTAgQEAg
RGlzcGxheTo6TGluZUJveDo6QmFzZWxpbmUgTGluZUJ1aWxkZXI6OmhhbGZMZWFkaW5nTWV0cmlj
cyhjb25zdCBGb250TWV0cmljcyYgZm8KICAgICBhdXRvIGFzY2VudCA9IGZvbnRNZXRyaWNzLmFz
Y2VudCgpOwogICAgIGF1dG8gZGVzY2VudCA9IGZvbnRNZXRyaWNzLmRlc2NlbnQoKTsKICAgICAv
LyAxMC44LjEgTGVhZGluZyBhbmQgaGFsZi1sZWFkaW5nCi0gICAgYXV0byBsZWFkaW5nID0gbGlu
ZUxvZ2ljYWxIZWlnaHQgLSAoYXNjZW50ICsgZGVzY2VudCk7Ci0gICAgLy8gSW5saW5lIHRyZWUg
aXMgYWxsIGludGVnZXIgYmFzZWQuCi0gICAgYXV0byBhZGp1c3RlZEFzY2VudCA9IHN0ZDo6bWF4
KChhc2NlbnQgKyBsZWFkaW5nIC8gMikuZmxvb3IoKSwgMCk7Ci0gICAgYXV0byBhZGp1c3RlZERl
c2NlbnQgPSBzdGQ6Om1heCgoZGVzY2VudCArIGxlYWRpbmcgLyAyKS5jZWlsKCksIDApOworICAg
IGF1dG8gaGFsZkxlYWRpbmcgPSAobGluZUxvZ2ljYWxIZWlnaHQgLSAoYXNjZW50ICsgZGVzY2Vu
dCkpIC8gMjsKKyAgICAvLyBJbmxpbmUgdHJlZSBoZWlnaHQgaXMgYWxsIGludGVnZXIgYmFzZWQu
CisgICAgYXV0byBhZGp1c3RlZEFzY2VudCA9IHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KGZs
b29yZihhc2NlbnQgKyBoYWxmTGVhZGluZyksIDApOworICAgIGF1dG8gYWRqdXN0ZWREZXNjZW50
ID0gc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oY2VpbGYoZGVzY2VudCArIGhhbGZMZWFkaW5n
KSwgMCk7CiAgICAgcmV0dXJuIHsgYWRqdXN0ZWRBc2NlbnQsIGFkanVzdGVkRGVzY2VudCB9Owog
fQogCkBAIC03MTYsNyArNzE2LDcgQEAgdm9pZCBMaW5lQnVpbGRlcjo6VHJpbW1hYmxlQ29udGVu
dDo6YXBwZW5kKHNpemVfdCBydW5JbmRleCkKICAgICAgICAgdHJpbW1hYmxlV2lkdGggPSB0cmlt
bWFibGVSdW4udHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAgICAgfQogICAgIC8vIHdvcmQtc3Bh
Y2luZyBjb3VsZCB2ZXJ5IHdlbGwgYmUgbmVnYXRpdmUsIGJ1dCBpdCBkb2VzIG5vdCBtZWFuIHRo
YXQgdGhlIGxpbmUgZ2FpbnMgdGhhdCBtdWNoIGV4dHJhIHNwYWNlIHdoZW4gdGhlIGNvbnRlbnQg
aXMgdHJpbW1lZC4KLSAgICB0cmltbWFibGVXaWR0aCA9IHN0ZDo6bWF4KDBfbHUsIHRyaW1tYWJs
ZVdpZHRoKTsKKyAgICB0cmltbWFibGVXaWR0aCA9IHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+
KDAsIHRyaW1tYWJsZVdpZHRoKTsKIAogICAgIEFTU0VSVCh0cmltbWFibGVXaWR0aCA+PSAwKTsK
ICAgICBtX3dpZHRoICs9IHRyaW1tYWJsZVdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwCmlu
ZGV4IDI2NDg5NzI0MDdiYmIzN2YzMTIyYjZmYzA1ZWE4OWMzMDA2MThlMGQuLmFkNmYxYzdmZjRl
NDg0ODA3ZTBjNDRmZTY0ZDIyMDA3NDJkMDQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAK
QEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBzdGF0aWMgSW5saW5lTGF5b3V0
VW5pdCBpbmxpbmVJdGVtV2lkdGgoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdD
b250ZXh0LCBjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsTGVmdCkKIHsKICAgICBpZiAoaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKQot
ICAgICAgICByZXR1cm4gMF9sdTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoaXM8SW5s
aW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pKSB7CiAgICAgICAgIGF1dG8mIGlubGluZVRleHRJdGVt
ID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pOwpAQCAtNDcsNyArNDcsNyBA
QCBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCBpbmxpbmVJdGVtV2lkdGgoY29uc3QgRm9ybWF0dGlu
Z0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZQogICAgICAgICAgICAgYXV0byBlbmQgPSBpbmxpbmVU
ZXh0SXRlbS5pc0NvbGxhcHNpYmxlKCkgPyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpICsgMSA6IGlu
bGluZVRleHRJdGVtLmVuZCgpOwogICAgICAgICAgICAgY29udGVudFdpZHRoID0gVGV4dFV0aWw6
OndpZHRoKGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgp
LCBlbmQsIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiAgICAgICAgIH0KLSAgICAgICAgYXV0byB3b3Jk
U3BhY2luZyA9IGlubGluZVRleHRJdGVtLmlzV2hpdGVzcGFjZSgpID8gSW5saW5lTGF5b3V0VW5p
dChpbmxpbmVUZXh0SXRlbS5zdHlsZSgpLmZvbnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKSkgOiAw
X2x1OworICAgICAgICBhdXRvIHdvcmRTcGFjaW5nID0gSW5saW5lTGF5b3V0VW5pdChpbmxpbmVU
ZXh0SXRlbS5pc1doaXRlc3BhY2UoKSA/IGlubGluZVRleHRJdGVtLnN0eWxlKCkuZm9udENhc2Nh
ZGUoKS53b3JkU3BhY2luZygpIDogMCk7CiAgICAgICAgIHJldHVybiAqY29udGVudFdpZHRoICsg
d29yZFNwYWNpbmc7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDQ1OGEyZjAyZjk3Mzgw
M2IyYjhjNzAxMjMwMGJmYjNkOTI3YjY0OTAuLjFmMTNlNjg0ZTQ2ZjdkZWI0OWRkYzUwOGZkMzRk
NmMxMjA0OTBjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwCkBAIC03MSw3ICs3MSw3IEBAIElubGluZUxh
eW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0CiAgICAgaWYgKG1lYXN1cmVXaXRoRW5kU3BhY2UpCiAgICAgICAgIHdp
ZHRoIC09IChmb250LnNwYWNlV2lkdGgoKSArIGZvbnQud29yZFNwYWNpbmcoKSk7CiAKLSAgICBy
ZXR1cm4gc3RkOjptYXgoMF9sdSwgSW5saW5lTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQod2lk
dGgpKTsKKyAgICByZXR1cm4gc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oMCAsIElubGluZUxh
eW91dFVuaXQod2lkdGgpKTsKIH0KIAogSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6Zml4ZWRQ
aXRjaFdpZHRoKGNvbnN0IFN0cmluZ1ZpZXcmIHRleHQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExv
Z2ljYWxMZWZ0KQpAQCAtOTAsNyArOTAsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjpm
aXhlZFBpdGNoV2lkdGgoY29uc3QgU3RyaW5nVmlldyYgdGV4dCwgY29uc3QgUmVuZGVyUwogICAg
ICAgICAgICAgd2lkdGggKz0gZm9udC53b3JkU3BhY2luZygpOwogICAgIH0KIAotICAgIHJldHVy
biBzdGQ6Om1heCgwX2x1LCBJbmxpbmVMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZCh3aWR0aCkp
OworICAgIHJldHVybiBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCBJbmxpbmVMYXlvdXRV
bml0KHdpZHRoKSk7CiB9CiAKIFRleHRVdGlsOjpTcGxpdERhdGEgVGV4dFV0aWw6OnNwbGl0KGNv
bnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCB1bnNpZ25lZCBsZW5n
dGgsIElubGluZUxheW91dFVuaXQgdGV4dFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJs
ZVdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCkKQEAgLTEwMCw3ICsx
MDAsOCBAQCBUZXh0VXRpbDo6U3BsaXREYXRhIFRleHRVdGlsOjpzcGxpdChjb25zdCBCb3gmIGlu
bGluZUJveCwgdW5zaWduZWQgc3RhcnRQb3NpdGlvbgogICAgIC8vIFBhdGhvbG9naWNhbCBjYXNl
IG9mIChleHRyZW1lbHkpbG9uZyBzdHJpbmcgYW5kIG5hcnJvdyBsaW5lcy4KICAgICAvLyBBZGp1
c3QgdGhlIHJhbmdlIHNvIHRoYXQgd2UgY2FuIHBpY2sgYSByZWFzb25hYmxlIG1pZHBvaW50Lgog
ICAgIElubGluZUxheW91dFVuaXQgYXZlcmFnZUNoYXJhY3RlcldpZHRoID0gdGV4dFdpZHRoIC8g
bGVuZ3RoOwotICAgIGF1dG8gcmlnaHQgPSBzdGQ6Om1pbjx1bnNpZ25lZD4obGVmdCArICgyICog
YXZhaWxhYmxlV2lkdGggLyBhdmVyYWdlQ2hhcmFjdGVyV2lkdGgpLnRvVW5zaWduZWQoKSwgKHN0
YXJ0UG9zaXRpb24gKyBsZW5ndGggLSAxKSk7CisgICAgdW5zaWduZWQgb2Zmc2V0ID0gdG9MYXlv
dXRVbml0KDIgKiBhdmFpbGFibGVXaWR0aCAvIGF2ZXJhZ2VDaGFyYWN0ZXJXaWR0aCkudG9VbnNp
Z25lZCgpOworICAgIGF1dG8gcmlnaHQgPSBzdGQ6Om1pbjx1bnNpZ25lZD4obGVmdCArIG9mZnNl
dCwgKHN0YXJ0UG9zaXRpb24gKyBsZW5ndGggLSAxKSk7CiAgICAgLy8gUHJlc2VydmUgdGhlIGxl
ZnQgd2lkdGggZm9yIHRoZSBmaW5hbCBzcGxpdCBwb3NpdGlvbiBzbyB0aGF0IHdlIGRvbid0IG5l
ZWQgdG8gcmVtZWFzdXJlIHRoZSBsZWZ0IHNpZGUgYWdhaW4uCiAgICAgSW5saW5lTGF5b3V0VW5p
dCBsZWZ0U2lkZVdpZHRoID0gMDsKICAgICB3aGlsZSAobGVmdCA8IHJpZ2h0KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IGFhN2RiNmNkMjgzZGY1NjNiMTI0MWYyNWU3
OWQ2MzE0ZDE2ODZmZmMuLjBjNmM2YzYwMTEyNTQwMTkzOTJhOWEzOGE5YmU0YzhkNjY3NGMxODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAg
TGF5b3V0VW5pdCBMaW5lTGF5b3V0OjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgfQog
CiAgICAgYXV0byYgZmlyc3RMaW5lQm94ID0gaW5saW5lQ29udGVudC0+bGluZUJveGVzLmZpcnN0
KCk7Ci0gICAgcmV0dXJuIGZpcnN0TGluZUJveC5sb2dpY2FsVG9wKCkgKyBmaXJzdExpbmVCb3gu
YmFzZWxpbmVPZmZzZXQoKTsKKyAgICByZXR1cm4gTGF5b3V0Ojp0b0xheW91dFVuaXQoZmlyc3RM
aW5lQm94LmxvZ2ljYWxUb3AoKSArIGZpcnN0TGluZUJveC5iYXNlbGluZU9mZnNldCgpKTsKIH0K
IAogTGF5b3V0VW5pdCBMaW5lTGF5b3V0OjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTEy
OSw3ICsxMjksNyBAQCBMYXlvdXRVbml0IExpbmVMYXlvdXQ6Omxhc3RMaW5lQmFzZWxpbmUoKSBj
b25zdAogICAgIH0KIAogICAgIGF1dG8mIGxhc3RMaW5lQm94ID0gaW5saW5lQ29udGVudC0+bGlu
ZUJveGVzLmxhc3QoKTsKLSAgICByZXR1cm4gbGFzdExpbmVCb3gubG9naWNhbFRvcCgpICsgbGFz
dExpbmVCb3guYmFzZWxpbmVPZmZzZXQoKTsKKyAgICByZXR1cm4gTGF5b3V0Ojp0b0xheW91dFVu
aXQobGFzdExpbmVCb3gubG9naWNhbFRvcCgpICsgbGFzdExpbmVCb3guYmFzZWxpbmVPZmZzZXQo
KSk7CiB9CiAKIGNvbnN0IERpc3BsYXk6OklubGluZUNvbnRlbnQqIExpbmVMYXlvdXQ6OmRpc3Bs
YXlJbmxpbmVDb250ZW50KCkgY29uc3QKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIExpbmVMYXlv
dXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiAgICAgICAgIGF1dG8gYmFzZWxpbmVPZmZzZXQgPSBwYWludE9mZnNldC55KCkgKyBs
aW5lQm94LmxvZ2ljYWxUb3AoKSArIGxpbmVCb3guYmFzZWxpbmVPZmZzZXQoKTsKIAogICAgICAg
ICBhdXRvIGJlaGF2aW9yID0gdGV4dENvbnRleHQuZXhwYW5zaW9uKCkgPyB0ZXh0Q29udGV4dC5l
eHBhbnNpb24oKS0+YmVoYXZpb3IgOiBEZWZhdWx0RXhwYW5zaW9uOwotICAgICAgICBhdXRvIGhv
cml6b250YWxFeHBhbnNpb24gPSB0ZXh0Q29udGV4dC5leHBhbnNpb24oKSA/IHRleHRDb250ZXh0
LmV4cGFuc2lvbigpLT5ob3Jpem9udGFsRXhwYW5zaW9uIDogMF9sdTsKKyAgICAgICAgYXV0byBo
b3Jpem9udGFsRXhwYW5zaW9uID0gdGV4dENvbnRleHQuZXhwYW5zaW9uKCkgPyBMYXlvdXQ6OnRv
TGF5b3V0VW5pdCh0ZXh0Q29udGV4dC5leHBhbnNpb24oKS0+aG9yaXpvbnRhbEV4cGFuc2lvbikg
OiAwX2x1OwogICAgICAgICBhdXRvIGxvZ2ljYWxMZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgcnVu
LmxvZ2ljYWxMZWZ0KCk7CiAKICAgICAgICAgU3RyaW5nIHRleHRXaXRoSHlwaGVuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>