<?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>195803</bug_id>
          
          <creation_ts>2019-03-15 08:29:17 -0700</creation_ts>
          <short_desc>Use Region for event region even when it is a rectangle</short_desc>
          <delta_ts>2019-03-15 13:07: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>Scrolling</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1516975</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-03-15 08:29:17 -0700</bug_when>
    <thetext>Region type is now optimized for the common single-rectangle case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516986</commentid>
    <comment_count>1</comment_count>
      <attachid>364802</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-03-15 08:55:24 -0700</bug_when>
    <thetext>Created attachment 364802
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517010</commentid>
    <comment_count>2</comment_count>
      <attachid>364809</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-03-15 10:41:58 -0700</bug_when>
    <thetext>Created attachment 364809
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517080</commentid>
    <comment_count>3</comment_count>
      <attachid>364809</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-15 13:06:10 -0700</bug_when>
    <thetext>Comment on attachment 364809
patch

Clearing flags on attachment: 364809

Committed r243007: &lt;https://trac.webkit.org/changeset/243007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517081</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-15 13:06:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517082</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-15 13:07:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/48935331&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364802</attachid>
            <date>2019-03-15 08:55:24 -0700</date>
            <delta_ts>2019-03-15 10:41:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-always-2.patch</filename>
            <type>text/plain</type>
            <size>18503</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgUmVnaW9uIGZvciBldmVu
dCByZWdpb24gZXZlbiB3aGVuIGl0IGlzIGEgcmVjdGFuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU4MDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdpb24gdHlwZSBpcyBub3cgb3B0aW1pemVk
IGZvciB0aGUgY29tbW9uIHNpbmdsZS1yZWN0YW5nbGUgY2FzZSBzbyB3ZSBjYW4gc2ltcGxpZnkg
Y29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0RXZlbnRSZWdpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OmV2ZW50UmVnaW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpzZXRFdmVudFJlZ2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxh
dGZvcm1DQUxheWVyQ29jb2EuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRv
TGF5ZXIpOgorCiAyMDE5LTAzLTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBPcHRpbWl6ZSBSZWdpb24gZm9yIHNpbmdsZSByZWN0YW5nbGUgY2FzZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAJKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIgotI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlJvdGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC00MTIsOSArNDExLDkgQEAgdm9pZCBHcmFwaGlj
c0xheWVyOjpzZXRTaGFwZUxheWVyV2luZFJ1bAogI2VuZGlmCiB9CiAKLXZvaWQgR3JhcGhpY3NM
YXllcjo6c2V0RXZlbnRSZWdpb24oc3RkOjp1bmlxdWVfcHRyPFJlZ2lvbj4mJiBldmVudFJlZ2lv
bikKK3ZvaWQgR3JhcGhpY3NMYXllcjo6c2V0RXZlbnRSZWdpb24oUmVnaW9uJiYgZXZlbnRSZWdp
b24pCiB7Ci0gICAgbV9ldmVudFJlZ2lvbiA9IFdURk1vdmUoZXZlbnRSZWdpb24pOworICAgIG1f
ZXZlbnRSZWdpb24gPSBldmVudFJlZ2lvbjsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyOjpub3Rl
RGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkSW5jbHVkaW5nRGVzY2VuZGFudHMoKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllckNsaWVudC5oIgogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJs
ZUFyZWEuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1PcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiV2lu
ZFJ1bGUuaCIKQEAgLTU0LDcgKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CiBjbGFzcyBJbWFnZTsK
LWNsYXNzIFJlZ2lvbjsKIGNsYXNzIFRpbGVkQmFja2luZzsKIGNsYXNzIFRpbWluZ0Z1bmN0aW9u
OwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CkBAIC00NTQsOCArNDU0LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaGFwZUxheWVyV2luZFJ1bGUoV2luZFJ1bGUpOwogCiAg
ICAgLy8gTm9uLW51bGwgaWYgdGhlIGV2ZW50IHNlbnNpdGl2ZSByZWdpb24gb2YgdGhlIGxheWVy
IGRpZmZlcnMgZnJvbSB0aGUgbGF5ZXIgYm91bmRzLgotICAgIGNvbnN0IFJlZ2lvbiogZXZlbnRS
ZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UmVnaW9uLmdldCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldEV2ZW50UmVnaW9uKHN0ZDo6dW5pcXVlX3B0cjxSZWdpb24+JiYpOworICAgIGNv
bnN0IFJlZ2lvbiYgZXZlbnRSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UmVnaW9uOyB9
CisgICAgdmlydHVhbCB2b2lkIHNldEV2ZW50UmVnaW9uKFJlZ2lvbiYmKTsKIAogICAgIC8vIFRy
YW5zaXRpb25zIGFyZSBpZGVudGlmaWVkIGJ5IGEgc3BlY2lhbCBhbmltYXRpb24gbmFtZSB0aGF0
IGNhbm5vdCBjbGFzaCB3aXRoIGEga2V5ZnJhbWUgaWRlbnRpZmllci4KICAgICBzdGF0aWMgU3Ry
aW5nIGFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlJRCk7CkBAIC03
MzEsNyArNzMxLDcgQEAgcHJvdGVjdGVkOgogICAgIEZsb2F0Um91bmRlZFJlY3QgbV9iYWNrZHJv
cEZpbHRlcnNSZWN0OwogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbV9hbmltYXRpb25FeHRlbnQ7
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaW9uPiBtX2V2ZW50UmVnaW9uOworICAgIFJlZ2lv
biBtX2V2ZW50UmVnaW9uOwogCiAjaWYgVVNFKENBKQogICAgIFdpbmRSdWxlIG1fc2hhcGVMYXll
cldpbmRSdWxlIHsgV2luZFJ1bGU6Ok5vblplcm8gfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAkocmV2
aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg0LDkgKzk4NCw5IEBAIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRTaGFwZUxheWVyV2luZFIKICAgICBub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoV2luZFJ1bGVDaGFuZ2VkKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNl
dEV2ZW50UmVnaW9uKHN0ZDo6dW5pcXVlX3B0cjxSZWdpb24+JiYgZXZlbnRSZWdpb24pCit2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0RXZlbnRSZWdpb24oUmVnaW9uJiYgZXZlbnRSZWdpb24pCiB7
Ci0gICAgaWYgKGFyZVBvaW50aW5nVG9FcXVhbERhdGEoZXZlbnRSZWdpb24sIG1fZXZlbnRSZWdp
b24pKQorICAgIGlmIChldmVudFJlZ2lvbiA9PSBtX2V2ZW50UmVnaW9uKQogICAgICAgICByZXR1
cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRFdmVudFJlZ2lvbihXVEZNb3ZlKGV2ZW50UmVn
aW9uKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuaAkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
aGFwZUxheWVyUGF0aChjb25zdCBQYXRoJikgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTaGFwZUxheWVyV2luZFJ1bGUoV2luZFJ1bGUpIG92ZXJyaWRlOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRFdmVudFJlZ2lvbihzdGQ6OnVuaXF1ZV9wdHI8UmVnaW9uPiYm
KSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEV2ZW50UmVnaW9uKFJlZ2lv
biYmKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3VzcGVuZEFuaW1hdGlv
bnMoTW9ub3RvbmljVGltZSkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN1
bWVBbmltYXRpb25zKCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAkocmV2aXNpb24gMjQyOTk1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw4ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBXaW5kUnVsZSBzaGFwZVdpbmRSdWxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTaGFwZVdpbmRSdWxlKFdpbmRSdWxlKSA9IDA7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lv
biogZXZlbnRSZWdpb24oKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEV2ZW50UmVn
aW9uKGNvbnN0IFJlZ2lvbiopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXZlbnRSZWdpb24o
Y29uc3QgUmVnaW9uJikgPSAwOwogICAgIAogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3Vz
dG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFu
Y2UpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FMYXllckNvY29hLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaAkocmV2aXNpb24g
MjQyOTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxh
dGZvcm1DQUxheWVyQ29jb2EuaAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDggKzE2OCw3IEBAIHB1
YmxpYzoKICAgICBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFu
Y2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7IH0KICAgICB2
b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5j
ZSkgb3ZlcnJpZGU7CiAKLSAgICBjb25zdCBSZWdpb24qIGV2ZW50UmVnaW9uKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3Qg
UmVnaW9uKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBSZWdp
b24mKSBvdmVycmlkZSB7IH0KIAogICAgIEdyYXBoaWNzTGF5ZXI6OkVtYmVkZGVkVmlld0lEIGVt
YmVkZGVkVmlld0lEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVy
V2luLmgJKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDgg
KzE1Nyw3IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1
c3RvbUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbUFwcGVhcmFu
Y2U7IH0KICAgICB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3Vz
dG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKSBvdmVycmlkZSB7IG1fY3VzdG9tQXBwZWFy
YW5jZSA9IGN1c3RvbUFwcGVhcmFuY2U7IH0KIAotICAgIGNvbnN0IFJlZ2lvbiogZXZlbnRSZWdp
b24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgdm9pZCBzZXRFdmVu
dFJlZ2lvbihjb25zdCBSZWdpb24qKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHNldEV2ZW50UmVn
aW9uKGNvbnN0IFJlZ2lvbiYpIG92ZXJyaWRlIHsgfQogCiAgICAgR3JhcGhpY3NMYXllcjo6RW1i
ZWRkZWRWaWV3SUQgZW1iZWRkZWRWaWV3SUQoKSBjb25zdCBvdmVycmlkZTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHJldmlz
aW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTg2LDIwICsyNTg2LDE1IEBAIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcigKICAgICBSZW5kZXJMYXllcjo6TGF5ZXJQYWlu
dGluZ0luZm8gcGFpbnRpbmdJbmZvKCZtX293bmluZ0xheWVyLCBwYWludERpcnR5UmVjdCwgcGFp
bnRCZWhhdmlvciwgLW1fc3VicGl4ZWxPZmZzZXRGcm9tUmVuZGVyZXIpOwogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvIGV2ZW50UmVnaW9uID0gc3RkOjptYWtlX3VuaXF1ZTxS
ZWdpb24+KCk7Ci0gICAgcGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uID0gZXZlbnRSZWdpb24uZ2V0
KCk7CisgICAgUmVnaW9uIGV2ZW50UmVnaW9uOworICAgIHBhaW50aW5nSW5mby5ldmVudFJlZ2lv
biA9ICZldmVudFJlZ2lvbjsKICNlbmRpZgogCiAgICAgbV9vd25pbmdMYXllci5wYWludExheWVy
Q29udGVudHMoY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgcGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uID0gbnVsbHB0cjsK
LSAgICAvLyBVc2UgbnVsbCBldmVudCByZWdpb24gdG8gaW5kaWNhdGUgdGhlIGVudGlyZSBsYXll
ciBpcyBzZW5zaXRpdmUgdG8gZXZlbnRzICh0aGUgY29tbW9uIGNhc2UpLgotICAgIC8vIEZJWE1F
OiBXZSBjb3VsZCBvcHRpbWl6ZSBSZWdpb24gc28gaXQgZG9lc24ndCB1c2UgbG90cyBvZiBtZW1v
cnkgaWYgaXQgY29udGFpbnMgYSBzaW5nbGUgcmVjdCBvbmx5LgotICAgIGlmIChldmVudFJlZ2lv
bi0+Y29udGFpbnMocm91bmRlZEludFJlY3QoY29tcG9zaXRlZEJvdW5kcygpKSkpCi0gICAgICAg
IGV2ZW50UmVnaW9uID0gbnVsbHB0cjsKLSAgICBlbHNlCi0gICAgICAgIGV2ZW50UmVnaW9uLT50
cmFuc2xhdGUocm91bmRlZEludFNpemUoY29udGVudE9mZnNldEluQ29tcG9zaXRpbmdMYXllcigp
KSk7CisgICAgZXZlbnRSZWdpb24udHJhbnNsYXRlKHJvdW5kZWRJbnRTaXplKGNvbnRlbnRPZmZz
ZXRJbkNvbXBvc2l0aW5nTGF5ZXIoKSkpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0RXZlbnRS
ZWdpb24oV1RGTW92ZShldmVudFJlZ2lvbikpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyNDI5OTUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI4IEBACisyMDE5LTAzLTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgUmVnaW9uIGZvciBldmVudCByZWdpb24gZXZlbiB3aGVuIGl0
IGlzIGEgcmVjdGFuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTU4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlB
cHBsaWVyLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXI6OmFwcGx5UHJvcGVydGllcyk6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGll
cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclBy
b3BlcnRpZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLmg6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZU5vZGU6OmV2ZW50UmVnaW9uIGNvbnN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZU5vZGU6OnNldEV2ZW50UmVnaW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToK
KyAgICAgICAgKFdlYktpdDo6Y29sbGVjdERlc2NlbmRhbnRWaWV3c0F0UG9pbnQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRFdmVu
dFJlZ2lvbik6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6ZXZlbnRS
ZWdpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisKIDIwMTktMDMtMTUgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIFJlZ2lvbiBm
b3Igc2luZ2xlIHJlY3RhbmdsZSBjYXNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVQ
cm9wZXJ0eUFwcGxpZXIubW0JKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVByb3Bl
cnR5QXBwbGllcjo6YXBwCiAgICAgdXBkYXRlTWFzayhub2RlLCBwcm9wZXJ0aWVzLCByZWxhdGVk
TGF5ZXJzKTsKIAogICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkV2ZW50UmVnaW9uQ2hhbmdlZCkKLSAgICAgICAgbm9kZS5z
ZXRFdmVudFJlZ2lvbihwcm9wZXJ0aWVzLmV2ZW50UmVnaW9uID8gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJDb3JlOjpSZWdpb24+KCpwcm9wZXJ0aWVzLmV2ZW50UmVnaW9uKSA6IG51bGxwdHIpOworICAg
ICAgICBub2RlLnNldEV2ZW50UmVnaW9uKHByb3BlcnRpZXMuZXZlbnRSZWdpb24pOwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBhcHBseVByb3BlcnRpZXNUb1VJVmlldyhub2RlLnVp
VmlldygpLCBwcm9wZXJ0aWVzLCByZWxhdGVkTGF5ZXJzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5oCShyZXZpc2lvbiAyNDI5OTUpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBvcGFxdWU7
CiAgICAgICAgIGJvb2wgY29udGVudHNIaWRkZW47CiAgICAgICAgIGJvb2wgdXNlckludGVyYWN0
aW9uRW5hYmxlZDsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlJlZ2lvbj4gZXZl
bnRSZWdpb247CisgICAgICAgIFdlYkNvcmU6OlJlZ2lvbiBldmVudFJlZ2lvbjsKICAgICB9Owog
CiAgICAgZXhwbGljaXQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24oKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0JKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0Myw3IEBAIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnQKICAgICAsIG9wYXF1ZShvdGhlci5vcGFxdWUpCiAgICAg
LCBjb250ZW50c0hpZGRlbihvdGhlci5jb250ZW50c0hpZGRlbikKICAgICAsIHVzZXJJbnRlcmFj
dGlvbkVuYWJsZWQob3RoZXIudXNlckludGVyYWN0aW9uRW5hYmxlZCkKKyAgICAsIGV2ZW50UmVn
aW9uKG90aGVyLmV2ZW50UmVnaW9uKQogewogICAgIC8vIEZJWE1FOiBMYXllclByb3BlcnRpZXMg
c2hvdWxkIHJlZmVyZW5jZSBiYWNraW5nIHN0b3JlIGJ5IElELCBzbyB0aGF0IHR3byBsYXllcnMg
Y2FuIGhhdmUgdGhlIHNhbWUgYmFja2luZyBzdG9yZSAoZm9yIGNsb25lcykuCiAgICAgLy8gRklY
TUU6IExheWVyUHJvcGVydGllcyBzaG91bGRuJ3QgYmUgY29weWFibGU7IFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6Y2xvbmUgc2hvdWxkIGNvcHkgdGhlIHJlbGV2YW50IHByb3BlcnRpZXMuCkBAIC0x
NTUsMTAgKzE1Niw2IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnQK
IAogICAgIGlmIChvdGhlci5maWx0ZXJzKQogICAgICAgICBmaWx0ZXJzID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPigqb3RoZXIuZmlsdGVycyk7Ci0KLSAgICBp
ZiAob3RoZXIuZXZlbnRSZWdpb24pCi0gICAgICAgIGV2ZW50UmVnaW9uID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJDb3JlOjpSZWdpb24+KCpvdGhlci5ldmVudFJlZ2lvbik7Ci0KIH0KIAogdm9pZCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAtMjgyLDExICsyNzksOCBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYg
VXNlckludGVyYWN0aW9uRW5hYmxlZENoYW5nZWQpCiAgICAgICAgIGVuY29kZXIgPDwgdXNlcklu
dGVyYWN0aW9uRW5hYmxlZDsKIAotICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIEV2ZW50UmVn
aW9uQ2hhbmdlZCkgewotICAgICAgICBlbmNvZGVyIDw8ICEhZXZlbnRSZWdpb247Ci0gICAgICAg
IGlmIChldmVudFJlZ2lvbikKLSAgICAgICAgICAgIGVuY29kZXIgPDwgKmV2ZW50UmVnaW9uOwot
ICAgIH0KKyAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBFdmVudFJlZ2lvbkNoYW5nZWQpCisg
ICAgICAgIGVuY29kZXIgPDwgZXZlbnRSZWdpb247CiB9CiAKIGJvb2wgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTGF5ZXJQcm9wZXJ0aWVzJiByZXN1bHQpCkBAIC01MTEsMTYgKzUwNSwxMSBAQCBib29sIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByCiAgICAgfQogCiAgICAgaWYgKHJlc3Vs
dC5jaGFuZ2VkUHJvcGVydGllcyAmIEV2ZW50UmVnaW9uQ2hhbmdlZCkgewotICAgICAgICBib29s
IGhhc0V2ZW50UmVnaW9uID0gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFz
RXZlbnRSZWdpb24pKQorICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWdpb24+IGV2ZW50UmVn
aW9uOworICAgICAgICBkZWNvZGVyID4+IGV2ZW50UmVnaW9uOworICAgICAgICBpZiAoIWV2ZW50
UmVnaW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoaGFzRXZlbnRS
ZWdpb24pIHsKLSAgICAgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lvbj4gZXZlbnRSZWdp
b247Ci0gICAgICAgICAgICBkZWNvZGVyID4+IGV2ZW50UmVnaW9uOwotICAgICAgICAgICAgaWYg
KCFldmVudFJlZ2lvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg
ICByZXN1bHQuZXZlbnRSZWdpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlZ2lvbj4oV1RGTW92ZSgq
ZXZlbnRSZWdpb24pKTsKLSAgICAgICAgfQorICAgICAgICByZXN1bHQuZXZlbnRSZWdpb24gPSBX
VEZNb3ZlKCpldmVudFJlZ2lvbik7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVOb2RlLmgJKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDggKzU1LDggQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQoKSBjb25zdCB7IHJldHVybiBtX2xheWVy
SUQ7IH0KIAotICAgIGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiogZXZlbnRSZWdpb24oKSBjb25zdCB7
IHJldHVybiBtX2V2ZW50UmVnaW9uLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRFdmVudFJlZ2lvbihz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UmVnaW9uPiYmKTsKKyAgICBjb25zdCBXZWJDb3JlOjpS
ZWdpb24mIGV2ZW50UmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudFJlZ2lvbjsgfQorICAg
IHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7CiAKICAgICB2b2lk
IGRldGFjaEZyb21QYXJlbnQoKTsKIApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIFJl
dGFpblB0cjxVSVZpZXc+IG1fdWlWaWV3OwogI2VuZGlmCiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6UmVnaW9uPiBtX2V2ZW50UmVnaW9uOworICAgIFdlYkNvcmU6OlJlZ2lvbiBtX2V2
ZW50UmVnaW9uOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUubW0JKHJl
dmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVOb2RlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw5ICs4Nyw5IEBA
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6ZGV0YWNoRnJvbVBhcmUKICAgICBbbGF5ZXIoKSBy
ZW1vdmVGcm9tU3VwZXJsYXllcl07CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0
RXZlbnRSZWdpb24oc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlJlZ2lvbj4mJiBldmVudFJlZ2lv
bikKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0RXZlbnRSZWdpb24oY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJiBldmVudFJlZ2lvbikKIHsKLSAgICBtX2V2ZW50UmVnaW9uID0gV1RGTW92ZShl
dmVudFJlZ2lvbik7CisgICAgbV9ldmVudFJlZ2lvbiA9IGV2ZW50UmVnaW9uOwogfQogCiB2b2lk
IFJlbW90ZUxheWVyVHJlZU5vZGU6OmluaXRpYWxpemVMYXllcigpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0JKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3Mu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDggKzU5LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdERl
c2NlbmRhbnRWaWV3c0F0UG9pbgogCiAgICAgICAgIGlmICghaXNUcmFuc3BhcmVudCAmJiBbdmll
dyBwb2ludEluc2lkZTpzdWJ2aWV3UG9pbnQgd2l0aEV2ZW50OmV2ZW50XSkgewogICAgICAgICAg
ICAgYXV0byogbm9kZSA9IFJlbW90ZUxheWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIodmlldy5sYXll
cik7Ci0gICAgICAgICAgICBhdXRvKiBldmVudFJlZ2lvbiA9IG5vZGUgPyBub2RlLT5ldmVudFJl
Z2lvbigpIDogbnVsbHB0cjsKLSAgICAgICAgICAgIGlmICghZXZlbnRSZWdpb24gfHwgZXZlbnRS
ZWdpb24tPmNvbnRhaW5zKFdlYkNvcmU6OkludFBvaW50KHN1YnZpZXdQb2ludCkpKQorICAgICAg
ICAgICAgaWYgKCFub2RlIHx8IG5vZGUtPmV2ZW50UmVnaW9uKCkuY29udGFpbnMoV2ViQ29yZTo6
SW50UG9pbnQoc3Vidmlld1BvaW50KSkpCiAgICAgICAgICAgICAgICAgdmlld3NBdFBvaW50LmFw
cGVuZCh2aWV3KTsKICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3MSwxOCArODcxLDEyIEBAIHZvaWQgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjp1cGRhdGVDdXN0b20KICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3Bl
cnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDdXN0b21BcHBlYXJhbmNl
Q2hhbmdlZCk7CiB9CiAKLWNvbnN0IFJlZ2lvbiogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpldmVu
dFJlZ2lvbigpIGNvbnN0Cit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0RXZlbnRSZWdp
b24oY29uc3QgV2ViQ29yZTo6UmVnaW9uJiBldmVudFJlZ2lvbikKIHsKLSAgICByZXR1cm4gbV9w
cm9wZXJ0aWVzLmV2ZW50UmVnaW9uLmdldCgpOwotfQotCi12b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6c2V0RXZlbnRSZWdpb24oY29uc3QgV2ViQ29yZTo6UmVnaW9uKiBldmVudFJlZ2lvbikK
LXsKLSAgICBjb25zdCBhdXRvKiBvbGRFdmVudFJlZ2lvbiA9IG1fcHJvcGVydGllcy5ldmVudFJl
Z2lvbi5nZXQoKTsKLSAgICBpZiAoYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShvbGRFdmVudFJlZ2lv
biwgZXZlbnRSZWdpb24pKQorICAgIGlmIChtX3Byb3BlcnRpZXMuZXZlbnRSZWdpb24gPT0gZXZl
bnRSZWdpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvcGVydGllcy5ldmVudFJlZ2lv
biA9IGV2ZW50UmVnaW9uID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpSZWdpb24+KCpldmVu
dFJlZ2lvbikgOiBudWxscHRyOworICAgIG1fcHJvcGVydGllcy5ldmVudFJlZ2lvbiA9IGV2ZW50
UmVnaW9uOwogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkV2ZW50UmVnaW9uQ2hhbmdlZCk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgJKHJldmlzaW9uIDI0Mjk5
NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDggKzE3NCw3IEBA
IHB1YmxpYzoKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1
c3RvbUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUN1c3RvbUFw
cGVhcmFuY2UoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSkgb3ZlcnJp
ZGU7CiAKLSAgICBjb25zdCBXZWJDb3JlOjpSZWdpb24qIGV2ZW50UmVnaW9uKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpSZWdpb24qKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldEV2ZW50UmVnaW9uKGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYp
IG92ZXJyaWRlOwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6RW1iZWRkZWRWaWV3SUQg
ZW1iZWRkZWRWaWV3SUQoKSBjb25zdCBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364809</attachid>
            <date>2019-03-15 10:41:58 -0700</date>
            <delta_ts>2019-03-15 13:06:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-always-3.patch</filename>
            <type>text/plain</type>
            <size>19426</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Mjk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgUmVnaW9uIGZvciBldmVu
dCByZWdpb24gZXZlbiB3aGVuIGl0IGlzIGEgcmVjdGFuZ2xlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU4MDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWdpb24gdHlwZSBpcyBub3cgb3B0aW1pemVk
IGZvciB0aGUgY29tbW9uIHNpbmdsZS1yZWN0YW5nbGUgY2FzZSBzbyB3ZSBjYW4gc2ltcGxpZnkg
Y29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0RXZlbnRSZWdpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OmV2ZW50UmVnaW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpzZXRFdmVudFJlZ2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxh
dGZvcm1DQUxheWVyQ29jb2EuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRv
TGF5ZXIpOgorCiAyMDE5LTAzLTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBUcnkgdG8gZml4IHdhdGNoT1MgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAkocmV2aXNpb24g
MjQyOTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0
LmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KQEAgLTQxMiw5ICs0MTEsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OnNldFNoYXBl
TGF5ZXJXaW5kUnVsCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjpzZXRFdmVudFJl
Z2lvbihzdGQ6OnVuaXF1ZV9wdHI8UmVnaW9uPiYmIGV2ZW50UmVnaW9uKQordm9pZCBHcmFwaGlj
c0xheWVyOjpzZXRFdmVudFJlZ2lvbihSZWdpb24mJiBldmVudFJlZ2lvbikKIHsKLSAgICBtX2V2
ZW50UmVnaW9uID0gV1RGTW92ZShldmVudFJlZ2lvbik7CisgICAgbV9ldmVudFJlZ2lvbiA9IGV2
ZW50UmVnaW9uOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6Om5vdGVEZXZpY2VPclBhZ2VTY2Fs
ZUZhY3RvckNoYW5nZWRJbmNsdWRpbmdEZXNjZW5kYW50cygpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCShyZXZpc2lvbiAyNDI5
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIK
KyNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1
ZGUgIlRyYW5zZm9ybU9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJXaW5kUnVsZS5oIgpAQCAtNTQs
NyArNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBj
bGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKIGNsYXNzIEltYWdlOwotY2xhc3MgUmVnaW9uOwog
Y2xhc3MgVGlsZWRCYWNraW5nOwogY2xhc3MgVGltaW5nRnVuY3Rpb247CiBjbGFzcyBUcmFuc2Zv
cm1hdGlvbk1hdHJpeDsKQEAgLTQ1NCw4ICs0NTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFNoYXBlTGF5ZXJXaW5kUnVsZShXaW5kUnVsZSk7CiAKICAgICAvLyBOb24tbnVsbCBp
ZiB0aGUgZXZlbnQgc2Vuc2l0aXZlIHJlZ2lvbiBvZiB0aGUgbGF5ZXIgZGlmZmVycyBmcm9tIHRo
ZSBsYXllciBib3VuZHMuCi0gICAgY29uc3QgUmVnaW9uKiBldmVudFJlZ2lvbigpIGNvbnN0IHsg
cmV0dXJuIG1fZXZlbnRSZWdpb24uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RXZlbnRS
ZWdpb24oc3RkOjp1bmlxdWVfcHRyPFJlZ2lvbj4mJik7CisgICAgY29uc3QgUmVnaW9uJiBldmVu
dFJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRSZWdpb247IH0KKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RXZlbnRSZWdpb24oUmVnaW9uJiYpOwogCiAgICAgLy8gVHJhbnNpdGlvbnMgYXJlIGlk
ZW50aWZpZWQgYnkgYSBzcGVjaWFsIGFuaW1hdGlvbiBuYW1lIHRoYXQgY2Fubm90IGNsYXNoIHdp
dGggYSBrZXlmcmFtZSBpZGVudGlmaWVyLgogICAgIHN0YXRpYyBTdHJpbmcgYW5pbWF0aW9uTmFt
ZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eUlEKTsKQEAgLTczMSw3ICs3MzEsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgRmxvYXRSb3VuZGVkUmVjdCBtX2JhY2tkcm9wRmlsdGVyc1JlY3Q7CiAg
ICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBtX2FuaW1hdGlvbkV4dGVudDsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZWdpb24+IG1fZXZlbnRSZWdpb247CisgICAgUmVnaW9uIG1fZXZlbnRSZWdpb247
CiAKICNpZiBVU0UoQ0EpCiAgICAgV2luZFJ1bGUgbV9zaGFwZUxheWVyV2luZFJ1bGUgeyBXaW5k
UnVsZTo6Tm9uWmVybyB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCShyZXZpc2lvbiAyNDI5OTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05ODQsOSArOTg0LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnNldFNoYXBlTGF5ZXJXaW5kUgogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChXaW5kUnVs
ZUNoYW5nZWQpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RXZlbnRSZWdpb24oc3Rk
Ojp1bmlxdWVfcHRyPFJlZ2lvbj4mJiBldmVudFJlZ2lvbikKK3ZvaWQgR3JhcGhpY3NMYXllckNB
OjpzZXRFdmVudFJlZ2lvbihSZWdpb24mJiBldmVudFJlZ2lvbikKIHsKLSAgICBpZiAoYXJlUG9p
bnRpbmdUb0VxdWFsRGF0YShldmVudFJlZ2lvbiwgbV9ldmVudFJlZ2lvbikpCisgICAgaWYgKGV2
ZW50UmVnaW9uID09IG1fZXZlbnRSZWdpb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBo
aWNzTGF5ZXI6OnNldEV2ZW50UmVnaW9uKFdURk1vdmUoZXZlbnRSZWdpb24pKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oCShyZXZpc2lvbiAyNDI5OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNoYXBlTGF5ZXJQYXRoKGNv
bnN0IFBhdGgmKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNoYXBlTGF5
ZXJXaW5kUnVsZShXaW5kUnVsZSkgb3ZlcnJpZGU7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldEV2ZW50UmVnaW9uKHN0ZDo6dW5pcXVlX3B0cjxSZWdpb24+JiYpIG92ZXJyaWRlOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXZlbnRSZWdpb24oUmVnaW9uJiYpIG92ZXJyaWRlOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhNb25vdG9uaWNUaW1l
KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKSBv
dmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCShyZXZpc2lvbiAyNDI5OTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjM0LDggKzIzNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdpbmRSdWxlIHNoYXBl
V2luZFJ1bGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNoYXBlV2luZFJ1bGUo
V2luZFJ1bGUpID0gMDsKIAotICAgIHZpcnR1YWwgY29uc3QgUmVnaW9uKiBldmVudFJlZ2lvbigp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3QgUmVnaW9u
KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBSZWdpb24mKSA9
IDA7CiAgICAgCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1
c3RvbUFwcGVhcmFuY2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3Rv
bUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSkgPSAwOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVy
Q29jb2EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oCShyZXZpc2lvbiAyNDI5OTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsOCArMTY4LDcgQEAgcHVibGljOgogICAgIEdyYXBo
aWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fY3VzdG9tQXBwZWFyYW5jZTsgfQogICAgIHZvaWQgdXBkYXRlQ3VzdG9t
QXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlKSBvdmVycmlkZTsKIAot
ICAgIGNvbnN0IFJlZ2lvbiogZXZlbnRSZWdpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBu
dWxscHRyOyB9Ci0gICAgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBSZWdpb24qKSBvdmVycmlk
ZSB7IH0KKyAgICB2b2lkIHNldEV2ZW50UmVnaW9uKGNvbnN0IFJlZ2lvbiYpIG92ZXJyaWRlIHsg
fQogCiAgICAgR3JhcGhpY3NMYXllcjo6RW1iZWRkZWRWaWV3SUQgZW1iZWRkZWRWaWV3SUQoKSBj
b25zdCBvdmVycmlkZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAkocmV2aXNpb24g
MjQyOTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FMYXllcldpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsOCArMTU3LDcgQEAgcHVibGlj
OgogICAgIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VzdG9tQXBwZWFyYW5jZTsgfQogICAgIHZvaWQg
dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1
c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRlIHsgbV9jdXN0b21BcHBlYXJhbmNlID0gY3VzdG9tQXBw
ZWFyYW5jZTsgfQogCi0gICAgY29uc3QgUmVnaW9uKiBldmVudFJlZ2lvbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KLSAgICB2b2lkIHNldEV2ZW50UmVnaW9uKGNvbnN0IFJl
Z2lvbiopIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3QgUmVnaW9u
Jikgb3ZlcnJpZGUgeyB9CiAKICAgICBHcmFwaGljc0xheWVyOjpFbWJlZGRlZFZpZXdJRCBlbWJl
ZGRlZFZpZXdJRCgpIGNvbnN0IG92ZXJyaWRlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gMjQyOTk1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI1ODYsMjAgKzI1ODYsMTUgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50SW50b0xheWVyKAogICAgIFJlbmRlckxheWVyOjpMYXllclBhaW50aW5nSW5mbyBwYWludGlu
Z0luZm8oJm1fb3duaW5nTGF5ZXIsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCAtbV9z
dWJwaXhlbE9mZnNldEZyb21SZW5kZXJlcik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIGF1dG8gZXZlbnRSZWdpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlZ2lvbj4oKTsKLSAgICBw
YWludGluZ0luZm8uZXZlbnRSZWdpb24gPSBldmVudFJlZ2lvbi5nZXQoKTsKKyAgICBSZWdpb24g
ZXZlbnRSZWdpb247CisgICAgcGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uID0gJmV2ZW50UmVnaW9u
OwogI2VuZGlmCiAKICAgICBtX293bmluZ0xheWVyLnBhaW50TGF5ZXJDb250ZW50cyhjb250ZXh0
LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb24gPSBudWxscHRyOwotICAgIC8vIFVzZSBudWxs
IGV2ZW50IHJlZ2lvbiB0byBpbmRpY2F0ZSB0aGUgZW50aXJlIGxheWVyIGlzIHNlbnNpdGl2ZSB0
byBldmVudHMgKHRoZSBjb21tb24gY2FzZSkuCi0gICAgLy8gRklYTUU6IFdlIGNvdWxkIG9wdGlt
aXplIFJlZ2lvbiBzbyBpdCBkb2Vzbid0IHVzZSBsb3RzIG9mIG1lbW9yeSBpZiBpdCBjb250YWlu
cyBhIHNpbmdsZSByZWN0IG9ubHkuCi0gICAgaWYgKGV2ZW50UmVnaW9uLT5jb250YWlucyhyb3Vu
ZGVkSW50UmVjdChjb21wb3NpdGVkQm91bmRzKCkpKSkKLSAgICAgICAgZXZlbnRSZWdpb24gPSBu
dWxscHRyOwotICAgIGVsc2UKLSAgICAgICAgZXZlbnRSZWdpb24tPnRyYW5zbGF0ZShyb3VuZGVk
SW50U2l6ZShjb250ZW50T2Zmc2V0SW5Db21wb3NpdGluZ0xheWVyKCkpKTsKKyAgICBldmVudFJl
Z2lvbi50cmFuc2xhdGUocm91bmRlZEludFNpemUoY29udGVudE9mZnNldEluQ29tcG9zaXRpbmdM
YXllcigpKSk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRFdmVudFJlZ2lvbihXVEZNb3ZlKGV2
ZW50UmVnaW9uKSk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Mjk5NSkKKysr
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTktMDMtMTUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBSZWdpb24gZm9yIGV2ZW50IHJlZ2lvbiBldmVuIHdoZW4gaXQgaXMgYSByZWN0YW5nbGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0
aWVzKToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlTm9kZTo6ZXZlbnRSZWdpb24gY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlTm9kZTo6c2V0RXZlbnRSZWdpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tOgorICAgICAgICAoV2ViS2l0
Ojpjb2xsZWN0RGVzY2VuZGFudFZpZXdzQXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldEV2ZW50UmVnaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpldmVudFJlZ2lvbiBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKwogMjAxOS0wMy0xNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUmVnaW9uIGZvciBzaW5nbGUgcmVjdGFu
Z2xlIGNhc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5t
bQkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjYyLDcgKzI2Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHAK
ICAgICB1cGRhdGVNYXNrKG5vZGUsIHByb3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOwogCiAgICAg
aWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6RXZlbnRSZWdpb25DaGFuZ2VkKQotICAgICAgICBub2RlLnNldEV2ZW50UmVnaW9uKHBy
b3BlcnRpZXMuZXZlbnRSZWdpb24gPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlJlZ2lvbj4o
KnByb3BlcnRpZXMuZXZlbnRSZWdpb24pIDogbnVsbHB0cik7CisgICAgICAgIG5vZGUuc2V0RXZl
bnRSZWdpb24ocHJvcGVydGllcy5ldmVudFJlZ2lvbik7CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIGFwcGx5UHJvcGVydGllc1RvVUlWaWV3KG5vZGUudWlWaWV3KCksIHByb3BlcnRp
ZXMsIHJlbGF0ZWRMYXllcnMpOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
LmgJKHJldmlzaW9uIDI0Mjk5NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIs
NyArMTcyLDcgQEAgcHVibGljOgogICAgICAgICBib29sIG9wYXF1ZTsKICAgICAgICAgYm9vbCBj
b250ZW50c0hpZGRlbjsKICAgICAgICAgYm9vbCB1c2VySW50ZXJhY3Rpb25FbmFibGVkOwotICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UmVnaW9uPiBldmVudFJlZ2lvbjsKKyAgICAg
ICAgV2ViQ29yZTo6UmVnaW9uIGV2ZW50UmVnaW9uOwogICAgIH07CiAKICAgICBleHBsaWNpdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbigpOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbQkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDMsNiArMTQzLDcgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydAogICAgICwgb3BhcXVlKG90aGVyLm9wYXF1ZSkKICAgICAsIGNvbnRlbnRzSGlkZGVu
KG90aGVyLmNvbnRlbnRzSGlkZGVuKQogICAgICwgdXNlckludGVyYWN0aW9uRW5hYmxlZChvdGhl
ci51c2VySW50ZXJhY3Rpb25FbmFibGVkKQorICAgICwgZXZlbnRSZWdpb24ob3RoZXIuZXZlbnRS
ZWdpb24pCiB7CiAgICAgLy8gRklYTUU6IExheWVyUHJvcGVydGllcyBzaG91bGQgcmVmZXJlbmNl
IGJhY2tpbmcgc3RvcmUgYnkgSUQsIHNvIHRoYXQgdHdvIGxheWVycyBjYW4gaGF2ZSB0aGUgc2Ft
ZSBiYWNraW5nIHN0b3JlIChmb3IgY2xvbmVzKS4KICAgICAvLyBGSVhNRTogTGF5ZXJQcm9wZXJ0
aWVzIHNob3VsZG4ndCBiZSBjb3B5YWJsZTsgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjbG9uZSBz
aG91bGQgY29weSB0aGUgcmVsZXZhbnQgcHJvcGVydGllcy4KQEAgLTE1NSwxMCArMTU2LDYgQEAg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydAogCiAgICAgaWYgKG90aGVy
LmZpbHRlcnMpCiAgICAgICAgIGZpbHRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OkZp
bHRlck9wZXJhdGlvbnM+KCpvdGhlci5maWx0ZXJzKTsKLQotICAgIGlmIChvdGhlci5ldmVudFJl
Z2lvbikKLSAgICAgICAgZXZlbnRSZWdpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlJl
Z2lvbj4oKm90aGVyLmV2ZW50UmVnaW9uKTsKLQogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CkBAIC0yODIsMTEgKzI3OSw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkxheWVyUHIKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBVc2VySW50ZXJhY3Rpb25F
bmFibGVkQ2hhbmdlZCkKICAgICAgICAgZW5jb2RlciA8PCB1c2VySW50ZXJhY3Rpb25FbmFibGVk
OwogCi0gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgRXZlbnRSZWdpb25DaGFuZ2VkKSB7Ci0g
ICAgICAgIGVuY29kZXIgPDwgISFldmVudFJlZ2lvbjsKLSAgICAgICAgaWYgKGV2ZW50UmVnaW9u
KQotICAgICAgICAgICAgZW5jb2RlciA8PCAqZXZlbnRSZWdpb247Ci0gICAgfQorICAgIGlmIChj
aGFuZ2VkUHJvcGVydGllcyAmIEV2ZW50UmVnaW9uQ2hhbmdlZCkKKyAgICAgICAgZW5jb2RlciA8
PCBldmVudFJlZ2lvbjsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMYXllclByb3BlcnRp
ZXMmIHJlc3VsdCkKQEAgLTUxMSwxNiArNTA1LDExIEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHIKICAgICB9CiAKICAgICBpZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0
aWVzICYgRXZlbnRSZWdpb25DaGFuZ2VkKSB7Ci0gICAgICAgIGJvb2wgaGFzRXZlbnRSZWdpb24g
PSBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNFdmVudFJlZ2lvbikpCisg
ICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lvbj4gZXZlbnRSZWdpb247CisgICAgICAgIGRl
Y29kZXIgPj4gZXZlbnRSZWdpb247CisgICAgICAgIGlmICghZXZlbnRSZWdpb24pCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChoYXNFdmVudFJlZ2lvbikgewotICAgICAg
ICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaW9uPiBldmVudFJlZ2lvbjsKLSAgICAgICAgICAg
IGRlY29kZXIgPj4gZXZlbnRSZWdpb247Ci0gICAgICAgICAgICBpZiAoIWV2ZW50UmVnaW9uKQot
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJlc3VsdC5ldmVudFJl
Z2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8UmVnaW9uPihXVEZNb3ZlKCpldmVudFJlZ2lvbikpOwot
ICAgICAgICB9CisgICAgICAgIHJlc3VsdC5ldmVudFJlZ2lvbiA9IFdURk1vdmUoKmV2ZW50UmVn
aW9uKTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZU5vZGUuaAkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUs
OCArNTUsOCBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgbGF5ZXJJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJJRDsgfQogCi0gICAgY29u
c3QgV2ViQ29yZTo6UmVnaW9uKiBldmVudFJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRS
ZWdpb24uZ2V0KCk7IH0KLSAgICB2b2lkIHNldEV2ZW50UmVnaW9uKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpSZWdpb24+JiYpOworICAgIGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYgZXZlbnRSZWdp
b24oKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UmVnaW9uOyB9CisgICAgdm9pZCBzZXRFdmVudFJl
Z2lvbihjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKIAogICAgIHZvaWQgZGV0YWNoRnJvbVBhcmVu
dCgpOwogCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFVJVmlldz4g
bV91aVZpZXc7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpSZWdpb24+
IG1fZXZlbnRSZWdpb247CisgICAgV2ViQ29yZTo6UmVnaW9uIG1fZXZlbnRSZWdpb247CiB9Owog
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlTm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQkocmV2aXNpb24gMjQyOTk1KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZU5vZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVOb2RlOjpkZXRhY2hGcm9tUGFyZQogICAgIFtsYXllcigpIHJlbW92ZUZyb21TdXBlcmxh
eWVyXTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVOb2RlOjpzZXRFdmVudFJlZ2lvbihzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UmVnaW9uPiYmIGV2ZW50UmVnaW9uKQordm9pZCBSZW1vdGVM
YXllclRyZWVOb2RlOjpzZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpSZWdpb24mIGV2ZW50
UmVnaW9uKQogewotICAgIG1fZXZlbnRSZWdpb24gPSBXVEZNb3ZlKGV2ZW50UmVnaW9uKTsKKyAg
ICBtX2V2ZW50UmVnaW9uID0gZXZlbnRSZWdpb247CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
Tm9kZTo6aW5pdGlhbGl6ZUxheWVyKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRy
ZWVWaWV3cy5tbQkocmV2aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDYsMjMgKzQ2LDE5IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3REZXNjZW5kYW50Vmlld3NB
dFBvaW4KICAgICBmb3IgKFVJVmlldyAqdmlldyBpbiBbcGFyZW50IHN1YnZpZXdzXSkgewogICAg
ICAgICBDR1BvaW50IHN1YnZpZXdQb2ludCA9IFt2aWV3IGNvbnZlcnRQb2ludDpwb2ludCBmcm9t
VmlldzpwYXJlbnRdOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgY292ZXIgYWxs
IHBvc3NpYmxlIGNhc2VzIHlldC4KLSAgICAgICAgYXV0byBpc1RyYW5zcGFyZW50ID0gWyZdIHsK
LSAgICAgICAgICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltXS1RpbGVkQmFja2luZ1ZpZXcg
Y2xhc3NdXSkKKyAgICAgICAgYXV0byBoYW5kbGVzRXZlbnQgPSBbJl0geworICAgICAgICAgICAg
aWYgKCFbdmlldyBwb2ludEluc2lkZTpzdWJ2aWV3UG9pbnQgd2l0aEV2ZW50OmV2ZW50XSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoW3ZpZXcgaXNLaW5k
T2ZDbGFzczpbV0tUaWxlZEJhY2tpbmdWaWV3IGNsYXNzXV0pCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgICAgICBpZiAoIVt2aWV3IGlzS2luZE9mQ2xhc3M6W1dLQ29tcG9z
aXRpbmdWaWV3IGNsYXNzXV0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgaWYgKHZpZXcubGF5ZXIuY29udGVudHMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICBhdXRvKiBub2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FM
YXllcih2aWV3LmxheWVyKTsKKyAgICAgICAgICAgIHJldHVybiBub2RlLT5ldmVudFJlZ2lvbigp
LmNvbnRhaW5zKFdlYkNvcmU6OkludFBvaW50KHN1YnZpZXdQb2ludCkpOwogICAgICAgICB9KCk7
CiAKLSAgICAgICAgaWYgKCFpc1RyYW5zcGFyZW50ICYmIFt2aWV3IHBvaW50SW5zaWRlOnN1YnZp
ZXdQb2ludCB3aXRoRXZlbnQ6ZXZlbnRdKSB7Ci0gICAgICAgICAgICBhdXRvKiBub2RlID0gUmVt
b3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcih2aWV3LmxheWVyKTsKLSAgICAgICAgICAgIGF1
dG8qIGV2ZW50UmVnaW9uID0gbm9kZSA/IG5vZGUtPmV2ZW50UmVnaW9uKCkgOiBudWxscHRyOwot
ICAgICAgICAgICAgaWYgKCFldmVudFJlZ2lvbiB8fCBldmVudFJlZ2lvbi0+Y29udGFpbnMoV2Vi
Q29yZTo6SW50UG9pbnQoc3Vidmlld1BvaW50KSkpCi0gICAgICAgICAgICAgICAgdmlld3NBdFBv
aW50LmFwcGVuZCh2aWV3KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoaGFuZGxlc0V2ZW50KQor
ICAgICAgICAgICAgdmlld3NBdFBvaW50LmFwcGVuZCh2aWV3KTsKIAogICAgICAgICBpZiAoIVt2
aWV3IHN1YnZpZXdzXSkKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCShyZXZpc2lvbiAyNDI5OTUpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcxLDE4ICs4NzEsMTIgQEAg
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnVwZGF0ZUN1c3RvbQogICAgIG1fcHJvcGVydGll
cy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3Rv
bUFwcGVhcmFuY2VDaGFuZ2VkKTsKIH0KIAotY29uc3QgUmVnaW9uKiBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OmV2ZW50UmVnaW9uKCkgY29uc3QKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
ZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpSZWdpb24mIGV2ZW50UmVnaW9uKQogewotICAg
IHJldHVybiBtX3Byb3BlcnRpZXMuZXZlbnRSZWdpb24uZ2V0KCk7Ci19Ci0KLXZvaWQgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjpzZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpSZWdpb24qIGV2
ZW50UmVnaW9uKQotewotICAgIGNvbnN0IGF1dG8qIG9sZEV2ZW50UmVnaW9uID0gbV9wcm9wZXJ0
aWVzLmV2ZW50UmVnaW9uLmdldCgpOwotICAgIGlmIChhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG9s
ZEV2ZW50UmVnaW9uLCBldmVudFJlZ2lvbikpCisgICAgaWYgKG1fcHJvcGVydGllcy5ldmVudFJl
Z2lvbiA9PSBldmVudFJlZ2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9wZXJ0aWVz
LmV2ZW50UmVnaW9uID0gZXZlbnRSZWdpb24gPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlJl
Z2lvbj4oKmV2ZW50UmVnaW9uKSA6IG51bGxwdHI7CisgICAgbV9wcm9wZXJ0aWVzLmV2ZW50UmVn
aW9uID0gZXZlbnRSZWdpb247CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdl
ZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RXZlbnRSZWdpb25DaGFuZ2VkKTsKIH0KIApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAkocmV2
aXNpb24gMjQyOTk1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQs
OCArMTc0LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFw
cGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdXBk
YXRlQ3VzdG9tQXBwZWFyYW5jZShXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJh
bmNlKSBvdmVycmlkZTsKIAotICAgIGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiogZXZlbnRSZWdpb24o
KSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldEV2ZW50UmVnaW9uKGNvbnN0IFdlYkNvcmU6
OlJlZ2lvbiopIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJikgb3ZlcnJpZGU7CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpFbWJl
ZGRlZFZpZXdJRCBlbWJlZGRlZFZpZXdJRCgpIGNvbnN0IG92ZXJyaWRlOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>