<?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>65221</bug_id>
          
          <creation_ts>2011-07-26 17:15:33 -0700</creation_ts>
          <short_desc>Add RenderedPosition</short_desc>
          <delta_ts>2011-08-03 09:27:57 -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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>adele</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>vanlam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442633</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-26 17:15:33 -0700</bug_when>
    <thetext>As proposed during the contributor&apos;s meeting, we should add RenderedPosition.  I wasn&apos;t sure if this will be a good refactoring but patches for the bug 60910 and my recent works on hit testing code convinced me that this will be useful.

https://docs.google.com/document/d/1vzzi_wQHO0GtLnu-1IYutUKbcpAYlHqZwQlwbfLuowM/edit?hl=en_US&amp;authkey=CLOa9cgN</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442636</commentid>
    <comment_count>1</comment_count>
      <attachid>102077</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-26 17:19:41 -0700</bug_when>
    <thetext>Created attachment 102077
adds the skeleton</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442643</commentid>
    <comment_count>2</comment_count>
      <attachid>102077</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-26 17:25:53 -0700</bug_when>
    <thetext>Comment on attachment 102077
adds the skeleton

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

&gt; Source/WebCore/editing/RenderedPosition.h:47
&gt; +    RenderedPosition(const Position&amp;, EAffinity);
&gt; +    RenderedPosition(const VisiblePosition&amp;);

I should make these explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442646</commentid>
    <comment_count>3</comment_count>
      <attachid>102081</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-26 17:30:15 -0700</bug_when>
    <thetext>Created attachment 102081
adds the skeleton; made some constructors explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444297</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-30 10:40:27 -0700</bug_when>
    <thetext>Ping reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444538</commentid>
    <comment_count>5</comment_count>
      <attachid>102081</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-31 23:24:12 -0700</bug_when>
    <thetext>Comment on attachment 102081
adds the skeleton; made some constructors explicit

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

&gt; Source/WebCore/editing/RenderedPosition.h:53
&gt; +    RenderObject* m_renderer;

Do we need m_renderer? It loks we can retrieve this from m_inlineBox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444539</commentid>
    <comment_count>6</comment_count>
      <attachid>102081</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-31 23:28:59 -0700</bug_when>
    <thetext>Comment on attachment 102081
adds the skeleton; made some constructors explicit

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

&gt;&gt; Source/WebCore/editing/RenderedPosition.h:53
&gt;&gt; +    RenderObject* m_renderer;
&gt; 
&gt; Do we need m_renderer? It loks we can retrieve this from m_inlineBox.

We don&apos;t in the current version but we will in the future where we&apos;ll have an empty visible block nodes.  e.g. &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444541</commentid>
    <comment_count>7</comment_count>
      <attachid>102081</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-07-31 23:45:16 -0700</bug_when>
    <thetext>Comment on attachment 102081
adds the skeleton; made some constructors explicit

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

&gt; Source/WebCore/editing/RenderedPosition.h:47
&gt; +    explicit RenderedPosition(const VisiblePosition&amp;);

Do we need both? Current code covers only the second version.

&gt;&gt;&gt; Source/WebCore/editing/RenderedPosition.h:53
&gt;&gt;&gt; +    RenderObject* m_renderer;
&gt;&gt; 
&gt;&gt; Do we need m_renderer? It loks we can retrieve this from m_inlineBox.
&gt; 
&gt; We don&apos;t in the current version but we will in the future where we&apos;ll have an empty visible block nodes.  e.g. &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;

That makes sense.

&gt; Source/WebCore/editing/visible_units.cpp:327
&gt; +static inline RootInlineBox* rootBoxForLine(const VisiblePosition&amp; currentPosition)

It looks we no longer need this function. RenderedPosition(currentPosition).rootBox() looks concise and descriptive enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444764</commentid>
    <comment_count>8</comment_count>
      <attachid>102535</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-01 10:46:31 -0700</bug_when>
    <thetext>Created attachment 102535
Removed unnecessary constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445427</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-02 12:28:16 -0700</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445881</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-03 08:29:30 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445906</commentid>
    <comment_count>11</comment_count>
      <attachid>102535</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-03 09:27:50 -0700</bug_when>
    <thetext>Comment on attachment 102535
Removed unnecessary constructor

Clearing flags on attachment: 102535

Committed r92286: &lt;http://trac.webkit.org/changeset/92286&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445907</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-03 09:27:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102077</attachid>
            <date>2011-07-26 17:19:41 -0700</date>
            <delta_ts>2011-07-26 17:30:08 -0700</delta_ts>
            <desc>adds the skeleton</desc>
            <filename>bug-65221-20110726171940.patch</filename>
            <type>text/plain</type>
            <size>16870</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxODAxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDctMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFJlbmRlcmVkUG9zaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjIxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBz
a2VsZXRvbiBmb3IgUmVuZGVyZWRQb3NpdGlvbiBhbmQgdXNlIGl0IGluIHJvb3RCb3hGb3JMaW5l
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24p
OgorICAgICAgICAqIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmlzTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJlZFBvc2l0aW9uOjpyb290Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9z
aXRpb246OlJlbmRlcmVkUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyb290Qm94Rm9yTGluZSk6CisKIDIwMTEtMDctMjYg
IENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBdWRpb0NvbnRl
eHQgaXMgbm90IGNvcnJlY3RseSBhY2NvdW50aW5nIGZvciBoYXJkd2FyZSByZXNvdXJjZXMKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02MzUsNiArNjM1LDcgQEAgU0VUKFdl
YkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNw
cAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1
dGVDb21tYW5kLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lv
biA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzOTgsNiArMTM5OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
cmV2aXNpb24gOTE3NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcg
Y29weSkKQEAgLTI3MDAsNiArMjcwMCw4IEBACiAgICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVO
b2RlQ29tbWFuZC5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oJywKKyAgICAgICAgICAgICdlZGl0aW5nL1JlbmRlcmVk
UG9zaXRpb24uY3BwJywKKyAgICAgICAgICAgICdlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaCcs
CiAgICAgICAgICAgICAnZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAnLAog
ICAgICAgICAgICAgJ2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCcsCiAgICAg
ICAgICAgICAnZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAnLApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8JKHJldmlzaW9uIDkxNzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTU5Nyw2ICs1OTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBlZGl0
aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5jcHAgXAorICAgIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAgXAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5j
cHAgXApAQCAtMTU4Miw2ICsxNTgzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZWRpdGluZy9SZW1v
dmVGb3JtYXRDb21tYW5kLmggXAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaCBcCiAg
ICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIFwKKyAgICBl
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaCBcCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5oIFwKICAgICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggXAog
ICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTE3NjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTE2MTgsNiArNTE2MTgsNjIgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcUmVuZGVy
ZWRQb3NpdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gOTE3NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMyNTIsNiArMzI1Miw4IEBACiAJCTk4Q0U0
MzI2MTI5RTAwQkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4Q0U0MzI1MTI5RTAwQkQwMDU4MjFEQyAvKiBM
aW5rTG9hZGVyLmNwcCAqLzsgfTsKIAkJOThDRTQzMkExMjlFMDBFNTAwNTgyMURDIC8qIExpbmtM
b2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4
Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi87IH07CiAJCTk4RUIxRjk1
MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5v
dEltcGxlbWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOUIzMkNEQTkxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMzJDREE3MTNE
RjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi87IH07CisJCTlCMzJDREFBMTNE
RjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLzsgfTsKIAkJOUI0MTcwNjQxMjU2NjJCMzAwNkIyOEZDIC8q
IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI0MTcwNjIxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tF
bGVtZW50Q29tbWFuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTlCNDE3MDY1MTI1NjYyQjMwMDZCMjhGQyAvKiBBcHBseUJsb2NrRWxlbWVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI0MTcwNjMxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAg
Ki87IH07CiAJCTlCNkM0MTUzMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjZDNDE1
MjEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05ODIxLDYgKzk4MjMsOCBAQAog
CQk5OENFNDMyNTEyOUUwMEJEMDA1ODIxREMgLyogTGlua0xvYWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5rTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua0xvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1wbGVt
ZW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90SW1wbGVtZW50ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEz
IC8qIFJlbmRlcmVkUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyZWRQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjMyQ0RB
ODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJlZFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUI0MTcwNjIxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tF
bGVtZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBseUJs
b2NrRWxlbWVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0MTcw
NjMxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjZDNDE1MjEzNDQ5NDkwMDAwODVC
NjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHJpbmdXaXRoRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTk0MCw2ICsxNTk0NCw4IEBACiAJCQkJOTMzMDlEQjYwOTlFNjQ5MTAwNTZFNTgxIC8qIFJl
bW92ZU5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjcwOTlFNjQ5MTAwNTZFNTgxIC8qIFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURCODA5
OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCAq
LywKKwkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICov
LAorCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAq
LywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzI1OCw2ICsyMzI2NCw3IEBACiAJ
CQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCBp
biBIZWFkZXJzICovLAorCQkJCTlCMzJDREE5MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2MDQ1LDYgKzI2MDUyLDcgQEAKIAkJCQk5NzdF
MkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJOUIzMkNEQUExM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBA
QAogI2luY2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5v
ZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5jcHA+CisjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CiAjaW5jbHVkZSA8UmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bmRlcmVkUG9zaXRpb24uaCIKKworI2luY2x1ZGUgIklubGluZUJveC5oIgorI2luY2x1ZGUgIlBv
c2l0aW9uLmgiCisjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlvbihjb25zdCBQb3NpdGlv
biYgcG9zaXRpb24sIEVBZmZpbml0eSBhZmZpbml0eSkKKyAgICA6IG1fcmVuZGVyZXIoMCkKKyAg
ICAsIG1faW5saW5lQm94KDApCisgICAgLCBtX29mZnNldCgwKQoreworICAgIGlmIChwb3NpdGlv
bi5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHBvc2l0aW9uLmdldElubGluZUJveEFu
ZE9mZnNldChhZmZpbml0eSwgbV9pbmxpbmVCb3gsIG1fb2Zmc2V0KTsKKyAgICBpZiAobV9pbmxp
bmVCb3gpCisgICAgICAgIG1fcmVuZGVyZXIgPSBtX2lubGluZUJveC0+cmVuZGVyZXIoKTsKK30K
KworUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQorICAgIDogbV9yZW5kZXJlcigwKQorICAgICwgbV9pbmxpbmVCb3goMCkK
KyAgICAsIG1fb2Zmc2V0KDApCit7CisgICAgaWYgKHBvc2l0aW9uLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm47CisgICAgcG9zaXRpb24uZ2V0SW5saW5lQm94QW5kT2Zmc2V0KG1faW5saW5lQm94
LCBtX29mZnNldCk7CisgICAgaWYgKG1faW5saW5lQm94KQorICAgICAgICBtX3JlbmRlcmVyID0g
bV9pbmxpbmVCb3gtPnJlbmRlcmVyKCk7Cit9CisKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBSZW5kZXJlZFBvc2l0aW9uX2gKKyNkZWZpbmUgUmVuZGVyZWRQb3NpdGlvbl9oCisK
KyNpbmNsdWRlICJJbmxpbmVCb3guaCIKKyNpbmNsdWRlICJUZXh0QWZmaW5pdHkuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQb3NpdGlvbjsKK2NsYXNzIFJlbmRlck9iamVjdDsK
K2NsYXNzIFZpc2libGVQb3NpdGlvbjsKKworY2xhc3MgUmVuZGVyZWRQb3NpdGlvbiB7CitwdWJs
aWM6CisgICAgUmVuZGVyZWRQb3NpdGlvbigpOworICAgIFJlbmRlcmVkUG9zaXRpb24oY29uc3Qg
UG9zaXRpb24mLCBFQWZmaW5pdHkpOworICAgIFJlbmRlcmVkUG9zaXRpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CisKKyAgICBib29sIGlzTnVsbCgpIHsgcmV0dXJuICFtX3JlbmRlcmVyOyB9
CisgICAgUm9vdElubGluZUJveCogcm9vdEJveCgpIHsgcmV0dXJuIG1faW5saW5lQm94ID8gbV9p
bmxpbmVCb3gtPnJvb3QoKSA6IDA7IH0KKworcHJpdmF0ZToKKyAgICBSZW5kZXJPYmplY3QqIG1f
cmVuZGVyZXI7CisgICAgSW5saW5lQm94KiBtX2lubGluZUJveDsKKyAgICBpbnQgbV9vZmZzZXQ7
Cit9OworCitpbmxpbmUgUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlvbigpCisgICAg
OiBtX3JlbmRlcmVyKDApCisgICAgLCBtX2lubGluZUJveCgwKQorICAgICwgbV9vZmZzZXQoMCkK
K3sKK30KKworfTsKKworI2VuZGlmIC8vIFJlbmRlcmVkUG9zaXRpb25faApJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA5MTc2NykKKysrIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyZWRQ
b3NpdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0Qm91bmRhcmllcy5o
IgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCkBAIC0zMjMsMjIgKzMyNCw5IEBAIGJv
b2wgaXNTdGFydE9mV29yZChjb25zdCBWaXNpYmxlUG9zaXRpb24KIAogLy8gLS0tLS0tLS0tCiAK
LXN0YXRpYyBSb290SW5saW5lQm94ICpyb290Qm94Rm9yTGluZShjb25zdCBWaXNpYmxlUG9zaXRp
b24gJmMpCitzdGF0aWMgaW5saW5lIFJvb3RJbmxpbmVCb3gqIHJvb3RCb3hGb3JMaW5lKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQogewotICAgIFBvc2l0aW9uIHAgPSBj
LmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgTm9kZSogbm9kZSA9IHAuZGVwcmVjYXRlZE5vZGUoKTsK
LSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmVuZGVyT2JqZWN0ICpy
ZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICBJbmxpbmVCb3gqIGJveDsKLSAgICBpbnQgb2Zmc2V0OwotICAgIGMu
Z2V0SW5saW5lQm94QW5kT2Zmc2V0KGJveCwgb2Zmc2V0KTsKLSAgICAKLSAgICByZXR1cm4gYm94
ID8gYm94LT5yb290KCkgOiAwOworICAgIHJldHVybiBSZW5kZXJlZFBvc2l0aW9uKGN1cnJlbnRQ
b3NpdGlvbikucm9vdEJveCgpOwogfQogCiBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9u
QXZvaWRpbmdGaXJzdFBvc2l0aW9uSW5UYWJsZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102081</attachid>
            <date>2011-07-26 17:30:15 -0700</date>
            <delta_ts>2011-08-01 10:46:26 -0700</delta_ts>
            <desc>adds the skeleton; made some constructors explicit</desc>
            <filename>bug-65221-20110726173014.patch</filename>
            <type>text/plain</type>
            <size>16888</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxODAxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDctMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFJlbmRlcmVkUG9zaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjIxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBz
a2VsZXRvbiBmb3IgUmVuZGVyZWRQb3NpdGlvbiBhbmQgdXNlIGl0IGluIHJvb3RCb3hGb3JMaW5l
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24p
OgorICAgICAgICAqIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmlzTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJlZFBvc2l0aW9uOjpyb290Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9z
aXRpb246OlJlbmRlcmVkUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyb290Qm94Rm9yTGluZSk6CisKIDIwMTEtMDctMjYg
IENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBdWRpb0NvbnRl
eHQgaXMgbm90IGNvcnJlY3RseSBhY2NvdW50aW5nIGZvciBoYXJkd2FyZSByZXNvdXJjZXMKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02MzUsNiArNjM1LDcgQEAgU0VUKFdl
YkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNw
cAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1
dGVDb21tYW5kLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lv
biA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzOTgsNiArMTM5OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
cmV2aXNpb24gOTE3NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcg
Y29weSkKQEAgLTI3MDAsNiArMjcwMCw4IEBACiAgICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVO
b2RlQ29tbWFuZC5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oJywKKyAgICAgICAgICAgICdlZGl0aW5nL1JlbmRlcmVk
UG9zaXRpb24uY3BwJywKKyAgICAgICAgICAgICdlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaCcs
CiAgICAgICAgICAgICAnZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAnLAog
ICAgICAgICAgICAgJ2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCcsCiAgICAg
ICAgICAgICAnZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAnLApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8JKHJldmlzaW9uIDkxNzY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTU5Nyw2ICs1OTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBlZGl0
aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5jcHAgXAorICAgIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAgXAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5j
cHAgXApAQCAtMTU4Miw2ICsxNTgzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZWRpdGluZy9SZW1v
dmVGb3JtYXRDb21tYW5kLmggXAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaCBcCiAg
ICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIFwKKyAgICBl
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaCBcCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5oIFwKICAgICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggXAog
ICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTE3NjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTE2MTgsNiArNTE2MTgsNjIgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcUmVuZGVy
ZWRQb3NpdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gOTE3NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMyNTIsNiArMzI1Miw4IEBACiAJCTk4Q0U0
MzI2MTI5RTAwQkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4Q0U0MzI1MTI5RTAwQkQwMDU4MjFEQyAvKiBM
aW5rTG9hZGVyLmNwcCAqLzsgfTsKIAkJOThDRTQzMkExMjlFMDBFNTAwNTgyMURDIC8qIExpbmtM
b2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4
Q0U0MzI5MTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggKi87IH07CiAJCTk4RUIxRjk1
MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5v
dEltcGxlbWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOUIzMkNEQTkxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMzJDREE3MTNE
RjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi87IH07CisJCTlCMzJDREFBMTNE
RjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLzsgfTsKIAkJOUI0MTcwNjQxMjU2NjJCMzAwNkIyOEZDIC8q
IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI0MTcwNjIxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tF
bGVtZW50Q29tbWFuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTlCNDE3MDY1MTI1NjYyQjMwMDZCMjhGQyAvKiBBcHBseUJsb2NrRWxlbWVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI0MTcwNjMxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAg
Ki87IH07CiAJCTlCNkM0MTUzMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjZDNDE1
MjEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05ODIxLDYgKzk4MjMsOCBAQAog
CQk5OENFNDMyNTEyOUUwMEJEMDA1ODIxREMgLyogTGlua0xvYWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5rTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua0xvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1wbGVt
ZW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90SW1wbGVtZW50ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEz
IC8qIFJlbmRlcmVkUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyZWRQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjMyQ0RB
ODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJlZFBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUI0MTcwNjIxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tF
bGVtZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBseUJs
b2NrRWxlbWVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0MTcw
NjMxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjZDNDE1MjEzNDQ5NDkwMDAwODVC
NjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHJpbmdXaXRoRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTk0MCw2ICsxNTk0NCw4IEBACiAJCQkJOTMzMDlEQjYwOTlFNjQ5MTAwNTZFNTgxIC8qIFJl
bW92ZU5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjcwOTlFNjQ5MTAwNTZFNTgxIC8qIFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURCODA5
OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCAq
LywKKwkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICov
LAorCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAq
LywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzI1OCw2ICsyMzI2NCw3IEBACiAJ
CQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCBp
biBIZWFkZXJzICovLAorCQkJCTlCMzJDREE5MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2MDQ1LDYgKzI2MDUyLDcgQEAKIAkJCQk5NzdF
MkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJOUIzMkNEQUExM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBA
QAogI2luY2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5v
ZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5jcHA+CisjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CiAjaW5jbHVkZSA8UmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bmRlcmVkUG9zaXRpb24uaCIKKworI2luY2x1ZGUgIklubGluZUJveC5oIgorI2luY2x1ZGUgIlBv
c2l0aW9uLmgiCisjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlvbihjb25zdCBQb3NpdGlv
biYgcG9zaXRpb24sIEVBZmZpbml0eSBhZmZpbml0eSkKKyAgICA6IG1fcmVuZGVyZXIoMCkKKyAg
ICAsIG1faW5saW5lQm94KDApCisgICAgLCBtX29mZnNldCgwKQoreworICAgIGlmIChwb3NpdGlv
bi5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHBvc2l0aW9uLmdldElubGluZUJveEFu
ZE9mZnNldChhZmZpbml0eSwgbV9pbmxpbmVCb3gsIG1fb2Zmc2V0KTsKKyAgICBpZiAobV9pbmxp
bmVCb3gpCisgICAgICAgIG1fcmVuZGVyZXIgPSBtX2lubGluZUJveC0+cmVuZGVyZXIoKTsKK30K
KworUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVyZWRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQorICAgIDogbV9yZW5kZXJlcigwKQorICAgICwgbV9pbmxpbmVCb3goMCkK
KyAgICAsIG1fb2Zmc2V0KDApCit7CisgICAgaWYgKHBvc2l0aW9uLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm47CisgICAgcG9zaXRpb24uZ2V0SW5saW5lQm94QW5kT2Zmc2V0KG1faW5saW5lQm94
LCBtX29mZnNldCk7CisgICAgaWYgKG1faW5saW5lQm94KQorICAgICAgICBtX3JlbmRlcmVyID0g
bV9pbmxpbmVCb3gtPnJlbmRlcmVyKCk7Cit9CisKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBSZW5kZXJlZFBvc2l0aW9uX2gKKyNkZWZpbmUgUmVuZGVyZWRQb3NpdGlvbl9oCisK
KyNpbmNsdWRlICJJbmxpbmVCb3guaCIKKyNpbmNsdWRlICJUZXh0QWZmaW5pdHkuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQb3NpdGlvbjsKK2NsYXNzIFJlbmRlck9iamVjdDsK
K2NsYXNzIFZpc2libGVQb3NpdGlvbjsKKworY2xhc3MgUmVuZGVyZWRQb3NpdGlvbiB7CitwdWJs
aWM6CisgICAgUmVuZGVyZWRQb3NpdGlvbigpOworICAgIGV4cGxpY2l0IFJlbmRlcmVkUG9zaXRp
b24oY29uc3QgUG9zaXRpb24mLCBFQWZmaW5pdHkpOworICAgIGV4cGxpY2l0IFJlbmRlcmVkUG9z
aXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBib29sIGlzTnVsbCgpIHsgcmV0
dXJuICFtX3JlbmRlcmVyOyB9CisgICAgUm9vdElubGluZUJveCogcm9vdEJveCgpIHsgcmV0dXJu
IG1faW5saW5lQm94ID8gbV9pbmxpbmVCb3gtPnJvb3QoKSA6IDA7IH0KKworcHJpdmF0ZToKKyAg
ICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CisgICAgSW5saW5lQm94KiBtX2lubGluZUJveDsK
KyAgICBpbnQgbV9vZmZzZXQ7Cit9OworCitpbmxpbmUgUmVuZGVyZWRQb3NpdGlvbjo6UmVuZGVy
ZWRQb3NpdGlvbigpCisgICAgOiBtX3JlbmRlcmVyKDApCisgICAgLCBtX2lubGluZUJveCgwKQor
ICAgICwgbV9vZmZzZXQoMCkKK3sKK30KKworfTsKKworI2VuZGlmIC8vIFJlbmRlcmVkUG9zaXRp
b25faApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCShyZXZp
c2lvbiA5MTc2NykKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5o
IgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisj
aW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJUZXh0Qm91bmRhcmllcy5oIgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCkBAIC0z
MjMsMjIgKzMyNCw5IEBAIGJvb2wgaXNTdGFydE9mV29yZChjb25zdCBWaXNpYmxlUG9zaXRpb24K
IAogLy8gLS0tLS0tLS0tCiAKLXN0YXRpYyBSb290SW5saW5lQm94ICpyb290Qm94Rm9yTGluZShj
b25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCitzdGF0aWMgaW5saW5lIFJvb3RJbmxpbmVCb3gqIHJv
b3RCb3hGb3JMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQogewot
ICAgIFBvc2l0aW9uIHAgPSBjLmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgTm9kZSogbm9kZSA9IHAu
ZGVwcmVjYXRlZE5vZGUoKTsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiAwOwotCi0g
ICAgUmVuZGVyT2JqZWN0ICpyZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFy
ZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBJbmxpbmVCb3gqIGJveDsKLSAgICBp
bnQgb2Zmc2V0OwotICAgIGMuZ2V0SW5saW5lQm94QW5kT2Zmc2V0KGJveCwgb2Zmc2V0KTsKLSAg
ICAKLSAgICByZXR1cm4gYm94ID8gYm94LT5yb290KCkgOiAwOworICAgIHJldHVybiBSZW5kZXJl
ZFBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbikucm9vdEJveCgpOwogfQogCiBzdGF0aWMgVmlzaWJs
ZVBvc2l0aW9uIHBvc2l0aW9uQXZvaWRpbmdGaXJzdFBvc2l0aW9uSW5UYWJsZShjb25zdCBWaXNp
YmxlUG9zaXRpb24mIGMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102535</attachid>
            <date>2011-08-01 10:46:31 -0700</date>
            <delta_ts>2011-08-03 09:27:50 -0700</delta_ts>
            <desc>Removed unnecessary constructor</desc>
            <filename>bug-65221-20110801104630.patch</filename>
            <type>text/plain</type>
            <size>18477</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTMxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDgtMDEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFJlbmRlcmVkUG9zaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjIxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBz
a2VsZXRvbiBmb3IgUmVuZGVyZWRQb3NpdGlvbiBhbmQgdXNlIGl0IGluIHJvb3RCb3hGb3JMaW5l
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OlJlbmRlcmVkUG9zaXRpb24p
OgorICAgICAgICAqIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmlzTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJlZFBvc2l0aW9uOjpyb290Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9z
aXRpb246OlJlbmRlcmVkUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFydFBvc2l0aW9uRm9yTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjplbmRQb3NpdGlvbkZvckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6bG9naWNh
bFN0YXJ0UG9zaXRpb25Gb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmxvZ2ljYWxFbmRQb3Np
dGlvbkZvckxpbmUpOgorCiAyMDExLTA4LTAxICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIE9wZW5HTFNoaW1zIGRvZXMgbm90IGJ1aWxkIG9u
IEFSTQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDkyMTMxKQorKysgU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYzNSw2ICs2MzUsNyBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0J
KHJldmlzaW9uIDkyMTMxKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
d29ya2luZyBjb3B5KQpAQCAtMTM5OCw2ICsxMzk4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kLmggXAorCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA5MjEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMjQ3OSw2ICsyNDc5LDggQEAKICAgICAgICAgICAgICdlZGl0aW5n
L1JlbW92ZU5vZGVDb21tYW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgnLAorICAgICAgICAgICAgJ2VkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5jcHAnLAorICAgICAgICAgICAgJ2VkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
LmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
JywKICAgICAgICAgICAgICdlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCcsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTIxMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNTk4LDYgKzU5OCw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvUmVtb3Zl
Tm9kZUNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcCBcCisgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcCBcCiAgICAg
ZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVD
b21tYW5kLmNwcCBcCkBAIC0xNTg2LDYgKzE1ODcsNyBAQCBIRUFERVJTICs9IFwKICAgICBlZGl0
aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaCBcCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFu
ZC5oIFwKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgg
XAorICAgIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oIFwKICAgICBlZGl0aW5nL1JlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmggXAogICAgIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaCBcCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA5
MjEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC01MTYyMiw2ICs1MTYyMiw2MiBAQAogCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGlu
Z1xSZW5kZXJlZFBvc2l0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdc
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA5MjEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzI1Miw2ICszMjUyLDggQEAK
IAkJOThDRTQzMjYxMjlFMDBCRDAwNTgyMURDIC8qIExpbmtMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThDRTQzMjUxMjlFMDBCRDAwNTgy
MURDIC8qIExpbmtMb2FkZXIuY3BwICovOyB9OwogCQk5OENFNDMyQTEyOUUwMEU1MDA1ODIxREMg
LyogTGlua0xvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAqLzsgfTsKIAkJ
OThFQjFGOTUxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OEVCMUY5NDEzMTNGRTA1MDBEMEUx
RUEgLyogTm90SW1wbGVtZW50ZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5QjMyQ0RBOTEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3Np
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIz
MkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCAqLzsgfTsKKwkJOUIz
MkNEQUExM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTgxM0RGN0ZBOTAwRjM0
RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovOyB9OwogCQk5QjQxNzA2NDEyNTY2MkIzMDA2
QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjQxNzA2MjEyNTY2MkIzMDA2QjI4RkMgLyogQXBw
bHlCbG9ja0VsZW1lbnRDb21tYW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOUI0MTcwNjUxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tF
bGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QjQxNzA2MzEyNTY2MkIzMDA2QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21t
YW5kLmNwcCAqLzsgfTsKIAkJOUI2QzQxNTMxMzQ0OTQ5MDAwMDg1QjYyIC8qIFN0cmluZ1dpdGhE
aXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk4MjUsNiArOTgy
Nyw4IEBACiAJCTk4Q0U0MzI1MTI5RTAwQkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtMb2FkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OENFNDMyOTEyOUUwMEU1MDA1ODIxREMgLyogTGlua0xv
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rTG9hZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBO
b3RJbXBsZW1lbnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RJbXBs
ZW1lbnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjMyQ0RBNzEzREY3RkE5
MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJlZFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcmVkUG9zaXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQxNzA2MjEyNTY2MkIzMDA2QjI4RkMgLyogQXBw
bHlCbG9ja0VsZW1lbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjQxNzA2MzEyNTY2MkIzMDA2QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGx5QmxvY2tFbGVtZW50
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNkM0MTUyMTM0NDk0
OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0cmluZ1dpdGhEaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE1OTQ4LDYgKzE1OTUyLDggQEAKIAkJCQk5MzMwOURCNjA5OUU2NDkxMDA1NkU1
ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCNzA5OUU2NDkxMDA1NkU1
ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwICovLAogCQkJCTkz
MzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5oICovLAorCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0
aW9uLmggKi8sCisJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRp
b24uY3BwICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJl
cGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTIyNTg4LDYgKzIyNTk0
LDcgQEAKIAkJCQlCQ0VBNDg2ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTg3MURGRTQwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlcldpZGdldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM3OTlFRjkwQkYyNzQzNjAwRDBGMjMwIC8qIFJlbmRlcldv
cmRCcmVhay5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUIzMkNEQTkxM0RGN0ZBOTAwRjM0RDEzIC8q
IFJlbmRlcmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OUNDQzUzMEY0NEU5ODEw
MEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTMzMDlFMEEwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0REMDEyNTFGMTJEMDAzRUYyNjkgLyogUmVzZXRJbnB1
dFR5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1MTAsNiArMjU1MTcsNyBAQAogCQkJCUJDRUE0
ODY3MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4NzFERkU1MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM3OTlFRjgwQkYyNzQzNjAwRDBGMjMwIC8qIFJlbmRlcldvcmRCcmVhay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5QjMyQ0RBQTEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQ
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODlDQ0M1MjBGNDRFOTgxMDBCNURBMTAg
LyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMz
MDlFMDkwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY1NUIzRENGMTI1MUYxMkQwMDNFRjI2OSAvKiBSZXNldElucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDkyMTMxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0aW5nQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAj
aW5jbHVkZSA8UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmNwcD4KKyNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNl
Tm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVy
ZWRQb3NpdGlvbi5oIgorCisjaW5jbHVkZSAiSW5saW5lQm94LmgiCisjaW5jbHVkZSAiUG9zaXRp
b24uaCIKKyNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitSZW5kZXJlZFBvc2l0aW9uOjpSZW5kZXJlZFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCisgICAgOiBtX3JlbmRlcmVyKDApCisgICAgLCBtX2lubGluZUJveCgw
KQorICAgICwgbV9vZmZzZXQoMCkKK3sKKyAgICBpZiAocG9zaXRpb24uaXNOdWxsKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBwb3NpdGlvbi5nZXRJbmxpbmVCb3hBbmRPZmZzZXQobV9pbmxpbmVC
b3gsIG1fb2Zmc2V0KTsKKyAgICBpZiAobV9pbmxpbmVCb3gpCisgICAgICAgIG1fcmVuZGVyZXIg
PSBtX2lubGluZUJveC0+cmVuZGVyZXIoKTsKK30KKworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFJlbmRlcmVkUG9zaXRpb25faAorI2RlZmluZSBSZW5kZXJlZFBvc2l0aW9uX2gK
KworI2luY2x1ZGUgIklubGluZUJveC5oIgorI2luY2x1ZGUgIlRleHRBZmZpbml0eS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBvc2l0aW9uOworY2xhc3MgUmVuZGVyT2JqZWN0
OworY2xhc3MgVmlzaWJsZVBvc2l0aW9uOworCitjbGFzcyBSZW5kZXJlZFBvc2l0aW9uIHsKK3B1
YmxpYzoKKyAgICBSZW5kZXJlZFBvc2l0aW9uKCk7CisgICAgZXhwbGljaXQgUmVuZGVyZWRQb3Np
dGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIGJvb2wgaXNOdWxsKCkgeyByZXR1
cm4gIW1fcmVuZGVyZXI7IH0KKyAgICBSb290SW5saW5lQm94KiByb290Qm94KCkgeyByZXR1cm4g
bV9pbmxpbmVCb3ggPyBtX2lubGluZUJveC0+cm9vdCgpIDogMDsgfQorCitwcml2YXRlOgorICAg
IFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKKyAgICBJbmxpbmVCb3gqIG1faW5saW5lQm94Owor
ICAgIGludCBtX29mZnNldDsKK307CisKK2lubGluZSBSZW5kZXJlZFBvc2l0aW9uOjpSZW5kZXJl
ZFBvc2l0aW9uKCkKKyAgICA6IG1fcmVuZGVyZXIoMCkKKyAgICAsIG1faW5saW5lQm94KDApCisg
ICAgLCBtX29mZnNldCgwKQoreworfQorCit9OworCisjZW5kaWYgLy8gUmVuZGVyZWRQb3NpdGlv
bl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlz
aW9uIDkyMTMxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
CiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNp
bmNsdWRlICJSZW5kZXJlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlRleHRCb3VuZGFyaWVzLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKQEAgLTMy
MywyNCArMzI0LDYgQEAgYm9vbCBpc1N0YXJ0T2ZXb3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbgog
CiAvLyAtLS0tLS0tLS0KIAotc3RhdGljIFJvb3RJbmxpbmVCb3ggKnJvb3RCb3hGb3JMaW5lKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmYykKLXsKLSAgICBQb3NpdGlvbiBwID0gYy5kZWVwRXF1aXZh
bGVudCgpOwotICAgIE5vZGUqIG5vZGUgPSBwLmRlcHJlY2F0ZWROb2RlKCk7Ci0gICAgaWYgKCFu
b2RlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIFJlbmRlck9iamVjdCAqcmVuZGVyZXIgPSBu
b2RlLT5yZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyZXIpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgSW5saW5lQm94KiBib3g7Ci0gICAgaW50IG9mZnNldDsKLSAgICBjLmdldElubGluZUJv
eEFuZE9mZnNldChib3gsIG9mZnNldCk7Ci0gICAgCi0gICAgcmV0dXJuIGJveCA/IGJveC0+cm9v
dCgpIDogMDsKLX0KLQogc3RhdGljIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkF2b2lkaW5nRmly
c3RQb3NpdGlvbkluVGFibGUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQogewogICAgIC8vIHJl
dHVybiB0YWJsZSBvZmZzZXQgMCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBWaXNpYmxlUG9zaXRpb24g
aW5zaWRlIHRoZSB0YWJsZQpAQCAtMzU2LDcgKzMzOSw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRp
b24gc3RhcnRQb3NpdGlvbkZvckwKICAgICBpZiAoYy5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IFZpc2libGVQb3NpdGlvbigpOwogCi0gICAgUm9vdElubGluZUJveCAqcm9vdEJveCA9IHJvb3RC
b3hGb3JMaW5lKGMpOworICAgIFJvb3RJbmxpbmVCb3gqIHJvb3RCb3ggPSBSZW5kZXJlZFBvc2l0
aW9uKGMpLnJvb3RCb3goKTsKICAgICBpZiAoIXJvb3RCb3gpIHsKICAgICAgICAgLy8gVGhlcmUg
YXJlIFZpc2libGVQb3NpdGlvbnMgYXQgb2Zmc2V0IDAgaW4gYmxvY2tzIHdpdGhvdXQKICAgICAg
ICAgLy8gUm9vdElubGluZUJveGVzLCBsaWtlIGVtcHR5IGVkaXRhYmxlIGJsb2NrcyBhbmQgYm9y
ZGVyZWQgYmxvY2tzLgpAQCAtNDA0LDcgKzM4Nyw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24g
ZW5kUG9zaXRpb25Gb3JMaW4KICAgICBpZiAoYy5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFZp
c2libGVQb3NpdGlvbigpOwogCi0gICAgUm9vdElubGluZUJveCAqcm9vdEJveCA9IHJvb3RCb3hG
b3JMaW5lKGMpOworICAgIFJvb3RJbmxpbmVCb3gqIHJvb3RCb3ggPSBSZW5kZXJlZFBvc2l0aW9u
KGMpLnJvb3RCb3goKTsKICAgICBpZiAoIXJvb3RCb3gpIHsKICAgICAgICAgLy8gVGhlcmUgYXJl
IFZpc2libGVQb3NpdGlvbnMgYXQgb2Zmc2V0IDAgaW4gYmxvY2tzIHdpdGhvdXQKICAgICAgICAg
Ly8gUm9vdElubGluZUJveGVzLCBsaWtlIGVtcHR5IGVkaXRhYmxlIGJsb2NrcyBhbmQgYm9yZGVy
ZWQgYmxvY2tzLgpAQCAtMTA2Myw3ICsxMDQ2LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBs
b2dpY2FsU3RhcnRQb3NpdAogICAgIGlmIChjLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVmlz
aWJsZVBvc2l0aW9uKCk7CiAKLSAgICBSb290SW5saW5lQm94KiByb290Qm94ID0gcm9vdEJveEZv
ckxpbmUoYyk7CisgICAgUm9vdElubGluZUJveCogcm9vdEJveCA9IFJlbmRlcmVkUG9zaXRpb24o
Yykucm9vdEJveCgpOwogICAgIGlmICghcm9vdEJveCkgewogICAgICAgICAvLyBUaGVyZSBhcmUg
VmlzaWJsZVBvc2l0aW9ucyBhdCBvZmZzZXQgMCBpbiBibG9ja3Mgd2l0aG91dAogICAgICAgICAv
LyBSb290SW5saW5lQm94ZXMsIGxpa2UgZW1wdHkgZWRpdGFibGUgYmxvY2tzIGFuZCBib3JkZXJl
ZCBibG9ja3MuCkBAIC0xMTAzLDcgKzEwODYsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGxv
Z2ljYWxFbmRQb3NpdGlvCiAgICAgaWYgKGMuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBWaXNp
YmxlUG9zaXRpb24oKTsKIAotICAgIFJvb3RJbmxpbmVCb3gqIHJvb3RCb3ggPSByb290Qm94Rm9y
TGluZShjKTsKKyAgICBSb290SW5saW5lQm94KiByb290Qm94ID0gUmVuZGVyZWRQb3NpdGlvbihj
KS5yb290Qm94KCk7CiAgICAgaWYgKCFyb290Qm94KSB7CiAgICAgICAgIC8vIFRoZXJlIGFyZSBW
aXNpYmxlUG9zaXRpb25zIGF0IG9mZnNldCAwIGluIGJsb2NrcyB3aXRob3V0CiAgICAgICAgIC8v
IFJvb3RJbmxpbmVCb3hlcywgbGlrZSBlbXB0eSBlZGl0YWJsZSBibG9ja3MgYW5kIGJvcmRlcmVk
IGJsb2Nrcy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>