<?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>47022</bug_id>
          
          <creation_ts>2010-10-01 15:20:11 -0700</creation_ts>
          <short_desc>Add proxy server query function proxyServersForURL and change the Mac plug-in code to use it</short_desc>
          <delta_ts>2010-11-18 11:09:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34539</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>ademar</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288516</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-01 15:20:11 -0700</bug_when>
    <thetext>Add proxy server query function proxyServersForURL annd change the Mafc plug-in code to use it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288517</commentid>
    <comment_count>1</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-01 15:22:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/8504712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288520</commentid>
    <comment_count>2</comment_count>
      <attachid>69527</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-01 15:24:55 -0700</bug_when>
    <thetext>Created attachment 69527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288521</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-01 15:26:06 -0700</bug_when>
    <thetext>Attachment 69527 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/network/ProxyServer.cpp:65:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288526</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-01 15:36:51 -0700</bug_when>
    <thetext>Attachment 69527 did not build on mac:
Build output: http://queues.webkit.org/results/4249001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288528</commentid>
    <comment_count>5</comment_count>
      <attachid>69527</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-01 15:42:22 -0700</bug_when>
    <thetext>Comment on attachment 69527
Patch

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

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:16513
&gt; -			name = cf;
&gt; +			path = cf;

Weird.

&gt; WebCore/platform/network/ProxyServer.cpp:55
&gt; +    builder.append(&apos; &apos;);

Is the trailing space is required by &lt;http://web.archive.org/web/20060424005037/wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html&gt;?

&gt; WebCore/platform/network/ProxyServer.cpp:65
&gt; +        if (i != 0)

No “!= 0” needed

&gt; WebCore/platform/network/cf/ProxyServerCFNet.cpp:34
&gt; +#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD)

Can you put the special-case code after the normal case code?

&gt; WebKit/ChangeLog:10
&gt; +2010-10-01  Anders Carlsson  &lt;andersca@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Add proxy server query function proxyServersForURL and change the Mac plug-in code to use it
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=47022
&gt; +        &lt;rdar://problem/8504712&gt;
&gt; +
&gt; +        * WebKit.xcodeproj/project.pbxproj:
&gt; +

Please don’t check this in.

&gt; WebKit/WebKit.xcodeproj/project.pbxproj:1677
&gt; +			developmentRegion = English;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288564</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-01 16:24:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 69527 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69527&amp;action=review
&gt; 
&gt; &gt; WebCore/WebCore.xcodeproj/project.pbxproj:16513
&gt; &gt; -			name = cf;
&gt; &gt; +			path = cf;
&gt; 
&gt; Weird.

I changed the &quot;cf&quot; group to actually point to &quot;cf&quot;.

&gt; 
&gt; &gt; WebCore/platform/network/ProxyServer.cpp:55
&gt; &gt; +    builder.append(&apos; &apos;);
&gt; 
&gt; Is the trailing space is required by &lt;http://web.archive.org/web/20060424005037/wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html&gt;?

No, it&apos;s supposed to be a &apos;:&apos; and it&apos;s supposed to go before the port number. Fixed.

&gt; 
&gt; &gt; WebCore/platform/network/ProxyServer.cpp:65
&gt; &gt; +        if (i != 0)
&gt; 
&gt; No “!= 0” needed
&gt; 

Fixed.

&gt; &gt; WebCore/platform/network/cf/ProxyServerCFNet.cpp:34
&gt; &gt; +#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD)
&gt; 
&gt; Can you put the special-case code after the normal case code?
&gt;

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288569</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-01 16:28:53 -0700</bug_when>
    <thetext>Committed r68951: &lt;http://trac.webkit.org/changeset/68951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307129</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-09 19:56:15 -0800</bug_when>
    <thetext>Do we really need entirely separate code for proxies in SocketStreamHandleCFNet.cpp and here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310978</commentid>
    <comment_count>9</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-11-18 11:09:44 -0800</bug_when>
    <thetext>Revision r68951 cherry-picked into qtwebkit-2.1 with commit 39e824c &lt;http://gitorious.org/webkit/qtwebkit/commit/39e824c&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69527</attachid>
            <date>2010-10-01 15:24:55 -0700</date>
            <delta_ts>2010-10-01 15:42:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47022-20101001152454.patch</filename>
            <type>text/plain</type>
            <size>31285</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWE5ZjA5Nzg4MDQ4NGQwMDE2MzIzOTE2NjNiOGFmMDgzMTUzYjMzNi4uMGM5ZmFmNTNiODdiYmU0
NWRkYmEzOTcwMmRkZTRhMjg0YjM0MWYxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMC0wMSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcm94eSBzZXJ2ZXIgcXVlcnkgZnVuY3Rp
b24gcHJveHlTZXJ2ZXJzRm9yVVJMIGFuZCBjaGFuZ2UgdGhlIE1hYyBwbHVnLWluIGNvZGUgdG8g
dXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NzAyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUwNDcxMj4KKworICAgICAgICAqIFdlYkNv
cmUuZXhwLmluOgorICAgICAgICBFeHBvcnQgcHJveHlTZXJ2ZXJzRm9yVVJMIGFuZCB0b1N0cmlu
Zy4KKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxl
cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFByb3h5U2VydmVyU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvU3RyaW5nKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uIHRoYXQgY29udmVydHMgYSB2
ZWN0b3Igb2YgUHJveHlTZXJ2ZXJzIGludG8gYSBQQUMgc3R5bGUgc3RyaW5nLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlByb3h5U2VydmVyOjpQcm94eVNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpQcm94eVNl
cnZlcjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQcm94eVNlcnZlcjo6aG9zdE5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJveHlTZXJ2ZXI6OnBvcnQpOgorICAgICAgICBBZGQgUHJveHlT
ZXJ2ZXIgY2xhc3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVy
Q0ZOZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnByb3h5U2VydmVyc0ZvclVSTCk6
CisgICAgICAgIChXZWJDb3JlOjphZGRQcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICBRdWVy
eSBDRk5ldHdvcmsgZm9yIHRoZSBwcm94eSBzZXJ2ZXJzIGdpdmVuIGEgVVJMLgorCiAyMDEwLTEw
LTAxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDA3ODQ4MDNjNjQ3NjQwNjhkZjg2NGZiNmJiNDhm
ZTU4OWM2NGE3NC4uYTA0NTExMWViYWMzNTdlODIzNzRhZjRmOTNlZTRjMTkzMzQxNjE5ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC00MTQsNiArNDE0LDcgQEAgX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVQ
S2NSaQogX19aTjdXZWJDb3JlMThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVD
bGllbnRFCiBfX1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBv
c2l0aW9uRQogX19aTjdXZWJDb3JlMThwbHVnaW5TY3JpcHRPYmplY3RFUE4zSlNDOUV4ZWNTdGF0
ZUVQTlNfMTNKU0hUTUxFbGVtZW50RQorX19aTjdXZWJDb3JlMThwcm94eVNlcnZlcnNGb3JVUkxF
UktOU180S1VSTEUKIF9fWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5p
bWF0aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVy
MTdzdXNwZW5kQW5pbWF0aW9uc0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMTlBbmltYXRp
b25Db250cm9sbGVyMjBwYXVzZUFuaW1hdGlvbkF0VGltZUVQTlNfMTJSZW5kZXJPYmplY3RFUktO
M1dURjZTdHJpbmdFZApAQCAtNzU5LDYgKzc2MCw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczQw
c2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckVOU18zN1RleHREaXJlY3Rp
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MXNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0
aW9uUXVpcmtzRWIKIF9fWk43V2ViQ29yZThibGFua1VSTEV2CiBfX1pON1dlYkNvcmU4bWFrZVJH
QkFFaWlpaQorX19aTjdXZWJDb3JlOHRvU3RyaW5nRVJLTjNXVEY2VmVjdG9ySU5TXzExUHJveHlT
ZXJ2ZXJFTG0wRUVFCiBfX1pON1dlYkNvcmU5RE9NV2luZG93MzBkaXNwYXRjaEFsbFBlbmRpbmdV
bmxvYWRFdmVudHNFdgogX19aTjdXZWJDb3JlOURPTVdpbmRvdzM2ZGlzcGF0Y2hBbGxQZW5kaW5n
QmVmb3JlVW5sb2FkRXZlbnRzRXYKIF9fWk43V2ViQ29yZTlGbG9hdFJlY3RDMUVSSzdfTlNSZWN0
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAyYzhkOWI0MWQyYjEyYzE3
ZjEzODdkOGY5M2Q2MTM1NjI1NjEyNmFmLi4xMDFlMTgyZTg2NjYwNWFhMGFkNTU0NjRjZjEzZDE4
YTBkZTU3ZjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3Mzg0
LDYgKzI3Mzg0LDE0IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFByb3h5U2VydmVyLmNwcCINCisJCQkJ
CT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxuZXR3b3JrXFByb3h5U2VydmVyLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJ
PEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xSZXNvdXJjZUVy
cm9yQmFzZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC0yNzYwMyw2ICsyNzYxMSwy
NiBAQAogCQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0KIAkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXG5ldHdvcmtcY2ZcUHJveHlTZXJ2ZXJDRk5ldC5jcHAiDQorCQkJ
CQkJPg0KKwkJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b3xXaW4zMiINCisJCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJCT4NCisJ
CQkJCQkJPFRvb2wNCisJCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJCS8+
DQorCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQkJCT4NCisJCQkJCQkJPFRvb2wNCisJCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkJCS8+DQorCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTwvRmlsZT4NCisJCQkJCTxGaWxlDQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxuZXR3b3JrXGNmXFJlc291cmNlRXJyb3IuaCINCiAJCQkJCQk+DQogCQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5MDAwNzI2ODg0NzE5MTJhNGIzZDdlYTViYWU2YmI4ZjhlZmMzZWUzLi4zM2FiMDViZDY2
MDJiNGE0Y2RkZWFlODAyNDQ2MGE0MWZlYTc3MDc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk0LDYgKzU5NCw5IEBACiAJCTFBRTgyRkVDMENBQjA3
RUUwMDIyMzdBRSAvKiBKU1NRTFJlc3VsdFNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU4MkZFQTBDQUIwN0VFMDAyMjM3QUUgLyogSlNTUUxS
ZXN1bHRTZXQuY3BwICovOyB9OwogCQkxQUU4MkZFRDBDQUIwN0VFMDAyMjM3QUUgLyogSlNTUUxS
ZXN1bHRTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBRTgyRkVCMENBQjA3RUUwMDIyMzdBRSAvKiBKU1NRTFJlc3VsdFNldC5oICovOyB9OwogCQkx
QUYzMjY3OTBENzhCOTQ0MDA2OEYwQzQgLyogRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUYzMjY3NzBENzhCOTQ0MDA2OEYwQzQg
LyogRWRpdG9yQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMUFGOEUxMUExMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY4RTExOTEyNTY1
OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkxQUY4RTEzMzEyNTY1QTQ0MDAyMzBGRjcgLyogUHJveHlT
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFGOEUxMzIxMjU2NUE0NDAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmNwcCAqLzsgfTsKKwkJMUFG
OEUxQzMxMjU2NzNFMDAwMjMwRkY3IC8qIFByb3h5U2VydmVyQ0ZOZXQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGOEUxQzExMjU2NzNFMDAwMjMw
RkY3IC8qIFByb3h5U2VydmVyQ0ZOZXQuY3BwICovOyB9OwogCQkxQUZFMTE3RDBDQkZGQjM2MDAz
MDE3RkEgLyogU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE3QjBDQkZGQjM2MDAzMDE3RkEgLyogU1FMUmVz
dWx0U2V0Um93TGlzdC5jcHAgKi87IH07CiAJCTFBRkUxMTdFMENCRkZCMzYwMDMwMTdGQSAvKiBT
UUxSZXN1bHRTZXRSb3dMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQUZFMTE3QzBDQkZGQjM2MDAzMDE3RkEgLyogU1FMUmVzdWx0U2V0Um93TGlz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFB
RkUxMTk5MENCRkZDQzQwMDMwMTdGQSAvKiBKU1NRTFJlc3VsdFNldFJvd0xpc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRTExOTcwQ0JGRkND
NDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgKi87IH07CkBAIC02NTgxLDYg
KzY1ODQsOSBAQAogCQkxQUU4MkZFQTBDQUIwN0VFMDAyMjM3QUUgLyogSlNTUUxSZXN1bHRTZXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTUUxSZXN1bHRTZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUU4MkZFQjBDQUIwN0VFMDAyMjM3
QUUgLyogSlNTUUxSZXN1bHRTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTUUxSZXN1bHRTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGMzI2Nzcw
RDc4Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUFGOEUxMTkxMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5U2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFBRjhFMTMyMTI1NjVBNDQwMDIzMEZGNyAvKiBQcm94eVNlcnZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm94eVNlcnZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNl
cnZlckNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3h5
U2VydmVyQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZFMTE3QjBD
QkZGQjM2MDAzMDE3RkEgLyogU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGRTExN0MwQ0JGRkIzNjAwMzAxN0ZBIC8qIFNRTFJlc3Vs
dFNldFJvd0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMUmVzdWx0
U2V0Um93TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZFMTE4QzBDQkZG
QzRFMDAzMDE3RkEgLyogU1FMUmVzdWx0U2V0Um93TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU1FMUmVzdWx0U2V0Um93TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03Mjg1LDkgKzcyOTEsOSBAQAogCQk1MUE5MjY3QTBENTNGMDU3MDA2M0VDQzIgLyogT3Jp
Z2luVXNhZ2VSZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
T3JpZ2luVXNhZ2VSZWNvcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE5
MjY3QjBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VSZWNvcmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gT3JpZ2luVXNhZ2VSZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBQTNGNkUwQkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVy
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VM
b2FkZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxQUJBRTFBMTAzQzE4
RkYwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTb2NrZXRTdHJlYW1FcnJvci5oOyBwYXRoID0gY2YvU29ja2V0U3RyZWFtRXJy
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1
MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBTb2NrZXRTdHJlYW1IYW5kbGUuaDsgcGF0aCA9IGNmL1NvY2tldFN0cmVhbUhhbmRsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAg
LyogU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwOyBwYXRoID0gY2YvU29ja2V0
U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUFC
QUUxQTEwM0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhh
bmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTb2NrZXRTdHJlYW1IYW5k
bGUuaDsgcGF0aCA9IC4uL3F0L1NvY2tldFN0cmVhbUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU29ja2V0
U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFC
QUU0MjEwNDNBQjRBMDA4QzUyNjAgLyogV2ViU29ja2V0SGFuZHNoYWtlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldEhhbmRzaGFrZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUJBRTQzMTA0M0FCNEEwMDhDNTI2MCAvKiBXZWJT
b2NrZXRIYW5kc2hha2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU29j
a2V0SGFuZHNoYWtlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjI0MTdBMEQ5
MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjA1LDcgKzEwMjExLDcgQEAKIAkJQjJFQkRDOUIwQUY3
N0UzNDAwQUU0QTY4IC8qIFNWR1JlbmRlclRyZWVBc1RleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR1JlbmRlclRyZWVBc1RleHQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjJFRDk3NzAwQjFGNTVDRTAwMjU3RDBGIC8qIEdyYXBoaWNzQ29udGV4dENH
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRl
eHRDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyRjM0RkU1MEU4MkY4MTQw
MEY2MjdDRCAvKiBETlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE5TLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyRjM0RkU4MEU4MkY4MjcwMEY2MjdDRCAv
KiBETlNDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBETlND
Rk5ldC5jcHA7IHBhdGggPSBjZi9ETlNDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUIyRjM0RkU4MEU4MkY4MjcwMEY2MjdDRCAvKiBETlNDRk5ldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBETlNDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyRkEzQzRFMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVD
b2xvckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIyRkEzQzRGMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkZBM0M1MDBBQjc1QTZFMDAwRTVB
QzQgLyogSlNTVkdBbmltYXRlZEFuZ2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1NWR0FuaW1hdGVkQW5nbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTI4MzgsNiArMTI4NDQsOCBAQAogCQkJCTFBN0ZBNjE4MEREQTNCM0EwMDI4RjhB
NSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5oICovLAogCQkJCTUxNEM3NjVGMENFOTIzQTEwMDdF
RjNDRCAvKiBQcm90ZWN0aW9uU3BhY2UuY3BwICovLAogCQkJCTUxNEM3NjYwMENFOTIzQTEwMDdF
RjNDRCAvKiBQcm90ZWN0aW9uU3BhY2UuaCAqLywKKwkJCQkxQUY4RTEzMjEyNTY1QTQ0MDAyMzBG
RjcgLyogUHJveHlTZXJ2ZXIuY3BwICovLAorCQkJCTFBRjhFMTE5MTI1NjU5MjYwMDIzMEZGNyAv
KiBQcm94eVNlcnZlci5oICovLAogCQkJCTUxQTA1MjU1MTA1ODg3NDAwMENDOUU5NSAvKiBQcm90
ZWN0aW9uU3BhY2VIYXNoLmggKi8sCiAJCQkJOTM0RjcxM0QwRDVBNkYyODAwMDE4RDY5IC8qIFJl
c291cmNlRXJyb3JCYXNlLmNwcCAqLywKIAkJCQk5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyog
UmVzb3VyY2VFcnJvckJhc2UuaCAqLywKQEAgLTE2NDk3LDExICsxNjUwNSwxMiBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCMkYzNEZFODBFODJGODI3MDBGNjI3
Q0QgLyogRE5TQ0ZOZXQuY3BwICovLAorCQkJCTFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQ
cm94eVNlcnZlckNGTmV0LmNwcCAqLywKIAkJCQk1MUFCQUUxQTEwM0MxOEZGMDA4QzUyNjAgLyog
U29ja2V0U3RyZWFtRXJyb3IuaCAqLywKIAkJCQk1MUFCQUUxQzEwM0MxOTEzMDA4QzUyNjAgLyog
U29ja2V0U3RyZWFtSGFuZGxlLmggKi8sCiAJCQkJNTFBQkFFMUQxMDNDMTkxMzAwOEM1MjYwIC8q
IFNvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcCAqLywKIAkJCSk7Ci0JCQluYW1lID0gY2Y7CisJ
CQlwYXRoID0gY2Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwogCQlCNTMyMEQ2
ODEyMkEyNEU5MDAyRDE0NDAgLyogY29jb2EgKi8gPSB7CkBAIC0yMDk1MSw2ICsyMDk2MCw3IEBA
CiAJCQkJMDgxMDkzREMxMjU1RjBFNzAwRUQ5RDI5IC8qIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVz
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQUY4RTExQTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjEwMTAsNiArMjEwMjAsNyBAQAogCQkJaXNhID0gUEJYUHJvamVj
dDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsK
IAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CisJCQlkZXZlbG9wbWVudFJl
Z2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3du
UmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApAQCAtMjM0NzksNiArMjM0OTAsOCBAQAogCQkJCTA4
MTA5M0RCMTI1NUYwRTcwMEVEOUQyOSAvKiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDgwRTQ5MjUxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1Rl
eHRMYXlvdXRFbmdpbmVCYXNlbGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODBFNDkyNzEy
NTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2luZVNwYWNpbmcuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUFGOEUxMzMxMjU2NUE0NDAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFBRjhFMUMzMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNlcnZl
ckNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Byb3h5U2VydmVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNl
cnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZlZTNlOWI2NDA1MDkxYWVlNjc5MDc3MmNhYzA2ZDMwOTJi
OWI1MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNl
cnZlci5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQcm94eVNlcnZlci5oIgorCisjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB2b2lkIGFwcGVuZFByb3h5U2VydmVy
U3RyaW5nKFN0cmluZ0J1aWxkZXIgJmJ1aWxkZXIsIGNvbnN0IFByb3h5U2VydmVyJiBwcm94eVNl
cnZlcikKK3sKKyAgICBzd2l0Y2ggKHByb3h5U2VydmVyLnR5cGUoKSkgeworICAgIGNhc2UgUHJv
eHlTZXJ2ZXI6OkRpcmVjdDoKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIkRJUkVDVCIpOworICAg
ICAgICByZXR1cm47CisgICAgY2FzZSBQcm94eVNlcnZlcjo6SFRUUDoKKyAgICBjYXNlIFByb3h5
U2VydmVyOjpIVFRQUzoKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIlBST1hZIik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUHJveHlTZXJ2ZXI6OlNPQ0tTOgorICAgICAgICBidWlsZGVyLmFw
cGVuZCgiU09DS1MiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIAorICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CisKKyAgICBBU1NFUlQoIXByb3h5U2VydmVyLmhvc3ROYW1lKCkuaXNOdWxs
KCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKHByb3h5U2VydmVyLmhvc3ROYW1lKCkpOworCisgICAg
QVNTRVJUKHByb3h5U2VydmVyLnBvcnQoKSAhPSAtMSk7CisgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIocHJveHlTZXJ2ZXIucG9ydCgpKSk7CisgICAgYnVpbGRlci5hcHBlbmQoJyAn
KTsKK30KKworU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5
U2VydmVycykKK3sKKyAgICBpZiAocHJveHlTZXJ2ZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuICJESVJFQ1QiOworCisgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJveHlTZXJ2ZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IGlmIChpICE9IDApCisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiOyAiKTsKKwor
ICAgICAgICBhcHBlbmRQcm94eVNlcnZlclN0cmluZyhzdHJpbmdCdWlsZGVyLCBwcm94eVNlcnZl
cnNbaV0pOworICAgIH0KKworICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7Cit9
CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Byb3h5U2VydmVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlT
ZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQwMTE0ZmJhZGQ3NGRlZDBiYTg2MDhjZjFlM2JhZjE1MmVj
NzkyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2Vy
dmVyLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJveHlTZXJ2ZXJf
aAorI2RlZmluZSBQcm94eVNlcnZlcl9oCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgS1VSTDsKKworLy8gUmVwcmVzZW50cyBhIHNpbmdsZSBwcm94eSBzZXJ2ZXIuCitjbGFzcyBQ
cm94eVNlcnZlciB7CitwdWJsaWM6CisgICAgZW51bSBUeXBlIHsKKyAgICAgICAgRGlyZWN0LAor
ICAgICAgICBIVFRQLAorICAgICAgICBIVFRQUywKKyAgICAgICAgU09DS1MsCisgICAgfTsKKwor
ICAgIFByb3h5U2VydmVyKCkKKyAgICAgICAgOiBtX3R5cGUoRGlyZWN0KQorICAgICAgICAsIG1f
cG9ydCgtMSkKKyAgICB7CisgICAgfQorCisgICAgUHJveHlTZXJ2ZXIoVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIGhvc3ROYW1lLCBpbnQgcG9ydCkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAg
ICAgICAgLCBtX2hvc3ROYW1lKGhvc3ROYW1lKQorICAgICAgICAsIG1fcG9ydChwb3J0KQorICAg
IHsKKyAgICB9CisgICAgICAgIAorICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQorICAgIGNvbnN0IFN0cmluZyYgaG9zdE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2hvc3RO
YW1lOyB9CisgICAgaW50IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX3BvcnQ7IH0KKworcHJpdmF0
ZToKKyAgICBUeXBlIG1fdHlwZTsKKyAgICBTdHJpbmcgbV9ob3N0TmFtZTsKKyAgICBpbnQgbV9w
b3J0OworfTsKKworLy8gUmV0dXJuIGEgdmVjdG9yIG9mIHByb3h5IHNlcnZlcnMgZm9yIHRoZSBn
aXZlbiBVUkwuCitWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBL
VVJMJik7CisKKy8vIENvbnZlcnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2VydmVycyB0
byBhIFBBQyBzdHJpbmcsIGFzIGRlc2NyaWJlZCBpbgorLy8gaHR0cDovL3dlYi5hcmNoaXZlLm9y
Zy93ZWIvMjAwNjA0MjQwMDUwMzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIuMC9yZWxu
b3Rlcy9kZW1vL3Byb3h5LWxpdmUuaHRtbAorU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlY3RvcjxQ
cm94eVNlcnZlcj4mKTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFByb3h5U2VydmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Q
cm94eVNlcnZlckNGTmV0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNl
cnZlckNGTmV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjU2NTI1ODQwODFhNWNhMGYwMDllNzI0YjQ5ZTVh
NmEwNDBhYTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Byb3h5U2VydmVyQ0ZOZXQuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKKworI2luY2x1ZGUgIktV
UkwuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworI2lmIGRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpIHx8IGRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKK1ZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtV
UkwmIHVybCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJldHVybiBWZWN0b3I8
UHJveHlTZXJ2ZXI+KCk7Cit9CisjZWxzZQorCitzdGF0aWMgdm9pZCBhZGRQcm94eVNlcnZlcnNG
b3JVUkwoVmVjdG9yPFByb3h5U2VydmVyPiYgcHJveHlTZXJ2ZXJzLCBjb25zdCBLVVJMJiB1cmwp
Cit7CisgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gcHJveHlTZXR0aW5ncyhBZG9wdENG
LCBDRk5ldHdvcmtDb3B5U3lzdGVtUHJveHlTZXR0aW5ncygpKTsKKyAgICBpZiAoIXByb3h5U2V0
dGluZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY2ZVUkwo
QWRvcHRDRiwgdXJsLmNyZWF0ZUNGVVJMKCkpOworICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBw
cm94aWVzRm9yVVJMKEFkb3B0Q0YsIENGTmV0d29ya0NvcHlQcm94aWVzRm9yVVJMKGNmVVJMLmdl
dCgpLCBwcm94eVNldHRpbmdzLmdldCgpKSk7CisgICAgaWYgKCFwcm94aWVzRm9yVVJMKQorICAg
ICAgICByZXR1cm47CisKKyAgICBDRkluZGV4IG51bVByb3hpZXMgPSBDRkFycmF5R2V0Q291bnQo
cHJveGllc0ZvclVSTC5nZXQoKSk7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbnVtUHJv
eGllczsgKytpKSB7CisgICAgICAgIENGRGljdGlvbmFyeVJlZiBwcm94eURpY3Rpb25hcnkgPSBz
dGF0aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgocHJveGll
c0ZvclVSTC5nZXQoKSwgaSkpOworCisgICAgICAgIFByb3h5U2VydmVyOjpUeXBlIHR5cGUgPSBQ
cm94eVNlcnZlcjo6RGlyZWN0OworICAgICAgICBDRlN0cmluZ1JlZiB0eXBlU3RyaW5nID0gc3Rh
dGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHByb3h5RGljdGlvbmFy
eSwga0NGUHJveHlUeXBlS2V5KSk7CisgICAgICAgIGlmIChDRkVxdWFsKHR5cGVTdHJpbmcsIGtD
RlByb3h5VHlwZUF1dG9Db25maWd1cmF0aW9uVVJMKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IEhhbmRsZSBQQUMgVVJMcy4KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9IAorICAg
ICAgICAKKyAgICAgICAgaWYgKENGRXF1YWwodHlwZVN0cmluZywga0NGUHJveHlUeXBlTm9uZSkp
IHsKKyAgICAgICAgICAgIHByb3h5U2VydmVycy5hcHBlbmQoUHJveHlTZXJ2ZXIoUHJveHlTZXJ2
ZXI6OkRpcmVjdCwgU3RyaW5nKCksIC0xKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKENGRXF1YWwodHlwZVN0cmluZywga0NGUHJveHlU
eXBlSFRUUCkpCisgICAgICAgICAgICB0eXBlID0gUHJveHlTZXJ2ZXI6OkhUVFA7CisgICAgICAg
IGVsc2UgaWYgKENGRXF1YWwodHlwZVN0cmluZywga0NGUHJveHlUeXBlSFRUUFMpKQorICAgICAg
ICAgICAgdHlwZSA9IFByb3h5U2VydmVyOjpIVFRQUzsKKyAgICAgICAgZWxzZSBpZiAoQ0ZFcXVh
bCh0eXBlU3RyaW5nLCBrQ0ZQcm94eVR5cGVTT0NLUykpCisgICAgICAgICAgICB0eXBlID0gUHJv
eHlTZXJ2ZXI6OlNPQ0tTOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIGRvbid0
IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzIHR5cGUuCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIENGU3RyaW5nUmVmIGhvc3QgPSBzdGF0aWNfY2FzdDxDRlN0cmlu
Z1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJveHlEaWN0aW9uYXJ5LCBrQ0ZQcm94eUhvc3RO
YW1lS2V5KSk7CisgICAgICAgIENGTnVtYmVyUmVmIHBvcnQgPSBzdGF0aWNfY2FzdDxDRk51bWJl
clJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJveHlEaWN0aW9uYXJ5LCBrQ0ZQcm94eVBvcnRO
dW1iZXJLZXkpKTsKKyAgICAgICAgU0ludDMyIHBvcnRWYWx1ZTsKKyAgICAgICAgQ0ZOdW1iZXJH
ZXRWYWx1ZShwb3J0LCBrQ0ZOdW1iZXJTSW50MzJUeXBlLCAmcG9ydFZhbHVlKTsKKworICAgICAg
ICBwcm94eVNlcnZlcnMuYXBwZW5kKFByb3h5U2VydmVyKHR5cGUsIGhvc3QsIHBvcnRWYWx1ZSkp
OworICAgIH0KK30KKworVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JVUkwoY29u
c3QgS1VSTCYgdXJsKQoreworICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzOwor
ICAgIAorICAgIGFkZFByb3h5U2VydmVyc0ZvclVSTChwcm94eVNlcnZlcnMsIHVybCk7CisgICAg
cmV0dXJuIHByb3h5U2VydmVyczsKKyAgICAKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvQ2hhbmdlTG9nIGIvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAwMTI2MzM2MGQzMWQ4OTU1ZDFkMDIxNDVkZjdkOTQwNWUxZWFiMGNmLi5lN2MwOWZiYzJl
OWQyNDE1Nzc0MWIzYTE1OTJmMTc2NjVkM2Y3OTM4IDEwMDY0NAotLS0gYS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMC0wMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcm94eSBzZXJ2ZXIgcXVlcnkgZnVu
Y3Rpb24gcHJveHlTZXJ2ZXJzRm9yVVJMIGFuZCBjaGFuZ2UgdGhlIE1hYyBwbHVnLWluIGNvZGUg
dG8gdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NzAyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUwNDcxMj4KKworICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEwLTA5LTIyICBMdWNhcyBEZSBN
YXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBVbnJldmll
d2VkLCBFRkwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGEyYTYwOTE3MTI5MWQ0NjI4MzdjMzA0YTk4NGVlZjA2NjJjNjA3YzAuLmY2MzcwODJh
MWU3Zjk4N2Q4ODIwMmMzMTQyYmMzNDJmMmZlYzhlYTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE2NzQsNiArMTY3NCw3IEBACiAJCQlpc2EgPSBQQlhQcm9q
ZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODMyMDg5MDJCMEYwMDhBOUVG
QyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYktpdCIgKi87
CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOworCQkJZGV2ZWxvcG1lbnRS
ZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93
blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDgwY2YwZDc1NTczZTkzMjQ1YmVlYzgy
ZWI0ZDkzOGI5MmU3ODVkZS4uZTc1M2IyNGM3ZDNhNjY1NTJhNDgwMzYxYTRiNmJiZmNmMmRmZjhm
NCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMC0wMSAgQW5kZXJzIENhcmxzc29uICA8YW5k
ZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBwcm94eSBzZXJ2ZXIgcXVlcnkgZnVuY3Rpb24gcHJveHlTZXJ2ZXJzRm9y
VVJMIGFuZCBjaGFuZ2UgdGhlIE1hYyBwbHVnLWluIGNvZGUgdG8gdXNlIGl0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzAyMgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODUwNDcxMj4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5OjpnZXRQcm94eSk6CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2Nh
cGVQbHVnaW5WaWV3Lmg6CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgZ2V0VmFyaWFibGU6Zm9yVVJMOnZhbHVlOmxl
bmd0aDpdKToKKwogMjAxMC0wOS0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggZTAz
YmMyNzhmOGQ4NDEzYjM5Mzg3ZDFiMTk3NjI1YWNmYTE0NmRjMi4uNmFkMGFlMzE1MGJhMjkyYTE3
MTUzZmEyNDdiNTNkODhjYjk1MjA3NCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTUwLDYgKzUwLDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVUcmVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tVUkwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJv
eHlTZXJ2ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRWYWx1
ZS5oPgpAQCAtMTU1Nyw3ICsxNTU4LDggQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHk6OmdldFByb3h5KGRhdGFfdCB1cmxEYXRhLCBtYWNoX21zZ190eXBlX251bWJlcl8KICAgICBp
ZiAoIXVybCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV1RGOjpDU3RyaW5nIHByb3h5
U3RyaW5nVVRGOCA9IHByb3hpZXNGb3JVUkwodXJsKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+
IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0ZvclVSTChVUkwpOworICAgIFdURjo6Q1N0cmlu
ZyBwcm94eVN0cmluZ1VURjggPSB0b1N0cmluZyhwcm94eVNlcnZlcnMpLnV0ZjgoKTsKIAogICAg
IHByb3h5TGVuZ3RoID0gcHJveHlTdHJpbmdVVEY4Lmxlbmd0aCgpOwogICAgIG1pZ19hbGxvY2F0
ZShyZWludGVycHJldF9jYXN0PHZtX2FkZHJlc3NfdCo+KCZwcm94eURhdGEpLCBwcm94eUxlbmd0
aCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2lu
Vmlldy5oIGIvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaApp
bmRleCA5YTI5Y2MyY2YwNDg4ZjFhM2I0ZTIzYTY5OWZiY2FmYmY2MjY0ZmQ4Li4xYTRiNmJiYzM3
NTU3OWY5MDc5YjE1ZjFkY2Q5Y2YyMDQ4MzQ3NjVkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCisrKyBiL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTE0NSwxMCArMTQ1LDYgQEAgY2xhc3Mg
V2ViSGFsdGFibGVQbHVnaW47CiAKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCi1XVEY6
OkNTdHJpbmcgcHJveGllc0ZvclVSTChOU1VSTCAqKTsKLSNlbmRpZgotICAgIAogYm9vbCBnZXRB
dXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2xTdHIsIGNvbnN0IGNoYXIqIGhv
c3RTdHIsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lU3RyLCBjb25zdCBjaGFyKiBy
ZWFsbVN0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6Q1N0cmluZyYgdXNlcm5h
bWUsIFdURjo6Q1N0cmluZyYgcGFzc3dvcmQpOwogfSAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNDk2NjcxNjBjNGZkODYxNTBiNjNl
ZDFjMzBhMjFiYTE3YzBlYTI2OC4uNzA4YjAxNzhhYTBiY2JlYWM0YTk3MWIyZTIyZGFhNDk3N2Mx
NDU4MiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdp
blZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW0KQEAgLTk2MCw2NiArOTYwLDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKQotQ1N0cmluZyBwcm94aWVzRm9yVVJMKE5TVVJMICp1cmwpCi17Ci0gICAgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gc3lzdGVtUHJveGllcyhBZG9wdENGLCBDRk5ldHdvcmtDb3B5
U3lzdGVtUHJveHlTZXR0aW5ncygpKTsKLSAgICBpZiAoIXN5c3RlbVByb3hpZXMpCi0gICAgICAg
IHJldHVybiAiRElSRUNUIjsKLSAgICAKLSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcHJveGll
c0ZvclVSTChBZG9wdENGLCBDRk5ldHdvcmtDb3B5UHJveGllc0ZvclVSTCgoQ0ZVUkxSZWYpdXJs
LCBzeXN0ZW1Qcm94aWVzLmdldCgpKSk7Ci0gICAgQ0ZJbmRleCBwcm94eUNvdW50ID0gcHJveGll
c0ZvclVSTCA/IENGQXJyYXlHZXRDb3VudChwcm94aWVzRm9yVVJMLmdldCgpKSA6IDA7Ci0gICAg
aWYgKCFwcm94eUNvdW50KQotICAgICAgICByZXR1cm4gIkRJUkVDVCI7Ci0gCi0gICAgLy8gcHJv
eGllc0ZvclVSTCBpcyBhIENGQXJyYXkgb2YgQ0ZEaWN0aW9uYXJpZXMuIEVhY2ggZGljdGlvbmFy
eSByZXByZXNlbnRzIGEgcHJveHkuCi0gICAgLy8gVGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0IHNo
b3VsZCBiZToKLSAgICAvLyAiUFJPWFkgaG9zdFs6cG9ydF0iIChmb3IgSFRUUCBwcm94eSkgb3IK
LSAgICAvLyAiU09DS1MgaG9zdFs6cG9ydF0iIChmb3IgU09DS1MgcHJveHkpIG9yCi0gICAgLy8g
QSBjb21iaW5hdGlvbiBvZiB0aGUgYWJvdmUsIHNlcGFyYXRlZCBieSBzZW1pY29sb24sIGluIHRo
ZSBvcmRlciB0aGF0IHRoZXkgc2hvdWxkIGJlIHRyaWVkLgotICAgIFN0cmluZyBwcm94aWVzOwot
ICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IHByb3h5Q291bnQ7ICsraSkgewotICAgICAgICBD
RkRpY3Rpb25hcnlSZWYgcHJveHkgPSBzdGF0aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQXJy
YXlHZXRWYWx1ZUF0SW5kZXgocHJveGllc0ZvclVSTC5nZXQoKSwgaSkpOwotICAgICAgICBpZiAo
IXByb3h5KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgQ0ZTdHJpbmdSZWYgdHlw
ZSA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShwcm94eSwg
a0NGUHJveHlUeXBlS2V5KSk7Ci0gICAgICAgIGJvb2wgaXNIVFRQID0gdHlwZSA9PSBrQ0ZQcm94
eVR5cGVIVFRQIHx8IHR5cGUgPT0ga0NGUHJveHlUeXBlSFRUUFM7Ci0gICAgICAgIGJvb2wgaXNT
T0NLUyA9IHR5cGUgPT0ga0NGUHJveHlUeXBlU09DS1M7Ci0gICAgICAgIAotICAgICAgICAvLyBX
ZSBjYW4gb25seSByZXBvcnQgSFRUUCBhbmQgU09DS1MgcHJveGllcy4KLSAgICAgICAgaWYgKCFp
c0hUVFAgJiYgIWlzU09DS1MpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCi0gICAg
ICAgIENGU3RyaW5nUmVmIGhvc3QgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9u
YXJ5R2V0VmFsdWUocHJveHksIGtDRlByb3h5SG9zdE5hbWVLZXkpKTsKLSAgICAgICAgQ0ZOdW1i
ZXJSZWYgcG9ydCA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1
ZShwcm94eSwga0NGUHJveHlQb3J0TnVtYmVyS2V5KSk7Ci0gICAgICAgIAotICAgICAgICAvLyBJ
ZiB3ZSBhcmUgaW5zZXJ0aW5nIG11bHRpcGxlIGVudHJpZXMsIGFkZCBhIHNlcGFyYXRvcgotICAg
ICAgICBpZiAoIXByb3hpZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcHJveGllcyArPSAiOyI7
Ci0gICAgICAgIAotICAgICAgICBpZiAoaXNIVFRQKQotICAgICAgICAgICAgcHJveGllcyArPSAi
UFJPWFkgIjsKLSAgICAgICAgZWxzZSBpZiAoaXNTT0NLUykKLSAgICAgICAgICAgIHByb3hpZXMg
Kz0gIlNPQ0tTICI7Ci0gICAgICAgIAotICAgICAgICBwcm94aWVzICs9IGhvc3Q7Ci0KLSAgICAg
ICAgaWYgKHBvcnQpIHsKLSAgICAgICAgICAgIFNJbnQzMiBpbnRQb3J0OwotICAgICAgICAgICAg
Q0ZOdW1iZXJHZXRWYWx1ZShwb3J0LCBrQ0ZOdW1iZXJTSW50MzJUeXBlLCAmaW50UG9ydCk7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIHByb3hpZXMgKz0gIjoiICsgU3RyaW5nOjpudW1iZXIo
aW50UG9ydCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgaWYgKHByb3hpZXMuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gIkRJUkVDVCI7Ci0gICAgCi0gICAgcmV0dXJuIHByb3hpZXMu
dXRmOCgpOwotfQotI2VuZGlmCi0KIGJvb2wgZ2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNo
YXIqIHByb3RvY29sU3RyLCBjb25zdCBjaGFyKiBob3N0U3RyLCBpbnQzMl90IHBvcnQsIGNvbnN0
IGNoYXIqIHNjaGVtZVN0ciwgY29uc3QgY2hhciogcmVhbG1TdHIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDU3RyaW5nJiB1c2VybmFtZSwgQ1N0cmluZyYgcGFzc3dvcmQpCiB7CmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBmZjBjYTc3OTY1
NjE1MGI1YjkyODcwOWI5ZmY0OTg1MGVjMGM3ZDdkLi41NDJkNTlkNmRkNDRlMjgxOTIzZmZkMDYz
MGU3ZjBkMWExY2RlYTY1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
blZpZXcubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkVs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPiAKICNpbXBvcnQgPFdlYkNvcmUvUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qcm94eVNlcnZlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+IApAQCAt
MjIzOSw3ICsyMjQwLDggQEAgLSAoTlBFcnJvcilnZXRWYXJpYWJsZTooTlBOVVJMVmFyaWFibGUp
dmFyaWFibGUgZm9yVVJMOihjb25zdCBjaGFyKil1cmwgdmFsdWU6KGMKICAgICAgICAgICAgIGlm
ICghVVJMKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBDU3RyaW5nIHBy
b3hpZXNVVEY4ID0gcHJveGllc0ZvclVSTChVUkwpOworICAgICAgICAgICAgVmVjdG9yPFByb3h5
U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNGb3JVUkwoVVJMKTsKKyAgICAgICAg
ICAgIENTdHJpbmcgcHJveGllc1VURjggPSB0b1N0cmluZyhwcm94eVNlcnZlcnMpLnV0ZjgoKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5Q
Tl9NZW1BbGxvYyhwcm94aWVzVVRGOC5sZW5ndGgoKSkpOwogICAgICAgICAgICAgbWVtY3B5KCp2
YWx1ZSwgcHJveGllc1VURjguZGF0YSgpLCBwcm94aWVzVVRGOC5sZW5ndGgoKSk7Cg==
</data>
<flag name="review"
          id="59235"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>