<?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>195894</bug_id>
          
          <creation_ts>2019-03-18 10:27:12 -0700</creation_ts>
          <short_desc>[iOS] Native selection views sometimes appear in hidden editable areas after losing focus</short_desc>
          <delta_ts>2019-03-18 14:23:17 -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>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</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>1517753</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-18 10:27:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/48849989&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517840</commentid>
    <comment_count>1</comment_count>
      <attachid>365043</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-18 12:14:52 -0700</bug_when>
    <thetext>Created attachment 365043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517843</commentid>
    <comment_count>2</comment_count>
      <attachid>365043</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-03-18 12:17:13 -0700</bug_when>
    <thetext>Comment on attachment 365043
Patch

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

&gt; Source/WebKit/ChangeLog:22
&gt; +        Rename elementIsTransparentOrFullyClipped to editableRootIsTransparentOrFullyClipped, and additional compute

additional*ly*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517844</commentid>
    <comment_count>3</comment_count>
      <attachid>365043</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-18 12:18:17 -0700</bug_when>
    <thetext>Comment on attachment 365043
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        On certain websites, focus is moved away from an editable element while maintaing a selection inside the

Also, &quot;maintaing&quot; :|

&gt;&gt; Source/WebKit/ChangeLog:22
&gt;&gt; +        Rename elementIsTransparentOrFullyClipped to editableRootIsTransparentOrFullyClipped, and additional compute
&gt; 
&gt; additional*ly*

(OOPS!) Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517888</commentid>
    <comment_count>4</comment_count>
      <attachid>365055</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-18 13:44:22 -0700</bug_when>
    <thetext>Created attachment 365055
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517920</commentid>
    <comment_count>5</comment_count>
      <attachid>365055</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-18 14:22:59 -0700</bug_when>
    <thetext>Comment on attachment 365055
Patch for landing

Clearing flags on attachment: 365055

Committed r243102: &lt;https://trac.webkit.org/changeset/243102&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365043</attachid>
            <date>2019-03-18 12:14:52 -0700</date>
            <delta_ts>2019-03-18 12:17:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195894-20190318121452.patch</filename>
            <type>text/plain</type>
            <size>24405</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1MGE3ODQyNWYzZmUxZGZi
Nzk0ZTRmY2IzZTBlOGFmNDZjYzA3NDUuLjNhYzFjZjk3MmM4OTkzNGIzZDA3OTJhOTQ2MjVmMzAy
MTZlM2Q3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMDMtMTggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTmF0aXZlIHNl
bGVjdGlvbiB2aWV3cyBzb21ldGltZXMgYXBwZWFyIGluIGhpZGRlbiBlZGl0YWJsZSBhcmVhcyBh
ZnRlciBsb3NpbmcgZm9jdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTg5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg4NDk5ODk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24gY2VydGFpbiB3
ZWJzaXRlcywgZm9jdXMgaXMgbW92ZWQgYXdheSBmcm9tIGFuIGVkaXRhYmxlIGVsZW1lbnQgd2hp
bGUgbWFpbnRhaW5nIGEgc2VsZWN0aW9uIGluc2lkZSB0aGUKKyAgICAgICAgZWRpdGFibGUgZWxl
bWVudC4gSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGVkaXRhYmxlIGVsZW1lbnQgaXMgaGlkZGVuLCB0
aGlzIGN1cnJlbnRseSBicmVha3Mgb3VyIHRleHQgaW50ZXJhY3Rpb24KKyAgICAgICAgc3VwcHJl
c3Npb24gaGV1cmlzdGljcywgd2hpY2ggc3VwcHJlc3MgdGV4dCBzZWxlY3Rpb24gZ2VzdHVyZXMg
YW5kIG92ZXJsYXlzIGluc2lkZSBmb2N1c2VkIGhpZGRlbiBlZGl0YWJsZQorICAgICAgICBlbGVt
ZW50cy4gVG8gZml4IHRoaXMsIHdlIHJlZmFjdG9yIG91ciB0ZXh0IGludGVyYWN0aW9uIHN1cHBy
ZXNzaW9uIGhldXJpc3RpY3MsIHN1Y2ggdGhhdCB0aGV5IGFyZSBub3QgZGVwZW5kZW50CisgICAg
ICAgIG9uIGFuIGVkaXRhYmxlIGVsZW1lbnQgYmVpbmcgZm9jdXNlZC4gU2VlIGNoYW5nZXMgYmVs
b3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9p
b3MvaGlkZS1zZWxlY3Rpb24taW4tbm9uLWZvY3VzZWQtZWxlbWVudC5odG1sCisKKyAgICAgICAg
KiBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JTdGF0ZTo6
UG9zdExheW91dERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0
YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRWRpdG9yU3Rh
dGUuaDoKKworICAgICAgICBSZW5hbWUgZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBl
ZCB0byBlZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQsIGFuZCBhZGRpdGlv
bmFsIGNvbXB1dGUKKyAgICAgICAgdGhpcyBmbGFnIGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIHJv
b3QgZWRpdGFibGUgZWxlbWVudCBjb250YWluaW5nIHRoZSBzZWxlY3Rpb24gaXMgdHJhbnNwYXJl
bnQgb3IgY2xpcHBlZCwKKyAgICAgICAgaW5zdGVhZCBvZiB1c2luZyB0aGUgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudC4KKworICAgICAgICAqIFNoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oOgor
CisgICAgICAgIFJlbW92ZSB0aGUgZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCBm
bGFnIGZyb20gRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiAoc2VlIGJlbG93IGZvciBtb3JlIGRl
dGFpbCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oOgorCisgICAgICAgIFJlbmFtZSBGb2N1c2VkRWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5
Q2xpcHBlZCB0byBFZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfem9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1lbnRdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJs
dXJQcmV2aW91c05vZGU6Y2hhbmdpbmdBY3Rpdml0eVN0YXRlOnVzZXJPYmplY3Q6XSk6CisKKyAg
ICAgICAgUmVtb3ZlIGxvZ2ljIHRoYXQgY3VycmVudGx5IHVzZXMgc3RhdGUgb24gRm9jdXNlZEVs
ZW1lbnRJbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlciB0byBzdXBwcmVzcyBwbGF0Zm9y
bQorICAgICAgICB0ZXh0IGludGVyYWN0aW9uczsgaW5zdGVhZCwgb25seSB1c2UgRWRpdG9yU3Rh
dGUgdG8gbWFrZSB0aGlzIGRldGVybWluYXRpb24uIFRoaXMgbG9naWMgd2FzIG9yaWdpbmFsbHkg
YWRkZWQgaW4KKyAgICAgICAgdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRleHQg
aW50ZXJhY3Rpb24gc3VwcHJlc3Npb24gaGV1cmlzdGljIGFzIGEgd2F5IHRvIGJlZ2luIHN1cHBy
ZXNzaW5nIHRleHQKKyAgICAgICAgc2VsZWN0aW9uIHN0YXRlIGJlZm9yZSBhdHRlbXB0aW5nIHRv
IHpvb20gdG8gcmV2ZWFsIHRoZSBmb2N1c2VkIGVsZW1lbnQ7IGhvd2V2ZXIsIHNpbmNlIHdlIG5v
dyB6b29tIHRvIHJldmVhbAorICAgICAgICB0aGUgdGV4dCBzZWxlY3Rpb24gd2hlbiBmb2N1c2lu
ZyBlZGl0YWJsZSBlbGVtZW50cywgem9vbWluZyBpcyBkZWZlcnJlZCB1bnRpbCB0aGUgbmV4dCBj
b21wbGV0ZSBFZGl0b3JTdGF0ZQorICAgICAgICB1cGRhdGUgYXJyaXZlcyBpbiB0aGUgVUkgcHJv
Y2VzcyBzbyB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGJlZ2lubmluZyB0byBzdXBwcmVz
cyB0ZXh0IGludGVyYWN0aW9ucyBwcmlvcgorICAgICAgICB0byB0aGlzIGluaXRpYWwgZWRpdG9y
IHN0YXRlIHVwZGF0ZS4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkQmx1
cl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF91cGRhdGVTZWxlY3Rpb25Bc3Npc3RhbnRT
dXBwcmVzc2lvblN0YXRlXSk6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0aGF0IHVw
ZGF0ZXMgdGV4dCBzZWxlY3Rpb24gc3VwcHJlc3Npb24gc3RhdGUgdXNpbmcgdGhlIGN1cnJlbnQg
RWRpdG9yU3RhdGUuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2VsZWN0aW9uQ2hhbmdl
ZF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF91cGRhdGVDaGFuZ2VkU2VsZWN0aW9uOl0p
OgorCisgICAgICAgIEFsd2F5cyB1cGRhdGUgdGV4dCBzdXBwcmVzc2lvbiBzdGF0ZSB3aGVuIHJl
Y2VpdmluZyBhbiBFZGl0b3JTdGF0ZSwgaW5zdGVhZCBvZiBvbmx5IGRvaW5nIHNvIHdoZW4gcHJv
Y2Vzc2luZyBhCisgICAgICAgIHRleHQgc2VsZWN0aW9uIGdlc3R1cmUuCisKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfc3RhcnRTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNv
bjpdKToKKworICAgICAgICBSZW5hbWVkIGZyb20gX2JlZ2luU3VwcHJlc3NpbmdTZWxlY3Rpb25B
c3Npc3RhbnRGb3JSZWFzb246LCB0byBiZXR0ZXIgbWF0Y2ggInN0YXJ0L2VuZCIgdGVybWlub2xv
Z3kgb2YKKyAgICAgICAgX2VuZFN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29u
Oi4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJbnRlcmFjdGlvbjpwZXJmb3JtRHJv
cDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYmVnaW5TdXBwcmVzc2luZ1NlbGVjdGlv
bkFzc2lzdGFudEZvclJlYXNvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjplZGl0
b3JTdGF0ZUNoYW5nZWQpOgorCisgICAgICAgIEVuc3VyZSB0aGF0IHdlIHJ1biBsb2dpYyB0byB6
b29tIHRvIHRoZSBmb2N1c2VkIGVsZW1lbnQgKmFmdGVyKiB1cGRhdGluZyB0ZXh0IHNlbGVjdGlv
biBzdXBwcmVzc2lvbiBzdGF0ZSwgc28gd2UKKyAgICAgICAgZG9uJ3QgZXJyb25lb3VzbHkgem9v
bSB0byByZXZlYWwgaGlkZGVuIGVkaXRhYmxlIGVsZW1lbnRzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpwbGF0Zm9ybUVkaXRvclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Z2V0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbik6CisKIDIwMTktMDMtMTYgIERlYW4gSmFja3Nv
biAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVChnZXN0dXJlUmVjb2duaXplciA9
PSBfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIpIGluIF9kb3VibGVUYXBEaWRGYWlsOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCmluZGV4IGMxMTUzYjI4NjNhNTBiOTdiMDQ2ZDI1
ZDkzNzExZGU1ZGQzZGYyMDMuLmYzYmFjZjVhOGY3ZmJjNjMzMDc4MTBjODMyZWFkMzJkZTMzOTA4
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBA
QCB2b2lkIEVkaXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlzU3RhYmxlU3RhdGVVcGRhdGU7CiAgICAg
ZW5jb2RlciA8PCBpbnNpZGVGaXhlZFBvc2l0aW9uOwogICAgIGVuY29kZXIgPDwgaGFzUGxhaW5U
ZXh0OwotICAgIGVuY29kZXIgPDwgZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZDsK
KyAgICBlbmNvZGVyIDw8IGVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZDsK
ICAgICBlbmNvZGVyIDw8IGNhcmV0Q29sb3I7CiAgICAgZW5jb2RlciA8PCBhdFN0YXJ0T2ZTZW50
ZW5jZTsKICNlbmRpZgpAQCAtMTkxLDcgKzE5MSw3IEBAIGJvb2wgRWRpdG9yU3RhdGU6OlBvc3RM
YXlvdXREYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQb3N0TGF5b3V0RGF0YSYK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmhh
c1BsYWluVGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5lbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNs
aXBwZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuY2FyZXRDb2xvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
ZGl0b3JTdGF0ZS5oCmluZGV4IDRlMWQ1YTRlYjA0YjU2MWYyOWY4ZDUwZjk2NWYwMDZlMGViYmNi
NGUuLmVmOThkM2JlNWEzNzEyOTIzMWU3YmRkZGRmMzBkNWQ0MGFhN2ZlY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvRWRpdG9yU3RhdGUuaApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0cnVjdCBFZGl0b3JTdGF0
ZSB7CiAgICAgICAgIGJvb2wgaXNTdGFibGVTdGF0ZVVwZGF0ZSB7IGZhbHNlIH07CiAgICAgICAg
IGJvb2wgaW5zaWRlRml4ZWRQb3NpdGlvbiB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaGFzUGxh
aW5UZXh0IHsgZmFsc2UgfTsKLSAgICAgICAgYm9vbCBlbGVtZW50SXNUcmFuc3BhcmVudE9yRnVs
bHlDbGlwcGVkIHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBlZGl0YWJsZVJvb3RJc1RyYW5zcGFy
ZW50T3JGdWxseUNsaXBwZWQgeyBmYWxzZSB9OwogICAgICAgICBXZWJDb3JlOjpDb2xvciBjYXJl
dENvbG9yOwogICAgICAgICBib29sIGF0U3RhcnRPZlNlbnRlbmNlIHsgZmFsc2UgfTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
LmNwcAppbmRleCA0YzViNzJjOGIzNjQxMDA3YjkyZjQ0ZTRkMDA1YWRhN2U3NzgzYTU1Li5iYzJi
YzMzMzVkMmY0YzJmZGQ3NDRhZDdiZTgyMzA1MDBkODg1MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcApAQCAtOTEsNyArOTEs
NiBAQCB2b2lkIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb246OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB0aXRsZTsKICAgICBlbmNvZGVyIDw8IGFj
Y2VwdHNBdXRvZmlsbGVkTG9naW5DcmVkZW50aWFsczsKICAgICBlbmNvZGVyIDw8IGlzQXV0b2Zp
bGxhYmxlVXNlcm5hbWVGaWVsZDsKLSAgICBlbmNvZGVyIDw8IGVsZW1lbnRJc1RyYW5zcGFyZW50
T3JGdWxseUNsaXBwZWQ7CiAgICAgZW5jb2RlciA8PCByZXByZXNlbnRpbmdQYWdlVVJMOwogICAg
IGVuY29kZXIuZW5jb2RlRW51bShhdXRvZmlsbEZpZWxkTmFtZSk7CiAgICAgZW5jb2RlciA8PCBw
bGFjZWhvbGRlcjsKQEAgLTE5Myw5ICsxOTIsNiBAQCBib29sIEZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEZvY3VzZWRFbGVtZW50SW5mbwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzQXV0b2ZpbGxhYmxlVXNlcm5hbWVGaWVs
ZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5yZXByZXNlbnRpbmdQYWdl
VVJMKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgKaW5kZXggODM1YTBjYTI3MWNmMTcwNjBmNGMy
ZDdlZmY3YzdiN2Y0YTZmNGZmZS4uMTg4ZDVhN2U5Y2I1MDQxZDI1ZTIwNTNmNGFlZDk0OGRkYmEz
NGFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24uaApAQCAtMTI0LDcgKzEyNCw2IEBAIHN0cnVjdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uIHsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgYm9vbCBhY2NlcHRzQXV0b2ZpbGxlZExvZ2lu
Q3JlZGVudGlhbHMgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNBdXRvZmlsbGFibGVVc2VybmFtZUZp
ZWxkIHsgZmFsc2UgfTsKLSAgICBib29sIGVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBw
ZWQgeyBmYWxzZSB9OwogICAgIFVSTCByZXByZXNlbnRpbmdQYWdlVVJMOwogICAgIFdlYkNvcmU6
OkF1dG9maWxsRmllbGROYW1lIGF1dG9maWxsRmllbGROYW1lIHsgV2ViQ29yZTo6QXV0b2ZpbGxG
aWVsZE5hbWU6Ok5vbmUgfTsKICAgICBTdHJpbmcgcGxhY2Vob2xkZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5k
ZXggNDRhOTZmNzQxOWY3ZmFlNGU5ZTgxOTdiOWQ4NWZmZjc1MDhjMzJiZS4uNDlmMTYzNzkzMGY0
MzI0MmJhMGU2ZmYzYWI4NTYzNmQ3ZDQzNDIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTU2LDcgKzE1
Niw3IEBAIHR5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJl
cXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51
bSBTdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbiA6IHVpbnQ4X3QgewotICAgIEZvY3Vz
ZWRFbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkID0gMSA8PCAwLAorICAgIEVkaXRh
YmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCA9IDEgPDwgMCwKICAgICBGb2N1c2Vk
RWxlbWVudElzVG9vU21hbGwgPSAxIDw8IDEsCiAgICAgRHJvcEFuaW1hdGlvbklzUnVubmluZyA9
IDEgPDwgMgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDI3ZDQ4ZDQ1OGE2MDU4YjZmMTI3MjdjMjMy
OGExMDgyNjRmMzdlNmQuLmIyNWEzZWEzODgzYTRkZTE4OTJmOWYwMGJkNTEyYmYzODUzM2Q2OGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTYxMSw3ICsxNjExLDcgQEAgLSAoQk9PTClfcmVxdWlyZXNL
ZXlib2FyZFJlc2V0T25SZWxvYWQKIAogLSAodm9pZClfem9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1l
bnQKIHsKLSAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucy5jb250YWlu
cyhXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKSB8fCBf
c3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zLmNvbnRhaW5zKFdlYktpdDo6Rm9jdXNl
ZEVsZW1lbnRJc1Rvb1NtYWxsKSkKKyAgICBpZiAoX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50
UmVhc29ucy5jb250YWlucyhXZWJLaXQ6OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5
Q2xpcHBlZCkgfHwgX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucy5jb250YWlucyhX
ZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFNldEZvclNjb3BlPEJPT0w+IGlzWm9vbWluZ1RvUmV2ZWFsRm9jdXNlZEVsZW1lbnRGb3JTY29w
ZSB7IF9pc1pvb21pbmdUb1JldmVhbEZvY3VzZWRFbGVtZW50LCBZRVMgfTsKQEAgLTQ4MjksOCAr
NDgyOSw2IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdFRvUmV2ZWFsV2hlblpvb21p
bmdUb0ZvY3VzZWRFbGVtZW50KGNvbnN0IFdlYktpdDo6CiAgICAgcmV0dXJuIHNlbGVjdGlvbkJv
dW5kaW5nUmVjdDsKIH0KIAotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtRm9jdXNlZEVsZW1l
bnRBcmVhRm9yU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnQgPSA0OwotCiAtICh2b2lkKV9l
bGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYp
aW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1
clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIGNoYW5naW5nQWN0aXZpdHlTdGF0
ZTooQk9PTCljaGFuZ2luZ0FjdGl2aXR5U3RhdGUgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2Vj
dXJlQ29kaW5nPiAqKXVzZXJPYmplY3QKIHsKICAgICBTZXRGb3JTY29wZTxCT09MPiBpc0NoYW5n
aW5nRm9jdXNGb3JTY29wZSB7IF9pc0NoYW5naW5nRm9jdXMsIGhhc0ZvY3VzZWRFbGVtZW50KF9m
b2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKSB9OwpAQCAtNDg1MywxNyArNDg1MSw2IEBAIC0gKHZv
aWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uJilpbmZvcm1hdGlvbiB1CiAgICAgaWYgKFtpbnB1dERlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6KV0p
CiAgICAgICAgIHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5ID0gW2lucHV0RGVsZWdhdGUgX3dlYlZp
ZXc6X3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6Zm9jdXNlZEVsZW1lbnRJ
bmZvLmdldCgpXTsKIAotICAgIGlmIChpbmZvcm1hdGlvbi5lbGVtZW50SXNUcmFuc3BhcmVudE9y
RnVsbHlDbGlwcGVkKQotICAgICAgICBbc2VsZiBfYmVnaW5TdXBwcmVzc2luZ1NlbGVjdGlvbkFz
c2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUcmFuc3BhcmVudE9yRnVs
bHlDbGlwcGVkXTsKLSAgICBlbHNlCi0gICAgICAgIFtzZWxmIF9zdG9wU3VwcHJlc3NpbmdTZWxl
Y3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVHJhbnNwYXJl
bnRPckZ1bGx5Q2xpcHBlZF07Ci0KLSAgICBhdXRvIGVsZW1lbnRBcmVhID0gaW5mb3JtYXRpb24u
ZWxlbWVudFJlY3QuYXJlYTxSZWNvcmRPdmVyZmxvdz4oKTsKLSAgICBpZiAoIWVsZW1lbnRBcmVh
Lmhhc092ZXJmbG93ZWQoKSAmJiBlbGVtZW50QXJlYSA8IG1pbmltdW1Gb2N1c2VkRWxlbWVudEFy
ZWFGb3JTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudCkKLSAgICAgICAgW3NlbGYgX2JlZ2lu
U3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxl
bWVudElzVG9vU21hbGxdOwotICAgIGVsc2UKLSAgICAgICAgW3NlbGYgX3N0b3BTdXBwcmVzc2lu
Z1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29T
bWFsbF07Ci0KICAgICBCT09MIHNob3VsZFNob3dJbnB1dFZpZXcgPSBbJl0gewogICAgICAgICBz
d2l0Y2ggKHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5KSB7CiAgICAgICAgIGNhc2UgX1dLRm9jdXNT
dGFydHNJbnB1dFNlc3Npb25Qb2xpY3lBdXRvOgpAQCAtNTAzNywxMSArNTAyNCw4IEBAIC0gKHZv
aWQpX2VsZW1lbnREaWRCbHVyCiAgICAgW193ZWJWaWV3IGRpZEVuZEZvcm1Db250cm9sSW50ZXJh
Y3Rpb25dOwogICAgIF9wYWdlLT5zZXRJc1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVu
dChmYWxzZSk7CiAKLSAgICBpZiAoIV9pc0NoYW5naW5nRm9jdXMpIHsKLSAgICAgICAgW3NlbGYg
X3N0b3BTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3Vz
ZWRFbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkXTsKLSAgICAgICAgW3NlbGYgX3N0
b3BTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRF
bGVtZW50SXNUb29TbWFsbF07CisgICAgaWYgKCFfaXNDaGFuZ2luZ0ZvY3VzKQogICAgICAgICBf
ZGlkQWNjZXNzb3J5VGFiSW5pdGlhdGVGb2N1cyA9IE5POwotICAgIH0KIH0KIAogLSAodm9pZClf
ZGlkVXBkYXRlSW5wdXRNb2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZQpAQCAtNTQ2MCw4ICs1
NDQ0LDQzIEBAIC0gKHZvaWQpX3doZWVsQ2hhbmdlZFdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50
CiAgICAgW3N1cGVyIF93aGVlbENoYW5nZWRXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCistICh2b2lk
KV91cGRhdGVTZWxlY3Rpb25Bc3Npc3RhbnRTdXBwcmVzc2lvblN0YXRlCit7CisgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBtaW5pbXVtRm9jdXNlZEVsZW1lbnRBcmVhRm9yU3VwcHJlc3NpbmdTZWxl
Y3Rpb25Bc3Npc3RhbnQgPSA0OworCisgICAgYXV0byYgZWRpdG9yU3RhdGUgPSBfcGFnZS0+ZWRp
dG9yU3RhdGUoKTsKKyAgICBpZiAoZWRpdG9yU3RhdGUuaXNNaXNzaW5nUG9zdExheW91dERhdGEp
CisgICAgICAgIHJldHVybjsKKworICAgIEJPT0wgZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9y
RnVsbHlDbGlwcGVkID0gTk87CisgICAgQk9PTCBmb2N1c2VkRWxlbWVudElzVG9vU21hbGwgPSBO
TzsKKyAgICBpZiAoIWVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSkgeworICAgICAgICBhdXRv
JiBwb3N0TGF5b3V0RGF0YSA9IGVkaXRvclN0YXRlLnBvc3RMYXlvdXREYXRhKCk7CisgICAgICAg
IGlmIChwb3N0TGF5b3V0RGF0YS5lZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBw
ZWQpCisgICAgICAgICAgICBlZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQg
PSBZRVM7CisKKyAgICAgICAgaWYgKGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uKSkgeworICAgICAgICAgICAgYXV0byBlbGVtZW50QXJlYSA9IHBvc3RMYXlvdXRE
YXRhLmZvY3VzZWRFbGVtZW50UmVjdC5hcmVhPFJlY29yZE92ZXJmbG93PigpOworICAgICAgICAg
ICAgaWYgKCFlbGVtZW50QXJlYS5oYXNPdmVyZmxvd2VkKCkgJiYgZWxlbWVudEFyZWEgPCBtaW5p
bXVtRm9jdXNlZEVsZW1lbnRBcmVhRm9yU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnQpCisg
ICAgICAgICAgICAgICAgZm9jdXNlZEVsZW1lbnRJc1Rvb1NtYWxsID0gWUVTOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKGVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBl
ZCkKKyAgICAgICAgW3NlbGYgX3N0YXJ0U3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JS
ZWFzb246V2ViS2l0OjpFZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRdOwor
ICAgIGVsc2UKKyAgICAgICAgW3NlbGYgX3N0b3BTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFu
dEZvclJlYXNvbjpXZWJLaXQ6OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBl
ZF07CisKKyAgICBpZiAoZm9jdXNlZEVsZW1lbnRJc1Rvb1NtYWxsKQorICAgICAgICBbc2VsZiBf
c3RhcnRTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3Vz
ZWRFbGVtZW50SXNUb29TbWFsbF07CisgICAgZWxzZQorICAgICAgICBbc2VsZiBfc3RvcFN1cHBy
ZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29uOldlYktpdDo6Rm9jdXNlZEVsZW1lbnRJ
c1Rvb1NtYWxsXTsKK30KKwogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogeworICAgIFtzZWxm
IF91cGRhdGVTZWxlY3Rpb25Bc3Npc3RhbnRTdXBwcmVzc2lvblN0YXRlXTsKKwogICAgIF9zZWxl
Y3Rpb25OZWVkc1VwZGF0ZSA9IFlFUzsKICAgICAvLyBJZiB3ZSBhcmUgY2hhbmdpbmcgdGhlIHNl
bGVjdGlvbiB3aXRoIGEgZ2VzdHVyZSB0aGVyZSBpcyBubyBuZWVkCiAgICAgLy8gdG8gd2FpdCB0
byBwYWludCB0aGUgc2VsZWN0aW9uLgpAQCAtNTQ4OCwyMCArNTUwNyw3IEBAIC0gKHZvaWQpX3Vw
ZGF0ZUNoYW5nZWRTZWxlY3Rpb246KEJPT0wpZm9yY2UKICAgICAgICAgcmV0dXJuOwogCiAgICAg
YXV0byYgcG9zdExheW91dERhdGEgPSBzdGF0ZS5wb3N0TGF5b3V0RGF0YSgpOwotICAgIGlmICgh
c3RhdGUuc2VsZWN0aW9uSXNOb25lICYmIGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uKSkgewotICAgICAgICBpZiAocG9zdExheW91dERhdGEuZWxlbWVudElzVHJh
bnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCkKLSAgICAgICAgICAgIFtzZWxmIF9iZWdpblN1cHByZXNz
aW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29uOldlYktpdDo6Rm9jdXNlZEVsZW1lbnRJc1Ry
YW5zcGFyZW50T3JGdWxseUNsaXBwZWRdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBbc2Vs
ZiBfc3RvcFN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29uOldlYktpdDo6Rm9j
dXNlZEVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRdOwotCi0gICAgICAgIGF1dG8g
ZWxlbWVudEFyZWEgPSBwb3N0TGF5b3V0RGF0YS5mb2N1c2VkRWxlbWVudFJlY3QuYXJlYTxSZWNv
cmRPdmVyZmxvdz4oKTsKLSAgICAgICAgaWYgKCFlbGVtZW50QXJlYS5oYXNPdmVyZmxvd2VkKCkg
JiYgZWxlbWVudEFyZWEgPCBtaW5pbXVtRm9jdXNlZEVsZW1lbnRBcmVhRm9yU3VwcHJlc3NpbmdT
ZWxlY3Rpb25Bc3Npc3RhbnQpCi0gICAgICAgICAgICBbc2VsZiBfYmVnaW5TdXBwcmVzc2luZ1Nl
bGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFs
bF07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFtzZWxmIF9zdG9wU3VwcHJlc3NpbmdTZWxl
Y3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVG9vU21hbGxd
OwotICAgIH0KLQotICAgIFdlYktpdDo6V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyBzZWxlY3Rpb25E
cmF3aW5nSW5mbyhfcGFnZS0+ZWRpdG9yU3RhdGUoKSk7CisgICAgV2ViS2l0OjpXS1NlbGVjdGlv
bkRyYXdpbmdJbmZvIHNlbGVjdGlvbkRyYXdpbmdJbmZvKHN0YXRlKTsKICAgICBpZiAoZm9yY2Ug
fHwgc2VsZWN0aW9uRHJhd2luZ0luZm8gIT0gX2xhc3RTZWxlY3Rpb25EcmF3aW5nSW5mbykgewog
ICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2VsZWN0aW9uLCBzdHJlYW0gPDwgIl91cGRhdGVDaGFu
Z2VkU2VsZWN0aW9uICIgPDwgc2VsZWN0aW9uRHJhd2luZ0luZm8pOwogCkBAIC01NTM4LDcgKzU1
NDQsNyBAQCAtIChCT09MKV9zaG91bGRTdXBwcmVzc1NlbGVjdGlvbkNvbW1hbmRzCiAgICAgcmV0
dXJuICEhX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29uczsKIH0KIAotLSAodm9pZClf
YmVnaW5TdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjooV2ViS2l0OjpTdXBw
cmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbilyZWFzb24KKy0gKHZvaWQpX3N0YXJ0U3VwcHJl
c3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246KFdlYktpdDo6U3VwcHJlc3NTZWxlY3Rp
b25Bc3Npc3RhbnRSZWFzb24pcmVhc29uCiB7CiAgICAgYm9vbCB3YXNTdXBwcmVzc2luZ1NlbGVj
dGlvbkFzc2lzdGFudCA9ICEhX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29uczsKICAg
ICBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zLmFkZChyZWFzb24pOwpAQCAtNjUz
Nyw3ICs2NTQzLDcgQEAgLSAodm9pZClkcm9wSW50ZXJhY3Rpb246KFVJRHJvcEludGVyYWN0aW9u
ICopaW50ZXJhY3Rpb24gcGVyZm9ybURyb3A6KGlkIDxVSURyb3AKICAgICAgICAgcmV0YWluZWRT
ZWxmLT5fcGFnZS0+cGVyZm9ybURyYWdPcGVyYXRpb24oY2FwdHVyZWREcmFnRGF0YSwgImRhdGEg
aW50ZXJhY3Rpb24gcGFzdGVib2FyZCIsIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSks
IFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCkpOwogCiAgICAgICAgIHJldGFpbmVk
U2VsZi0+X3Zpc2libGVDb250ZW50Vmlld1NuYXBzaG90ID0gW3JldGFpbmVkU2VsZiBzbmFwc2hv
dFZpZXdBZnRlclNjcmVlblVwZGF0ZXM6Tk9dOwotICAgICAgICBbcmV0YWluZWRTZWxmIF9iZWdp
blN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29uOldlYktpdDo6RHJvcEFuaW1h
dGlvbklzUnVubmluZ107CisgICAgICAgIFtyZXRhaW5lZFNlbGYgX3N0YXJ0U3VwcHJlc3NpbmdT
ZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpEcm9wQW5pbWF0aW9uSXNSdW5uaW5n
XTsKICAgICAgICAgW1VJVmlldyBwZXJmb3JtV2l0aG91dEFuaW1hdGlvbjpbcmV0YWluZWRTZWxm
XSB7CiAgICAgICAgICAgICBbcmV0YWluZWRTZWxmLT5fdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNo
b3Qgc2V0RnJhbWU6W3JldGFpbmVkU2VsZiBib3VuZHNdXTsKICAgICAgICAgICAgIFtyZXRhaW5l
ZFNlbGYgYWRkU3VidmlldzpyZXRhaW5lZFNlbGYtPl92aXNpYmxlQ29udGVudFZpZXdTbmFwc2hv
dC5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQppbmRleCA2MTlkNjZiOGIzZmI1NDAwODBjYWEwNjUwZjU1MGU3ZThmYjIzZjc3Li4zZWQw
MGVlYmIwZjdlNTBlY2VmMDUzZDM5MDlmOTMzZmUwMzhlZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwNzgsMTEgKzEwNzgsNiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRl
JiBlZGl0b3JTdGF0ZSkKICAgICBib29sIGNvdWxkQ2hhbmdlU2VjdXJlSW5wdXRTdGF0ZSA9IG1f
ZWRpdG9yU3RhdGUuaXNJblBhc3N3b3JkRmllbGQgIT0gZWRpdG9yU3RhdGUuaXNJblBhc3N3b3Jk
RmllbGQgfHwgbV9lZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmU7CiAgICAgCiAgICAgbV9lZGl0
b3JTdGF0ZSA9IGVkaXRvclN0YXRlOwotCi0gICAgaWYgKG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRF
ZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ICYmICFtX2VkaXRvclN0YXRlLmlz
TWlzc2luZ1Bvc3RMYXlvdXREYXRhKSB7Ci0gICAgICAgIHBhZ2VDbGllbnQoKS5kaWRSZWNlaXZl
RWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzKCk7Ci0gICAgICAgIG1fd2FpdGluZ0ZvclBvc3RM
YXlvdXRFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ID0gZmFsc2U7Ci0gICAg
fQogICAgIAogICAgIC8vIFNlbGVjdGlvbiBiZWluZyBub25lIGlzIGEgdGVtcG9yYXJ5IHN0YXRl
IHdoZW4gZWRpdGluZy4gRmxpcHBpbmcgc2VjdXJlIGlucHV0IHN0YXRlIHRvbyBxdWlja2x5IHdh
cyBjYXVzaW5nIHRyb3VibGUgKG5vdCBmdWxseSB1bmRlcnN0b29kKS4KICAgICBpZiAoY291bGRD
aGFuZ2VTZWN1cmVJbnB1dFN0YXRlICYmICFlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmUpCkBA
IC0xMDk1LDYgKzEwOTAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmVkaXRvclN0YXRlQ2hhbmdl
ZChjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUpCiAgICAgLy8gZXZlbiBkdXJpbmcgY29t
cG9zaXRpb24gdG8gc3VwcG9ydCBwaHJhc2UgYm91bmRhcnkgZ2VzdHVyZS4KICAgICBwYWdlQ2xp
ZW50KCkuc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CiAgICAgdXBkYXRlRm9udEF0dHJpYnV0ZXNBZnRl
ckVkaXRvclN0YXRlQ2hhbmdlKCk7CisKKyAgICBpZiAobV93YWl0aW5nRm9yUG9zdExheW91dEVk
aXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQgJiYgIW1fZWRpdG9yU3RhdGUuaXNN
aXNzaW5nUG9zdExheW91dERhdGEpIHsKKyAgICAgICAgcGFnZUNsaWVudCgpLmRpZFJlY2VpdmVF
ZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXMoKTsKKyAgICAgICAgbV93YWl0aW5nRm9yUG9zdExh
eW91dEVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1c2luZ0VsZW1lbnQgPSBmYWxzZTsKKyAgICB9
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93VmFsaWRhdGlvbk1lc3NhZ2UoY29uc3QgSW50
UmVjdCYgYW5jaG9yQ2xpZW50UmVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBi
MTlkZjU4ZmYyODg1NjlkYjUwMTQzMmU0ZmU3ZDcwMDJiMzdlMmYzLi40MDcwZjg4NTc2ODYwMDE3
OTMyNTExZTcyMTg4NWEwNDA5YjRiMDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjU2LDcgKzI1NiwxMSBAQCB2b2lk
IFdlYlBhZ2U6OnBsYXRmb3JtRWRpdG9yU3RhdGUoRnJhbWUmIGZyYW1lLCBFZGl0b3JTdGF0ZSYg
cmVzdWx0LCBJbmNsdWRlUG9zdAogICAgICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSAqbV9mb2N1
c2VkRWxlbWVudC0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIHBvc3RMYXlvdXREYXRhLmZvY3Vz
ZWRFbGVtZW50UmVjdCA9IHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhyZW5kZXJlci5hYnNvbHV0
ZUJvdW5kaW5nQm94UmVjdCgpKTsKICAgICAgICAgICAgIHBvc3RMYXlvdXREYXRhLmNhcmV0Q29s
b3IgPSByZW5kZXJlci5zdHlsZSgpLmNhcmV0Q29sb3IoKTsKLSAgICAgICAgICAgIHBvc3RMYXlv
dXREYXRhLmVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQgPSBlbmNsb3NpbmdMYXll
cklzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZChyZW5kZXJlcik7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSkgeworICAgICAgICAgICAgYXV0byBjb250
YWluZXIgPSBtYWtlUmVmUHRyKHNlbGVjdGlvbi5yb290RWRpdGFibGVFbGVtZW50KCkpOworICAg
ICAgICAgICAgaWYgKGNvbnRhaW5lciAmJiBjb250YWluZXItPnJlbmRlcmVyKCkpCisgICAgICAg
ICAgICAgICAgcG9zdExheW91dERhdGEuZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlD
bGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQoKmNvbnRh
aW5lci0+cmVuZGVyZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgY29tcHV0ZUVkaXRhYmxlUm9v
dEhhc0NvbnRlbnRBbmRQbGFpblRleHQoc2VsZWN0aW9uLCBwb3N0TGF5b3V0RGF0YSk7CiAgICAg
fQpAQCAtMjUzNSw3ICsyNTM5LDYgQEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uKEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGluZm9ybWF0aW8KICAgICAgICAg
YXV0byYgZWxlbWVudEZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JN
YWluRnJhbWUoKTsKICAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBlbGVtZW50UmVj
dEluUm9vdFZpZXdDb29yZGluYXRlcygqbV9mb2N1c2VkRWxlbWVudCwgZWxlbWVudEZyYW1lKTsK
ICAgICAgICAgaW5mb3JtYXRpb24ubm9kZUZvbnRTaXplID0gcmVuZGVyZXItPnN0eWxlKCkuZm9u
dERlc2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCk7Ci0gICAgICAgIGluZm9ybWF0aW9uLmVsZW1l
bnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQgPSBlbmNsb3NpbmdMYXllcklzVHJhbnNwYXJl
bnRPckZ1bGx5Q2xpcHBlZCgqcmVuZGVyZXIpOwogCiAgICAgICAgIGJvb2wgaW5GaXhlZCA9IGZh
bHNlOwogICAgICAgICByZW5kZXJlci0+bG9jYWxUb0NvbnRhaW5lclBvaW50KEZsb2F0UG9pbnQo
KSwgbnVsbHB0ciwgVXNlVHJhbnNmb3JtcywgJmluRml4ZWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlmNDQwNTUwNWI1
OGYwMmNkODcxYzk2N2Q3N2U1NDRiYjU4MjAwMzMuLmY4MTE4NDZjYjZiY2Q4ZmQyNTI4N2RkODg1
ZDVjMjVkZTY1MjY2YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wMy0xOCAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBOYXRpdmUg
c2VsZWN0aW9uIHZpZXdzIHNvbWV0aW1lcyBhcHBlYXIgaW4gaGlkZGVuIGVkaXRhYmxlIGFyZWFz
IGFmdGVyIGxvc2luZyBmb2N1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1ODk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODg0OTk4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0
IHRvIHZlcmlmeSB0aGF0IG1vdmluZyBmb2N1cyBhd2F5IGZyb20gYSBoaWRkZW4gZWRpdGFibGUg
ZWxlbWVudCBkb2Vzbid0IGNhdXNlIHBsYXRmb3JtIHNlbGVjdGlvbgorICAgICAgICB2aWV3cyBp
biB0aGUgZWxlbWVudCB0byBhcHBlYXIuIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3MvaGlkZS1zZWxlY3Rpb24t
aW4tbm9uLWZvY3VzZWQtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2lvcy9oaWRlLXNlbGVjdGlvbi1pbi1ub24tZm9jdXNlZC1lbGVtZW50
Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTAzLTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIG5ldyBNZWRpYUNhcGFiaWxpdGllc0V4dGVuc2lvbnNFbmFi
bGVkIHNldHRpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lv
cy9oaWRlLXNlbGVjdGlvbi1pbi1ub24tZm9jdXNlZC1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9oaWRlLXNlbGVjdGlvbi1pbi1ub24tZm9j
dXNlZC1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzc3MTMwNzAyY2QzYzUwMjc3
MTU1NDk0NmM0MjE3MTQ5ZGY4ZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vaW9zL2hpZGUtc2VsZWN0aW9uLWluLW5vbi1mb2N1c2VkLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0hlbGxvIHdvcmxkCisKK1ZlcmlmaWVzIHRo
YXQgdGV4dCBzZWxlY3Rpb24gaXMgc3VwcHJlc3NlZCB3aGVuIHRoZSBzZWxlY3RlZCBjb250ZW50
IGlzIGluIGEgaGlkZGVuIGVkaXRhYmxlIHJvb3QsIGV2ZW4gd2hlbiBmb2N1c2luZyBhIGRpZmZl
cmVudCBlbGVtZW50LiBUbyBtYW51YWxseSBydW4gdGhlIHRlc3QsIHRhcCB0aGUgZWRpdGFibGUg
YXJlYSBpbiB0aGUgcmVkIGJveCwgYW5kIHRoZW4gdGFwIHRoZSBidXR0b24gYmVsb3cgaXQuIFBs
YXRmb3JtIHNlbGVjdGlvbiB2aWV3cyBzaG91bGQgbm90IGJlY29tZSB2aXNpYmxlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDAK
K1BBU1MgZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVsbG8gd29ybGQiCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZm9jdXNUYXJnZXQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9pb3MvaGlkZS1zZWxlY3Rpb24taW4tbm9uLWZvY3VzZWQtZWxlbWVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2hpZGUtc2VsZWN0aW9u
LWluLW5vbi1mb2N1c2VkLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDkyNDk4ZWIzNjZiNDQ0
YjAxZTY0NWQxODE1ZjMzYTFhMDRlNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vaW9zL2hpZGUtc2VsZWN0aW9uLWluLW5vbi1mb2N1c2VkLWVsZW1l
bnQuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgeworICAgIHdpZHRo
OiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAgICBtYXJnaW46IDA7Cit9CisKKyNlZGl0b3Ig
eworICAgIHdpZHRoOiAxMDAlOworICAgIGhlaWdodDogMTAwJTsKKyAgICBvcGFjaXR5OiAwOwor
fQorCisjY29udGFpbmVyIHsKKyAgICB3aWR0aDogMzIwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICBib3JkZXI6IDFweCBzb2xpZCB0b21hdG87Cit9CisKKyN0YXJnZXQgeworICAgIHdpZHRo
OiAxZW07CisgICAgaGVpZ2h0OiAxZW07Cit9CisKK2lucHV0IHsKKyAgICB3aWR0aDogMzIwcHg7
CisgICAgaGVpZ2h0OiAzZW07Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBydW5UZXN0KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCithc3luYyBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IHRleHQgc2Vs
ZWN0aW9uIGlzIHN1cHByZXNzZWQgd2hlbiB0aGUgc2VsZWN0ZWQgY29udGVudCBpcyBpbiBhIGhp
ZGRlbiBlZGl0YWJsZSByb290LCBldmVuIHdoZW4gZm9jdXNpbmcgYSBkaWZmZXJlbnQgZWxlbWVu
dC4gVG8gbWFudWFsbHkgcnVuIHRoZSB0ZXN0LCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgaW4gdGhl
IHJlZCBib3gsIGFuZCB0aGVuIHRhcCB0aGUgYnV0dG9uIGJlbG93IGl0LiBQbGF0Zm9ybSBzZWxl
Y3Rpb24gdmlld3Mgc2hvdWxkIG5vdCBiZWNvbWUgdmlzaWJsZS4iKTsKKworICAgIGJ1dHRvbiA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7CisgICAgZWRpdG9yID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOworICAgIGZvY3VzVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImZvY3VzLXRhcmdldCIpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVy
KCJmb2N1cyIsICgpID0+IGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRvcikp
OworICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKKyAgICAgICAg
ZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZm9jdXNUYXJnZXQuZm9jdXMoKTsKKyAg
ICB9KTsKKworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24o
ZWRpdG9yKTsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoYnV0dG9uKTsKKyAg
ICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICBzZWxlY3Rpb25S
ZWN0cyA9IGF3YWl0IFVJSGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7CisKKyAgICBz
aG91bGRCZSgic2VsZWN0aW9uUmVjdHMubGVuZ3RoIiwgIjAiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiSGVsbG8gd29ybGQiKTsKKyAg
ICBzaG91bGRCZSgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJmb2N1c1RhcmdldCIpOworCisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBp
ZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT5IZWxs
byB3b3JsZDwvZGl2PgorPC9kaXY+Cis8ZGl2IHRhYmluZGV4PSIwIiBpZD0iZm9jdXMtdGFyZ2V0
Ij48L2Rpdj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJQcmVzcyBtZSI+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>
<flag name="review"
          id="381520"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365055</attachid>
            <date>2019-03-18 13:44:22 -0700</date>
            <delta_ts>2019-03-18 14:22:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195894-20190318134421.patch</filename>
            <type>text/plain</type>
            <size>24390</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1MGE3ODQyNWYzZmUxZGZi
Nzk0ZTRmY2IzZTBlOGFmNDZjYzA3NDUuLjRkNjVmNjFhMzAxNDYzOTRkZTYzNDhiOWY4MjYyNzVi
MjczM2QwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMDMtMTggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTmF0aXZlIHNl
bGVjdGlvbiB2aWV3cyBzb21ldGltZXMgYXBwZWFyIGluIGhpZGRlbiBlZGl0YWJsZSBhcmVhcyBh
ZnRlciBsb3NpbmcgZm9jdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTg5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg4NDk5ODk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBPbiBjZXJ0YWluIHdlYnNp
dGVzLCBmb2N1cyBpcyBtb3ZlZCBhd2F5IGZyb20gYW4gZWRpdGFibGUgZWxlbWVudCB3aGlsZSBt
YWludGFpbmluZyBhIHNlbGVjdGlvbiBpbnNpZGUgdGhlCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnQuIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBlZGl0YWJsZSBlbGVtZW50IGlzIGhpZGRlbiwgdGhp
cyBjdXJyZW50bHkgYnJlYWtzIG91ciB0ZXh0IGludGVyYWN0aW9uCisgICAgICAgIHN1cHByZXNz
aW9uIGhldXJpc3RpY3MsIHdoaWNoIHN1cHByZXNzIHRleHQgc2VsZWN0aW9uIGdlc3R1cmVzIGFu
ZCBvdmVybGF5cyBpbnNpZGUgZm9jdXNlZCBoaWRkZW4gZWRpdGFibGUKKyAgICAgICAgZWxlbWVu
dHMuIFRvIGZpeCB0aGlzLCB3ZSByZWZhY3RvciBvdXIgdGV4dCBpbnRlcmFjdGlvbiBzdXBwcmVz
c2lvbiBoZXVyaXN0aWNzLCBzdWNoIHRoYXQgdGhleSBhcmUgbm90IGRlcGVuZGVudAorICAgICAg
ICBvbiBhbiBlZGl0YWJsZSBlbGVtZW50IGJlaW5nIGZvY3VzZWQuIFNlZSBjaGFuZ2VzIGJlbG93
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zZWxlY3Rpb24vaW9z
L2hpZGUtc2VsZWN0aW9uLWluLW5vbi1mb2N1c2VkLWVsZW1lbnQuaHRtbAorCisgICAgICAgICog
U2hhcmVkL0VkaXRvclN0YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OlBv
c3RMYXlvdXREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JTdGF0
ZTo6UG9zdExheW91dERhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0VkaXRvclN0YXRl
Lmg6CisKKyAgICAgICAgUmVuYW1lIGVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQg
dG8gZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkLCBhbmQgYWRkaXRpb25h
bGx5IGNvbXB1dGUKKyAgICAgICAgdGhpcyBmbGFnIGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIHJv
b3QgZWRpdGFibGUgZWxlbWVudCBjb250YWluaW5nIHRoZSBzZWxlY3Rpb24gaXMgdHJhbnNwYXJl
bnQgb3IgY2xpcHBlZCwKKyAgICAgICAgaW5zdGVhZCBvZiB1c2luZyB0aGUgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudC4KKworICAgICAgICAqIFNoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6
ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oOgor
CisgICAgICAgIFJlbW92ZSB0aGUgZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCBm
bGFnIGZyb20gRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiAoc2VlIGJlbG93IGZvciBtb3JlIGRl
dGFpbCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oOgorCisgICAgICAgIFJlbmFtZSBGb2N1c2VkRWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5
Q2xpcHBlZCB0byBFZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfem9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1lbnRdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJs
dXJQcmV2aW91c05vZGU6Y2hhbmdpbmdBY3Rpdml0eVN0YXRlOnVzZXJPYmplY3Q6XSk6CisKKyAg
ICAgICAgUmVtb3ZlIGxvZ2ljIHRoYXQgY3VycmVudGx5IHVzZXMgc3RhdGUgb24gRm9jdXNlZEVs
ZW1lbnRJbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlciB0byBzdXBwcmVzcyBwbGF0Zm9y
bQorICAgICAgICB0ZXh0IGludGVyYWN0aW9uczsgaW5zdGVhZCwgb25seSB1c2UgRWRpdG9yU3Rh
dGUgdG8gbWFrZSB0aGlzIGRldGVybWluYXRpb24uIFRoaXMgbG9naWMgd2FzIG9yaWdpbmFsbHkg
YWRkZWQgaW4KKyAgICAgICAgdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIHRleHQg
aW50ZXJhY3Rpb24gc3VwcHJlc3Npb24gaGV1cmlzdGljIGFzIGEgd2F5IHRvIGJlZ2luIHN1cHBy
ZXNzaW5nIHRleHQKKyAgICAgICAgc2VsZWN0aW9uIHN0YXRlIGJlZm9yZSB6b29taW5nIHRvIHJl
dmVhbCB0aGUgZm9jdXNlZCBlbGVtZW50OyBob3dldmVyLCBzaW5jZSB3ZSBub3cgem9vbSB0byBy
ZXZlYWwgdGhlIHRleHQKKyAgICAgICAgc2VsZWN0aW9uIHdoZW4gZm9jdXNpbmcgZWRpdGFibGUg
ZWxlbWVudHMsIHpvb21pbmcgaXMgZGVmZXJyZWQgdW50aWwgdGhlIG5leHQgY29tcGxldGUgRWRp
dG9yU3RhdGUgdXBkYXRlCisgICAgICAgIGFycml2ZXMgaW4gdGhlIFVJIHByb2Nlc3Mgc28gd2Ug
ZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBiZWdpbm5pbmcgdG8gc3VwcHJlc3MgdGV4dCBpbnRl
cmFjdGlvbnMgcHJpb3IgdG8gdGhpcworICAgICAgICBpbml0aWFsIGVkaXRvciBzdGF0ZSB1cGRh
dGUuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERpZEJsdXJdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfdXBkYXRlU2VsZWN0aW9uQXNzaXN0YW50U3VwcHJlc3Npb25T
dGF0ZV0pOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdGhhdCB1cGRhdGVzIHRleHQg
c2VsZWN0aW9uIHN1cHByZXNzaW9uIHN0YXRlIHVzaW5nIHRoZSBjdXJyZW50IEVkaXRvclN0YXRl
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NlbGVjdGlvbkNoYW5nZWRdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfdXBkYXRlQ2hhbmdlZFNlbGVjdGlvbjpdKToKKworICAgICAg
ICBBbHdheXMgdXBkYXRlIHRleHQgc3VwcHJlc3Npb24gc3RhdGUgd2hlbiByZWNlaXZpbmcgYW4g
RWRpdG9yU3RhdGUsIGluc3RlYWQgb2Ygb25seSBkb2luZyBzbyB3aGVuIHByb2Nlc3NpbmcgYQor
ICAgICAgICB0ZXh0IHNlbGVjdGlvbiBnZXN0dXJlLgorCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3N0YXJ0U3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246XSk6CisKKyAg
ICAgICAgUmVuYW1lZCBmcm9tIF9iZWdpblN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9y
UmVhc29uOiwgdG8gYmV0dGVyIG1hdGNoICJzdGFydC9lbmQiIHRlcm1pbm9sb2d5IG9mCisgICAg
ICAgIF9lbmRTdXBwcmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjouCisKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBkcm9wSW50ZXJhY3Rpb246cGVyZm9ybURyb3A6XSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX2JlZ2luU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRG
b3JSZWFzb246XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFu
Z2VkKToKKworICAgICAgICBFbnN1cmUgdGhhdCB3ZSBydW4gbG9naWMgdG8gem9vbSB0byB0aGUg
Zm9jdXNlZCBlbGVtZW50ICphZnRlciogdXBkYXRpbmcgdGV4dCBzZWxlY3Rpb24gc3VwcHJlc3Np
b24gc3RhdGUsIHNvIHdlCisgICAgICAgIGRvbid0IGVycm9uZW91c2x5IHpvb20gdG8gcmV2ZWFs
IGhpZGRlbiBlZGl0YWJsZSBlbGVtZW50cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1F
ZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldEZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24pOgorCiAyMDE5LTAzLTE2ICBEZWFuIEphY2tzb24gIDxkaW5vQGFw
cGxlLmNvbT4KIAogICAgICAgICBBU1NFUlQoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2RvdWJsZVRh
cEdlc3R1cmVSZWNvZ25pemVyKSBpbiBfZG91YmxlVGFwRGlkRmFpbDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VkaXRvclN0YXRlLmNwcAppbmRleCBjMTE1M2IyODYzYTUwYjk3YjA0NmQyNWQ5MzcxMWRlNWRk
M2RmMjAzLi5mM2JhY2Y1YThmN2ZiYzYzMzA3ODEwYzgzMmVhZDMyZGUzMzkwOGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBFZGl0
b3JTdGF0ZTo6UG9zdExheW91dERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCBpc1N0YWJsZVN0YXRlVXBkYXRlOwogICAgIGVuY29kZXIgPDwg
aW5zaWRlRml4ZWRQb3NpdGlvbjsKICAgICBlbmNvZGVyIDw8IGhhc1BsYWluVGV4dDsKLSAgICBl
bmNvZGVyIDw8IGVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQ7CisgICAgZW5jb2Rl
ciA8PCBlZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQ7CiAgICAgZW5jb2Rl
ciA8PCBjYXJldENvbG9yOwogICAgIGVuY29kZXIgPDwgYXRTdGFydE9mU2VudGVuY2U7CiAjZW5k
aWYKQEAgLTE5MSw3ICsxOTEsNyBAQCBib29sIEVkaXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUG9zdExheW91dERhdGEmCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNQbGFpblRleHQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
ZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCkpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNhcmV0
Q29sb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FZGl0b3JTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRWRpdG9yU3RhdGUu
aAppbmRleCA0ZTFkNWE0ZWIwNGI1NjFmMjlmOGQ1MGY5NjVmMDA2ZTBlYmJjYjRlLi5lZjk4ZDNi
ZTVhMzcxMjkyMzFlN2JkZGRkZjMwZDVkNDBhYTdmZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRv
clN0YXRlLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGUgewogICAgICAg
ICBib29sIGlzU3RhYmxlU3RhdGVVcGRhdGUgeyBmYWxzZSB9OwogICAgICAgICBib29sIGluc2lk
ZUZpeGVkUG9zaXRpb24geyBmYWxzZSB9OwogICAgICAgICBib29sIGhhc1BsYWluVGV4dCB7IGZh
bHNlIH07Ci0gICAgICAgIGJvb2wgZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCB7
IGZhbHNlIH07CisgICAgICAgIGJvb2wgZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlD
bGlwcGVkIHsgZmFsc2UgfTsKICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY2FyZXRDb2xvcjsKICAg
ICAgICAgYm9vbCBhdFN0YXJ0T2ZTZW50ZW5jZSB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKaW5kZXgg
NGM1YjcyYzhiMzY0MTAwN2I5MmY0NGU0ZDAwNWFkYTdlNzc4M2E1NS4uYmMyYmMzMzM1ZDJmNGMy
ZmRkNzQ0YWQ3YmU4MjMwNTAwZDg4NTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKQEAgLTkxLDcgKzkxLDYgQEAgdm9pZCBG
b2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgdGl0bGU7CiAgICAgZW5jb2RlciA8PCBhY2NlcHRzQXV0b2Zp
bGxlZExvZ2luQ3JlZGVudGlhbHM7CiAgICAgZW5jb2RlciA8PCBpc0F1dG9maWxsYWJsZVVzZXJu
YW1lRmllbGQ7Ci0gICAgZW5jb2RlciA8PCBlbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlw
cGVkOwogICAgIGVuY29kZXIgPDwgcmVwcmVzZW50aW5nUGFnZVVSTDsKICAgICBlbmNvZGVyLmVu
Y29kZUVudW0oYXV0b2ZpbGxGaWVsZE5hbWUpOwogICAgIGVuY29kZXIgPDwgcGxhY2Vob2xkZXI7
CkBAIC0xOTMsOSArMTkyLDYgQEAgYm9vbCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBGb2N1c2VkRWxlbWVudEluZm8KICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pc0F1dG9maWxsYWJsZVVzZXJuYW1lRmllbGQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lbGVtZW50
SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucmVwcmVzZW50aW5nUGFnZVVSTCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVs
ZW1lbnRJbmZvcm1hdGlvbi5oCmluZGV4IDgzNWEwY2EyNzFjZjE3MDYwZjRjMmQ3ZWZmN2M3Yjdm
NGE2ZjRmZmUuLjE4OGQ1YTdlOWNiNTA0MWQyNWUyMDUzZjRhZWQ5NDhkZGJhMzRhZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgKQEAg
LTEyNCw3ICsxMjQsNiBAQCBzdHJ1Y3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIGJvb2wgYWNjZXB0c0F1dG9maWxsZWRMb2dpbkNyZWRlbnRpYWxz
IHsgZmFsc2UgfTsKICAgICBib29sIGlzQXV0b2ZpbGxhYmxlVXNlcm5hbWVGaWVsZCB7IGZhbHNl
IH07Ci0gICAgYm9vbCBlbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkIHsgZmFsc2Ug
fTsKICAgICBVUkwgcmVwcmVzZW50aW5nUGFnZVVSTDsKICAgICBXZWJDb3JlOjpBdXRvZmlsbEZp
ZWxkTmFtZSBhdXRvZmlsbEZpZWxkTmFtZSB7IFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1lOjpO
b25lIH07CiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDQ0YTk2Zjc0
MTlmN2ZhZTRlOWU4MTk3YjlkODVmZmY3NTA4YzMyYmUuLjQ5ZjE2Mzc5MzBmNDMyNDJiYTBlNmZm
M2FiODU2MzZkN2Q0MzQyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTE1Niw3ICsxNTYsNyBAQCB0eXBl
ZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gU3VwcHJlc3NT
ZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb24gOiB1aW50OF90IHsKLSAgICBGb2N1c2VkRWxlbWVudElz
VHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCA9IDEgPDwgMCwKKyAgICBFZGl0YWJsZVJvb3RJc1Ry
YW5zcGFyZW50T3JGdWxseUNsaXBwZWQgPSAxIDw8IDAsCiAgICAgRm9jdXNlZEVsZW1lbnRJc1Rv
b1NtYWxsID0gMSA8PCAxLAogICAgIERyb3BBbmltYXRpb25Jc1J1bm5pbmcgPSAxIDw8IDIKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQppbmRleCAyN2Q0OGQ0NThhNjA1OGI2ZjEyNzI3YzIzMjhhMTA4MjY0ZjM3
ZTZkLi5iMjVhM2VhMzg4M2E0ZGUxODkyZjlmMDBiZDUxMmJmMzg1MzNkNjhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KQEAgLTE2MTEsNyArMTYxMSw3IEBAIC0gKEJPT0wpX3JlcXVpcmVzS2V5Ym9hcmRSZXNl
dE9uUmVsb2FkCiAKIC0gKHZvaWQpX3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50CiB7Ci0gICAg
aWYgKF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMuY29udGFpbnMoV2ViS2l0OjpG
b2N1c2VkRWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCkgfHwgX3N1cHByZXNzU2Vs
ZWN0aW9uQXNzaXN0YW50UmVhc29ucy5jb250YWlucyhXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNU
b29TbWFsbCkpCisgICAgaWYgKF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMuY29u
dGFpbnMoV2ViS2l0OjpFZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQpIHx8
IF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMuY29udGFpbnMoV2ViS2l0OjpGb2N1
c2VkRWxlbWVudElzVG9vU21hbGwpKQogICAgICAgICByZXR1cm47CiAKICAgICBTZXRGb3JTY29w
ZTxCT09MPiBpc1pvb21pbmdUb1JldmVhbEZvY3VzZWRFbGVtZW50Rm9yU2NvcGUgeyBfaXNab29t
aW5nVG9SZXZlYWxGb2N1c2VkRWxlbWVudCwgWUVTIH07CkBAIC00ODI5LDggKzQ4MjksNiBAQCBz
dGF0aWMgV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RUb1JldmVhbFdoZW5ab29taW5nVG9Gb2N1c2Vk
RWxlbWVudChjb25zdCBXZWJLaXQ6OgogICAgIHJldHVybiBzZWxlY3Rpb25Cb3VuZGluZ1JlY3Q7
CiB9CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgbWluaW11bUZvY3VzZWRFbGVtZW50QXJlYUZvclN1
cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50ID0gNDsKLQogLSAodm9pZClfZWxlbWVudERpZEZv
Y3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9u
IHVzZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05v
ZGU6KEJPT0wpYmx1clByZXZpb3VzTm9kZSBjaGFuZ2luZ0FjdGl2aXR5U3RhdGU6KEJPT0wpY2hh
bmdpbmdBY3Rpdml0eVN0YXRlIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4g
Kil1c2VyT2JqZWN0CiB7CiAgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaXNDaGFuZ2luZ0ZvY3VzRm9y
U2NvcGUgeyBfaXNDaGFuZ2luZ0ZvY3VzLCBoYXNGb2N1c2VkRWxlbWVudChfZm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbikgfTsKQEAgLTQ4NTMsMTcgKzQ4NTEsNiBAQCAtICh2b2lkKV9lbGVtZW50
RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3Jt
YXRpb24gdQogICAgIGlmIChbaW5wdXREZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvckZvY3VzZWRFbGVtZW50OildKQogICAgICAgICBz
dGFydElucHV0U2Vzc2lvblBvbGljeSA9IFtpbnB1dERlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3
IGRlY2lkZVBvbGljeUZvckZvY3VzZWRFbGVtZW50OmZvY3VzZWRFbGVtZW50SW5mby5nZXQoKV07
CiAKLSAgICBpZiAoaW5mb3JtYXRpb24uZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBl
ZCkKLSAgICAgICAgW3NlbGYgX2JlZ2luU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JS
ZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZF07
Ci0gICAgZWxzZQotICAgICAgICBbc2VsZiBfc3RvcFN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0
YW50Rm9yUmVhc29uOldlYktpdDo6Rm9jdXNlZEVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNs
aXBwZWRdOwotCi0gICAgYXV0byBlbGVtZW50QXJlYSA9IGluZm9ybWF0aW9uLmVsZW1lbnRSZWN0
LmFyZWE8UmVjb3JkT3ZlcmZsb3c+KCk7Ci0gICAgaWYgKCFlbGVtZW50QXJlYS5oYXNPdmVyZmxv
d2VkKCkgJiYgZWxlbWVudEFyZWEgPCBtaW5pbXVtRm9jdXNlZEVsZW1lbnRBcmVhRm9yU3VwcHJl
c3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnQpCi0gICAgICAgIFtzZWxmIF9iZWdpblN1cHByZXNzaW5n
U2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29uOldlYktpdDo6Rm9jdXNlZEVsZW1lbnRJc1Rvb1Nt
YWxsXTsKLSAgICBlbHNlCi0gICAgICAgIFtzZWxmIF9zdG9wU3VwcHJlc3NpbmdTZWxlY3Rpb25B
c3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVG9vU21hbGxdOwotCiAg
ICAgQk9PTCBzaG91bGRTaG93SW5wdXRWaWV3ID0gWyZdIHsKICAgICAgICAgc3dpdGNoIChzdGFy
dElucHV0U2Vzc2lvblBvbGljeSkgewogICAgICAgICBjYXNlIF9XS0ZvY3VzU3RhcnRzSW5wdXRT
ZXNzaW9uUG9saWN5QXV0bzoKQEAgLTUwMzcsMTEgKzUwMjQsOCBAQCAtICh2b2lkKV9lbGVtZW50
RGlkQmx1cgogICAgIFtfd2ViVmlldyBkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uXTsKICAg
ICBfcGFnZS0+c2V0SXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQoZmFsc2UpOwog
Ci0gICAgaWYgKCFfaXNDaGFuZ2luZ0ZvY3VzKSB7Ci0gICAgICAgIFtzZWxmIF9zdG9wU3VwcHJl
c3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElz
VHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZF07Ci0gICAgICAgIFtzZWxmIF9zdG9wU3VwcHJlc3Np
bmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVG9v
U21hbGxdOworICAgIGlmICghX2lzQ2hhbmdpbmdGb2N1cykKICAgICAgICAgX2RpZEFjY2Vzc29y
eVRhYkluaXRpYXRlRm9jdXMgPSBOTzsKLSAgICB9CiB9CiAKIC0gKHZvaWQpX2RpZFVwZGF0ZUlu
cHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGUKQEAgLTU0NjAsOCArNTQ0NCw0MyBAQCAt
ICh2b2lkKV93aGVlbENoYW5nZWRXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudAogICAgIFtzdXBl
ciBfd2hlZWxDaGFuZ2VkV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAorLSAodm9pZClfdXBkYXRlU2Vs
ZWN0aW9uQXNzaXN0YW50U3VwcHJlc3Npb25TdGF0ZQoreworICAgIHN0YXRpYyBjb25zdCBkb3Vi
bGUgbWluaW11bUZvY3VzZWRFbGVtZW50QXJlYUZvclN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0
YW50ID0gNDsKKworICAgIGF1dG8mIGVkaXRvclN0YXRlID0gX3BhZ2UtPmVkaXRvclN0YXRlKCk7
CisgICAgaWYgKGVkaXRvclN0YXRlLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBCT09MIGVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBl
ZCA9IE5POworICAgIEJPT0wgZm9jdXNlZEVsZW1lbnRJc1Rvb1NtYWxsID0gTk87CisgICAgaWYg
KCFlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmUpIHsKKyAgICAgICAgYXV0byYgcG9zdExheW91
dERhdGEgPSBlZGl0b3JTdGF0ZS5wb3N0TGF5b3V0RGF0YSgpOworICAgICAgICBpZiAocG9zdExh
eW91dERhdGEuZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKQorICAgICAg
ICAgICAgZWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkID0gWUVTOworCisg
ICAgICAgIGlmIChoYXNGb2N1c2VkRWxlbWVudChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbikp
IHsKKyAgICAgICAgICAgIGF1dG8gZWxlbWVudEFyZWEgPSBwb3N0TGF5b3V0RGF0YS5mb2N1c2Vk
RWxlbWVudFJlY3QuYXJlYTxSZWNvcmRPdmVyZmxvdz4oKTsKKyAgICAgICAgICAgIGlmICghZWxl
bWVudEFyZWEuaGFzT3ZlcmZsb3dlZCgpICYmIGVsZW1lbnRBcmVhIDwgbWluaW11bUZvY3VzZWRF
bGVtZW50QXJlYUZvclN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50KQorICAgICAgICAgICAg
ICAgIGZvY3VzZWRFbGVtZW50SXNUb29TbWFsbCA9IFlFUzsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmIChlZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQpCisgICAgICAg
IFtzZWxmIF9zdGFydFN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0YW50Rm9yUmVhc29uOldlYktp
dDo6RWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkXTsKKyAgICBlbHNlCisg
ICAgICAgIFtzZWxmIF9zdG9wU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246
V2ViS2l0OjpFZGl0YWJsZVJvb3RJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRdOworCisgICAg
aWYgKGZvY3VzZWRFbGVtZW50SXNUb29TbWFsbCkKKyAgICAgICAgW3NlbGYgX3N0YXJ0U3VwcHJl
c3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElz
VG9vU21hbGxdOworICAgIGVsc2UKKyAgICAgICAgW3NlbGYgX3N0b3BTdXBwcmVzc2luZ1NlbGVj
dGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbF07
Cit9CisKIC0gKHZvaWQpX3NlbGVjdGlvbkNoYW5nZWQKIHsKKyAgICBbc2VsZiBfdXBkYXRlU2Vs
ZWN0aW9uQXNzaXN0YW50U3VwcHJlc3Npb25TdGF0ZV07CisKICAgICBfc2VsZWN0aW9uTmVlZHNV
cGRhdGUgPSBZRVM7CiAgICAgLy8gSWYgd2UgYXJlIGNoYW5naW5nIHRoZSBzZWxlY3Rpb24gd2l0
aCBhIGdlc3R1cmUgdGhlcmUgaXMgbm8gbmVlZAogICAgIC8vIHRvIHdhaXQgdG8gcGFpbnQgdGhl
IHNlbGVjdGlvbi4KQEAgLTU0ODgsMjAgKzU1MDcsNyBAQCAtICh2b2lkKV91cGRhdGVDaGFuZ2Vk
U2VsZWN0aW9uOihCT09MKWZvcmNlCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIHBvc3RM
YXlvdXREYXRhID0gc3RhdGUucG9zdExheW91dERhdGEoKTsKLSAgICBpZiAoIXN0YXRlLnNlbGVj
dGlvbklzTm9uZSAmJiBoYXNGb2N1c2VkRWxlbWVudChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bikpIHsKLSAgICAgICAgaWYgKHBvc3RMYXlvdXREYXRhLmVsZW1lbnRJc1RyYW5zcGFyZW50T3JG
dWxseUNsaXBwZWQpCi0gICAgICAgICAgICBbc2VsZiBfYmVnaW5TdXBwcmVzc2luZ1NlbGVjdGlv
bkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUcmFuc3BhcmVudE9y
RnVsbHlDbGlwcGVkXTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgW3NlbGYgX3N0b3BTdXBw
cmVzc2luZ1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkZvY3VzZWRFbGVtZW50
SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkXTsKLQotICAgICAgICBhdXRvIGVsZW1lbnRBcmVh
ID0gcG9zdExheW91dERhdGEuZm9jdXNlZEVsZW1lbnRSZWN0LmFyZWE8UmVjb3JkT3ZlcmZsb3c+
KCk7Ci0gICAgICAgIGlmICghZWxlbWVudEFyZWEuaGFzT3ZlcmZsb3dlZCgpICYmIGVsZW1lbnRB
cmVhIDwgbWluaW11bUZvY3VzZWRFbGVtZW50QXJlYUZvclN1cHByZXNzaW5nU2VsZWN0aW9uQXNz
aXN0YW50KQotICAgICAgICAgICAgW3NlbGYgX2JlZ2luU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Np
c3RhbnRGb3JSZWFzb246V2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVG9vU21hbGxdOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBbc2VsZiBfc3RvcFN1cHByZXNzaW5nU2VsZWN0aW9uQXNzaXN0
YW50Rm9yUmVhc29uOldlYktpdDo6Rm9jdXNlZEVsZW1lbnRJc1Rvb1NtYWxsXTsKLSAgICB9Ci0K
LSAgICBXZWJLaXQ6OldLU2VsZWN0aW9uRHJhd2luZ0luZm8gc2VsZWN0aW9uRHJhd2luZ0luZm8o
X3BhZ2UtPmVkaXRvclN0YXRlKCkpOworICAgIFdlYktpdDo6V0tTZWxlY3Rpb25EcmF3aW5nSW5m
byBzZWxlY3Rpb25EcmF3aW5nSW5mbyhzdGF0ZSk7CiAgICAgaWYgKGZvcmNlIHx8IHNlbGVjdGlv
bkRyYXdpbmdJbmZvICE9IF9sYXN0U2VsZWN0aW9uRHJhd2luZ0luZm8pIHsKICAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKFNlbGVjdGlvbiwgc3RyZWFtIDw8ICJfdXBkYXRlQ2hhbmdlZFNlbGVjdGlv
biAiIDw8IHNlbGVjdGlvbkRyYXdpbmdJbmZvKTsKIApAQCAtNTUzOCw3ICs1NTQ0LDcgQEAgLSAo
Qk9PTClfc2hvdWxkU3VwcHJlc3NTZWxlY3Rpb25Db21tYW5kcwogICAgIHJldHVybiAhIV9zdXBw
cmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnM7CiB9CiAKLS0gKHZvaWQpX2JlZ2luU3VwcHJl
c3NpbmdTZWxlY3Rpb25Bc3Npc3RhbnRGb3JSZWFzb246KFdlYktpdDo6U3VwcHJlc3NTZWxlY3Rp
b25Bc3Npc3RhbnRSZWFzb24pcmVhc29uCistICh2b2lkKV9zdGFydFN1cHByZXNzaW5nU2VsZWN0
aW9uQXNzaXN0YW50Rm9yUmVhc29uOihXZWJLaXQ6OlN1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50
UmVhc29uKXJlYXNvbgogewogICAgIGJvb2wgd2FzU3VwcHJlc3NpbmdTZWxlY3Rpb25Bc3Npc3Rh
bnQgPSAhIV9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnM7CiAgICAgX3N1cHByZXNz
U2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucy5hZGQocmVhc29uKTsKQEAgLTY1MzcsNyArNjU0Myw3
IEBAIC0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIHBlcmZvcm1Ecm9wOihpZCA8VUlEcm9wCiAgICAgICAgIHJldGFpbmVkU2VsZi0+X3BhZ2Ut
PnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNhcHR1cmVkRHJhZ0RhdGEsICJkYXRhIGludGVyYWN0aW9u
IHBhc3RlYm9hcmQiLCBXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCBXVEZNb3ZlKHNh
bmRib3hFeHRlbnNpb25Gb3JVcGxvYWQpKTsKIAogICAgICAgICByZXRhaW5lZFNlbGYtPl92aXNp
YmxlQ29udGVudFZpZXdTbmFwc2hvdCA9IFtyZXRhaW5lZFNlbGYgc25hcHNob3RWaWV3QWZ0ZXJT
Y3JlZW5VcGRhdGVzOk5PXTsKLSAgICAgICAgW3JldGFpbmVkU2VsZiBfYmVnaW5TdXBwcmVzc2lu
Z1NlbGVjdGlvbkFzc2lzdGFudEZvclJlYXNvbjpXZWJLaXQ6OkRyb3BBbmltYXRpb25Jc1J1bm5p
bmddOworICAgICAgICBbcmV0YWluZWRTZWxmIF9zdGFydFN1cHByZXNzaW5nU2VsZWN0aW9uQXNz
aXN0YW50Rm9yUmVhc29uOldlYktpdDo6RHJvcEFuaW1hdGlvbklzUnVubmluZ107CiAgICAgICAg
IFtVSVZpZXcgcGVyZm9ybVdpdGhvdXRBbmltYXRpb246W3JldGFpbmVkU2VsZl0gewogICAgICAg
ICAgICAgW3JldGFpbmVkU2VsZi0+X3Zpc2libGVDb250ZW50Vmlld1NuYXBzaG90IHNldEZyYW1l
OltyZXRhaW5lZFNlbGYgYm91bmRzXV07CiAgICAgICAgICAgICBbcmV0YWluZWRTZWxmIGFkZFN1
YnZpZXc6cmV0YWluZWRTZWxmLT5fdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3QuZ2V0KCldOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXgg
NjE5ZDY2YjhiM2ZiNTQwMDgwY2FhMDY1MGY1NTBlN2U4ZmIyM2Y3Ny4uM2VkMDBlZWJiMGY3ZTUw
ZWNlZjA1M2QzOTA5ZjkzM2ZlMDM4ZWZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xMDc4LDExICsxMDc4LDYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmVkaXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3Rh
dGUpCiAgICAgYm9vbCBjb3VsZENoYW5nZVNlY3VyZUlucHV0U3RhdGUgPSBtX2VkaXRvclN0YXRl
LmlzSW5QYXNzd29yZEZpZWxkICE9IGVkaXRvclN0YXRlLmlzSW5QYXNzd29yZEZpZWxkIHx8IG1f
ZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25lOwogICAgIAogICAgIG1fZWRpdG9yU3RhdGUgPSBl
ZGl0b3JTdGF0ZTsKLQotICAgIGlmIChtX3dhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9yU3RhdGVV
cGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudCAmJiAhbV9lZGl0b3JTdGF0ZS5pc01pc3NpbmdQb3N0
TGF5b3V0RGF0YSkgewotICAgICAgICBwYWdlQ2xpZW50KCkuZGlkUmVjZWl2ZUVkaXRvclN0YXRl
VXBkYXRlQWZ0ZXJGb2N1cygpOwotICAgICAgICBtX3dhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9y
U3RhdGVVcGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudCA9IGZhbHNlOwotICAgIH0KICAgICAKICAg
ICAvLyBTZWxlY3Rpb24gYmVpbmcgbm9uZSBpcyBhIHRlbXBvcmFyeSBzdGF0ZSB3aGVuIGVkaXRp
bmcuIEZsaXBwaW5nIHNlY3VyZSBpbnB1dCBzdGF0ZSB0b28gcXVpY2tseSB3YXMgY2F1c2luZyB0
cm91YmxlIChub3QgZnVsbHkgdW5kZXJzdG9vZCkuCiAgICAgaWYgKGNvdWxkQ2hhbmdlU2VjdXJl
SW5wdXRTdGF0ZSAmJiAhZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25lKQpAQCAtMTA5NSw2ICsx
MDkwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRp
dG9yU3RhdGUmIGVkaXRvclN0YXRlKQogICAgIC8vIGV2ZW4gZHVyaW5nIGNvbXBvc2l0aW9uIHRv
IHN1cHBvcnQgcGhyYXNlIGJvdW5kYXJ5IGdlc3R1cmUuCiAgICAgcGFnZUNsaWVudCgpLnNlbGVj
dGlvbkRpZENoYW5nZSgpOwogICAgIHVwZGF0ZUZvbnRBdHRyaWJ1dGVzQWZ0ZXJFZGl0b3JTdGF0
ZUNoYW5nZSgpOworCisgICAgaWYgKG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVw
ZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ICYmICFtX2VkaXRvclN0YXRlLmlzTWlzc2luZ1Bvc3RM
YXlvdXREYXRhKSB7CisgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRSZWNlaXZlRWRpdG9yU3RhdGVV
cGRhdGVBZnRlckZvY3VzKCk7CisgICAgICAgIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JT
dGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ID0gZmFsc2U7CisgICAgfQogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2hvd1ZhbGlkYXRpb25NZXNzYWdlKGNvbnN0IEludFJlY3QmIGFuY2hv
ckNsaWVudFJlY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYjE5ZGY1OGZmMjg4
NTY5ZGI1MDE0MzJlNGZlN2Q3MDAyYjM3ZTJmMy4uNDA3MGY4ODU3Njg2MDAxNzkzMjUxMWU3MjE4
ODVhMDQwOWI0YjA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI1Niw3ICsyNTYsMTEgQEAgdm9pZCBXZWJQYWdlOjpw
bGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiBmcmFtZSwgRWRpdG9yU3RhdGUmIHJlc3VsdCwgSW5j
bHVkZVBvc3QKICAgICAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gKm1fZm9jdXNlZEVsZW1lbnQt
PnJlbmRlcmVyKCk7CiAgICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5mb2N1c2VkRWxlbWVudFJl
Y3QgPSB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXIuYWJzb2x1dGVCb3VuZGluZ0Jv
eFJlY3QoKSk7CiAgICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5jYXJldENvbG9yID0gcmVuZGVy
ZXIuc3R5bGUoKS5jYXJldENvbG9yKCk7Ci0gICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5lbGVt
ZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFy
ZW50T3JGdWxseUNsaXBwZWQocmVuZGVyZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1
bHQuaXNDb250ZW50RWRpdGFibGUpIHsKKyAgICAgICAgICAgIGF1dG8gY29udGFpbmVyID0gbWFr
ZVJlZlB0cihzZWxlY3Rpb24ucm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKKyAgICAgICAgICAgIGlm
IChjb250YWluZXIgJiYgY29udGFpbmVyLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIHBv
c3RMYXlvdXREYXRhLmVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCA9IGVu
Y2xvc2luZ0xheWVySXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKCpjb250YWluZXItPnJlbmRl
cmVyKCkpOwogICAgICAgICB9CiAgICAgICAgIGNvbXB1dGVFZGl0YWJsZVJvb3RIYXNDb250ZW50
QW5kUGxhaW5UZXh0KHNlbGVjdGlvbiwgcG9zdExheW91dERhdGEpOwogICAgIH0KQEAgLTI1MzUs
NyArMjUzOSw2IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbihG
b2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBpbmZvcm1hdGlvCiAgICAgICAgIGF1dG8mIGVsZW1l
bnRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CiAgICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRSZWN0ID0gZWxlbWVudFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMoKm1fZm9jdXNlZEVsZW1lbnQsIGVsZW1lbnRGcmFtZSk7CiAgICAgICAgIGlu
Zm9ybWF0aW9uLm5vZGVGb250U2l6ZSA9IHJlbmRlcmVyLT5zdHlsZSgpLmZvbnREZXNjcmlwdGlv
bigpLmNvbXB1dGVkU2l6ZSgpOwotICAgICAgICBpbmZvcm1hdGlvbi5lbGVtZW50SXNUcmFuc3Bh
cmVudE9yRnVsbHlDbGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFyZW50T3JGdWxseUNs
aXBwZWQoKnJlbmRlcmVyKTsKIAogICAgICAgICBib29sIGluRml4ZWQgPSBmYWxzZTsKICAgICAg
ICAgcmVuZGVyZXItPmxvY2FsVG9Db250YWluZXJQb2ludChGbG9hdFBvaW50KCksIG51bGxwdHIs
IFVzZVRyYW5zZm9ybXMsICZpbkZpeGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZjQ0MDU1MDViNThmMDJjZDg3MWM5
NjdkNzdlNTQ0YmI1ODIwMDMzLi5jODZhNTNlMmU4OTlhMTRjNzMzMGEwNTM5NDE5YjE4YjEzZTMw
YWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDMtMTggIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gTmF0aXZlIHNlbGVjdGlvbiB2
aWV3cyBzb21ldGltZXMgYXBwZWFyIGluIGhpZGRlbiBlZGl0YWJsZSBhcmVhcyBhZnRlciBsb3Np
bmcgZm9jdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NTg5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg4NDk5ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0
IG1vdmluZyBmb2N1cyBhd2F5IGZyb20gYSBoaWRkZW4gZWRpdGFibGUgZWxlbWVudCBkb2Vzbid0
IGNhdXNlIHBsYXRmb3JtIHNlbGVjdGlvbgorICAgICAgICB2aWV3cyBpbiB0aGUgZWxlbWVudCB0
byBhcHBlYXIuIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3MvaGlkZS1zZWxlY3Rpb24taW4tbm9uLWZvY3VzZWQt
ZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L2lvcy9oaWRlLXNlbGVjdGlvbi1pbi1ub24tZm9jdXNlZC1lbGVtZW50Lmh0bWw6IEFkZGVkLgor
CiAyMDE5LTAzLTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIG5ldyBNZWRpYUNhcGFiaWxpdGllc0V4dGVuc2lvbnNFbmFibGVkIHNldHRpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9oaWRlLXNlbGVjdGlv
bi1pbi1ub24tZm9jdXNlZC1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2lvcy9oaWRlLXNlbGVjdGlvbi1pbi1ub24tZm9jdXNlZC1lbGVtZW50LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzc3MTMwNzAyY2QzYzUwMjc3MTU1NDk0NmM0MjE3MTQ5
ZGY4ZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
aW9zL2hpZGUtc2VsZWN0aW9uLWluLW5vbi1mb2N1c2VkLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTMgQEAKK0hlbGxvIHdvcmxkCisKK1ZlcmlmaWVzIHRoYXQgdGV4dCBzZWxlY3Rp
b24gaXMgc3VwcHJlc3NlZCB3aGVuIHRoZSBzZWxlY3RlZCBjb250ZW50IGlzIGluIGEgaGlkZGVu
IGVkaXRhYmxlIHJvb3QsIGV2ZW4gd2hlbiBmb2N1c2luZyBhIGRpZmZlcmVudCBlbGVtZW50LiBU
byBtYW51YWxseSBydW4gdGhlIHRlc3QsIHRhcCB0aGUgZWRpdGFibGUgYXJlYSBpbiB0aGUgcmVk
IGJveCwgYW5kIHRoZW4gdGFwIHRoZSBidXR0b24gYmVsb3cgaXQuIFBsYXRmb3JtIHNlbGVjdGlv
biB2aWV3cyBzaG91bGQgbm90IGJlY29tZSB2aXNpYmxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKK1BBU1Mgc2VsZWN0aW9uUmVjdHMubGVuZ3RoIGlzIDAKK1BBU1MgZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVsbG8gd29ybGQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQgaXMgZm9jdXNUYXJnZXQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9pb3MvaGlkZS1zZWxlY3Rpb24taW4tbm9uLWZvY3VzZWQtZWxlbWVudC5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2hpZGUtc2VsZWN0aW9uLWluLW5vbi1mb2N1c2Vk
LWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDkyNDk4ZWIzNjZiNDQ0YjAxZTY0NWQxODE1ZjMz
YTFhMDRlNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vaW9zL2hpZGUtc2VsZWN0aW9uLWluLW5vbi1mb2N1c2VkLWVsZW1lbnQuaHRtbApAQCAtMCww
ICsxLDc3IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgeworICAgIHdpZHRoOiAxMDAlOworICAgIGhl
aWdodDogMTAwJTsKKyAgICBtYXJnaW46IDA7Cit9CisKKyNlZGl0b3IgeworICAgIHdpZHRoOiAx
MDAlOworICAgIGhlaWdodDogMTAwJTsKKyAgICBvcGFjaXR5OiAwOworfQorCisjY29udGFpbmVy
IHsKKyAgICB3aWR0aDogMzIwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBib3JkZXI6IDFw
eCBzb2xpZCB0b21hdG87Cit9CisKKyN0YXJnZXQgeworICAgIHdpZHRoOiAxZW07CisgICAgaGVp
Z2h0OiAxZW07Cit9CisKK2lucHV0IHsKKyAgICB3aWR0aDogMzIwcHg7CisgICAgaGVpZ2h0OiAz
ZW07Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5U
ZXN0KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IHRleHQgc2VsZWN0aW9uIGlzIHN1cHBy
ZXNzZWQgd2hlbiB0aGUgc2VsZWN0ZWQgY29udGVudCBpcyBpbiBhIGhpZGRlbiBlZGl0YWJsZSBy
b290LCBldmVuIHdoZW4gZm9jdXNpbmcgYSBkaWZmZXJlbnQgZWxlbWVudC4gVG8gbWFudWFsbHkg
cnVuIHRoZSB0ZXN0LCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgaW4gdGhlIHJlZCBib3gsIGFuZCB0
aGVuIHRhcCB0aGUgYnV0dG9uIGJlbG93IGl0LiBQbGF0Zm9ybSBzZWxlY3Rpb24gdmlld3Mgc2hv
dWxkIG5vdCBiZWNvbWUgdmlzaWJsZS4iKTsKKworICAgIGJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImlucHV0Iik7CisgICAgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImVkaXRvciIpOworICAgIGZvY3VzVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZv
Y3VzLXRhcmdldCIpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsICgpID0+
IGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRvcikpOworICAgIGJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKKyAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgICAgZm9jdXNUYXJnZXQuZm9jdXMoKTsKKyAgICB9KTsKKworICAgIGlm
ICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF3YWl0IFVJSGVs
cGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oZWRpdG9yKTsKKyAgICBh
d2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoYnV0dG9uKTsKKyAgICBhd2FpdCBVSUhlbHBl
ci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICBzZWxlY3Rpb25SZWN0cyA9IGF3YWl0IFVJ
SGVscGVyLmdldFVJU2VsZWN0aW9uVmlld1JlY3RzKCk7CisKKyAgICBzaG91bGRCZSgic2VsZWN0
aW9uUmVjdHMubGVuZ3RoIiwgIjAiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiSGVsbG8gd29ybGQiKTsKKyAgICBzaG91bGRCZSgiZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCIsICJmb2N1c1RhcmdldCIpOworCisgICAgZmluaXNoSlNUZXN0
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4K
KyAgICA8ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT5IZWxsbyB3b3JsZDwvZGl2Pgor
PC9kaXY+Cis8ZGl2IHRhYmluZGV4PSIwIiBpZD0iZm9jdXMtdGFyZ2V0Ij48L2Rpdj4KKzxpbnB1
dCB0eXBlPSJidXR0b24iIHZhbHVlPSJQcmVzcyBtZSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>