<?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>61089</bug_id>
          
          <creation_ts>2011-05-18 13:16:00 -0700</creation_ts>
          <short_desc>JoinTextNodesCommand is never used</short_desc>
          <delta_ts>2011-05-19 11:46:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>leviw</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>sullivan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>405981</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-18 13:16:00 -0700</bug_when>
    <thetext>This command is never used anywhere.  We should just get rid of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406244</commentid>
    <comment_count>1</comment_count>
      <attachid>94042</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-18 21:41:44 -0700</bug_when>
    <thetext>Created attachment 94042
Deleted JoinTextNodesCommand</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406389</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-05-19 07:46:21 -0700</bug_when>
    <thetext>Did this behavior just get rolled into something else or do we just create infinite text nodes every edit you make?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406391</commentid>
    <comment_count>3</comment_count>
      <attachid>94042</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-19 07:47:03 -0700</bug_when>
    <thetext>Comment on attachment 94042
Deleted JoinTextNodesCommand

Lets say you have this markup:

    x&lt;b&gt;y&lt;/b&gt;z

Wouldn’t we want to join the x and z into a single text node after that? If not, why not? Is this handled with different code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406392</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-19 07:47:29 -0700</bug_when>
    <thetext>I meant if you deleted the &quot;y&quot; and then moved the insertion point away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406393</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-19 07:47:58 -0700</bug_when>
    <thetext>I see now that my question and Ojan’s are the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406400</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-19 08:14:12 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 94042 [details])
&gt; Lets say you have this markup:
&gt; 
&gt;     x&lt;b&gt;y&lt;/b&gt;z
&gt; 
&gt; Wouldn’t we want to join the x and z into a single text node after that? If not, why not? Is this handled with different code?

Yes: http://trac.webkit.org/browser/trunk/Source/WebCore/editing/ApplyStyleCommand.cpp#L1470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406403</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-19 08:22:48 -0700</bug_when>
    <thetext>I don&apos;t know how other editing commands are merging text nodes.  Maybe we never do.  For example, https://bugs.webkit.org/show_bug.cgi?id=61094 is caused by deletion leaving two adjacent text nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406407</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-19 08:28:11 -0700</bug_when>
    <thetext>Sorry, I was talking about deletion and not styling, but it’s good to see there is code in the styling code path that does this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406409</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-19 08:29:15 -0700</bug_when>
    <thetext>It&apos;s also interesting to consider:

    vw&lt;b&gt;x&lt;/b&gt;yz

Selecting starting before the w and after the y and then deleting or typing new text. I assume we’d want a single text node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406410</commentid>
    <comment_count>10</comment_count>
      <attachid>94042</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-19 08:30:31 -0700</bug_when>
    <thetext>Comment on attachment 94042
Deleted JoinTextNodesCommand

It seems OK to remove this because generally speaking there’s no real value to keeping around dead untested code. I’m not sure this offers significant advantages over the explicit insert and delete idiom used in ApplyStyleCommand. We can add it back if we need it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406412</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-19 08:32:37 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 94042 [details])
&gt; It seems OK to remove this because generally speaking there’s no real value to keeping around dead untested code. I’m not sure this offers significant advantages over the explicit insert and delete idiom used in ApplyStyleCommand. We can add it back if we need it later.

Thanks for the review.  My intent here was to remove dead code.  Regardless of usefulness, I&apos;d rather not have dead code in our code base.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406509</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 10:44:44 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 94042:

http/tests/websocket/tests/httponly-cookie.pl bug 54097 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406513</commentid>
    <comment_count>13</comment_count>
      <attachid>94042</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 10:46:21 -0700</bug_when>
    <thetext>Comment on attachment 94042
Deleted JoinTextNodesCommand

Clearing flags on attachment: 94042

Committed r86854: &lt;http://trac.webkit.org/changeset/86854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406514</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 10:46:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406553</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 11:46:54 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 94042:

animations/suspend-resume-animation.html bug 48161 (authors: cmarrin@apple.com and simon.fraser@apple.com)
http/tests/websocket/tests/multiple-connections.html bug 53825 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94042</attachid>
            <date>2011-05-18 21:41:44 -0700</date>
            <delta_ts>2011-05-19 10:46:21 -0700</delta_ts>
            <desc>Deleted JoinTextNodesCommand</desc>
            <filename>bug-61089-20110518214143.patch</filename>
            <type>text/plain</type>
            <size>17221</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2ODE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDUtMTggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSm9pblRleHROb2Rlc0NvbW1hbmQgaXMgbmV2ZXIgdXNlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEwODkKKworICAg
ICAgICBEZWxldGVkIEpvaW5UZXh0Tm9kZXNDb21tYW5kIGJlY2F1c2UgaXQncyBuZXZlciB1c2Vk
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogZWRp
dGluZy9Kb2luVGV4dE5vZGVzQ29tbWFuZC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGlu
Zy9Kb2luVGV4dE5vZGVzQ29tbWFuZC5oOiBSZW1vdmVkLgorCiAyMDExLTA1LTE4ICBOYXQgRHVj
YSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2Jp
bnNvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA4NjgxOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NjMsNyArNjYzLDYg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAog
ICAgIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCi0gICAgZWRpdGluZy9Kb2luVGV4dE5v
ZGVzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAogICAgIGVk
aXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Nb2Rp
ZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0JKHJldmlzaW9uIDg2ODE4KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkod29ya2luZyBjb3B5KQpAQCAtMTM0OCw4ICsxMzQ4LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBcCi0JU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Kb2luVGV4dE5vZGVzQ29tbWFuZC5jcHAgXAotCVNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSm9pblRleHROb2Rlc0NvbW1hbmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA4NjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMjY0Myw4ICsyNjQzLDYgQEAKICAgICAgICAgICAgICdlZGl0aW5n
L0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGlu
Zy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaCcsCi0gICAgICAgICAgICAnZWRpdGluZy9Kb2luVGV4dE5vZGVzQ29tbWFuZC5j
cHAnLAotICAgICAgICAgICAgJ2VkaXRpbmcvSm9pblRleHROb2Rlc0NvbW1hbmQuaCcsCiAgICAg
ICAgICAgICAnZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAnLAogICAgICAgICAgICAgJ2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDg2ODE4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTU4NCw3ICs1ODQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBlZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAgXAotICAgIGVkaXRp
bmcvSm9pblRleHROb2Rlc0NvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL21hcmt1cC5jcHAgXAog
ICAgIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIFwKICAgICBlZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcCBcCkBAIC0xNTU5LDcgKzE1NTgsNiBAQCBIRUFERVJT
ICs9IFwKICAgICBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggXAogICAgIGVkaXRp
bmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIFwKICAgICBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmggXAotICAgIGVkaXRpbmcvSm9pblRleHROb2Rlc0NvbW1hbmQuaCBcCiAg
ICAgZWRpdGluZy9tYXJrdXAuaCBcCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRz
Q29tbWFuZC5oIFwKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZp
c2lvbiA4NjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC00OTYyMiw2MiArNDk2MjIsNiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXEpvaW5UZXh0Tm9k
ZXNDb21tYW5kLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJ
CQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJ
CQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0J
CQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJ
CQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xKb2luVGV4dE5vZGVzQ29tbWFuZC5oIgotCQkJCT4K
LQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXG1hcmt1
cC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODY4
MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI4MDksOCArMjgwOSw2IEBACiAJCTkzMzA5REYwMDk5RTY0OTIw
MDU2RTU4MSAvKiBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOURBMTA5OUU2NDkxMDA1NkU1
ODEgLyogSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oICovOyB9OwogCQk5MzMwOURG
MTA5OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEQTIwOTlFNjQ5MTAwNTZFNTgx
IC8qIEluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKIAkJOTMzMDlERjIwOTlFNjQ5MjAwNTZF
NTgxIC8qIEluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzMwOURBMzA5OUU2NDkxMDA1NkU1ODEgLyogSW5zZXJ0VGV4dENv
bW1hbmQuaCAqLzsgfTsKLQkJOTMzMDlERjMwOTlFNjQ5MjAwNTZFNTgxIC8qIEpvaW5UZXh0Tm9k
ZXNDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMzA5REE0MDk5RTY0OTEwMDU2RTU4MSAvKiBKb2luVGV4dE5vZGVzQ29tbWFuZC5jcHAg
Ki87IH07Ci0JCTkzMzA5REY0MDk5RTY0OTIwMDU2RTU4MSAvKiBKb2luVGV4dE5vZGVzQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlE
QTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEpvaW5UZXh0Tm9kZXNDb21tYW5kLmggKi87IH07CiAJCTkz
MzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEQTgwOTlFNjQ5MTAwNTZFNTgxIC8qIG1h
cmt1cC5jcHAgKi87IH07CiAJCTkzMzA5REY4MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzA5REE5MDk5
RTY0OTEwMDU2RTU4MSAvKiBtYXJrdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzMwOURGOTA5OUU2NDkyMDA1NkU1ODEgLyogTWVyZ2VJZGVu
dGljYWxFbGVtZW50c0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMzMDlEQUEwOTlFNjQ5MTAwNTZFNTgxIC8qIE1lcmdlSWRlbnRpY2Fs
RWxlbWVudHNDb21tYW5kLmNwcCAqLzsgfTsKQEAgLTkzMzMsOCArOTMzMSw2IEBACiAJCTkzMzA5
REExMDk5RTY0OTEwMDU2RTU4MSAvKiBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzMDlEQTIwOTlFNjQ5
MTAwNTZFNTgxIC8qIEluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMzMDlEQTMwOTlFNjQ5MTAwNTZFNTgxIC8qIEluc2VydFRleHRDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzMzA5REE0MDk5RTY0OTEwMDU2RTU4MSAv
KiBKb2luVGV4dE5vZGVzQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKb2luVGV4dE5vZGVzQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTkzMzA5REE1MDk5RTY0OTEwMDU2RTU4MSAvKiBKb2luVGV4dE5vZGVzQ29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKb2luVGV4dE5vZGVzQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzMwOURBODA5OUU2NDkxMDA1NkU1ODEg
LyogbWFya3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IG1hcmt1
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5REE5MDk5RTY0OTEwMDU2
RTU4MSAvKiBtYXJrdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gbWFya3Vw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5REFBMDk5RTY0OTEwMDU2RTU4
MSAvKiBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTU1OCw4ICsxNTU1NCw2IEBACiAJCQkJOTMz
MDlEQTEwOTlFNjQ5MTAwNTZFNTgxIC8qIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQu
aCAqLywKIAkJCQk5MzMwOURBMjA5OUU2NDkxMDA1NkU1ODEgLyogSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwICovLAogCQkJCTkzMzA5REEzMDk5RTY0OTEwMDU2RTU4MSAvKiBJbnNlcnRUZXh0Q29tbWFu
ZC5oICovLAotCQkJCTkzMzA5REE0MDk5RTY0OTEwMDU2RTU4MSAvKiBKb2luVGV4dE5vZGVzQ29t
bWFuZC5jcHAgKi8sCi0JCQkJOTMzMDlEQTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEpvaW5UZXh0Tm9k
ZXNDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQTgwOTlFNjQ5MTAwNTZFNTgxIC8qIG1hcmt1cC5j
cHAgKi8sCiAJCQkJOTMzMDlEQTkwOTlFNjQ5MTAwNTZFNTgxIC8qIG1hcmt1cC5oICovLAogCQkJ
CTk3MjhDMzExMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgKi8sCkBA
IC0yMTMxMSw3ICsyMTMwNSw2IEBACiAJCQkJNTlFRTEyMzIxMTA2MDgyOTAwODg1MTE2IC8qIEpO
SVV0aWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5RUUxMjJFMTEwNjA4MEYwMDg4NTExNiAv
KiBKTklVdGlsaXR5UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTk2OTUwODIxMzIxMDU5
OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzMwOURG
NDA5OUU2NDkyMDA1NkU1ODEgLyogSm9pblRleHROb2Rlc0NvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxOEY4ODA1MEZGOTU3QUYwMDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OUVFQ0YwMTEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNGMUMxMDUwNzJGMzAwMDk5RkFCIC8qIEpTQXJy
YXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKQEAgLTI0MTAzLDcgKzI0MDk2LDYgQEAKIAkJ
CQk1OUVFMTIzMDExMDYwODFGMDA4ODUxMTYgLyogSk5JVXRpbGl0eS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1OUVFMTIyQzExMDYwODA1MDA4ODUxMTYgLyogSk5JVXRpbGl0eVByaXZhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTk2OTUwODQxMzIxMDVBNTAwQzNFRDE4IC8qIEpvYmplY3RX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzMzA5REYzMDk5RTY0OTIwMDU2RTU4MSAv
KiBKb2luVGV4dE5vZGVzQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThGODgwNDBG
Rjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0OUVFQ0YwMDEwNTA3MEM0MDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzI3NUNCMzExQzVFODVDMDBDOTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCShyZXZpc2lvbiA4NjgxOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0
VGV4dENvbW1hbmQuaCIKLSNpbmNsdWRlICJKb2luVGV4dE5vZGVzQ29tbWFuZC5oIgogI2luY2x1
ZGUgIk1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIK
ICNpbmNsdWRlICJSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCIKQEAgLTI5MywxMSArMjkyLDYg
QEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6c3BsaXRUZXh0Tm9kZQogICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQ6OmNy
ZWF0ZSh0ZXh0LCBvZmZzZXQpKTsKIH0KIAotdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6am9p
blRleHROb2RlcyhQYXNzUmVmUHRyPFRleHQ+IHRleHQxLCBQYXNzUmVmUHRyPFRleHQ+IHRleHQy
KQotewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEpvaW5UZXh0Tm9kZXNDb21tYW5kOjpj
cmVhdGUodGV4dDEsIHRleHQyKSk7Ci19Ci0KIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
cHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewog
ICAgIHVuc2lnbmVkIG9mZnNldCA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCShyZXZpc2lvbiA4NjgxOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtNjYs
NyArNjYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3Io
Ym9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlKTsKICAgICB2b2lkIGluc2Vy
dExpbmVCcmVhaygpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKLSAgICB2b2lkIGpvaW5U
ZXh0Tm9kZXMoUGFzc1JlZlB0cjxUZXh0PiwgUGFzc1JlZlB0cjxUZXh0Pik7CiAgICAgdm9pZCBt
ZXJnZUlkZW50aWNhbEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxl
bWVudD4pOwogICAgIHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwogICAgIHZvaWQgcmViYWxh
bmNlV2hpdGVzcGFjZUF0KGNvbnN0IFBvc2l0aW9uJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA4NjgxOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNiBAQAogI2luY2x1ZGUgPEluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxJbnNl
cnRUZXh0Q29tbWFuZC5jcHA+Ci0jaW5jbHVkZSA8Sm9pblRleHROb2Rlc0NvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPE1hcmt1cEFjY3VtdWxhdG9yLmNwcD4KICNpbmNsdWRlIDxNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVs
LmNwcD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSm9pblRleHROb2Rlc0NvbW1hbmQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSm9pblRleHROb2Rlc0Nv
bW1hbmQuY3BwCShyZXZpc2lvbiA4NjgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSm9p
blRleHROb2Rlc0NvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSm9pblRleHROb2Rl
c0NvbW1hbmQuaCIKLQotI2luY2x1ZGUgIlRleHQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1Kb2luVGV4dE5vZGVzQ29tbWFuZDo6Sm9pblRleHROb2Rlc0NvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiB0ZXh0MSwgUGFzc1JlZlB0cjxUZXh0PiB0ZXh0MikKLSAgICA6IFNpbXBsZUVkaXRDb21t
YW5kKHRleHQxLT5kb2N1bWVudCgpKSwgbV90ZXh0MSh0ZXh0MSksIG1fdGV4dDIodGV4dDIpCi17
Ci0gICAgQVNTRVJUKG1fdGV4dDEpOwotICAgIEFTU0VSVChtX3RleHQyKTsKLSAgICBBU1NFUlQo
bV90ZXh0MS0+bmV4dFNpYmxpbmcoKSA9PSBtX3RleHQyKTsKLSAgICBBU1NFUlQobV90ZXh0MS0+
bGVuZ3RoKCkgPiAwKTsKLSAgICBBU1NFUlQobV90ZXh0Mi0+bGVuZ3RoKCkgPiAwKTsKLX0KLQot
dm9pZCBKb2luVGV4dE5vZGVzQ29tbWFuZDo6ZG9BcHBseSgpCi17Ci0gICAgaWYgKG1fdGV4dDEt
Pm5leHRTaWJsaW5nKCkgIT0gbV90ZXh0MikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ29udGFp
bmVyTm9kZSogcGFyZW50ID0gbV90ZXh0Mi0+cGFyZW50Tm9kZSgpOwotICAgIGlmICghcGFyZW50
IHx8ICFwYXJlbnQtPnJlbmRlcmVySXNFZGl0YWJsZSgpKQotICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgbV90ZXh0Mi0+aW5zZXJ0RGF0YSgwLCBt
X3RleHQxLT5kYXRhKCksIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fdGV4dDEtPnJlbW92ZShlYyk7Ci19Ci0KLXZvaWQgSm9pblRleHROb2Rlc0NvbW1hbmQ6OmRv
VW5hcHBseSgpCi17Ci0gICAgaWYgKG1fdGV4dDEtPnBhcmVudE5vZGUoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbV90ZXh0Mi0+cGFyZW50Tm9kZSgp
OwotICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPnJlbmRlcmVySXNFZGl0YWJsZSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLQotICAgIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0KCksIGVjKTsKLSAgICBpZiAo
ZWMpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fdGV4dDItPmRlbGV0ZURhdGEoMCwgbV90ZXh0
MS0+bGVuZ3RoKCksIGVjKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Kb2luVGV4dE5vZGVzQ29tbWFuZC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSm9pblRleHROb2Rlc0NvbW1hbmQuaAkocmV2aXNpb24g
ODY4MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0pvaW5UZXh0Tm9kZXNDb21tYW5kLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
Zm5kZWYgSm9pblRleHROb2Rlc0NvbW1hbmRfaAotI2RlZmluZSBKb2luVGV4dE5vZGVzQ29tbWFu
ZF9oCi0KLSNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIFRleHQ7Ci0KLWNsYXNzIEpvaW5UZXh0Tm9kZXNDb21tYW5kIDogcHVibGljIFNpbXBs
ZUVkaXRDb21tYW5kIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKb2luVGV4dE5v
ZGVzQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gdGV4dDEsIFBhc3NSZWZQdHI8VGV4
dD4gdGV4dDIpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpvaW5UZXh0Tm9k
ZXNDb21tYW5kKHRleHQxLCB0ZXh0MikpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBKb2luVGV4
dE5vZGVzQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCBQYXNzUmVmUHRyPFRleHQ+KTsKLQotICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpOwot
Ci0gICAgUmVmUHRyPFRleHQ+IG1fdGV4dDE7Ci0gICAgUmVmUHRyPFRleHQ+IG1fdGV4dDI7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKb2luVGV4dE5vZGVzQ29t
bWFuZF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>