<?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>189054</bug_id>
          
          <creation_ts>2018-08-28 13:32:19 -0700</creation_ts>
          <short_desc>[iOS] Consolidate the implementations of readString, stringForType, and readURL in PlatformPasteboardIOS.mm</short_desc>
          <delta_ts>2018-08-31 16:18:38 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454519</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-28 13:32:19 -0700</bug_when>
    <thetext>There shouldn&apos;t be two different implementations in the same place for reading a value for a given type from the platform pasteboard on iOS. Furthermore, there shouldn&apos;t be three (!!!) different implementations in the same file for reading a URL from the pasteboard on iOS.

It&apos;s also unclear why readURL even takes a type identifier as an argument, if our code only ever hands it &quot;public.url&quot;...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454523</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-28 13:37:56 -0700</bug_when>
    <thetext>This code has been like this for many years now, and changing this probably carries some risk. But at the very least, unifying these codepaths to all funnel into the same implementations on iOS would make it much, much easier to hack on this code moving forward.

I would like to try and resolve this before introducing any more complexity to this area, en route to supporting multiple entries in DataTransfer.getData(&quot;text/uri-list&quot;) on iOS when dropping or pasting multiple URLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454543</commentid>
    <comment_count>2</comment_count>
      <attachid>348340</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-28 14:06:25 -0700</bug_when>
    <thetext>Created attachment 348340
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454545</commentid>
    <comment_count>3</comment_count>
      <attachid>348341</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-28 14:11:37 -0700</bug_when>
    <thetext>Created attachment 348341
Part 1 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454620</commentid>
    <comment_count>4</comment_count>
      <attachid>348341</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-28 16:28:27 -0700</bug_when>
    <thetext>Comment on attachment 348341
Part 1 (rebased)

Clearing flags on attachment: 348341

Committed r235448: &lt;https://trac.webkit.org/changeset/235448&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454621</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-28 16:28:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454623</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-28 16:29:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/43819779&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454683</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-28 20:15:35 -0700</bug_when>
    <thetext>Reopening, since this was only the first part — there&apos;s more to come…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455339</commentid>
    <comment_count>8</comment_count>
      <attachid>348524</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-30 12:04:33 -0700</bug_when>
    <thetext>Created attachment 348524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455344</commentid>
    <comment_count>9</comment_count>
      <attachid>348526</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-30 12:14:12 -0700</bug_when>
    <thetext>Created attachment 348526
Try to fix the WPE build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455886</commentid>
    <comment_count>10</comment_count>
      <attachid>348526</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-31 16:18:37 -0700</bug_when>
    <thetext>Comment on attachment 348526
Try to fix the WPE build.

Clearing flags on attachment: 348526

Committed r235574: &lt;https://trac.webkit.org/changeset/235574&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455887</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-31 16:18:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348340</attachid>
            <date>2018-08-28 14:06:25 -0700</date>
            <delta_ts>2018-08-28 14:09:25 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-189054-20180828140624.patch</filename>
            <type>text/plain</type>
            <size>18732</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRlNzk2N2Q3NmY4NTZi
N2VhNjU1ZjI3MTVlNWM3NDdiYTNkOThjYi4uM2M5MjQwMWY5NWVjM2FjZTAyYzhkM2U0N2ZlNzI1
OGVhNDgxMDE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA4LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJk
czogW2lPU10gQ29uc29saWRhdGUgdGhlIGltcGxlbWVudGF0aW9ucyBvZiByZWFkU3RyaW5nLCBz
dHJpbmdGb3JUeXBlLCBhbmQgcmVhZFVSTCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA1NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
cGFzdGVib2FyZCB0eXBlIGFyZ3VtZW50IGZyb20gUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkVVJM
KCkuIEN1cnJlbnRseSwgd2Ugb25seSBldmVyIHBhc3MgaXQKKyAgICAgICAgInB1YmxpYy51cmwi
IGFueXdheXM7IGZvciByZWFkaW5nIG90aGVyIHR5cGVzIG9mIHN0cmluZ3MsIHJlYWRTdHJpbmco
KSBhbHJlYWR5IGV4aXN0cywgd2hpY2ggdGFrZXMgYW4gYXJiaXRyYXJ5CisgICAgICAgIHBhc3Rl
Ym9hcmQgdHlwZS4KKworICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
cmVhZFBhc3RlYm9hcmRXZWJDb250ZW50RGF0YUZvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6cmVhZFBsYXRmb3JtVmFsdWVBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6cmVhZFVSTCk6CisKIDIwMTgtMDgtMjcgIEp1c3RpbiBGYW4gIDxqdXN0
aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJHTCAyIGNvbmZvcm1hbmNlOiBmcmFtZWJ1
ZmZlci10ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzNTQyMTE1M2JhYmIzZDJmOGI3ZTgxZDIxNzBmM2E5ZGQx
MTNlYmMuLjMyMTcxOGU3YzVmMGY3MGVkZmFjMzdjZWU2NzRkOWY3MDhkNDFiYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDgtMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgV29yayB0b3dhcmRzOiBbaU9TXSBDb25zb2xpZGF0ZSB0
aGUgaW1wbGVtZW50YXRpb25zIG9mIHJlYWRTdHJpbmcsIHN0cmluZ0ZvclR5cGUsIGFuZCByZWFk
VVJMIGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MDU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBwYXN0ZWJvYXJkIHR5cGUgYXJndW1l
bnQgZnJvbSByZWFkVVJMRnJvbVBhc3RlYm9hcmQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhc3Rl
Ym9hcmRQcm94eTo6cmVhZFVSTEZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFzdGVib2FyZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6cmVhZFVSTEZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE4LTA4LTI3ICBCYXN1
a2UgU3V6dWtpICA8QmFzdWtlLlN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gRW5h
YmxlIFByb3h5IEF1dGhlbnRpY2F0aW9uIG9uIFdlYktpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBkZTI2NDJjNzZhZDM4NjhhODAxOTA5ODNiOTcyMGU2NDgxZTBiNmVlLi4xYzYz
MmJkNTgxMWUxMWRhMzhmODEzMzUxNzRjZjdiYzY1MTJlYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDgtMjggIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgV29yayB0b3dhcmRzOiBbaU9TXSBDb25z
b2xpZGF0ZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJlYWRTdHJpbmcsIHN0cmluZ0ZvclR5cGUs
IGFuZCByZWFkVVJMIGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MDU0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBwYXN0ZWJvYXJkIHR5
cGUgYXJndW1lbnQgZnJvbSByZWFkVVJMRnJvbVBhc3RlYm9hcmQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OnJlYWRVUkxGcm9tUGFzdGVib2FyZCk6CisKIDIwMTgtMDgtMjcgIEtlaXRoIFJvbGxp
biAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IC0t
IGRpc2FibGUgTFRPIGZvciBwcm9kdWN0aW9uIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCA1ZWE0YzY5NzJlY2FhZjg5ZDcwNjhhNjkw
N2FkNjhlNTBjYWY1OGQzLi45ZDgyN2MwMWY4NWNjMDJiMjE2OTVkOWIyZTdiY2ExNWI0YjlmZDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3ku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApAQCAt
NTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1z
Q291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgU3Ry
aW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0
dWFsIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbnQgaW5k
ZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFVSTCByZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50IGlu
ZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBTdHJpbmcmIHRpdGxlKSA9IDA7CisgICAgdmlydHVhbCBVUkwgcmVhZFVSTEZyb21Q
YXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5n
JiB0aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9yPFBhc3RlYm9hcmRJdGVtSW5mbz4gYWxs
UGFzdGVib2FyZEl0ZW1JbmZvKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAg
ICB2aXJ0dWFsIFBhc3RlYm9hcmRJdGVtSW5mbyBpbmZvcm1hdGlvbkZvckl0ZW1BdEluZGV4KGlu
dCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVTdXBwb3J0ZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGlkZW50aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IGVjOTNkZjA4MTYx
Y2VkZTQ4ZTEyMDU4ZjU5NmY3MTE4MzdhMTUyMTQuLjIxMWM3ODM5YmI3ZDRkMzYzYTMwNzU5OWNl
ZGNkZWNiOGJhZWYzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFz
dGVib2FyZC5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlYWRTdHJpbmcoaW50IGlu
ZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBV
UkwgcmVhZFVSTChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFN0cmlu
ZyYgdGl0bGUpOworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCByZWFkVVJMKGludCBpbmRleCwgU3Ry
aW5nJiB0aXRsZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgaW50IGNvdW50KCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgaW50IG51bWJlck9mRmlsZXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCAzYzcwOTcwOGIxMjIxNTg5ODc3YmEz
NWY5YTRiM2NlYTBmMWVjNjE0Li5kMWMwMmVkZjIyMDI4YjQ1MzFhZmM3ZWMwZjc2MDlhNTcxNTM3
MmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpA
QCAtMjE5LDcgKzIxOSw3IEBAIFBhc3RlYm9hcmQ6OlJlYWRlclJlc3VsdCBQYXN0ZWJvYXJkOjpy
ZWFkUGFzdGVib2FyZFdlYkNvbnRlbnREYXRhRm9yVHlwZShQYXN0ZWJvCiAKICAgICBpZiAoW3R5
cGUgaXNFcXVhbFRvU3RyaW5nOihOU1N0cmluZyAqKWtVVFR5cGVVUkxdKSB7CiAgICAgICAgIFN0
cmluZyB0aXRsZTsKLSAgICAgICAgVVJMIHVybCA9IHN0cmF0ZWd5LnJlYWRVUkxGcm9tUGFzdGVi
b2FyZChpdGVtSW5kZXgsIGtVVFR5cGVVUkwsIG1fcGFzdGVib2FyZE5hbWUsIHRpdGxlKTsKKyAg
ICAgICAgVVJMIHVybCA9IHN0cmF0ZWd5LnJlYWRVUkxGcm9tUGFzdGVib2FyZChpdGVtSW5kZXgs
IG1fcGFzdGVib2FyZE5hbWUsIHRpdGxlKTsKICAgICAgICAgaWYgKG1fY2hhbmdlQ291bnQgIT0g
Y2hhbmdlQ291bnQoKSkKICAgICAgICAgICAgIHJldHVybiBSZWFkZXJSZXN1bHQ6OlBhc3RlYm9h
cmRXYXNDaGFuZ2VkRXh0ZXJuYWxseTsKICAgICAgICAgcmV0dXJuICF1cmwuaXNOdWxsKCkgJiYg
cmVhZGVyLnJlYWRVUkwodXJsLCB0aXRsZSkgPyBSZWFkZXJSZXN1bHQ6OlJlYWRUeXBlIDogUmVh
ZGVyUmVzdWx0OjpEaWROb3RSZWFkVHlwZTsKQEAgLTM4OSw3ICszODksNyBAQCBTdHJpbmcgUGFz
dGVib2FyZDo6cmVhZFBsYXRmb3JtVmFsdWVBc1N0cmluZyhjb25zdCBTdHJpbmcmIGRvbVR5cGUs
IGxvbmcgY2hhbmdlQwogCiAgICAgaWYgKFtjb2NvYVR5cGUgaXNFcXVhbFRvU3RyaW5nOihOU1N0
cmluZyAqKWtVVFR5cGVVUkxdKSB7CiAgICAgICAgIFN0cmluZyB0aXRsZTsKLSAgICAgICAgVVJM
IHVybCA9IHN0cmF0ZWd5LnJlYWRVUkxGcm9tUGFzdGVib2FyZCgwLCBrVVRUeXBlVVJMLCBwYXN0
ZWJvYXJkTmFtZSwgdGl0bGUpOworICAgICAgICBVUkwgdXJsID0gc3RyYXRlZ3kucmVhZFVSTEZy
b21QYXN0ZWJvYXJkKDAsIHBhc3RlYm9hcmROYW1lLCB0aXRsZSk7CiAgICAgICAgIGlmICghdXJs
LmlzTnVsbCgpKQogICAgICAgICAgICAgY29jb2FWYWx1ZSA9IFsoTlNVUkwgKil1cmwgYWJzb2x1
dGVTdHJpbmddOwogICAgIH0gZWxzZSBpZiAoW2NvY29hVHlwZSBpc0VxdWFsVG9TdHJpbmc6KE5T
U3RyaW5nICopa1VUVHlwZVBsYWluVGV4dF0pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDE0ZmQ0NDZhYTZkNGQ2
YjFlNDE0NWYyYTQzZmRkZmE0MGY3ZDgwYTguLjNkYjY4YjVkOGE4MDQyNjFmODI5Zjg2N2JkYTFh
NDg3NWZjYzNlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bs
YXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtNjYwLDEwICs2NjAsMTAgQEAgU3RyaW5nIFBsYXRm
b3JtUGFzdGVib2FyZDo6cmVhZFN0cmluZyhpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdHlwZSkK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVVSTCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRV
UkwoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUsIFN0cmluZyYgdGl0bGUpCitVUkwgUGxh
dGZvcm1QYXN0ZWJvYXJkOjpyZWFkVVJMKGludCBpbmRleCwgU3RyaW5nJiB0aXRsZSkKIHsKICAg
ICBOU0luZGV4U2V0ICppbmRleFNldCA9IFtOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4Omlu
ZGV4XTsKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gcGFzdGVib2FyZEl0ZW0gPSBbbV9wYXN0ZWJv
YXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOnR5cGUgaW5JdGVtU2V0OmluZGV4U2V0XTsKKyAg
ICBSZXRhaW5QdHI8TlNBcnJheT4gcGFzdGVib2FyZEl0ZW0gPSBbbV9wYXN0ZWJvYXJkIHZhbHVl
c0ZvclBhc3RlYm9hcmRUeXBlOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVUkwgaW5JdGVt
U2V0OmluZGV4U2V0XTsKIAogICAgIGlmICghW3Bhc3RlYm9hcmRJdGVtIGNvdW50XSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0KaW5kZXggNGIwNTQ0ZmI2ZWRiODAzMzU1MWEx
NDhkNGRmMWQxY2NiNWYyNDZiMC4uYzk5MjQ0MDRmZWJiMDlhZTAxN2IxMGNlOWM1Zjg4MmE1OTMx
MjcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVi
b2FyZFByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFzdGVib2FyZFByb3h5Q29jb2EubW0KQEAgLTIwNCw5ICsyMDQsOSBAQCB2b2lkIFdlYlBhc3Rl
Ym9hcmRQcm94eTo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25z
dCBTdHJpbmcmCiAgICAgdmFsdWUgPSBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUp
LnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKTsKIH0KIAotdm9pZCBXZWJQYXN0ZWJv
YXJkUHJveHk6OnJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5n
JiB1cmwsIFN0cmluZyYgdGl0bGUpCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZFVSTEZy
b21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBTdHJpbmcmIHVybCwgU3RyaW5nJiB0aXRsZSkKIHsKLSAgICB1cmwgPSBQbGF0Zm9ybVBhc3Rl
Ym9hcmQocGFzdGVib2FyZE5hbWUpLnJlYWRVUkwoaW5kZXgsIHBhc3RlYm9hcmRUeXBlLCB0aXRs
ZSk7CisgICAgdXJsID0gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5yZWFkVVJM
KGluZGV4LCB0aXRsZSk7CiB9CiAKIHZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpyZWFkQnVmZmVy
RnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5
cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBo
YW5kbGUsIHVpbnQ2NF90JiBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkuaAppbmRleCA1OGJkZmVkNTdkNDRlNzA1MzI2ZmY2YzNhNjhiOGYyNDQ3OGYy
MjU0Li5lNWVjMjA5MzI3ZGEwNzYwZTgyY2I0NGFlODMzOWZkYmQxOTEwNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtNzUsNyArNzUsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgd3JpdGVJbWFnZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3Jl
OjpQYXN0ZWJvYXJkSW1hZ2UmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICAgICB2
b2lkIHdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIHZvaWQg
cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXVEY6OlN0cmluZyYp
OwotICAgIHZvaWQgcmVhZFVSTEZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJp
bmcmIHVybCwgU3RyaW5nJiB0aXRsZSk7CisgICAgdm9pZCByZWFkVVJMRnJvbVBhc3RlYm9hcmQo
dWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFN0cmluZyYgdXJs
LCBTdHJpbmcmIHRpdGxlKTsKICAgICB2b2lkIHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50
NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCB1aW50NjRfdCYgc2l6ZSk7CiAg
ICAgdm9pZCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCB1aW50NjRfdCYgaXRlbXNDb3VudCk7CiAgICAgdm9pZCBhbGxQYXN0ZWJvYXJkSXRlbUlu
Zm8oY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgVmVjdG9yPFdlYkNvcmU6OlBhc3RlYm9h
cmRJdGVtSW5mbz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyMTc0OWY5N2Y2Yzk0Yzk4ZDVmMDk0MzYw
MjQ3NzlmYzBmODE5MjllLi5iOTJjYjgxYjZhNjZlMDFiMTA3ODhjOWEyY2Y2MjVjYjVmYzhlZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNyw3ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhc3RlYm9h
cmRQcm94eSB7CiAgICAgV3JpdGVJbWFnZVRvUGFzdGVib2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFz
dGVib2FyZEltYWdlIHBhc3RlYm9hcmRJbWFnZSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogICAg
IFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHRl
eHQsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQo
dWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHBhc3RlYm9hcmRO
YW1lKSAtPiAoU3RyaW5nIHN0cmluZykKLSAgICBSZWFkVVJMRnJvbVBhc3RlYm9hcmQodWludDY0
X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAt
PiAoU3RyaW5nIHVybCwgU3RyaW5nIHRpdGxlKQorICAgIFJlYWRVUkxGcm9tUGFzdGVib2FyZCh1
aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoU3RyaW5nIHVybCwgU3Ry
aW5nIHRpdGxlKQogICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwg
U3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKICAgICBHZXRQYXN0
ZWJvYXJkSXRlbXNDb3VudChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBpdGVt
c0NvdW50KQogICAgIEFsbFBhc3RlYm9hcmRJdGVtSW5mbyhTdHJpbmcgcGFzdGVib2FyZE5hbWUp
IC0+IChWZWN0b3I8V2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvPiBhbGxJbmZvKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAyYWRmM2M1OTdkZDkyNzllNzIwOTM3YTk0
M2ViNDA1ZmZiNjNhOWY4Li43NjAyZjVjOTRiMmU1NWZkMjcwNWE1ZDU2ZmM2MDUxOWM5NDRkYmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzU3LDEwICszNTcsMTAg
QEAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpy
ZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW4KICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEo
KSksIHNpemUpOwogfQogCi1XZWJDb3JlOjpVUkwgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFk
VVJMRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcmIHRpdGxlKQorV2ViQ29yZTo6
VVJMIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFVSTEZyb21QYXN0ZWJvYXJkKGludCBpbmRl
eCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nJiB0aXRsZSkKIHsKICAgICBT
dHJpbmcgdXJsU3RyaW5nOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJl
YWRVUkxGcm9tUGFzdGVib2FyZChpbmRleCwgcGFzdGVib2FyZFR5cGUsIHBhc3RlYm9hcmROYW1l
KSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6UmVhZFVSTEZyb21QYXN0ZWJvYXJkOjpS
ZXBseSh1cmxTdHJpbmcsIHRpdGxlKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9h
cmRQcm94eTo6UmVhZFVSTEZyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJvYXJkTmFtZSksIE1l
c3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRVUkxGcm9tUGFzdGVib2FyZDo6UmVwbHko
dXJsU3RyaW5nLCB0aXRsZSksIDApOwogICAgIHJldHVybiBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1
cmxTdHJpbmcpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYjg4ZmNh
YjU3NmJlNGVlOWEwOTM0M2YyYmVlMWY2N2IxNWUyYTI4ZS4uNTkxZDc4ZmNkZDA5ZTkwYTBjYWQ1
YzExMGIzNWJkYTYyODIzOWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAt
NjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBTdHJpbmcgcmVhZFN0
cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6VVJMIHJlYWRVUkxGcm9tUGFzdGVib2FyZChpbnQg
aW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUsIFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OlVSTCByZWFk
VVJMRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICBWZWN0b3I8V2ViQ29yZTo6UGFzdGVib2Fy
ZEl0ZW1JbmZvPiBhbGxQYXN0ZWJvYXJkSXRlbUluZm8oY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvIGluZm9ybWF0
aW9uRm9ySXRlbUF0SW5kZXgoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
KSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZFR5cGVJZGVudGlmaWVycyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgaWRlbnRpZmllcnMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBkZWJiMDMzMmIx
MmNhZDU0ZTc0MDljN2E2MDY0ZmQ1OWU3ZDgwYmUwLi5hOGQ5NjI2MzQ5NGE4ZjEyYTg1MTYwOTJk
NjNkNjM3N2IyNWMxZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNjUsNyAr
NjUsNyBAQCBwcml2YXRlOgogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBTdHJpbmcgcmVhZFN0cmluZ0Zy
b21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7Ci0gICAgV2ViQ29yZTo6VVJMIHJlYWRVUkxGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OlVSTCByZWFkVVJMRnJv
bVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJp
bmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICBWZWN0b3I8V2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1J
bmZvPiBhbGxQYXN0ZWJvYXJkSXRlbUluZm8oY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEl0ZW1JbmZvIGluZm9ybWF0aW9uRm9y
SXRlbUF0SW5kZXgoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVy
cmlkZTsKICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRlZFR5cGVJZGVudGlmaWVycyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgaWRlbnRpZmllcnMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IDBiMTZkY2QwOTI1ZGNj
NDQxZGY4OGU3ZWQ2NDMyYTZlNDM1ODM5YWYuLjlkNTc4YTBiOTU3ZjI2MTMxMDY4ODY1Mjg0MWRj
ZjllY2I3NTQyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTIzNCw5ICsy
MzQsOSBAQCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbgogICAgIHJldHVybiBQbGF0Zm9ybVBhc3Rl
Ym9hcmQocGFzdGVib2FyZE5hbWUpLnJlYWRCdWZmZXIoaW5kZXgsIHR5cGUpOwogfQogCi1XZWJD
b3JlOjpVUkwgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50
IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUs
IFN0cmluZyYgdGl0bGUpCitXZWJDb3JlOjpVUkwgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFk
VVJMRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBTdHJpbmcmIHRpdGxlKQogewotICAgIHJldHVybiBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVi
b2FyZE5hbWUpLnJlYWRVUkwoaW5kZXgsIHR5cGUsIHRpdGxlKTsKKyAgICByZXR1cm4gUGxhdGZv
cm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5yZWFkVVJMKGluZGV4LCB0aXRsZSk7CiB9CiAK
IFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChp
bnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBm
NzUwOTExNjQ0NDU5OWM0OTFhMDc1NTBjYzJlYWY0NjRjZTk4ZjYyLi42Njg5NTIyZmExNWFlOTE0
NDQ4NjYzN2NhMzYxMjRlZTQ3YzgzNmQ3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDgtMjggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV0tBdHRhY2ht
ZW50VGVzdHMuRHJvcEZvbGRlckFzQXR0YWNobWVudEFuZE1vdmVCeURyYWdnaW5nIGVuY291bnRl
cnMgYW4gZXhjZXB0aW9uIG9uIGlPUyBzaW11bGF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdyYXAgYW4gTlNVUkwgaW4gYSBSZXRhaW5QdHIgdG8g
cHJldmVudCBpdCBmcm9tIGJlaW5nIGZyZWVkIHByZW1hdHVyZWx5LiBJdCBzZWVtcyB0aGlzIGJy
b2tlIHdoZW4gSSBjaGFuZ2VkIHRoZQorICAgICAgICBsb2FkIGhhbmRsZXIgZnJvbSBhbiBPYmpl
Y3RpdmUtQyBibG9jayB0aGF0IGNhcHR1cmVkIGBmb2xkZXJVUkxgIHRvIGEgQysrIGxhbWJkYSB0
aGF0IGRpZG4ndCByZXRhaW4gYGZvbGRlclVSTGAuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgorICAgICAgICAoc2ltdWxh
dGVGb2xkZXJEcmFnV2l0aFVSTCk6CisKIDIwMTgtMDgtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gUmVtb3Zl
IFdlYkNvcmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyBhbmQgZnJpZW5kcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW0KaW5kZXggNzBkMjI3MDU3YzczNDY4NTI2OWNmMTY3MjRkYWE1NzZkOGJiMDhjOS4u
NjhkMTlhZDY2OWY1NDg4ZDU3NWMzOGI4NDg0YjNiMDhjYTliNzk5YSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRl
c3RzLm1tCkBAIC00MTYsOCArNDE2LDggQEAgc3RhdGljIHZvaWQgc2ltdWxhdGVGb2xkZXJEcmFn
V2l0aFVSTChEcmFnQW5kRHJvcFNpbXVsYXRvciAqc2ltdWxhdG9yLCBOU1VSTCAqZm8KICAgICBh
dXRvIGZvbGRlclByb3ZpZGVyID0gYWRvcHROUyhbW05TSXRlbVByb3ZpZGVyIGFsbG9jXSBpbml0
XSk7CiAgICAgW2ZvbGRlclByb3ZpZGVyIHNldFN1Z2dlc3RlZE5hbWU6Zm9sZGVyVVJMLmxhc3RQ
YXRoQ29tcG9uZW50XTsKICAgICBbZm9sZGVyUHJvdmlkZXIgc2V0UHJlZmVycmVkUHJlc2VudGF0
aW9uU3R5bGU6VUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnRdOwotICAgIFtm
b2xkZXJQcm92aWRlciByZWdpc3RlckZpbGVSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVy
OihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGb2xkZXIgZmlsZU9wdGlvbnM6MCB2aXNpYmls
aXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxsIGxvYWRIYW5kbGVy
OlsmXSAodm9pZCheY29tcGxldGlvbikoTlNVUkwgKiwgQk9PTCwgTlNFcnJvciAqKSkgLT4gTlNQ
cm9ncmVzcyAqIHsKLSAgICAgICAgY29tcGxldGlvbihmb2xkZXJVUkwsIE5PLCBuaWwpOworICAg
IFtmb2xkZXJQcm92aWRlciByZWdpc3RlckZpbGVSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlm
aWVyOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGb2xkZXIgZmlsZU9wdGlvbnM6MCB2aXNp
YmlsaXR5Ok5TSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxsIGxvYWRIYW5k
bGVyOltwcm90ZWN0ZWRGb2xkZXJVUkwgPSByZXRhaW5QdHIoZm9sZGVyVVJMKV0gKHZvaWQoXmNv
bXBsZXRpb24pKE5TVVJMICosIEJPT0wsIE5TRXJyb3IgKikpIC0+IE5TUHJvZ3Jlc3MgKiB7Cisg
ICAgICAgIGNvbXBsZXRpb24ocHJvdGVjdGVkRm9sZGVyVVJMLmdldCgpLCBOTywgbmlsKTsKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICB9XTsKICAgICBzaW11bGF0b3IuZXh0ZXJuYWxJdGVtUHJv
dmlkZXJzID0gQFsgZm9sZGVyUHJvdmlkZXIuZ2V0KCkgXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348341</attachid>
            <date>2018-08-28 14:11:37 -0700</date>
            <delta_ts>2018-08-30 12:04:32 -0700</delta_ts>
            <desc>Part 1 (rebased)</desc>
            <filename>bug-189054-20180828141136.patch</filename>
            <type>text/plain</type>
            <size>16414</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMyYjFkYzA3MzY5ZDQ3
ODY2ODQ4ZDE1NWRjZTY5M2RlOWFlZWQ0ZS4uZGIxZjFjYjY5ZTYzZmRkNTMzMDA2NzVhODUxOWJi
MDFhNzE1MTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTA4LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJk
czogW2lPU10gQ29uc29saWRhdGUgdGhlIGltcGxlbWVudGF0aW9ucyBvZiByZWFkU3RyaW5nLCBz
dHJpbmdGb3JUeXBlLCBhbmQgcmVhZFVSTCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA1NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
cGFzdGVib2FyZCB0eXBlIGFyZ3VtZW50IGZyb20gUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkVVJM
KCkuIEN1cnJlbnRseSwgd2Ugb25seSBldmVyIHBhc3MgaXQKKyAgICAgICAgInB1YmxpYy51cmwi
IGFueXdheXM7IGZvciByZWFkaW5nIG90aGVyIHR5cGVzIG9mIHN0cmluZ3MsIHJlYWRTdHJpbmco
KSBhbHJlYWR5IGV4aXN0cywgd2hpY2ggdGFrZXMgYW4gYXJiaXRyYXJ5CisgICAgICAgIHBhc3Rl
Ym9hcmQgdHlwZS4KKworICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
cmVhZFBhc3RlYm9hcmRXZWJDb250ZW50RGF0YUZvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6cmVhZFBsYXRmb3JtVmFsdWVBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6cmVhZFVSTCk6CisKIDIwMTgtMDgtMjggIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhRGV2aWNlcyBzaG91bGQgYmUgY29sbGVj
dGFibGUgYXMgc29vbiBhcyBpdHMgZG9jdW1lbnQgaXMgc3RvcHBlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiZTFl
M2NjZThiNzMzYmZkN2U2NWExMWJiMTNiNjQwZTBiZWI5ZDA4Li5kZjBlYTk2MjFiNGY3Y2VjMWJm
NzcwYjI2Y2E5MzRiY2Y2Y2EyNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA4
LTI4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdv
cmsgdG93YXJkczogW2lPU10gQ29uc29saWRhdGUgdGhlIGltcGxlbWVudGF0aW9ucyBvZiByZWFk
U3RyaW5nLCBzdHJpbmdGb3JUeXBlLCBhbmQgcmVhZFVSTCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJ
T1MubW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
OTA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSB0aGUgcGFzdGVib2FyZCB0eXBlIGFyZ3VtZW50IGZyb20gcmVhZFVSTEZyb21QYXN0ZWJv
YXJkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRVUkxGcm9tUGFz
dGVib2FyZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRVUkxGcm9tUGFzdGVi
b2FyZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKwogMjAxOC0wOC0yOCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lA
c29ueS5jb20+CiAKICAgICAgICAgW0N1cmxdIEZpeCBpc3N1ZSB0aGF0IGV4dHJhIGNvb2tpZSBp
cyBhZGRlZCB3aGVuIHJlZGlyZWN0IGhhcHBlbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggZGUyNjQyYzc2YWQzODY4YTgwMTkwOTgzYjk3MjBlNjQ4MWUwYjZlZS4uMWM2MzJiZDU4
MTFlMTFkYTM4ZjgxMzM1MTc0Y2Y3YmM2NTEyZWMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA4LTI4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkczogW2lPU10gQ29uc29saWRh
dGUgdGhlIGltcGxlbWVudGF0aW9ucyBvZiByZWFkU3RyaW5nLCBzdHJpbmdGb3JUeXBlLCBhbmQg
cmVhZFVSTCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTA1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgcGFzdGVib2FyZCB0eXBlIGFy
Z3VtZW50IGZyb20gcmVhZFVSTEZyb21QYXN0ZWJvYXJkLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpyZWFkVVJMRnJvbVBhc3RlYm9hcmQpOgorCiAyMDE4LTA4LTI3ICBLZWl0aCBSb2xsaW4gIDxr
cm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCAtLSBkaXNh
YmxlIExUTyBmb3IgcHJvZHVjdGlvbiBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZFN0cmF0ZWd5LmgKaW5kZXggNWVhNGM2OTcyZWNhYWY4OWQ3MDY4YTY5MDdhZDY4
ZTUwY2FmNThkMy4uOWQ4MjdjMDFmODVjYzAyYjIxNjk1ZDliMmU3YmNhMTViNGI5ZmQwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTUwLDcg
KzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBy
ZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
KSA9IDA7Ci0gICAgdmlydHVhbCBVUkwgcmVhZFVSTEZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgU3RyaW5nJiB0aXRsZSkgPSAwOworICAgIHZpcnR1YWwgVVJMIHJlYWRVUkxGcm9tUGFzdGVi
b2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFN0cmluZyYgdGl0
bGUpID0gMDsKICAgICB2aXJ0dWFsIFZlY3RvcjxQYXN0ZWJvYXJkSXRlbUluZm8+IGFsbFBhc3Rl
Ym9hcmRJdGVtSW5mbyhjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmly
dHVhbCBQYXN0ZWJvYXJkSXRlbUluZm8gaW5mb3JtYXRpb25Gb3JJdGVtQXRJbmRleChpbnQgaW5k
ZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU3VwcG9ydGVkVHlwZUlkZW50aWZpZXJzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpZGVu
dGlmaWVycywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCBlYzkzZGYwODE2MWNlZGU0
OGUxMjA1OGY1OTZmNzExODM3YTE1MjE0Li4yMTFjNzgzOWJiN2Q0ZDM2M2EzMDc1OTljZWRjZGVj
YjhiYWVmMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9h
cmQuaApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3
cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlcihpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWFkU3RyaW5nKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJl
YWRVUkwoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcmIHRp
dGxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcmVhZFVSTChpbnQgaW5kZXgsIFN0cmluZyYg
dGl0bGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBjb3VudCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGludCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggM2M3MDk3MDhiMTIyMTU4OTg3N2JhMzVmOWE0
YjNjZWEwZjFlYzYxNC4uZDFjMDJlZGYyMjAyOGI0NTMxYWZjN2VjMGY3NjA5YTU3MTUzNzJhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTIx
OSw3ICsyMTksNyBAQCBQYXN0ZWJvYXJkOjpSZWFkZXJSZXN1bHQgUGFzdGVib2FyZDo6cmVhZFBh
c3RlYm9hcmRXZWJDb250ZW50RGF0YUZvclR5cGUoUGFzdGVibwogCiAgICAgaWYgKFt0eXBlIGlz
RXF1YWxUb1N0cmluZzooTlNTdHJpbmcgKilrVVRUeXBlVVJMXSkgewogICAgICAgICBTdHJpbmcg
dGl0bGU7Ci0gICAgICAgIFVSTCB1cmwgPSBzdHJhdGVneS5yZWFkVVJMRnJvbVBhc3RlYm9hcmQo
aXRlbUluZGV4LCBrVVRUeXBlVVJMLCBtX3Bhc3RlYm9hcmROYW1lLCB0aXRsZSk7CisgICAgICAg
IFVSTCB1cmwgPSBzdHJhdGVneS5yZWFkVVJMRnJvbVBhc3RlYm9hcmQoaXRlbUluZGV4LCBtX3Bh
c3RlYm9hcmROYW1lLCB0aXRsZSk7CiAgICAgICAgIGlmIChtX2NoYW5nZUNvdW50ICE9IGNoYW5n
ZUNvdW50KCkpCiAgICAgICAgICAgICByZXR1cm4gUmVhZGVyUmVzdWx0OjpQYXN0ZWJvYXJkV2Fz
Q2hhbmdlZEV4dGVybmFsbHk7CiAgICAgICAgIHJldHVybiAhdXJsLmlzTnVsbCgpICYmIHJlYWRl
ci5yZWFkVVJMKHVybCwgdGl0bGUpID8gUmVhZGVyUmVzdWx0OjpSZWFkVHlwZSA6IFJlYWRlclJl
c3VsdDo6RGlkTm90UmVhZFR5cGU7CkBAIC0zODksNyArMzg5LDcgQEAgU3RyaW5nIFBhc3RlYm9h
cmQ6OnJlYWRQbGF0Zm9ybVZhbHVlQXNTdHJpbmcoY29uc3QgU3RyaW5nJiBkb21UeXBlLCBsb25n
IGNoYW5nZUMKIAogICAgIGlmIChbY29jb2FUeXBlIGlzRXF1YWxUb1N0cmluZzooTlNTdHJpbmcg
KilrVVRUeXBlVVJMXSkgewogICAgICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAgIFVSTCB1cmwg
PSBzdHJhdGVneS5yZWFkVVJMRnJvbVBhc3RlYm9hcmQoMCwga1VUVHlwZVVSTCwgcGFzdGVib2Fy
ZE5hbWUsIHRpdGxlKTsKKyAgICAgICAgVVJMIHVybCA9IHN0cmF0ZWd5LnJlYWRVUkxGcm9tUGFz
dGVib2FyZCgwLCBwYXN0ZWJvYXJkTmFtZSwgdGl0bGUpOwogICAgICAgICBpZiAoIXVybC5pc051
bGwoKSkKICAgICAgICAgICAgIGNvY29hVmFsdWUgPSBbKE5TVVJMICopdXJsIGFic29sdXRlU3Ry
aW5nXTsKICAgICB9IGVsc2UgaWYgKFtjb2NvYVR5cGUgaXNFcXVhbFRvU3RyaW5nOihOU1N0cmlu
ZyAqKWtVVFR5cGVQbGFpblRleHRdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQppbmRleCAxNGZkNDQ2YWE2ZDRkNmIxZTQx
NDVmMmE0M2ZkZGZhNDBmN2Q4MGE4Li4zZGI2OGI1ZDhhODA0MjYxZjgyOWY4NjdiZGExYTQ4NzVm
Y2MzZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bVBhc3RlYm9hcmRJT1MubW0KQEAgLTY2MCwxMCArNjYwLDEwIEBAIFN0cmluZyBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCi1VUkwgUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkVVJMKGlu
dCBpbmRleCwgY29uc3QgU3RyaW5nJiB0eXBlLCBTdHJpbmcmIHRpdGxlKQorVVJMIFBsYXRmb3Jt
UGFzdGVib2FyZDo6cmVhZFVSTChpbnQgaW5kZXgsIFN0cmluZyYgdGl0bGUpCiB7CiAgICAgTlNJ
bmRleFNldCAqaW5kZXhTZXQgPSBbTlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleDppbmRleF07
Ci0gICAgUmV0YWluUHRyPE5TQXJyYXk+IHBhc3RlYm9hcmRJdGVtID0gW21fcGFzdGVib2FyZCB2
YWx1ZXNGb3JQYXN0ZWJvYXJkVHlwZTp0eXBlIGluSXRlbVNldDppbmRleFNldF07CisgICAgUmV0
YWluUHRyPE5TQXJyYXk+IHBhc3RlYm9hcmRJdGVtID0gW21fcGFzdGVib2FyZCB2YWx1ZXNGb3JQ
YXN0ZWJvYXJkVHlwZTooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVJMIGluSXRlbVNldDpp
bmRleFNldF07CiAKICAgICBpZiAoIVtwYXN0ZWJvYXJkSXRlbSBjb3VudF0pCiAgICAgICAgIHJl
dHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YXN0ZWJvYXJkUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCmluZGV4IDRiMDU0NGZiNmVkYjgwMzM1NTFhMTQ4ZDRk
ZjFkMWNjYjVmMjQ2YjAuLmM5OTI0NDA0ZmViYjA5YWUwMTdiMTBjZTljNWY4ODJhNTkzMTI3MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQ
cm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3Rl
Ym9hcmRQcm94eUNvY29hLm1tCkBAIC0yMDQsOSArMjA0LDkgQEAgdm9pZCBXZWJQYXN0ZWJvYXJk
UHJveHk6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3Ry
aW5nJgogICAgIHZhbHVlID0gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5yZWFk
U3RyaW5nKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSk7CiB9CiAKLXZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpyZWFkVVJMRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFN0cmluZyYgdXJs
LCBTdHJpbmcmIHRpdGxlKQordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRVUkxGcm9tUGFz
dGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3Ry
aW5nJiB1cmwsIFN0cmluZyYgdGl0bGUpCiB7Ci0gICAgdXJsID0gUGxhdGZvcm1QYXN0ZWJvYXJk
KHBhc3RlYm9hcmROYW1lKS5yZWFkVVJMKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSwgdGl0bGUpOwor
ICAgIHVybCA9IFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkucmVhZFVSTChpbmRl
eCwgdGl0bGUpOwogfQogCiB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZEJ1ZmZlckZyb21Q
YXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxl
LCB1aW50NjRfdCYgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5LmgKaW5kZXggNThiZGZlZDU3ZDQ0ZTcwNTMyNmZmNmMzYTY4YjhmMjQ0NzhmMjI1NC4u
ZTVlYzIwOTMyN2RhMDc2MGU4MmNiNDRhZTgzMzlmZGJkMTkxMDVlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFz
dGVib2FyZEltYWdlJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgdm9pZCB3
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICAgICB2b2lkIHJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV1RGOjpTdHJpbmcmKTsKLSAg
ICB2b2lkIHJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nJiB1
cmwsIFN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgcmVhZFVSTEZyb21QYXN0ZWJvYXJkKHVpbnQ2
NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcmIHVybCwgU3Ry
aW5nJiB0aXRsZSk7CiAgICAgdm9pZCByZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQodWludDY0X3Qg
aW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUsIFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0X3QmIHNpemUpOwogICAgIHZv
aWQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
dWludDY0X3QmIGl0ZW1zQ291bnQpOwogICAgIHZvaWQgYWxsUGFzdGVib2FyZEl0ZW1JbmZvKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFZlY3RvcjxXZWJDb3JlOjpQYXN0ZWJvYXJkSXRl
bUluZm8+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjE3NDlmOTdmNmM5NGM5OGQ1ZjA5NDM2MDI0Nzc5
ZmMwZjgxOTI5ZS4uYjkyY2I4MWI2YTY2ZTAxYjEwNzg4YzlhMmNmNjI1Y2I1ZmM4ZWVjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjcsNyArMjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJv
eHkgewogICAgIFdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9h
cmRJbWFnZSBwYXN0ZWJvYXJkSW1hZ2UsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICAgICBXcml0
ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0LCBT
dHJpbmcgcGFzdGVib2FyZE5hbWUpCiAgICAgUmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2
NF90IGluZGV4LCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkg
LT4gKFN0cmluZyBzdHJpbmcpCi0gICAgUmVhZFVSTEZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGlu
ZGV4LCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0
cmluZyB1cmwsIFN0cmluZyB0aXRsZSkKKyAgICBSZWFkVVJMRnJvbVBhc3RlYm9hcmQodWludDY0
X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyB1cmwsIFN0cmluZyB0
aXRsZSkKICAgICBSZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmlu
ZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpCiAgICAgR2V0UGFzdGVib2Fy
ZEl0ZW1zQ291bnQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAodWludDY0X3QgaXRlbXNDb3Vu
dCkKICAgICBBbGxQYXN0ZWJvYXJkSXRlbUluZm8oU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OlBhc3RlYm9hcmRJdGVtSW5mbz4gYWxsSW5mbykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMmFkZjNjNTk3ZGQ5Mjc5ZTcyMDkzN2E5NDNlYjQw
NWZmYjYzYTlmOC4uNzYwMmY1Yzk0YjJlNTVmZDI3MDVhNWQ1NmZjNjA1MTljOTQ0ZGJmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM1NywxMCArMzU3LDEwIEBAIFJl
ZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEJ1
ZmZlckZyb21QYXN0ZWJvYXJkKGluCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBz
aXplKTsKIH0KIAotV2ViQ29yZTo6VVJMIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFVSTEZy
b21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nJiB0aXRsZSkKK1dlYkNvcmU6OlVSTCBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRVUkxGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFN0cmluZyYgdGl0bGUpCiB7CiAgICAgU3RyaW5n
IHVybFN0cmluZzsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkVVJM
RnJvbVBhc3RlYm9hcmQoaW5kZXgsIHBhc3RlYm9hcmRUeXBlLCBwYXN0ZWJvYXJkTmFtZSksIE1l
c3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRVUkxGcm9tUGFzdGVib2FyZDo6UmVwbHko
dXJsU3RyaW5nLCB0aXRsZSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OlJlYWRVUkxGcm9tUGFzdGVib2FyZChpbmRleCwgcGFzdGVib2FyZE5hbWUpLCBNZXNzYWdl
czo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkVVJMRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHVybFN0
cmluZywgdGl0bGUpLCAwKTsKICAgICByZXR1cm4gVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsU3Ry
aW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGI4OGZjYWI1NzZi
ZTRlZTlhMDkzNDNmMmJlZTFmNjdiMTVlMmEyOGUuLjU5MWQ3OGZjZGQwOWU5MGEwY2FkNWMxMTBi
MzViZGE2MjgyMzljMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTY0LDcg
KzY0LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHJlYWRTdHJpbmdG
cm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOwotICAgIFdlYkNvcmU6OlVSTCByZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpVUkwgcmVhZFVSTEZy
b21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3Ry
aW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBhc3RlYm9hcmRJdGVt
SW5mbz4gYWxsUGFzdGVib2FyZEl0ZW1JbmZvKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRJdGVtSW5mbyBpbmZvcm1hdGlvbkZv
ckl0ZW1BdEluZGV4KGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGlkZW50aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggZGViYjAzMzJiMTJjYWQ1
NGU3NDA5YzdhNjA2NGZkNTllN2Q4MGJlMC4uYThkOTYyNjM0OTRhOGYxMmE4NTE2MDkyZDYzZDYz
NzdiMjVjMWRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTY1LDcgKzY1LDcg
QEAgcHJpdmF0ZToKICAgICBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFz
dGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+IHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRl
OwotICAgIFdlYkNvcmU6OlVSTCByZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBT
dHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpVUkwgcmVhZFVSTEZyb21QYXN0
ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nJiB0
aXRsZSkgb3ZlcnJpZGU7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBhc3RlYm9hcmRJdGVtSW5mbz4g
YWxsUGFzdGVib2FyZEl0ZW1JbmZvKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRJdGVtSW5mbyBpbmZvcm1hdGlvbkZvckl0ZW1B
dEluZGV4KGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7
CiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGlkZW50aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCAwYjE2ZGNkMDkyNWRjYzQ0MWRm
ODhlN2VkNjQzMmE2ZTQzNTgzOWFmLi45ZDU3OGEwYjk1N2YyNjEzMTA2ODg2NTI4NDFkY2Y5ZWNi
NzU0MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0yMzQsOSArMjM0LDkg
QEAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpy
ZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW4KICAgICByZXR1cm4gUGxhdGZvcm1QYXN0ZWJvYXJk
KHBhc3RlYm9hcmROYW1lKS5yZWFkQnVmZmVyKGluZGV4LCB0eXBlKTsKIH0KIAotV2ViQ29yZTo6
VVJMIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFVSTEZyb21QYXN0ZWJvYXJkKGludCBpbmRl
eCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJp
bmcmIHRpdGxlKQorV2ViQ29yZTo6VVJMIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFVSTEZy
b21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3Ry
aW5nJiB0aXRsZSkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmRO
YW1lKS5yZWFkVVJMKGluZGV4LCB0eXBlLCB0aXRsZSk7CisgICAgcmV0dXJuIFBsYXRmb3JtUGFz
dGVib2FyZChwYXN0ZWJvYXJkTmFtZSkucmVhZFVSTChpbmRleCwgdGl0bGUpOwogfQogCiBTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGlu
ZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348524</attachid>
            <date>2018-08-30 12:04:33 -0700</date>
            <delta_ts>2018-08-30 12:14:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189054-20180830120433.patch</filename>
            <type>text/plain</type>
            <size>10902</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUxZTc4MDI5YjA1ZTFm
NDJmN2RlNjJmYTFmMzI0M2YzZGYyMDQxZS4uODA5N2YyZTU2MjZiNjZjOGVkNTMzZTI0NzBjZGY0
NDUwMzc5MTY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA4LTMwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbnNv
bGlkYXRlIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgcmVhZFN0cmluZywgc3RyaW5nRm9yVHlwZSwg
YW5kIHJlYWRVUkwgaW4gUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkwNTQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQzODE5Nzc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgYW5kIHVubmVjZXNzYXJ5IGxvZ2ljIGZvciByZWFk
aW5nIGZyb20gdGhlIHBhc3RlYm9hcmQgb24gaU9TLgorCisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVi
b2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6c3RyaW5n
Rm9yVHlwZSBjb25zdCk6CisKKyAgICAgICAgVGhpcyBjdXJyZW50bHkgZ3JhYnMgYSBzdHJpbmcg
Y29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gdHlwZSBmcm9tIHRoZSBmaXJzdCBpdGVtIGluIHRo
ZSBwYXN0ZWJvYXJkLiBNYWtlCisgICAgICAgIHN0cmluZ0ZvclR5cGUgaW5zdGVhZCBjYWxsIHJl
YWRTdHJpbmcgd2l0aCBwYXN0ZWJvYXJkIGl0ZW0gaW5kZXggMC4KKworICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpjb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5nIGNvbnN0KToKKworICAgICAgICBNYWtlIHJl
YWRTdHJpbmcgd2l0aCAicHVibGljLnVybCIgY2FsbCByZWFkVVJMLgorCisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwgY29uc3QpOgorCisgICAgICAgIFJlbW92
ZSBsb2dpYyBmb3IgcmVhZGluZyBVUkxzIGZyb20gdGhlIHBhc3RlYm9hcmQgYXMgcHJvcGVydHkg
bGlzdHMgZGVzZXJpYWxpemVkIGZyb20gcHJvcGVybHkgbGlzdHMuIFRoaXMgd2FzCisgICAgICAg
IGFkZGVkIGluIHIyMjMxOTUgZHVlIHRvIGZpeCBhIGNhc2UgIndoZW4gVUlQYXN0ZWJvYXJkIHNl
cmlhbGl6ZXMgTlNVUkwgYXMgYSBwbGlzdCIgd2hlbiBncmFiYmluZyBwYXN0ZWJvYXJkIGRhdGEK
KyAgICAgICAgdXNpbmcgLXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNldDouIEhvd2V2
ZXIsIHRoaXMgY2FzZSBvbmx5IGFyaXNlcyBpbiBub24tVUkgYXBwbGljYXRpb25zIChpLmUuIHdo
ZW4KKyAgICAgICAgVUlBcHBsaWNhdGlvbkluaXRpYWxpemUoKSBoYXMgbm90IGJlZW4gaW52b2tl
ZCk7IHRoaXMgaXMgY3VycmVudGx5IGV4ZXJjaXNlZCBieSB0aGUgdGVzdCBDb3B5VVJMLlZhbGlk
VVJMLCBidXQKKyAgICAgICAgZG9lc24ndCByZWFsbHkgY29ycmVzcG9uZCB0byBhIHJlYWwtd29y
bGQgdXNlIGNhc2UsIHNpbmNlIGFsbCBVSSBhcHBsaWNhdGlvbnMgd2hlcmUgYSB1c2VyIHdvdWxk
IGJlIGFibGUgdG8KKyAgICAgICAgcGFzdGUgaW4gYSB3ZWIgdmlldyBhbHJlYWR5IGludm9rZSBV
SUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSgpLgorCisgICAgICAgIEluc3RlYWQgb2YgaGFuZGxpbmcg
dGhlIGNhc2Ugd2hlcmUgdGhlIHBhc3RlYm9hcmQgY29udGFpbnMgYSBwcm9wZXJ0eSBsaXN0IHRo
YXQgaGFzIG5vdCBiZWVuIGNvZXJjZWQgdG8gYW4KKyAgICAgICAgTlNVUkwsIHNpbXBseSByZW1v
dmUgdGhlIGNvZGUgZnJvbSBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwgYW5kIGFsbG93IFVJ
S2l0IHRvIHBlcmZvcm0gdGhlIGNvZXJjaW9uIHdoZW4KKyAgICAgICAgcnVubmluZyB0aGUgdGVz
dC4KKworICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpjb3VudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFVS
TCk6IERlbGV0ZWQuCisKKyAgICAgICAgTWFyayB0aGVzZSBmdW5jdGlvbnMgYXMgYGNvbnN0YC4K
KwogMjAxOC0wOC0zMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtMRkNdW0Zsb2F0aW5nXSBNb3ZlIGNvbnRhaW5pbmcgYmxvY2sgY29uc3RyYWludCBsb2dpYyBm
cm9tIEZsb2F0QXZvaWRlciB0byBGbG9hdGluZ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggMjExYzc4MzliYjdkNGQzNjNhMzA3NTk5
Y2VkY2RlY2I4YmFlZjM0NC4uZGM2NTBjMzMzNTBhODdkOTdjZjUwOTg0ZWI2ZTUzNDUwMjEzOGQ3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJk
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKQEAg
LTkxLDEwICs5MSwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0ZShj
b25zdCBQYXN0ZWJvYXJkSW1hZ2UmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXIoaW50IGluZGV4LCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcmVhZFN0cmlu
ZyhpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpOwotICAgIFdFQkNPUkVf
RVhQT1JUIFVSTCByZWFkVVJMKGludCBpbmRleCwgU3RyaW5nJiB0aXRsZSk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgaW50IGNvdW50KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gcmVhZEJ1ZmZlcihpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWFkU3RyaW5nKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQg
VVJMIHJlYWRVUkwoaW50IGluZGV4LCBTdHJpbmcmIHRpdGxlKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBpbnQgY291bnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgbnVtYmVy
T2ZGaWxlcygpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgbG9uZyB3cml0ZShjb25zdCBQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KaW5kZXggM2RiNjhiNWQ4YTgwNDI2MWY4Mjlm
ODY3YmRhMWE0ODc1ZmNjM2U2Ni4uZTAyODkzZWQ2ZTRhNmIwMWU3MjgyMjFiZjZmMWQ0MThmYjIx
NTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFz
dGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tCkBAIC0yMDIsMTYgKzIwMiw3IEBAIHN0YXRpYyBib29sIHBhc3RlYm9h
cmRNYXlDb250YWluRmlsZVBhdGhzKGlkPEFic3RyYWN0UGFzdGVib2FyZD4gcGFzdGVib2FyZCkK
IAogU3RyaW5nIFBsYXRmb3JtUGFzdGVib2FyZDo6c3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcm
IHR5cGUpIGNvbnN0CiB7Ci0gICAgYXV0byB2YWx1ZSA9IHJldGFpblB0cihbbV9wYXN0ZWJvYXJk
IHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOnR5cGUgaW5JdGVtU2V0OltOU0luZGV4U2V0IGluZGV4
U2V0V2l0aEluZGV4OjBdXS5maXJzdE9iamVjdCk7Ci0gICAgU3RyaW5nIHJlc3VsdDsKLSAgICBp
ZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0pCi0gICAgICAgIHJlc3VsdCA9
IFsoTlNVUkwgKil2YWx1ZSBhYnNvbHV0ZVN0cmluZ107Ci0KLSAgICBlbHNlIGlmIChbdmFsdWUg
aXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIHJlc3Vs
dCA9IFsoTlNBdHRyaWJ1dGVkU3RyaW5nICopdmFsdWUgc3RyaW5nXTsKLQotICAgIGVsc2UgaWYg
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQotICAgICAgICByZXN1bHQg
PSAoTlNTdHJpbmcgKil2YWx1ZTsKKyAgICBhdXRvIHJlc3VsdCA9IHJlYWRTdHJpbmcoMCwgdHlw
ZSk7CiAKICAgICBpZiAocGFzdGVib2FyZE1heUNvbnRhaW5GaWxlUGF0aHMobV9wYXN0ZWJvYXJk
LmdldCgpKSAmJiB0eXBlID09IFN0cmluZyB7IGtVVFR5cGVVUkwgfSkgewogICAgICAgICBpZiAo
IVBhc3RlYm9hcmQ6OmNhbkV4cG9zZVVSTFRvRE9NV2hlblBhc3RlYm9hcmRDb250YWluc0ZpbGVz
KHJlc3VsdCkpCkBAIC02MDcsMTIgKzU5OCwxMiBAQCBsb25nIFBsYXRmb3JtUGFzdGVib2FyZDo6
d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmKQogCiAjZW5kaWYKIAotaW50IFBsYXRm
b3JtUGFzdGVib2FyZDo6Y291bnQoKQoraW50IFBsYXRmb3JtUGFzdGVib2FyZDo6Y291bnQoKSBj
b25zdAogewogICAgIHJldHVybiBbbV9wYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdOwogfQogCi1S
ZWZQdHI8U2hhcmVkQnVmZmVyPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRCdWZmZXIoaW50IGlu
ZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUpCitSZWZQdHI8U2hhcmVkQnVmZmVyPiBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OnJlYWRCdWZmZXIoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0
CiB7CiAgICAgTlNJbmRleFNldCAqaW5kZXhTZXQgPSBbTlNJbmRleFNldCBpbmRleFNldFdpdGhJ
bmRleDppbmRleF07CiAKQEAgLTYyMywxOSArNjE0LDE4IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZEJ1ZmZlcihpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYg
dHlwCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFtwYXN0ZWJvYXJkSXRlbS5nZXQo
KSBvYmplY3RBdEluZGV4OjBdKTsKIH0KIAotU3RyaW5nIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVh
ZFN0cmluZyhpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdHlwZSkKK1N0cmluZyBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0
CiB7Ci0gICAgTlNJbmRleFNldCAqaW5kZXhTZXQgPSBbTlNJbmRleFNldCBpbmRleFNldFdpdGhJ
bmRleDppbmRleF07Ci0KLSAgICBOU0FycmF5ICpwYXN0ZWJvYXJkVmFsdWVzID0gW21fcGFzdGVi
b2FyZCB2YWx1ZXNGb3JQYXN0ZWJvYXJkVHlwZTp0eXBlIGluSXRlbVNldDppbmRleFNldF07Ci0g
ICAgaWYgKCFwYXN0ZWJvYXJkVmFsdWVzLmNvdW50KSB7Ci0gICAgICAgIE5TQXJyYXk8TlNEYXRh
ICo+ICpwYXN0ZWJvYXJkRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBl
OnR5cGUgaW5JdGVtU2V0OmluZGV4U2V0XTsKLSAgICAgICAgaWYgKCFwYXN0ZWJvYXJkRGF0YS5j
b3VudCkKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIHBhc3RlYm9hcmRWYWx1ZXMg
PSBwYXN0ZWJvYXJkRGF0YTsKKyAgICBpZiAodHlwZSA9PSBTdHJpbmcoa1VUVHlwZVVSTCkpIHsK
KyAgICAgICAgU3RyaW5nIHRpdGxlOworICAgICAgICByZXR1cm4gcmVhZFVSTChpbmRleCwgdGl0
bGUpOwogICAgIH0KIAotICAgIFJldGFpblB0cjxpZD4gdmFsdWUgPSBbcGFzdGVib2FyZFZhbHVl
cyBvYmplY3RBdEluZGV4OjBdOworICAgIE5TSW5kZXhTZXQgKmluZGV4U2V0ID0gW05TSW5kZXhT
ZXQgaW5kZXhTZXRXaXRoSW5kZXg6aW5kZXhdOworICAgIGF1dG8gdmFsdWUgPSByZXRhaW5QdHIo
W21fcGFzdGVib2FyZCB2YWx1ZXNGb3JQYXN0ZWJvYXJkVHlwZTp0eXBlIGluSXRlbVNldDppbmRl
eFNldF0uZmlyc3RPYmplY3QgPzogW21fcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6
dHlwZSBpbkl0ZW1TZXQ6aW5kZXhTZXRdLmZpcnN0T2JqZWN0KTsKKyAgICBpZiAoIXZhbHVlKQor
ICAgICAgICByZXR1cm4geyB9OworCiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0Rh
dGEgY2xhc3NdXSkKICAgICAgICAgdmFsdWUgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGlu
aXRXaXRoRGF0YTooTlNEYXRhICopdmFsdWUuZ2V0KCkgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5j
b2RpbmddKTsKICAgICAKQEAgLTY0OSw0NSArNjM5LDIyIEBAIFN0cmluZyBQbGF0Zm9ybVBhc3Rl
Ym9hcmQ6OnJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgICAg
ICAgICByZXR1cm4gdmFsdWUuZ2V0KCk7CiAgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0pCiAgICAgICAgICAgICByZXR1cm4gWyhOU0F0
dHJpYnV0ZWRTdHJpbmcgKil2YWx1ZSBzdHJpbmddOwotICAgIH0gZWxzZSBpZiAodHlwZSA9PSBT
dHJpbmcoa1VUVHlwZVVSTCkpIHsKLSAgICAgICAgQVNTRVJUKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU1VSTCBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
KTsKLSAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQot
ICAgICAgICAgICAgdmFsdWUgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzp2YWx1ZS5nZXQoKV07Ci0g
ICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNVUkwgY2xhc3NdXSAmJiBhbGxvd1Jl
YWRpbmdVUkxBdEluZGV4KChOU1VSTCAqKXZhbHVlLCBpbmRleCkpCi0gICAgICAgICAgICByZXR1
cm4gWyhOU1VSTCAqKXZhbHVlIGFic29sdXRlU3RyaW5nXTsKICAgICB9CiAKICAgICByZXR1cm4g
U3RyaW5nKCk7CiB9CiAKLVVSTCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwoaW50IGluZGV4
LCBTdHJpbmcmIHRpdGxlKQorVVJMIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFVSTChpbnQgaW5k
ZXgsIFN0cmluZyYgdGl0bGUpIGNvbnN0CiB7Ci0gICAgTlNJbmRleFNldCAqaW5kZXhTZXQgPSBb
TlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleDppbmRleF07Ci0gICAgUmV0YWluUHRyPE5TQXJy
YXk+IHBhc3RlYm9hcmRJdGVtID0gW21fcGFzdGVib2FyZCB2YWx1ZXNGb3JQYXN0ZWJvYXJkVHlw
ZTooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVJMIGluSXRlbVNldDppbmRleFNldF07Ci0K
LSAgICBpZiAoIVtwYXN0ZWJvYXJkSXRlbSBjb3VudF0pCisgICAgaWQgdmFsdWUgPSBbbV9wYXN0
ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5
cGVVUkwgaW5JdGVtU2V0OltOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4OmluZGV4XV0uZmly
c3RPYmplY3Q7CisgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGlk
IHZhbHVlID0gW3Bhc3RlYm9hcmRJdGVtIG9iamVjdEF0SW5kZXg6MF07Ci0gICAgTlNVUkwgKnVy
bCA9IG5pbDsKLSAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGF0YSBjbGFzc11dKSB7
Ci0gICAgICAgIGlkIHBsaXN0ID0gW05TUHJvcGVydHlMaXN0U2VyaWFsaXphdGlvbiBwcm9wZXJ0
eUxpc3RXaXRoRGF0YTooTlNEYXRhICopdmFsdWUgb3B0aW9uczpOU1Byb3BlcnR5TGlzdEltbXV0
YWJsZSBmb3JtYXQ6TlVMTCBlcnJvcjpOVUxMXTsKLSAgICAgICAgaWYgKCFbcGxpc3QgaXNLaW5k
T2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAg
ICAgTlNBcnJheSAqcGxpc3RBcnJheSA9IChOU0FycmF5ICopcGxpc3Q7Ci0gICAgICAgIGlmIChw
bGlzdEFycmF5LmNvdW50IDwgMikKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIGlm
IChwbGlzdEFycmF5LmNvdW50ID09IDIpCi0gICAgICAgICAgICB1cmwgPSBbTlNVUkwgVVJMV2l0
aFN0cmluZzpwbGlzdEFycmF5WzBdXTsKLSAgICAgICAgZWxzZSAvLyBUaGUgZmlyc3Qgc3RyaW5n
IGlzIHRoZSByZWxhdGl2ZSBVUkwuCi0gICAgICAgICAgICB1cmwgPSBbTlNVUkwgVVJMV2l0aFN0
cmluZzpwbGlzdEFycmF5WzBdIHJlbGF0aXZlVG9VUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6cGxp
c3RBcnJheVsxXV1dOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNVUkwgY2xhc3NdXSk7Ci0gICAgICAgIGlmICghW3ZhbHVlIGlzS2luZE9mQ2xh
c3M6W05TVVJMIGNsYXNzXV0pCi0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICB1cmwg
PSAoTlNVUkwgKil2YWx1ZTsKLSAgICB9CisgICAgQVNTRVJUKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU1VSTCBjbGFzc11dKTsKKyAgICBpZiAoIVt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1VSTCBj
bGFzc11dKQorICAgICAgICByZXR1cm4geyB9OwogCisgICAgTlNVUkwgKnVybCA9IChOU1VSTCAq
KXZhbHVlOwogICAgIGlmICghYWxsb3dSZWFkaW5nVVJMQXRJbmRleCh1cmwsIGluZGV4KSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDA5ZWE2YjkxNTE5NWMxOGQ3OGYxZmEyOWViYjMwZWZkZWQ0YmYyMWEu
Ljk4NzhlY2NlMWM2NTY5NGFlOTU2NmM4YWVhNTBhNGQ1YzViNmIwZWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
OC0wOC0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBDb25zb2xpZGF0ZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJlYWRTdHJpbmcsIHN0
cmluZ0ZvclR5cGUsIGFuZCByZWFkVVJMIGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MDU0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80MzgxOTc3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0
YWlsLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5VVJM
Lm1tOgorICAgICAgICAoY3JlYXRlV2ViVmlld1dpdGhDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJs
ZWQpOgorCiAyMDE4LTA4LTMwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIFRlc3RXZWJLaXRBUEkuUGFzdGVJbWFnZSB0ZXN0cyBhcmUgZmxh
a3kgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ29weVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q29weVVSTC5tbQppbmRleCBkODhmYTU0YjRlZTcxMDUyZWNmMzFmMWExNjUyNjMzNTk1Nzg2MWU5
Li42YWNkZWUzYzQzNzY2NDE3MWQ2NDY0NzMyZGJiNmU3N2Y5MjQ5OGZiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlVUkwubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5VVJMLm1tCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElP
UykKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW5jbHVkZSA8TW9iaWxlQ29yZVNlcnZpY2VzL01v
YmlsZUNvcmVTZXJ2aWNlcy5oPgogI2VuZGlmCiAKQEAgLTU5LDYgKzYwLDEwIEBAIE5TU3RyaW5n
ICpyZWFkVVJMRnJvbVBhc3RlYm9hcmQoKQogCiBzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZp
ZXc+IGNyZWF0ZVdlYlZpZXdXaXRoQ3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKCkKIHsKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgVUlBcHBsaWNhdGlvbkluaXRpYWxpemUoKTsKKyNlbmRpZgor
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKICAgICBhdXRvIHByZWZlcmVu
Y2VzID0gKFdLUHJlZmVyZW5jZXNSZWYpW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByZWZlcmVu
Y2VzXTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKHByZWZl
cmVuY2VzLCB0cnVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348526</attachid>
            <date>2018-08-30 12:14:12 -0700</date>
            <delta_ts>2018-08-31 16:18:37 -0700</delta_ts>
            <desc>Try to fix the WPE build.</desc>
            <filename>bug-189054-20180830121411.patch</filename>
            <type>text/plain</type>
            <size>11862</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUxZTc4MDI5YjA1ZTFm
NDJmN2RlNjJmYTFmMzI0M2YzZGYyMDQxZS4uNmFhY2EzMzBjNjhkMGRkNmQyZTA2OTgwYmJhMDMy
MGFhMjY0M2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTA4LTMwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbnNv
bGlkYXRlIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgcmVhZFN0cmluZywgc3RyaW5nRm9yVHlwZSwg
YW5kIHJlYWRVUkwgaW4gUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkwNTQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQzODE5Nzc5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgYW5kIHVubmVjZXNzYXJ5IGxvZ2ljIGZvciByZWFk
aW5nIGZyb20gdGhlIHBhc3RlYm9hcmQgb24gaU9TLgorCisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVi
b2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6c3RyaW5n
Rm9yVHlwZSBjb25zdCk6CisKKyAgICAgICAgVGhpcyBjdXJyZW50bHkgZ3JhYnMgYSBzdHJpbmcg
Y29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gdHlwZSBmcm9tIHRoZSBmaXJzdCBpdGVtIGluIHRo
ZSBwYXN0ZWJvYXJkLiBNYWtlCisgICAgICAgIHN0cmluZ0ZvclR5cGUgaW5zdGVhZCBjYWxsIHJl
YWRTdHJpbmcgd2l0aCBwYXN0ZWJvYXJkIGl0ZW0gaW5kZXggMC4KKworICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpjb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5nIGNvbnN0KToKKworICAgICAgICBNYWtlIHJl
YWRTdHJpbmcgd2l0aCAicHVibGljLnVybCIgY2FsbCByZWFkVVJMLgorCisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwgY29uc3QpOgorCisgICAgICAgIFJlbW92
ZSBsb2dpYyBmb3IgcmVhZGluZyBVUkxzIGZyb20gdGhlIHBhc3RlYm9hcmQgYXMgcHJvcGVydHkg
bGlzdHMgZGVzZXJpYWxpemVkIGZyb20gcHJvcGVybHkgbGlzdHMuIFRoaXMgd2FzCisgICAgICAg
IGFkZGVkIGluIHIyMjMxOTUgZHVlIHRvIGZpeCBhIGNhc2UgIndoZW4gVUlQYXN0ZWJvYXJkIHNl
cmlhbGl6ZXMgTlNVUkwgYXMgYSBwbGlzdCIgd2hlbiBncmFiYmluZyBwYXN0ZWJvYXJkIGRhdGEK
KyAgICAgICAgdXNpbmcgLXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNldDouIEhvd2V2
ZXIsIHRoaXMgY2FzZSBvbmx5IGFyaXNlcyBpbiBub24tVUkgYXBwbGljYXRpb25zIChpLmUuIHdo
ZW4KKyAgICAgICAgVUlBcHBsaWNhdGlvbkluaXRpYWxpemUoKSBoYXMgbm90IGJlZW4gaW52b2tl
ZCk7IHRoaXMgaXMgY3VycmVudGx5IGV4ZXJjaXNlZCBieSB0aGUgdGVzdCBDb3B5VVJMLlZhbGlk
VVJMLCBidXQKKyAgICAgICAgZG9lc24ndCByZWFsbHkgY29ycmVzcG9uZCB0byBhIHJlYWwtd29y
bGQgdXNlIGNhc2UsIHNpbmNlIGFsbCBVSSBhcHBsaWNhdGlvbnMgd2hlcmUgYSB1c2VyIHdvdWxk
IGJlIGFibGUgdG8KKyAgICAgICAgcGFzdGUgaW4gYSB3ZWIgdmlldyBhbHJlYWR5IGludm9rZSBV
SUFwcGxpY2F0aW9uSW5pdGlhbGl6ZSgpLgorCisgICAgICAgIEluc3RlYWQgb2YgaGFuZGxpbmcg
dGhlIGNhc2Ugd2hlcmUgdGhlIHBhc3RlYm9hcmQgY29udGFpbnMgYSBwcm9wZXJ0eSBsaXN0IHRo
YXQgaGFzIG5vdCBiZWVuIGNvZXJjZWQgdG8gYW4KKyAgICAgICAgTlNVUkwsIHNpbXBseSByZW1v
dmUgdGhlIGNvZGUgZnJvbSBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRVUkwgYW5kIGFsbG93IFVJ
S2l0IHRvIHBlcmZvcm0gdGhlIGNvZXJjaW9uIHdoZW4KKyAgICAgICAgcnVubmluZyB0aGUgdGVz
dC4KKworICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpjb3VudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFVS
TCk6IERlbGV0ZWQuCisKKyAgICAgICAgTWFyayB0aGVzZSBmdW5jdGlvbnMgYXMgYGNvbnN0YC4K
KworICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFN0cmluZyk6IERlbGV0ZWQu
CisKKyAgICAgICAgTWFyayB0aGlzIGZ1bmN0aW9uIGFzIGNvbnN0LgorCiAyMDE4LTA4LTMwICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bRmxvYXRpbmdd
IE1vdmUgY29udGFpbmluZyBibG9jayBjb25zdHJhaW50IGxvZ2ljIGZyb20gRmxvYXRBdm9pZGVy
IHRvIEZsb2F0aW5nQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaAppbmRleCAyMTFjNzgzOWJiN2Q0ZDM2M2EzMDc1OTljZWRjZGVjYjhiYWVmMzQ0
Li5kYzY1MGMzMzM1MGE4N2Q5N2NmNTA5ODRlYjZlNTM0NTAyMTM4ZDc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtOTEsMTAgKzkxLDEwIEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRJ
bWFnZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGUoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0
ZShjb25zdCBQYXN0ZWJvYXJkVVJMJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gcmVhZEJ1ZmZlcihpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5
cGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWFkU3RyaW5nKGludCBpbmRleCwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlYWRV
UkwoaW50IGluZGV4LCBTdHJpbmcmIHRpdGxlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgY291
bnQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVy
KGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcmVhZFVSTChpbnQg
aW5kZXgsIFN0cmluZyYgdGl0bGUpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGludCBjb3Vu
dCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBsb25nIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21E
YXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFz
dGVib2FyZElPUy5tbQppbmRleCAzZGI2OGI1ZDhhODA0MjYxZjgyOWY4NjdiZGExYTQ4NzVmY2Mz
ZTY2Li5lMDI4OTNlZDZlNGE2YjAxZTcyODIyMWJmNmYxZDQxOGZiMjE1NWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0K
QEAgLTIwMiwxNiArMjAyLDcgQEAgc3RhdGljIGJvb2wgcGFzdGVib2FyZE1heUNvbnRhaW5GaWxl
UGF0aHMoaWQ8QWJzdHJhY3RQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkKQogCiBTdHJpbmcgUGxhdGZv
cm1QYXN0ZWJvYXJkOjpzdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKIHsK
LSAgICBhdXRvIHZhbHVlID0gcmV0YWluUHRyKFttX3Bhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVi
b2FyZFR5cGU6dHlwZSBpbkl0ZW1TZXQ6W05TSW5kZXhTZXQgaW5kZXhTZXRXaXRoSW5kZXg6MF1d
LmZpcnN0T2JqZWN0KTsKLSAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmIChbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNVUkwgY2xhc3NdXSkKLSAgICAgICAgcmVzdWx0ID0gWyhOU1VSTCAqKXZhbHVl
IGFic29sdXRlU3RyaW5nXTsKLQotICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAgcmVzdWx0ID0gWyhOU0F0dHJpYnV0
ZWRTdHJpbmcgKil2YWx1ZSBzdHJpbmddOwotCi0gICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9m
Q2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIHJlc3VsdCA9IChOU1N0cmluZyAqKXZh
bHVlOworICAgIGF1dG8gcmVzdWx0ID0gcmVhZFN0cmluZygwLCB0eXBlKTsKIAogICAgIGlmIChw
YXN0ZWJvYXJkTWF5Q29udGFpbkZpbGVQYXRocyhtX3Bhc3RlYm9hcmQuZ2V0KCkpICYmIHR5cGUg
PT0gU3RyaW5nIHsga1VUVHlwZVVSTCB9KSB7CiAgICAgICAgIGlmICghUGFzdGVib2FyZDo6Y2Fu
RXhwb3NlVVJMVG9ET01XaGVuUGFzdGVib2FyZENvbnRhaW5zRmlsZXMocmVzdWx0KSkKQEAgLTYw
NywxMiArNTk4LDEyIEBAIGxvbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0
ZWJvYXJkQ3VzdG9tRGF0YSYpCiAKICNlbmRpZgogCi1pbnQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpj
b3VudCgpCitpbnQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpjb3VudCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFttX3Bhc3RlYm9hcmQgbnVtYmVyT2ZJdGVtc107CiB9CiAKLVJlZlB0cjxTaGFyZWRCdWZm
ZXI+IFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZEJ1ZmZlcihpbnQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgdHlwZSkKK1JlZlB0cjxTaGFyZWRCdWZmZXI+IFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZEJ1
ZmZlcihpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKIHsKICAgICBOU0luZGV4
U2V0ICppbmRleFNldCA9IFtOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4OmluZGV4XTsKIApA
QCAtNjIzLDE5ICs2MTQsMTggQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gUGxhdGZvcm1QYXN0ZWJv
YXJkOjpyZWFkQnVmZmVyKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiB0eXAKICAgICByZXR1cm4g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoW3Bhc3RlYm9hcmRJdGVtLmdldCgpIG9iamVjdEF0SW5kZXg6
MF0pOwogfQogCi1TdHJpbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGludCBpbmRl
eCwgY29uc3QgU3RyaW5nJiB0eXBlKQorU3RyaW5nIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFN0
cmluZyhpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKIHsKLSAgICBOU0luZGV4
U2V0ICppbmRleFNldCA9IFtOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4OmluZGV4XTsKLQot
ICAgIE5TQXJyYXkgKnBhc3RlYm9hcmRWYWx1ZXMgPSBbbV9wYXN0ZWJvYXJkIHZhbHVlc0ZvclBh
c3RlYm9hcmRUeXBlOnR5cGUgaW5JdGVtU2V0OmluZGV4U2V0XTsKLSAgICBpZiAoIXBhc3RlYm9h
cmRWYWx1ZXMuY291bnQpIHsKLSAgICAgICAgTlNBcnJheTxOU0RhdGEgKj4gKnBhc3RlYm9hcmRE
YXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6dHlwZSBpbkl0ZW1TZXQ6
aW5kZXhTZXRdOwotICAgICAgICBpZiAoIXBhc3RlYm9hcmREYXRhLmNvdW50KQotICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgcGFzdGVib2FyZFZhbHVlcyA9IHBhc3RlYm9hcmREYXRh
OworICAgIGlmICh0eXBlID09IFN0cmluZyhrVVRUeXBlVVJMKSkgeworICAgICAgICBTdHJpbmcg
dGl0bGU7CisgICAgICAgIHJldHVybiByZWFkVVJMKGluZGV4LCB0aXRsZSk7CiAgICAgfQogCi0g
ICAgUmV0YWluUHRyPGlkPiB2YWx1ZSA9IFtwYXN0ZWJvYXJkVmFsdWVzIG9iamVjdEF0SW5kZXg6
MF07CisgICAgTlNJbmRleFNldCAqaW5kZXhTZXQgPSBbTlNJbmRleFNldCBpbmRleFNldFdpdGhJ
bmRleDppbmRleF07CisgICAgYXV0byB2YWx1ZSA9IHJldGFpblB0cihbbV9wYXN0ZWJvYXJkIHZh
bHVlc0ZvclBhc3RlYm9hcmRUeXBlOnR5cGUgaW5JdGVtU2V0OmluZGV4U2V0XS5maXJzdE9iamVj
dCA/OiBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTp0eXBlIGluSXRlbVNldDpp
bmRleFNldF0uZmlyc3RPYmplY3QpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiB7
IH07CisKICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGF0YSBjbGFzc11dKQogICAg
ICAgICB2YWx1ZSA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOihOU0Rh
dGEgKil2YWx1ZS5nZXQoKSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOwogICAgIApA
QCAtNjQ5LDQ1ICs2MzksMjIgQEAgU3RyaW5nIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFN0cmlu
ZyhpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAgICAgIHJldHVybiB2YWx1
ZS5nZXQoKTsKICAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRT
dHJpbmcgY2xhc3NdXSkKICAgICAgICAgICAgIHJldHVybiBbKE5TQXR0cmlidXRlZFN0cmluZyAq
KXZhbHVlIHN0cmluZ107Ci0gICAgfSBlbHNlIGlmICh0eXBlID09IFN0cmluZyhrVVRUeXBlVVJM
KSkgewotICAgICAgICBBU1NFUlQoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0g
fHwgW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOwotICAgICAgICBpZiAo
W3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgICAgICB2YWx1
ZSA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnZhbHVlLmdldCgpXTsKLSAgICAgICAgaWYgKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU1VSTCBjbGFzc11dICYmIGFsbG93UmVhZGluZ1VSTEF0SW5kZXgo
KE5TVVJMICopdmFsdWUsIGluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiBbKE5TVVJMICopdmFs
dWUgYWJzb2x1dGVTdHJpbmddOwogICAgIH0KIAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAot
VVJMIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFVSTChpbnQgaW5kZXgsIFN0cmluZyYgdGl0bGUp
CitVUkwgUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkVVJMKGludCBpbmRleCwgU3RyaW5nJiB0aXRs
ZSkgY29uc3QKIHsKLSAgICBOU0luZGV4U2V0ICppbmRleFNldCA9IFtOU0luZGV4U2V0IGluZGV4
U2V0V2l0aEluZGV4OmluZGV4XTsKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gcGFzdGVib2FyZEl0
ZW0gPSBbbV9wYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihfX2JyaWRnZSBOU1N0
cmluZyAqKWtVVFR5cGVVUkwgaW5JdGVtU2V0OmluZGV4U2V0XTsKLQotICAgIGlmICghW3Bhc3Rl
Ym9hcmRJdGVtIGNvdW50XSkKKyAgICBpZCB2YWx1ZSA9IFttX3Bhc3RlYm9hcmQgdmFsdWVzRm9y
UGFzdGVib2FyZFR5cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVSTCBpbkl0ZW1TZXQ6
W05TSW5kZXhTZXQgaW5kZXhTZXRXaXRoSW5kZXg6aW5kZXhdXS5maXJzdE9iamVjdDsKKyAgICBp
ZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWQgdmFsdWUgPSBbcGFzdGVi
b2FyZEl0ZW0gb2JqZWN0QXRJbmRleDowXTsKLSAgICBOU1VSTCAqdXJsID0gbmlsOwotICAgIGlm
IChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pIHsKLSAgICAgICAgaWQgcGxp
c3QgPSBbTlNQcm9wZXJ0eUxpc3RTZXJpYWxpemF0aW9uIHByb3BlcnR5TGlzdFdpdGhEYXRhOihO
U0RhdGEgKil2YWx1ZSBvcHRpb25zOk5TUHJvcGVydHlMaXN0SW1tdXRhYmxlIGZvcm1hdDpOVUxM
IGVycm9yOk5VTExdOwotICAgICAgICBpZiAoIVtwbGlzdCBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pCi0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICBOU0FycmF5ICpwbGlz
dEFycmF5ID0gKE5TQXJyYXkgKilwbGlzdDsKLSAgICAgICAgaWYgKHBsaXN0QXJyYXkuY291bnQg
PCAyKQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKHBsaXN0QXJyYXkuY291
bnQgPT0gMikKLSAgICAgICAgICAgIHVybCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsaXN0QXJy
YXlbMF1dOwotICAgICAgICBlbHNlIC8vIFRoZSBmaXJzdCBzdHJpbmcgaXMgdGhlIHJlbGF0aXZl
IFVSTC4KLSAgICAgICAgICAgIHVybCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsaXN0QXJyYXlb
MF0gcmVsYXRpdmVUb1VSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpwbGlzdEFycmF5WzFdXV07Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1VSTCBj
bGFzc11dKTsKLSAgICAgICAgaWYgKCFbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNVUkwgY2xhc3Nd
XSkKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIHVybCA9IChOU1VSTCAqKXZhbHVl
OwotICAgIH0KKyAgICBBU1NFUlQoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0p
OworICAgIGlmICghW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0pCisgICAgICAg
IHJldHVybiB7IH07CiAKKyAgICBOU1VSTCAqdXJsID0gKE5TVVJMICopdmFsdWU7CiAgICAgaWYg
KCFhbGxvd1JlYWRpbmdVUkxBdEluZGV4KHVybCwgaW5kZXgpKQogICAgICAgICByZXR1cm4geyB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0
ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3Rl
Ym9hcmRXUEUuY3BwCmluZGV4IDRhMjYyMjJkZTZmYzRiOWIyZDRjMjc0ZGZmNzUzYzE5MzQ5M2I4
OWYuLjlkYTRjYmE5NTFjYTVlOTFmODE2Yzg2MTA1YzExNjEwYzViNDYzYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpnZXRUeXBlcyhWZWN0
b3I8U3RyaW5nPiYgdHlwZXMpCiAgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3Rvcl9mcmVl
KCZwYXN0ZWJvYXJkVHlwZXMpOwogfQogCi1TdHJpbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFk
U3RyaW5nKGludCwgY29uc3QgU3RyaW5nJiB0eXBlKQorU3RyaW5nIFBsYXRmb3JtUGFzdGVib2Fy
ZDo6cmVhZFN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKIHsKICAgICBzdHJ1
Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nIHN0cmluZyA9IHsgbnVsbHB0ciwgMCB9OwogICAgIHdw
ZV9wYXN0ZWJvYXJkX2dldF9zdHJpbmcobV9wYXN0ZWJvYXJkLCB0eXBlLnV0ZjgoKS5kYXRhKCks
ICZzdHJpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDA5ZWE2YjkxNTE5NWMxOGQ3OGYxZmEyOWViYjMwZWZkZWQ0YmYyMWEuLjk4NzhlY2Nl
MWM2NTY5NGFlOTU2NmM4YWVhNTBhNGQ1YzViNmIwZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wOC0zMCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBD
b25zb2xpZGF0ZSB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHJlYWRTdHJpbmcsIHN0cmluZ0ZvclR5
cGUsIGFuZCByZWFkVVJMIGluIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MDU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80MzgxOTc3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlsLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5VVJMLm1tOgorICAg
ICAgICAoY3JlYXRlV2ViVmlld1dpdGhDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQpOgorCiAy
MDE4LTA4LTMwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdIFRlc3RXZWJLaXRBUEkuUGFzdGVJbWFnZSB0ZXN0cyBhcmUgZmxha3kgZmFpbHVy
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29w
eVVSTC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weVVSTC5t
bQppbmRleCBkODhmYTU0YjRlZTcxMDUyZWNmMzFmMWExNjUyNjMzNTk1Nzg2MWU5Li42YWNkZWUz
YzQzNzY2NDE3MWQ2NDY0NzMyZGJiNmU3N2Y5MjQ5OGZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlVUkwubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5VVJMLm1tCkBAIC0zNCw2ICszNCw3IEBACiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKKyNpbXBv
cnQgIlVJS2l0U1BJLmgiCiAjaW5jbHVkZSA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVT
ZXJ2aWNlcy5oPgogI2VuZGlmCiAKQEAgLTU5LDYgKzYwLDEwIEBAIE5TU3RyaW5nICpyZWFkVVJM
RnJvbVBhc3RlYm9hcmQoKQogCiBzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IGNyZWF0
ZVdlYlZpZXdXaXRoQ3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKCkKIHsKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgVUlBcHBsaWNhdGlvbkluaXRpYWxpemUoKTsKKyNlbmRpZgorCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKICAgICBhdXRvIHByZWZlcmVuY2VzID0gKFdL
UHJlZmVyZW5jZXNSZWYpW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByZWZlcmVuY2VzXTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0RGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>