<?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>197836</bug_id>
          
          <creation_ts>2019-05-13 05:54:42 -0700</creation_ts>
          <short_desc>Event region computation should respect transforms</short_desc>
          <delta_ts>2019-05-14 13:14:39 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=197818</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=197892</see_also>
          <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>darin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1535598</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-13 05:54:42 -0700</bug_when>
    <thetext>If transformed layers share a compositing layer we miscompute the event region.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536006</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-14 05:05:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/50762971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536007</commentid>
    <comment_count>2</comment_count>
      <attachid>369836</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-14 05:18:39 -0700</bug_when>
    <thetext>Created attachment 369836
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536072</commentid>
    <comment_count>3</comment_count>
      <attachid>369836</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-05-14 09:03:47 -0700</bug_when>
    <thetext>Comment on attachment 369836
patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Add support for transforming regions. Non-rectlinear results use enclosing rects.

Is it acceptable to just use enclosing rects?

&gt; Source/WebCore/rendering/EventRegion.h:41
&gt; +    EventRegionContext(EventRegion&amp;);

We want &quot;explicit&quot; here since we wouldn’t want this to be done as a conversion.

&gt; Source/WebCore/rendering/EventRegion.h:58
&gt; +    EventRegionContext makeContext() { return { *this }; }

Not sure why we have this since EventRegionContext also has a public constructor. And it’s only used in one place. I think we could do without it. Not sure, it does seem a little more elegant than invoking a constructor.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4603
&gt; +    auto oldTransfrom = context.getCTM();

Spelling error here: &quot;transfrom&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536125</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-14 10:27:40 -0700</bug_when>
    <thetext>&gt; Is it acceptable to just use enclosing rects?

Event region is used to synchronously determine on UI process side whether swipes should scroll or not. In this use approximation is often unnoticeable and definitely better than getting it completely wrong.

If needed this can be improved later, either by approximating with more rects or by using different data structures (bitmap or multiple Regions with attached transforms).

&gt; Not sure why we have this since EventRegionContext also has a public
&gt; constructor. And it’s only used in one place. I think we could do without
&gt; it. Not sure, it does seem a little more elegant than invoking a constructor.

I like construction function like this because then the client site does not need to spell out uninteresting types:

auto eventRegionContext = eventRegion.makeContext();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536134</commentid>
    <comment_count>5</comment_count>
      <attachid>369867</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-14 10:45:49 -0700</bug_when>
    <thetext>Created attachment 369867
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536153</commentid>
    <comment_count>6</comment_count>
      <attachid>369867</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:28:18 -0700</bug_when>
    <thetext>Comment on attachment 369867
patch

Clearing flags on attachment: 369867

Committed r245293: &lt;https://trac.webkit.org/changeset/245293&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369836</attachid>
            <date>2019-05-14 05:18:39 -0700</date>
            <delta_ts>2019-05-14 10:45:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-transform-4.patch</filename>
            <type>text/plain</type>
            <size>16050</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA1LTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBFdmVudCByZWdpb24gY29tcHV0
YXRpb24gc2hvdWxkIHJlc3BlY3QgdHJhbnNmb3JtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODM2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MDc2Mjk3MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6bWFwUmVnaW9uIGNvbnN0KToKKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgdHJhbnNmb3JtaW5nIHJlZ2lvbnMuIE5vbi1yZWN0bGluZWFy
IHJlc3VsdHMgdXNlIGVuY2xvc2luZyByZWN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4dDo6RXZl
bnRSZWdpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4dDo6
cHVzaFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbkNvbnRleHQ6OnBv
cFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbkNvbnRleHQ6OnVuaXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4dDo6Y29udGFpbnMgY29uc3Qp
OgorCisgICAgICAgIEFkZCBhIGNvbnRleHQgb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGN1cnJlbnQg
dHJhbnNmb3JtLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6bWFrZUNvbnRleHQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBh
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUGFpbnRJbmZvLmg6CisKKyAgICAgICAgUmVwbGFj
ZSB0aGUgcmVnaW9uIG9iamVjdCB3aXRoIHRoZSBjb250ZXh0LgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWlu
dE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQnlBcHBseWluZ1RyYW5zZm9ybSk6CisK
KyAgICAgICAgQXBwbHkgdHJhbnNmb3JtcyB0byByZWdpb25zIGlmIG5lZWRlZC4KKworICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbGxlY3RFdmVudFJlZ2lvbkZvckZyYWdtZW50cyk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGlu
ZUxheW91dEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0
OjpwYWludEZsb3cpOgorCiAyMDE5LTA1LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIDI0NTI1OCwgbWlz
c2luZyBUaHJlYWRTcGVjaWZpYy5oIGluY2x1ZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5z
Zm9ybS5jcHAJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRl
ICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC0zMzQsNiArMzM1LDIxIEBAIEZsb2F0UXVhZCBB
ZmZpbmVUcmFuc2Zvcm06Om1hcFF1YWQoY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitS
ZWdpb24gQWZmaW5lVHJhbnNmb3JtOjptYXBSZWdpb24oY29uc3QgUmVnaW9uJiByZWdpb24pIGNv
bnN0Cit7CisgICAgaWYgKGlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpIHsKKyAgICAgICAgUmVn
aW9uIG1hcHBlZFJlZ2lvbihyZWdpb24pOworICAgICAgICBtYXBwZWRSZWdpb24udHJhbnNsYXRl
KHJvdW5kZWRJbnRTaXplKEZsb2F0U2l6ZShuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KG1fdHJhbnNm
b3JtWzRdKSwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChtX3RyYW5zZm9ybVs1XSkpKSk7CisgICAg
ICAgIHJldHVybiBtYXBwZWRSZWdpb247CisgICAgfQorCisgICAgUmVnaW9uIG1hcHBlZFJlZ2lv
bjsKKyAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWdpb24ucmVjdHMoKSkKKyAgICAgICAgbWFwcGVk
UmVnaW9uLnVuaXRlKG1hcFJlY3QocmVjdCkpOworCisgICAgcmV0dXJuIG1hcHBlZFJlZ2lvbjsK
K30KKwogdm9pZCBBZmZpbmVUcmFuc2Zvcm06OmJsZW5kKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
ZnJvbSwgZG91YmxlIHByb2dyZXNzKQogewogICAgIERlY29tcG9zZWRUeXBlIHNyQSwgc3JCOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVU
cmFuc2Zvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCShyZXZpc2lvbiAyNDUyNzQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNz
IEludFBvaW50OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBSZWdpb247
CiBjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtIHsK
QEAgLTg5LDYgKzkwLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UmVjdCBt
YXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0
UXVhZCBtYXBRdWFkKGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OwogCisgICAgV0VCQ09SRV9FWFBP
UlQgUmVnaW9uIG1hcFJlZ2lvbihjb25zdCBSZWdpb24mKSBjb25zdDsKKwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0OwogCiAgICAgZG91YmxlIGEoKSBjb25zdCB7
IHJldHVybiBtX3RyYW5zZm9ybVswXTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXZlbnRSZWdpb24uY3BwCShyZXZpc2lvbiAyNDUyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXZlbnRSZWdpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw0MCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0V2ZW50UmVnaW9uQ29udGV4dDo6RXZlbnRSZWdpb25D
b250ZXh0KEV2ZW50UmVnaW9uJiBldmVudFJlZ2lvbikKKyAgICA6IG1fZXZlbnRSZWdpb24oZXZl
bnRSZWdpb24pCit7Cit9CisKK3ZvaWQgRXZlbnRSZWdpb25Db250ZXh0OjpwdXNoVHJhbnNmb3Jt
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQoreworICAgIGlmIChtX3RyYW5zZm9y
bVN0YWNrLmlzRW1wdHkoKSkKKyAgICAgICAgbV90cmFuc2Zvcm1TdGFjay5hcHBlbmQodHJhbnNm
b3JtKTsKKyAgICBlbHNlCisgICAgICAgIG1fdHJhbnNmb3JtU3RhY2suYXBwZW5kKG1fdHJhbnNm
b3JtU3RhY2subGFzdCgpICogdHJhbnNmb3JtKTsKK30KKwordm9pZCBFdmVudFJlZ2lvbkNvbnRl
eHQ6OnBvcFRyYW5zZm9ybSgpCit7CisgICAgbV90cmFuc2Zvcm1TdGFjay5yZW1vdmVMYXN0KCk7
Cit9CisKK3ZvaWQgRXZlbnRSZWdpb25Db250ZXh0Ojp1bml0ZShjb25zdCBSZWdpb24mIHJlZ2lv
biwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGlmIChtX3RyYW5zZm9ybVN0YWNr
LmlzRW1wdHkoKSkKKyAgICAgICAgbV9ldmVudFJlZ2lvbi51bml0ZShyZWdpb24sIHN0eWxlKTsK
KyAgICBlbHNlCisgICAgICAgIG1fZXZlbnRSZWdpb24udW5pdGUobV90cmFuc2Zvcm1TdGFjay5s
YXN0KCkubWFwUmVnaW9uKHJlZ2lvbiksIHN0eWxlKTsKK30KKworYm9vbCBFdmVudFJlZ2lvbkNv
bnRleHQ6OmNvbnRhaW5zKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgaWYgKG1f
dHJhbnNmb3JtU3RhY2suaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbV9ldmVudFJlZ2lvbi5j
b250YWlucyhyZWN0KTsKKworICAgIHJldHVybiBtX2V2ZW50UmVnaW9uLmNvbnRhaW5zKG1fdHJh
bnNmb3JtU3RhY2subGFzdCgpLm1hcFJlY3QocmVjdCkpOworfQorCiBFdmVudFJlZ2lvbjo6RXZl
bnRSZWdpb24oKSA9IGRlZmF1bHQ7CiAKIGJvb2wgRXZlbnRSZWdpb246Om9wZXJhdG9yPT0oY29u
c3QgRXZlbnRSZWdpb24mIG90aGVyKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V2ZW50UmVnaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmgJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FdmVudFJlZ2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiUmVn
aW9uLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CkBAIC0zMiwxMiArMzMsMzAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBF
dmVudFJlZ2lvbjsKIGNsYXNzIFJlbmRlclN0eWxlOwogCitjbGFzcyBFdmVudFJlZ2lvbkNvbnRl
eHQgeworcHVibGljOgorICAgIEV2ZW50UmVnaW9uQ29udGV4dChFdmVudFJlZ2lvbiYpOworCisg
ICAgdm9pZCBwdXNoVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAgIHZvaWQg
cG9wVHJhbnNmb3JtKCk7CisKKyAgICB2b2lkIHVuaXRlKGNvbnN0IFJlZ2lvbiYsIGNvbnN0IFJl
bmRlclN0eWxlJik7CisgICAgYm9vbCBjb250YWlucyhjb25zdCBJbnRSZWN0JikgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgRXZlbnRSZWdpb24mIG1fZXZlbnRSZWdpb247CisgICAgVmVjdG9yPEFm
ZmluZVRyYW5zZm9ybT4gbV90cmFuc2Zvcm1TdGFjazsKK307CisKIGNsYXNzIEV2ZW50UmVnaW9u
IHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBFdmVudFJlZ2lvbigpOwogCisgICAgRXZl
bnRSZWdpb25Db250ZXh0IG1ha2VDb250ZXh0KCkgeyByZXR1cm4geyAqdGhpcyB9OyB9CisKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lvbi5pc0VtcHR5KCk7IH0KIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudFJlZ2lvbiYpIGNv
bnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAko
cmV2aXNpb24gMjQ1Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNyArNTA1LDcgQEAgdm9pZCBJbmxpbmVUZXh0
Qm94OjpwYWludChQYWludEluZm8mIHBhaQogCiAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQ
YWludFBoYXNlOjpFdmVudFJlZ2lvbikgewogICAgICAgICBpZiAodmlzaWJsZVRvSGl0VGVzdGlu
ZygpKQotICAgICAgICAgICAgcGFpbnRJbmZvLmV2ZW50UmVnaW9uLT51bml0ZShlbmNsb3NpbmdJ
bnRSZWN0KGJveFJlY3QpLCByZW5kZXJlcigpLnN0eWxlKCkpOworICAgICAgICAgICAgcGFpbnRJ
bmZvLmV2ZW50UmVnaW9uQ29udGV4dC0+dW5pdGUoZW5jbG9zaW5nSW50UmVjdChib3hSZWN0KSwg
cmVuZGVyZXIoKS5zdHlsZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9QYWludEluZm8uaAkocmV2aXNpb24gMjQ1Mjc0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRXZlbnRSZWdpb247CitjbGFz
cyBFdmVudFJlZ2lvbkNvbnRleHQ7CiBjbGFzcyBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQ7CiBj
bGFzcyBSZW5kZXJJbmxpbmU7CiBjbGFzcyBSZW5kZXJMYXllcjsKQEAgLTEzMCw3ICsxMzAsOCBA
QCBzdHJ1Y3QgUGFpbnRJbmZvIHsKICAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBw
YWludENvbnRhaW5lcjsgLy8gdGhlIGxheWVyIG9iamVjdCB0aGF0IG9yaWdpbmF0ZXMgdGhlIGN1
cnJlbnQgcGFpbnRpbmcKICAgICBib29sIHJlcXVpcmVTZWN1cml0eU9yaWdpbkFjY2Vzc0Zvcldp
ZGdldHMgeyBmYWxzZSB9OwogICAgIGNvbnN0IFJlbmRlckxheWVyKiBtX2VuY2xvc2luZ1NlbGZQ
YWludGluZ0xheWVyIHsgbnVsbHB0ciB9OwotICAgIEV2ZW50UmVnaW9uKiBldmVudFJlZ2lvbiB7
IG51bGxwdHIgfTsgLy8gRm9yIFBhaW50UGhhc2U6OkV2ZW50UmVnaW9uLgorICAgIEV2ZW50UmVn
aW9uQ29udGV4dCogZXZlbnRSZWdpb25Db250ZXh0IHsgbnVsbHB0ciB9OyAvLyBGb3IgUGFpbnRQ
aGFzZTo6RXZlbnRSZWdpb24uCisKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0KiBtX2Nv
bnRleHQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CShyZXZpc2lvbiAyNDUyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ2LDExICsxMjQ2LDExIEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYKIAogICAgICAgICBpZiAodmlzaWJsZVRvSGl0
VGVzdGluZygpKSB7CiAgICAgICAgICAgICBhdXRvIGJvcmRlclJlZ2lvbiA9IGFwcHJveGltYXRl
QXNSZWdpb24oc3R5bGUoKS5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlclJlY3QpKTsKLSAgICAg
ICAgICAgIHBhaW50SW5mby5ldmVudFJlZ2lvbi0+dW5pdGUoYm9yZGVyUmVnaW9uLCBzdHlsZSgp
KTsKKyAgICAgICAgICAgIHBhaW50SW5mby5ldmVudFJlZ2lvbkNvbnRleHQtPnVuaXRlKGJvcmRl
clJlZ2lvbiwgc3R5bGUoKSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBObyBuZWVkIHRvIGNo
ZWNrIGRlc2NlbmRhbnRzIGlmIHdlIGRvbid0IGhhdmUgb3ZlcmZsb3cgYW5kIHRoZSBhcmVhIGlz
IGFscmVhZHkgY292ZXJlZC4KLSAgICAgICAgYm9vbCBuZWVkc1RyYXZlcnNlRGVzY2VuZGFudHMg
PSBoYXNWaXN1YWxPdmVyZmxvdygpIHx8ICFwYWludEluZm8uZXZlbnRSZWdpb24tPmNvbnRhaW5z
KGVuY2xvc2luZ0ludFJlY3QoYm9yZGVyUmVjdCkpOworICAgICAgICBib29sIG5lZWRzVHJhdmVy
c2VEZXNjZW5kYW50cyA9IGhhc1Zpc3VhbE92ZXJmbG93KCkgfHwgIXBhaW50SW5mby5ldmVudFJl
Z2lvbkNvbnRleHQtPmNvbnRhaW5zKGVuY2xvc2luZ0ludFJlY3QoYm9yZGVyUmVjdCkpOwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICAgICAg
bmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzID0gbmVlZHNUcmF2ZXJzZURlc2NlbmRhbnRzIHx8IGRv
Y3VtZW50KCkudG91Y2hBY3Rpb25FbGVtZW50cygpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2
MDAsOCArNDYwMCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyQnlBcHBseWluZ1Ry
CiAgICAgLy8gVHJhbnNsYXRlIHRoZSBncmFwaGljcyBjb250ZXh0IHRvIHRoZSBzbmFwcGluZyBw
b3NpdGlvbiB0byBhdm9pZCBvZmYtZGV2aWNlLXBpeGVsIHBvc2l0aW5nLgogICAgIHRyYW5zZm9y
bS50cmFuc2xhdGVSaWdodChkZXZpY2VQaXhlbFNuYXBwZWRPZmZzZXRGb3JUaGlzTGF5ZXIud2lk
dGgoKSwgZGV2aWNlUGl4ZWxTbmFwcGVkT2Zmc2V0Rm9yVGhpc0xheWVyLmhlaWdodCgpKTsKICAg
ICAvLyBBcHBseSB0aGUgdHJhbnNmb3JtLgotICAgIEFmZmluZVRyYW5zZm9ybSBvbGRUcmFuc2Zy
b20gPSBjb250ZXh0LmdldENUTSgpOwotICAgIGNvbnRleHQuY29uY2F0Q1RNKHRyYW5zZm9ybS50
b0FmZmluZVRyYW5zZm9ybSgpKTsKKyAgICBhdXRvIG9sZFRyYW5zZnJvbSA9IGNvbnRleHQuZ2V0
Q1RNKCk7CisgICAgYXV0byBhZmZpbmVUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0udG9BZmZpbmVUcmFu
c2Zvcm0oKTsKKyAgICBjb250ZXh0LmNvbmNhdENUTShhZmZpbmVUcmFuc2Zvcm0pOworCisgICAg
aWYgKHBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQpCisgICAgICAgIHBhaW50aW5nSW5m
by5ldmVudFJlZ2lvbkNvbnRleHQtPnB1c2hUcmFuc2Zvcm0oYWZmaW5lVHJhbnNmb3JtKTsKIAog
ICAgIC8vIE5vdyBkbyBhIHBhaW50IHdpdGggdGhlIHJvb3QgbGF5ZXIgc2hpZnRlZCB0byBiZSB1
cy4KICAgICBMYXlvdXRTaXplIGFkanVzdGVkU3VicGl4ZWxPZmZzZXQgPSBvZmZzZXRGb3JUaGlz
TGF5ZXIgLSBMYXlvdXRTaXplKGRldmljZVBpeGVsU25hcHBlZE9mZnNldEZvclRoaXNMYXllcik7
CkBAIC00NjEwLDYgKzQ2MTQsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckJ5QXBw
bHlpbmdUcgogICAgIHRyYW5zZm9ybWVkUGFpbnRpbmdJbmZvLnBhaW50RGlydHlSZWN0ID0gTGF5
b3V0UmVjdChlbmNsb3NlUmVjdFRvRGV2aWNlUGl4ZWxzKHRyYW5zZm9ybS5pbnZlcnNlKCkudmFs
dWVPcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFwUmVjdChwYWludGluZ0luZm8ucGFpbnREaXJ0eVJl
Y3QpLCBkZXZpY2VTY2FsZUZhY3RvcikpOwogICAgIHRyYW5zZm9ybWVkUGFpbnRpbmdJbmZvLnN1
YnBpeGVsT2Zmc2V0ID0gYWRqdXN0ZWRTdWJwaXhlbE9mZnNldDsKICAgICBwYWludExheWVyQ29u
dGVudHNBbmRSZWZsZWN0aW9uKGNvbnRleHQsIHRyYW5zZm9ybWVkUGFpbnRpbmdJbmZvLCBwYWlu
dEZsYWdzKTsKKworICAgIGlmIChwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0KQorICAg
ICAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0LT5wb3BUcmFuc2Zvcm0oKTsKKwog
ICAgIGNvbnRleHQuc2V0Q1RNKG9sZFRyYW5zZnJvbSk7CiB9CiAKQEAgLTQ5OTgsMTEgKzUwMDYs
MTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzRgogCiB2b2lkIFJl
bmRlckxheWVyOjpjb2xsZWN0RXZlbnRSZWdpb25Gb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFn
bWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExh
eWVyUGFpbnRpbmdJbmZvJiBsb2NhbFBhaW50aW5nSW5mbykKIHsKLSAgICBBU1NFUlQobG9jYWxQ
YWludGluZ0luZm8uZXZlbnRSZWdpb24pOworICAgIEFTU0VSVChsb2NhbFBhaW50aW5nSW5mby5l
dmVudFJlZ2lvbkNvbnRleHQpOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBmcmFnbWVudCA6IGxh
eWVyRnJhZ21lbnRzKSB7CiAgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJh
Z21lbnQuZm9yZWdyb3VuZFJlY3QucmVjdCgpLCBQYWludFBoYXNlOjpFdmVudFJlZ2lvbiwgeyB9
KTsKLSAgICAgICAgcGFpbnRJbmZvLmV2ZW50UmVnaW9uID0gbG9jYWxQYWludGluZ0luZm8uZXZl
bnRSZWdpb247CisgICAgICAgIHBhaW50SW5mby5ldmVudFJlZ2lvbkNvbnRleHQgPSBsb2NhbFBh
aW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQ7CiAgICAgICAgIHJlbmRlcmVyKCkucGFpbnQo
cGFpbnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkg
LSByZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQp
KTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAko
cmV2aXNpb24gMjQ1Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ1NTRmlsdGVyOwogY2xhc3MgQ2xpcFJlY3RzOwogY2xhc3MgQ2xpcFJlY3RzQ2FjaGU7
Ci1jbGFzcyBFdmVudFJlZ2lvbjsKK2NsYXNzIEV2ZW50UmVnaW9uQ29udGV4dDsKIGNsYXNzIEhp
dFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEhpdFRlc3RpbmdUcmFu
c2Zvcm1TdGF0ZTsKQEAgLTk0MSw3ICs5NDEsNyBAQCBwcml2YXRlOgogICAgICAgICBPcHRpb25T
ZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvcjsKICAgICAgICAgYm9vbCByZXF1aXJlU2Vj
dXJpdHlPcmlnaW5BY2Nlc3NGb3JXaWRnZXRzOwogICAgICAgICBib29sIGNsaXBUb0RpcnR5UmVj
dCB7IHRydWUgfTsKLSAgICAgICAgRXZlbnRSZWdpb24qIGV2ZW50UmVnaW9uIHsgbnVsbHB0ciB9
OworICAgICAgICBFdmVudFJlZ2lvbkNvbnRleHQqIGV2ZW50UmVnaW9uQ29udGV4dCB7IG51bGxw
dHIgfTsKICAgICB9OwogCiAgICAgLy8gQ29tcHV0ZSwgY2FjaGUgYW5kIHJldHVybiBjbGlwIHJl
Y3RzIGNvbXB1dGVkIHdpdGggdGhlIGdpdmVuIGxheWVyIGFzIHRoZSByb290LgpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHJldmlz
aW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDg0LDcgKzE0ODQsOCBAQCB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdpCiAgICAgUmVuZGVyTGF5ZXI6OkxheWVyUGFpbnRp
bmdJbmZvIHBhaW50aW5nSW5mbygmbV9vd25pbmdMYXllciwgY29tcG9zaXRlZEJvdW5kcygpLCB7
IH0sIExheW91dFNpemUoKSk7CiAKICAgICBFdmVudFJlZ2lvbiBldmVudFJlZ2lvbjsKLSAgICBw
YWludGluZ0luZm8uZXZlbnRSZWdpb24gPSAmZXZlbnRSZWdpb247CisgICAgYXV0byBldmVudFJl
Z2lvbkNvbnRleHQgPSBldmVudFJlZ2lvbi5tYWtlQ29udGV4dCgpOworICAgIHBhaW50aW5nSW5m
by5ldmVudFJlZ2lvbkNvbnRleHQgPSAmZXZlbnRSZWdpb25Db250ZXh0OwogCiAgICAgYXV0byBw
YWludEZsYWdzID0gUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nQWxs
UGhhc2VzRmxhZ3MoKSB8IFJlbmRlckxheWVyOjpQYWludExheWVyQ29sbGVjdGluZ0V2ZW50UmVn
aW9uOwogICAgIG1fb3duaW5nTGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKG51bGxDb250ZXh0LCBw
YWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMjQ1
Mjc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlv
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgcGFpbnRGbG93KGNv
bnN0IFJlbmRlckJsb2NrRmxvdyYgZmwKICAgICAgICAgcGFpbnRSZWN0Lm1vdmVCeSgtcGFpbnRP
ZmZzZXQpOwogICAgICAgICBmb3IgKGF1dG8gcnVuIDogbGF5b3V0LnJ1blJlc29sdmVyKCkucmFu
Z2VGb3JSZWN0KHBhaW50UmVjdCkpIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCB2aXN1YWxPdmVy
Zmxvd1JlY3QgPSBjb21wdXRlT3ZlcmZsb3coZmxvdywgcnVuLnJlY3QoKSk7Ci0gICAgICAgICAg
ICBwYWludEluZm8uZXZlbnRSZWdpb24tPnVuaXRlKGVuY2xvc2luZ0ludFJlY3QodmlzdWFsT3Zl
cmZsb3dSZWN0KSwgZmxvdy5zdHlsZSgpKTsKKyAgICAgICAgICAgIHBhaW50SW5mby5ldmVudFJl
Z2lvbkNvbnRleHQtPnVuaXRlKGVuY2xvc2luZ0ludFJlY3QodmlzdWFsT3ZlcmZsb3dSZWN0KSwg
Zmxvdy5zdHlsZSgpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjQ1Mjc0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDUtMTQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgorCisgICAgICAgIEV2ZW50IHJlZ2lvbiBjb21wdXRhdGlvbiBzaG91bGQgcmVz
cGVjdCB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTc4MzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNzYyOTcxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zY3JvbGxp
bmcvaW9zL2V2ZW50LXJlZ2lvbi1zY2FsZS10cmFuc2Zvcm0tc2hhcmVkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvZXZlbnQtcmVnaW9uLXRyYW5zbGF0ZS10cmFu
c2Zvcm0tc2hhcmVkLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wNS0xMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBXaGVuIHJ1bm5pbmcgbGF5
b3V0IHRlc3RzIHRoYXQgdGFwIGluIHRoZSBzYW1lIGxvY2F0aW9uLCBzdWJzZXF1ZW50IHRlc3Rz
IGZhaWwgdG8gZmlyZSBjbGljayBoYW5kbGVycwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL2V2ZW50LXJlZ2lvbi1zY2FsZS10cmFuc2Zvcm0tc2hhcmVkLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvZXZlbnQtcmVn
aW9uLXNjYWxlLXRyYW5zZm9ybS1zaGFyZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDUyNzQp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvZXZlbnQtcmVnaW9uLXNjYWxlLXRy
YW5zZm9ybS1zaGFyZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4ICsxOSw5
IEBACiAgICAgICAgICAgKGJvdW5kcyAyMDEuMDAgMjAxLjAwKQogICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKICAgICAgICAgICAoZXZlbnQgcmVnaW9uCi0gICAgICAgICAgICAocmVjdCAoMCww
KSB3aWR0aD0yMDAgaGVpZ2h0PTIwMCkKLSAgICAgICAgICAgIChyZWN0ICgyMDAsMjAwKSB3aWR0
aD0xMDAgaGVpZ2h0PTEwMCkKKyAgICAgICAgICAgIChyZWN0ICgwLDApIHdpZHRoPTEyIGhlaWdo
dD0xMikKKyAgICAgICAgICAgIChyZWN0ICg1MSw1MSkgd2lkdGg9MTAwIGhlaWdodD0xMDApCisg
ICAgICAgICAgICAocmVjdCAoMTUxLDE1MSkgd2lkdGg9NTAgaGVpZ2h0PTUwKQogICAgICAgICAg
ICkKICAgICAgICAgKQogICAgICAgKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL2V2ZW50LXJlZ2lvbi10cmFuc2xhdGUtdHJhbnNmb3JtLXNoYXJlZC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2V2ZW50LXJlZ2lv
bi10cmFuc2xhdGUtdHJhbnNmb3JtLXNoYXJlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0NTI3
NCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9ldmVudC1yZWdpb24tdHJhbnNs
YXRlLXRyYW5zZm9ybS1zaGFyZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4
ICsxOSw5IEBACiAgICAgICAgICAgKGJvdW5kcyA0NTEuMDAgNDUxLjAwKQogICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAoZXZlbnQgcmVnaW9uCi0gICAgICAgICAgICAocmVj
dCAoMCwwKSB3aWR0aD0yMDAgaGVpZ2h0PTIwMCkKLSAgICAgICAgICAgIChyZWN0ICgyMDAsMjAw
KSB3aWR0aD0xMDAgaGVpZ2h0PTEwMCkKKyAgICAgICAgICAgIChyZWN0ICgwLDApIHdpZHRoPTEy
IGhlaWdodD0xMikKKyAgICAgICAgICAgIChyZWN0ICgxNTEsMTUxKSB3aWR0aD0yMDAgaGVpZ2h0
PTIwMCkKKyAgICAgICAgICAgIChyZWN0ICgzNTEsMzUxKSB3aWR0aD0xMDAgaGVpZ2h0PTEwMCkK
ICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICkK
</data>
<flag name="review"
          id="385875"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369867</attachid>
            <date>2019-05-14 10:45:49 -0700</date>
            <delta_ts>2019-05-14 11:28:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-transform-5.patch</filename>
            <type>text/plain</type>
            <size>16261</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA1LTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBFdmVudCByZWdpb24gY29tcHV0
YXRpb24gc2hvdWxkIHJlc3BlY3QgdHJhbnNmb3JtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODM2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
MDc2Mjk3MT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybTo6bWFwUmVnaW9uIGNvbnN0KToKKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgdHJhbnNmb3JtaW5nIHJlZ2lvbnMuIE5vbi1yZWN0bGluZWFyIHJl
c3VsdHMgdXNlIGVuY2xvc2luZyByZWN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmg6CisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50
UmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4dDo6RXZlbnRS
ZWdpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4dDo6cHVz
aFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbkNvbnRleHQ6OnBvcFRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbkNvbnRleHQ6OnVuaXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4dDo6Y29udGFpbnMgY29uc3QpOgor
CisgICAgICAgIEFkZCBhIGNvbnRleHQgb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGN1cnJlbnQgdHJh
bnNmb3JtLgorCisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFJlZ2lvbjo6bWFrZUNvbnRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUGFpbnRJbmZvLmg6CisKKyAgICAgICAgUmVwbGFjZSB0
aGUgcmVnaW9uIG9iamVjdCB3aXRoIHRoZSBjb250ZXh0LgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9i
amVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQnlBcHBseWluZ1RyYW5zZm9ybSk6CisKKyAg
ICAgICAgQXBwbHkgdHJhbnNmb3JtcyB0byByZWdpb25zIGlmIG5lZWRlZC4KKworICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbGxlY3RFdmVudFJlZ2lvbkZvckZyYWdtZW50cyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUV2ZW50UmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxh
eW91dEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojpw
YWludEZsb3cpOgorCiAyMDE5LTA1LTEzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIDI0NTI1OCwgbWlzc2lu
ZyBUaHJlYWRTcGVjaWZpYy5oIGluY2x1ZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9y
bS5jcHAJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJU
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC0zMzQsNiArMzM1LDIxIEBAIEZsb2F0UXVhZCBBZmZp
bmVUcmFuc2Zvcm06Om1hcFF1YWQoY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitSZWdp
b24gQWZmaW5lVHJhbnNmb3JtOjptYXBSZWdpb24oY29uc3QgUmVnaW9uJiByZWdpb24pIGNvbnN0
Cit7CisgICAgaWYgKGlzSWRlbnRpdHlPclRyYW5zbGF0aW9uKCkpIHsKKyAgICAgICAgUmVnaW9u
IG1hcHBlZFJlZ2lvbihyZWdpb24pOworICAgICAgICBtYXBwZWRSZWdpb24udHJhbnNsYXRlKHJv
dW5kZWRJbnRTaXplKEZsb2F0U2l6ZShuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KG1fdHJhbnNmb3Jt
WzRdKSwgbmFycm93UHJlY2lzaW9uVG9GbG9hdChtX3RyYW5zZm9ybVs1XSkpKSk7CisgICAgICAg
IHJldHVybiBtYXBwZWRSZWdpb247CisgICAgfQorCisgICAgUmVnaW9uIG1hcHBlZFJlZ2lvbjsK
KyAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWdpb24ucmVjdHMoKSkKKyAgICAgICAgbWFwcGVkUmVn
aW9uLnVuaXRlKG1hcFJlY3QocmVjdCkpOworCisgICAgcmV0dXJuIG1hcHBlZFJlZ2lvbjsKK30K
Kwogdm9pZCBBZmZpbmVUcmFuc2Zvcm06OmJsZW5kKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZnJv
bSwgZG91YmxlIHByb2dyZXNzKQogewogICAgIERlY29tcG9zZWRUeXBlIHNyQSwgc3JCOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFu
c2Zvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCShyZXZpc2lvbiAyNDUyNzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIElu
dFBvaW50OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBSZWdpb247CiBj
bGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtIHsKQEAg
LTg5LDYgKzkwLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UmVjdCBtYXBS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UXVh
ZCBtYXBRdWFkKGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OwogCisgICAgV0VCQ09SRV9FWFBPUlQg
UmVnaW9uIG1hcFJlZ2lvbihjb25zdCBSZWdpb24mKSBjb25zdDsKKwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0OwogCiAgICAgZG91YmxlIGEoKSBjb25zdCB7IHJl
dHVybiBtX3RyYW5zZm9ybVswXTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZl
bnRSZWdpb24uY3BwCShyZXZpc2lvbiAyNDUyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXZlbnRSZWdpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw0MCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK0V2ZW50UmVnaW9uQ29udGV4dDo6RXZlbnRSZWdpb25Db250
ZXh0KEV2ZW50UmVnaW9uJiBldmVudFJlZ2lvbikKKyAgICA6IG1fZXZlbnRSZWdpb24oZXZlbnRS
ZWdpb24pCit7Cit9CisKK3ZvaWQgRXZlbnRSZWdpb25Db250ZXh0OjpwdXNoVHJhbnNmb3JtKGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKQoreworICAgIGlmIChtX3RyYW5zZm9ybVN0
YWNrLmlzRW1wdHkoKSkKKyAgICAgICAgbV90cmFuc2Zvcm1TdGFjay5hcHBlbmQodHJhbnNmb3Jt
KTsKKyAgICBlbHNlCisgICAgICAgIG1fdHJhbnNmb3JtU3RhY2suYXBwZW5kKG1fdHJhbnNmb3Jt
U3RhY2subGFzdCgpICogdHJhbnNmb3JtKTsKK30KKwordm9pZCBFdmVudFJlZ2lvbkNvbnRleHQ6
OnBvcFRyYW5zZm9ybSgpCit7CisgICAgbV90cmFuc2Zvcm1TdGFjay5yZW1vdmVMYXN0KCk7Cit9
CisKK3ZvaWQgRXZlbnRSZWdpb25Db250ZXh0Ojp1bml0ZShjb25zdCBSZWdpb24mIHJlZ2lvbiwg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGlmIChtX3RyYW5zZm9ybVN0YWNrLmlz
RW1wdHkoKSkKKyAgICAgICAgbV9ldmVudFJlZ2lvbi51bml0ZShyZWdpb24sIHN0eWxlKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fZXZlbnRSZWdpb24udW5pdGUobV90cmFuc2Zvcm1TdGFjay5sYXN0
KCkubWFwUmVnaW9uKHJlZ2lvbiksIHN0eWxlKTsKK30KKworYm9vbCBFdmVudFJlZ2lvbkNvbnRl
eHQ6OmNvbnRhaW5zKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgaWYgKG1fdHJh
bnNmb3JtU3RhY2suaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbV9ldmVudFJlZ2lvbi5jb250
YWlucyhyZWN0KTsKKworICAgIHJldHVybiBtX2V2ZW50UmVnaW9uLmNvbnRhaW5zKG1fdHJhbnNm
b3JtU3RhY2subGFzdCgpLm1hcFJlY3QocmVjdCkpOworfQorCiBFdmVudFJlZ2lvbjo6RXZlbnRS
ZWdpb24oKSA9IGRlZmF1bHQ7CiAKIGJvb2wgRXZlbnRSZWdpb246Om9wZXJhdG9yPT0oY29uc3Qg
RXZlbnRSZWdpb24mIG90aGVyKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V2ZW50UmVnaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmgJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FdmVudFJlZ2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiUmVnaW9u
LmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+
CkBAIC0zMiwxMiArMzMsMzAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFdmVu
dFJlZ2lvbjsKIGNsYXNzIFJlbmRlclN0eWxlOwogCitjbGFzcyBFdmVudFJlZ2lvbkNvbnRleHQg
eworcHVibGljOgorICAgIGV4cGxpY2l0IEV2ZW50UmVnaW9uQ29udGV4dChFdmVudFJlZ2lvbiYp
OworCisgICAgdm9pZCBwdXNoVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpOworICAg
IHZvaWQgcG9wVHJhbnNmb3JtKCk7CisKKyAgICB2b2lkIHVuaXRlKGNvbnN0IFJlZ2lvbiYsIGNv
bnN0IFJlbmRlclN0eWxlJik7CisgICAgYm9vbCBjb250YWlucyhjb25zdCBJbnRSZWN0JikgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgRXZlbnRSZWdpb24mIG1fZXZlbnRSZWdpb247CisgICAgVmVj
dG9yPEFmZmluZVRyYW5zZm9ybT4gbV90cmFuc2Zvcm1TdGFjazsKK307CisKIGNsYXNzIEV2ZW50
UmVnaW9uIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBFdmVudFJlZ2lvbigpOwogCisg
ICAgRXZlbnRSZWdpb25Db250ZXh0IG1ha2VDb250ZXh0KCkgeyByZXR1cm4gRXZlbnRSZWdpb25D
b250ZXh0KCp0aGlzKTsgfQorCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9y
ZWdpb24uaXNFbXB0eSgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9yPT0o
Y29uc3QgRXZlbnRSZWdpb24mKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5jcHAJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA1LDcgKzUw
NSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKIAogICAgIGlm
IChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZTo6RXZlbnRSZWdpb24pIHsKICAgICAgICAg
aWYgKHZpc2libGVUb0hpdFRlc3RpbmcoKSkKLSAgICAgICAgICAgIHBhaW50SW5mby5ldmVudFJl
Z2lvbi0+dW5pdGUoZW5jbG9zaW5nSW50UmVjdChib3hSZWN0KSwgcmVuZGVyZXIoKS5zdHlsZSgp
KTsKKyAgICAgICAgICAgIHBhaW50SW5mby5ldmVudFJlZ2lvbkNvbnRleHQtPnVuaXRlKGVuY2xv
c2luZ0ludFJlY3QoYm94UmVjdCksIHJlbmRlcmVyKCkuc3R5bGUoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRJbmZvLmgJKHJldmlz
aW9uIDI0NTI3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIEV2ZW50UmVnaW9uOworY2xhc3MgRXZlbnRSZWdpb25Db250ZXh0OwogY2xhc3MgT3Zlcmxh
cFRlc3RSZXF1ZXN0Q2xpZW50OwogY2xhc3MgUmVuZGVySW5saW5lOwogY2xhc3MgUmVuZGVyTGF5
ZXI7CkBAIC0xMzAsNyArMTMwLDggQEAgc3RydWN0IFBhaW50SW5mbyB7CiAgICAgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXI7IC8vIHRoZSBsYXllciBvYmplY3Qg
dGhhdCBvcmlnaW5hdGVzIHRoZSBjdXJyZW50IHBhaW50aW5nCiAgICAgYm9vbCByZXF1aXJlU2Vj
dXJpdHlPcmlnaW5BY2Nlc3NGb3JXaWRnZXRzIHsgZmFsc2UgfTsKICAgICBjb25zdCBSZW5kZXJM
YXllciogbV9lbmNsb3NpbmdTZWxmUGFpbnRpbmdMYXllciB7IG51bGxwdHIgfTsKLSAgICBFdmVu
dFJlZ2lvbiogZXZlbnRSZWdpb24geyBudWxscHRyIH07IC8vIEZvciBQYWludFBoYXNlOjpFdmVu
dFJlZ2lvbi4KKyAgICBFdmVudFJlZ2lvbkNvbnRleHQqIGV2ZW50UmVnaW9uQ29udGV4dCB7IG51
bGxwdHIgfTsgLy8gRm9yIFBhaW50UGhhc2U6OkV2ZW50UmVnaW9uLgorCiBwcml2YXRlOgogICAg
IEdyYXBoaWNzQ29udGV4dCogbV9jb250ZXh0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMjQ1Mjc0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0NiwxMSAr
MTI0NiwxMSBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWludEluZm8mCiAKICAg
ICAgICAgaWYgKHZpc2libGVUb0hpdFRlc3RpbmcoKSkgewogICAgICAgICAgICAgYXV0byBib3Jk
ZXJSZWdpb24gPSBhcHByb3hpbWF0ZUFzUmVnaW9uKHN0eWxlKCkuZ2V0Um91bmRlZEJvcmRlckZv
cihib3JkZXJSZWN0KSk7Ci0gICAgICAgICAgICBwYWludEluZm8uZXZlbnRSZWdpb24tPnVuaXRl
KGJvcmRlclJlZ2lvbiwgc3R5bGUoKSk7CisgICAgICAgICAgICBwYWludEluZm8uZXZlbnRSZWdp
b25Db250ZXh0LT51bml0ZShib3JkZXJSZWdpb24sIHN0eWxlKCkpOwogICAgICAgICB9CiAKICAg
ICAgICAgLy8gTm8gbmVlZCB0byBjaGVjayBkZXNjZW5kYW50cyBpZiB3ZSBkb24ndCBoYXZlIG92
ZXJmbG93IGFuZCB0aGUgYXJlYSBpcyBhbHJlYWR5IGNvdmVyZWQuCi0gICAgICAgIGJvb2wgbmVl
ZHNUcmF2ZXJzZURlc2NlbmRhbnRzID0gaGFzVmlzdWFsT3ZlcmZsb3coKSB8fCAhcGFpbnRJbmZv
LmV2ZW50UmVnaW9uLT5jb250YWlucyhlbmNsb3NpbmdJbnRSZWN0KGJvcmRlclJlY3QpKTsKKyAg
ICAgICAgYm9vbCBuZWVkc1RyYXZlcnNlRGVzY2VuZGFudHMgPSBoYXNWaXN1YWxPdmVyZmxvdygp
IHx8ICFwYWludEluZm8uZXZlbnRSZWdpb25Db250ZXh0LT5jb250YWlucyhlbmNsb3NpbmdJbnRS
ZWN0KGJvcmRlclJlY3QpKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoUE9J
TlRFUl9FVkVOVFMpCiAgICAgICAgIG5lZWRzVHJhdmVyc2VEZXNjZW5kYW50cyA9IG5lZWRzVHJh
dmVyc2VEZXNjZW5kYW50cyB8fCBkb2N1bWVudCgpLnRvdWNoQWN0aW9uRWxlbWVudHMoKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZp
c2lvbiAyNDUyNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NjAwLDggKzQ2MDAsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRMYXllckJ5QXBwbHlpbmdUcgogICAgIC8vIFRyYW5zbGF0ZSB0aGUgZ3JhcGhpY3MgY29u
dGV4dCB0byB0aGUgc25hcHBpbmcgcG9zaXRpb24gdG8gYXZvaWQgb2ZmLWRldmljZS1waXhlbCBw
b3NpdGluZy4KICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlUmlnaHQoZGV2aWNlUGl4ZWxTbmFwcGVk
T2Zmc2V0Rm9yVGhpc0xheWVyLndpZHRoKCksIGRldmljZVBpeGVsU25hcHBlZE9mZnNldEZvclRo
aXNMYXllci5oZWlnaHQoKSk7CiAgICAgLy8gQXBwbHkgdGhlIHRyYW5zZm9ybS4KLSAgICBBZmZp
bmVUcmFuc2Zvcm0gb2xkVHJhbnNmcm9tID0gY29udGV4dC5nZXRDVE0oKTsKLSAgICBjb250ZXh0
LmNvbmNhdENUTSh0cmFuc2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKSk7CisgICAgYXV0byBvbGRU
cmFuc2Zvcm0gPSBjb250ZXh0LmdldENUTSgpOworICAgIGF1dG8gYWZmaW5lVHJhbnNmb3JtID0g
dHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgY29udGV4dC5jb25jYXRDVE0oYWZm
aW5lVHJhbnNmb3JtKTsKKworICAgIGlmIChwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0
KQorICAgICAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0LT5wdXNoVHJhbnNmb3Jt
KGFmZmluZVRyYW5zZm9ybSk7CiAKICAgICAvLyBOb3cgZG8gYSBwYWludCB3aXRoIHRoZSByb290
IGxheWVyIHNoaWZ0ZWQgdG8gYmUgdXMuCiAgICAgTGF5b3V0U2l6ZSBhZGp1c3RlZFN1YnBpeGVs
T2Zmc2V0ID0gb2Zmc2V0Rm9yVGhpc0xheWVyIC0gTGF5b3V0U2l6ZShkZXZpY2VQaXhlbFNuYXBw
ZWRPZmZzZXRGb3JUaGlzTGF5ZXIpOwpAQCAtNDYxMCw3ICs0NjE0LDExIEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnBhaW50TGF5ZXJCeUFwcGx5aW5nVHIKICAgICB0cmFuc2Zvcm1lZFBhaW50aW5nSW5m
by5wYWludERpcnR5UmVjdCA9IExheW91dFJlY3QoZW5jbG9zZVJlY3RUb0RldmljZVBpeGVscyh0
cmFuc2Zvcm0uaW52ZXJzZSgpLnZhbHVlT3IoQWZmaW5lVHJhbnNmb3JtKCkpLm1hcFJlY3QocGFp
bnRpbmdJbmZvLnBhaW50RGlydHlSZWN0KSwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKICAgICB0cmFu
c2Zvcm1lZFBhaW50aW5nSW5mby5zdWJwaXhlbE9mZnNldCA9IGFkanVzdGVkU3VicGl4ZWxPZmZz
ZXQ7CiAgICAgcGFpbnRMYXllckNvbnRlbnRzQW5kUmVmbGVjdGlvbihjb250ZXh0LCB0cmFuc2Zv
cm1lZFBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7Ci0gICAgY29udGV4dC5zZXRDVE0ob2xkVHJh
bnNmcm9tKTsKKworICAgIGlmIChwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0KQorICAg
ICAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0LT5wb3BUcmFuc2Zvcm0oKTsKKwor
ICAgIGNvbnRleHQuc2V0Q1RNKG9sZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6
OnBhaW50TGlzdChMYXllckxpc3QgbGF5ZXJJdGVyYXRvciwgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgcGFpbnRpbmdJbmZvLCBPcHRpb25TZXQ8UGFp
bnRMYXllckZsYWc+IHBhaW50RmxhZ3MpCkBAIC00OTk4LDExICs1MDA2LDExIEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnBhaW50T3ZlcmZsb3dDb250cm9sc0YKIAogdm9pZCBSZW5kZXJMYXllcjo6Y29s
bGVjdEV2ZW50UmVnaW9uRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZy
YWdtZW50cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5m
byYgbG9jYWxQYWludGluZ0luZm8pCiB7Ci0gICAgQVNTRVJUKGxvY2FsUGFpbnRpbmdJbmZvLmV2
ZW50UmVnaW9uKTsKKyAgICBBU1NFUlQobG9jYWxQYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250
ZXh0KTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgZnJhZ21lbnQgOiBsYXllckZyYWdtZW50cykg
ewogICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQsIGZyYWdtZW50LmZvcmVncm91
bmRSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZTo6RXZlbnRSZWdpb24sIHsgfSk7Ci0gICAgICAgIHBh
aW50SW5mby5ldmVudFJlZ2lvbiA9IGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uOworICAg
ICAgICBwYWludEluZm8uZXZlbnRSZWdpb25Db250ZXh0ID0gbG9jYWxQYWludGluZ0luZm8uZXZl
bnRSZWdpb25Db250ZXh0OwogICAgICAgICByZW5kZXJlcigpLnBhaW50KHBhaW50SW5mbywgdG9M
YXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9j
YXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CiAgICAgfQogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlzaW9uIDI0NTI3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC02Myw3ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU0ZpbHRl
cjsKIGNsYXNzIENsaXBSZWN0czsKIGNsYXNzIENsaXBSZWN0c0NhY2hlOwotY2xhc3MgRXZlbnRS
ZWdpb247CitjbGFzcyBFdmVudFJlZ2lvbkNvbnRleHQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsK
IGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGU7CkBA
IC05NDEsNyArOTQxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgT3B0aW9uU2V0PFBhaW50QmVoYXZp
b3I+IHBhaW50QmVoYXZpb3I7CiAgICAgICAgIGJvb2wgcmVxdWlyZVNlY3VyaXR5T3JpZ2luQWNj
ZXNzRm9yV2lkZ2V0czsKICAgICAgICAgYm9vbCBjbGlwVG9EaXJ0eVJlY3QgeyB0cnVlIH07Ci0g
ICAgICAgIEV2ZW50UmVnaW9uKiBldmVudFJlZ2lvbiB7IG51bGxwdHIgfTsKKyAgICAgICAgRXZl
bnRSZWdpb25Db250ZXh0KiBldmVudFJlZ2lvbkNvbnRleHQgeyBudWxscHRyIH07CiAgICAgfTsK
IAogICAgIC8vIENvbXB1dGUsIGNhY2hlIGFuZCByZXR1cm4gY2xpcCByZWN0cyBjb21wdXRlZCB3
aXRoIHRoZSBnaXZlbiBsYXllciBhcyB0aGUgcm9vdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCShyZXZpc2lvbiAyNDUyNzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ4NCw3ICsxNDg0LDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUV2ZW50UmVnaQogICAgIFJlbmRlckxheWVyOjpMYXllclBhaW50aW5nSW5mbyBwYWludGlu
Z0luZm8oJm1fb3duaW5nTGF5ZXIsIGNvbXBvc2l0ZWRCb3VuZHMoKSwgeyB9LCBMYXlvdXRTaXpl
KCkpOwogCiAgICAgRXZlbnRSZWdpb24gZXZlbnRSZWdpb247Ci0gICAgcGFpbnRpbmdJbmZvLmV2
ZW50UmVnaW9uID0gJmV2ZW50UmVnaW9uOworICAgIGF1dG8gZXZlbnRSZWdpb25Db250ZXh0ID0g
ZXZlbnRSZWdpb24ubWFrZUNvbnRleHQoKTsKKyAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25D
b250ZXh0ID0gJmV2ZW50UmVnaW9uQ29udGV4dDsKIAogICAgIGF1dG8gcGFpbnRGbGFncyA9IFJl
bmRlckxheWVyOjpwYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0FsbFBoYXNlc0ZsYWdzKCkg
fCBSZW5kZXJMYXllcjo6UGFpbnRMYXllckNvbGxlY3RpbmdFdmVudFJlZ2lvbjsKICAgICBtX293
bmluZ0xheWVyLnBhaW50TGF5ZXJDb250ZW50cyhudWxsQ29udGV4dCwgcGFpbnRpbmdJbmZvLCBw
YWludEZsYWdzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5
b3V0RnVuY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDI0NTI3NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIHBhaW50Rmxvdyhjb25zdCBSZW5kZXJCbG9j
a0Zsb3cmIGZsCiAgICAgICAgIHBhaW50UmVjdC5tb3ZlQnkoLXBhaW50T2Zmc2V0KTsKICAgICAg
ICAgZm9yIChhdXRvIHJ1biA6IGxheW91dC5ydW5SZXNvbHZlcigpLnJhbmdlRm9yUmVjdChwYWlu
dFJlY3QpKSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0ID0gY29t
cHV0ZU92ZXJmbG93KGZsb3csIHJ1bi5yZWN0KCkpOwotICAgICAgICAgICAgcGFpbnRJbmZvLmV2
ZW50UmVnaW9uLT51bml0ZShlbmNsb3NpbmdJbnRSZWN0KHZpc3VhbE92ZXJmbG93UmVjdCksIGZs
b3cuc3R5bGUoKSk7CisgICAgICAgICAgICBwYWludEluZm8uZXZlbnRSZWdpb25Db250ZXh0LT51
bml0ZShlbmNsb3NpbmdJbnRSZWN0KHZpc3VhbE92ZXJmbG93UmVjdCksIGZsb3cuc3R5bGUoKSk7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0
NTI3NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE0IEBACisyMDE5LTA1LTE0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFdmVudCByZWdpb24gY29tcHV0YXRpb24gc2hvdWxkIHJlc3BlY3QgdHJhbnNmb3Jt
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODM2
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDc2Mjk3MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9ldmVudC1yZWdp
b24tc2NhbGUtdHJhbnNmb3JtLXNoYXJlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvaW9zL2V2ZW50LXJlZ2lvbi10cmFuc2xhdGUtdHJhbnNmb3JtLXNoYXJlZC1leHBl
Y3RlZC50eHQ6CisKIDIwMTktMDUtMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gV2hlbiBydW5uaW5nIGxheW91dCB0ZXN0cyB0aGF0IHRh
cCBpbiB0aGUgc2FtZSBsb2NhdGlvbiwgc3Vic2VxdWVudCB0ZXN0cyBmYWlsIHRvIGZpcmUgY2xp
Y2sgaGFuZGxlcnMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9ldmVudC1y
ZWdpb24tc2NhbGUtdHJhbnNmb3JtLXNoYXJlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2V2ZW50LXJlZ2lvbi1zY2FsZS10cmFuc2Zv
cm0tc2hhcmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ1Mjc0KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL2V2ZW50LXJlZ2lvbi1zY2FsZS10cmFuc2Zvcm0tc2hhcmVkLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTksOCArMTksOSBAQAogICAgICAgICAgIChi
b3VuZHMgMjAxLjAwIDIwMS4wMCkKICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAgICAg
ICAgKGV2ZW50IHJlZ2lvbgotICAgICAgICAgICAgKHJlY3QgKDAsMCkgd2lkdGg9MjAwIGhlaWdo
dD0yMDApCi0gICAgICAgICAgICAocmVjdCAoMjAwLDIwMCkgd2lkdGg9MTAwIGhlaWdodD0xMDAp
CisgICAgICAgICAgICAocmVjdCAoMCwwKSB3aWR0aD0xMiBoZWlnaHQ9MTIpCisgICAgICAgICAg
ICAocmVjdCAoNTEsNTEpIHdpZHRoPTEwMCBoZWlnaHQ9MTAwKQorICAgICAgICAgICAgKHJlY3Qg
KDE1MSwxNTEpIHdpZHRoPTUwIGhlaWdodD01MCkKICAgICAgICAgICApCiAgICAgICAgICkKICAg
ICAgICkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9ldmVudC1yZWdpb24t
dHJhbnNsYXRlLXRyYW5zZm9ybS1zaGFyZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9ldmVudC1yZWdpb24tdHJhbnNsYXRlLXRyYW5z
Zm9ybS1zaGFyZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDUyNzQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3MvZXZlbnQtcmVnaW9uLXRyYW5zbGF0ZS10cmFuc2Zvcm0tc2hh
cmVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTksOCArMTksOSBAQAogICAgICAg
ICAgIChib3VuZHMgNDUxLjAwIDQ1MS4wMCkKICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAg
ICAgICAgICAgKGV2ZW50IHJlZ2lvbgotICAgICAgICAgICAgKHJlY3QgKDAsMCkgd2lkdGg9MjAw
IGhlaWdodD0yMDApCi0gICAgICAgICAgICAocmVjdCAoMjAwLDIwMCkgd2lkdGg9MTAwIGhlaWdo
dD0xMDApCisgICAgICAgICAgICAocmVjdCAoMCwwKSB3aWR0aD0xMiBoZWlnaHQ9MTIpCisgICAg
ICAgICAgICAocmVjdCAoMTUxLDE1MSkgd2lkdGg9MjAwIGhlaWdodD0yMDApCisgICAgICAgICAg
ICAocmVjdCAoMzUxLDM1MSkgd2lkdGg9MTAwIGhlaWdodD0xMDApCiAgICAgICAgICAgKQogICAg
ICAgICApCiAgICAgICApCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>