<?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>128513</bug_id>
          
          <creation_ts>2014-02-09 20:34:20 -0800</creation_ts>
          <short_desc>Stop using PLATFORM(MAC) in WebKit2/platform except where it means “OS X but not iOS”</short_desc>
          <delta_ts>2014-02-10 22:16:55 -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>WebKit2</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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978701</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-02-09 20:34:20 -0800</bug_when>
    <thetext>So that we can make PLATFORM(MAC) false when building for iOS, we need to replace all uses of it that don’t take iOS into account. Most such uses are about building for Cocoa, using Core Foundation, or using Foundation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978705</commentid>
    <comment_count>1</comment_count>
      <attachid>223670</attachid>
    <who name="">mitz</who>
    <bug_when>2014-02-09 20:41:35 -0800</bug_when>
    <thetext>Created attachment 223670
Change PLATFORM(MAC), do some moves and renames</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978716</commentid>
    <comment_count>2</comment_count>
      <attachid>223670</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-02-09 21:16:22 -0800</bug_when>
    <thetext>Comment on attachment 223670
Change PLATFORM(MAC), do some moves and renames

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        Stop using PLATFORM(MAC) in WebKit2/platform except where it means âOS X but not iOSâ

I assume your smart quotes were just munged by the review tool.

&gt; Source/WebKit2/Platform/cf/ModuleCF.cpp:27
&gt; +#import &quot;config.h&quot;
&gt; +#import &quot;Module.h&quot;

Did you mean #include?

&gt; Source/WebKit2/Platform/cf/ModuleCF.cpp:27
&gt; -#import &quot;config.h&quot;
&gt; -#import &quot;Module.h&quot;
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;Module.h&quot;

I&apos;m confused by this patch. It seems ModuleCF.cpp has two separate patch entries!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978718</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-02-09 21:21:02 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 223670 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=223670&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:3
&gt; &gt; +        Stop using PLATFORM(MAC) in WebKit2/platform except where it means âOS X but not iOSâ
&gt; 
&gt; I assume your smart quotes were just munged by the review tool.

See bug 75394.

&gt; 
&gt; &gt; Source/WebKit2/Platform/cf/ModuleCF.cpp:27
&gt; &gt; +#import &quot;config.h&quot;
&gt; &gt; +#import &quot;Module.h&quot;
&gt; 
&gt; Did you mean #include?
&gt; 
&gt; &gt; Source/WebKit2/Platform/cf/ModuleCF.cpp:27
&gt; &gt; -#import &quot;config.h&quot;
&gt; &gt; -#import &quot;Module.h&quot;
&gt; &gt; +#include &quot;config.h&quot;
&gt; &gt; +#include &quot;Module.h&quot;
&gt; 
&gt; I&apos;m confused by this patch. It seems ModuleCF.cpp has two separate patch entries!

This is how svn-create-patch represents a rename and an edit in the renamed file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979019</commentid>
    <comment_count>4</comment_count>
      <attachid>223670</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-10 13:20:00 -0800</bug_when>
    <thetext>Comment on attachment 223670
Change PLATFORM(MAC), do some moves and renames

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

&gt; Source/WebKit2/Platform/Logging.cpp:70
&gt; -#if !PLATFORM(MAC) &amp;&amp; !PLATFORM(GTK) &amp;&amp; !PLATFORM(EFL)
&gt; +#if !USE(FOUNDATION) &amp;&amp; !PLATFORM(GTK) &amp;&amp; !PLATFORM(EFL)
&gt;  String logLevelString()

How about we just get rid of this logLevelString() since nobody includes it anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979277</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-02-10 22:16:55 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r163862&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223670</attachid>
            <date>2014-02-09 20:41:35 -0800</date>
            <delta_ts>2014-02-10 13:20:00 -0800</delta_ts>
            <desc>Change PLATFORM(MAC), do some moves and renames</desc>
            <filename>bug-128513-20140209204152.patch</filename>
            <type>text/plain</type>
            <size>24816</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Mzc2MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAyLTA5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBQTEFURk9STShN
QUMpIGluIFdlYktpdDIvcGxhdGZvcm0gZXhjZXB0IHdoZXJlIGl0IG1lYW5zIOKAnE9TIFggYnV0
IG5vdCBpT1PigJ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyODUxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0
aW9uOjp3YWl0Rm9yU3luY1JlcGx5KTogQ2hhbmdlZCBQTEFURk9STShNQUMpIHRvIFBMQVRGT1JN
KENPQ09BKSBhcm91bmQgdXNlIG9mCisgICAgICAgIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uLCBt
YXRjaGluZyB0aGUgZ3VhcmQgYXJvdW5kIHRoYXQgZnVuY3Rpb24uCisgICAgICAgICogUGxhdGZv
cm0vTG9nZ2luZy5jcHA6IENoYW5nZWQgUExBVEZPUk0oTUFDKSB0byBVU0UoRk9VTkRBVElPTikg
YXJvdW5kIGxvZ0xldmVsU3RyaW5nIHN0dWIsCisgICAgICAgIHNpbmNlIHRoZSDigJxNYWPigJ0g
aW1wbGVtZW50YXRpb24gaXMganVzdCBhbiBOU1VzZXJEZWZhdWx0cy1iYXNlZCBpbXBsZW1lbnRh
dGlvbi4KKyAgICAgICAgKiBQbGF0Zm9ybS9Nb2R1bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpN
b2R1bGU6Ok1vZHVsZSk6IENoYW5nZWQgUExBVEZPUk0oTUFDKSB0byBVU0UoQ0YpLgorICAgICAg
ICAqIFBsYXRmb3JtL01vZHVsZS5oOiBDaGFuZ2VkIFBMQVRGT1JNKE1BQykgdG8gVVNFKENGKSwg
c2luY2UgdGhlIOKAnE1hY+KAnSBpbXBsZW1lbnRhdGlvbiBpcworICAgICAgICBqdXN0IGEgQ0ZC
dW5kbGUtYmFzZWQgaW1wbGVtZW50YXRpb24uCisgICAgICAgICogUGxhdGZvcm0vUGxhdGZvcm1Q
cm9jZXNzSWRlbnRpZmllci5oOiBDaGFuZ2VkIFBMQVRGT1JNKE1BQykgdG8gUExBVEZPUk0oQ09D
T0EpLiBBcmd1YWJseQorICAgICAgICB0aGlzIHNob3VsZCBiZSBPUyhEQVJXSU4pICYmICFQTEFU
Rk9STShFRkwpICYmICFQTEFURk9STShHVEspLgorICAgICAgICAqIFBsYXRmb3JtL2NmOiBBZGRl
ZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHA6IFJlbmFtZWQgZnJvbSBQbGF0
Zm9ybS9tYWMvTW9kdWxlTWFjLm1tLiBUaGlzIGZpbGUgZGlkIG5vdAorICAgICAgICBjb250YWlu
IGFueSBPYmplY3RpdmUtQyBjb2RlLgorICAgICAgICAqIFBsYXRmb3JtL2ZvdW5kYXRpb246IEFk
ZGVkLgorICAgICAgICAqIFBsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2luZ0ZvdW5kYXRpb24ubW06
IFJlbmFtZWQgZnJvbSBQbGF0Zm9ybS9tYWMvTG9nZ2luZy5tYWMubW0uCisgICAgICAgICogUGxh
dGZvcm0vbWFjL0xvZ2dpbmcubWFjLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFBsYXRmb3JtL21h
Yy9Nb2R1bGVNYWMubW06IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBVcGRhdGVkIGZvciByZW5hbWVzLgorCiAyMDE0LTAyLTA5ICBDYXJsb3Mg
R2FybmFjaG8gIDxjYXJsb3NnQGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQg
c3VwcG9ydCB0b3VjaCBldmVudHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBXVEZMb2dDaGFubmVsKiBsb2dDaGFu
bmVsQnlOYW1lKGNvbnN0IFN0CiB9CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpCisjaWYgIVVTRShGT1VOREFUSU9OKSAmJiAh
UExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKQogU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkK
IHsKICAgICAvLyBGSVhNRTogRWFjaCBwbGF0Zm9ybSB3aWxsIG5lZWQgdG8gZGVmaW5lIHRoZWly
IG93biBsb2dMZXZlbFN0cmluZygpOwpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9k
dWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuY3Bw
CShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBN
b2R1bGU6Ok1vZHVsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgOiBtX3BhdGgocGF0aCkKLSNp
ZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKF9fTFA2NF9fKQorI2lmIFVTRShDRikgJiYgIWRl
ZmluZWQoX19MUDY0X18pCiAgICAgLCBtX2J1bmRsZVJlc291cmNlTWFwKC0xKQogI2VuZGlmCiB7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaAkocmV2aXNpb24gMTYzNzUyKQorKysgU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5
LDcgQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoQ0YpCiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogI2VuZGlmCiAKQEAgLTU0LDEzICs1NCwxMyBAQCBwdWJsaWM6CiAg
ICAgLy8gbGl2ZSBPYmplY3RpdmUtQyBvYmplY3RzIHdob3NlIG1ldGhvZHMgY29tZSBmcm9tIHRo
YXQgYnVuZGxlLgogICAgIHZvaWQgdW5sb2FkKCk7CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYg
VVNFKENGKQogICAgIFN0cmluZyBidW5kbGVJZGVudGlmaWVyKCkgY29uc3Q7CiAjZW5kaWYKIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4gRnVuY3Rpb25UeXBlIGZ1bmN0aW9u
UG9pbnRlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0OwogCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChfX0xQNjRfXykKKyNpZiBVU0UoQ0YpICYmICFkZWZpbmVkKF9fTFA2
NF9fKQogICAgIENGQnVuZGxlUmVmTnVtIGJ1bmRsZVJlc291cmNlTWFwKCk7CiAjZW5kaWYKIApA
QCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQqIHBsYXRmb3JtRnVuY3Rpb25Qb2lu
dGVyKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkgY29uc3Q7CiAKICAgICBTdHJpbmcgbV9wYXRo
OwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoQ0YpCiAgICAgUmV0YWluUHRyPENGQnVuZGxl
UmVmPiBtX2J1bmRsZTsKICNpZiAhZGVmaW5lZChfX0xQNjRfXykKICAgICBDRkJ1bmRsZVJlZk51
bSBtX2J1bmRsZVJlc291cmNlTWFwOwpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUGxh
dGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL1BsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaAkocmV2aXNpb24gMTYzNzUyKQorKysg
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYg
UExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogdHlwZWRlZiBwaWRfdCBQbGF0Zm9y
bVByb2Nlc3NJZGVudGlmaWVyOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBpbnQgUGxh
dGZvcm1Qcm9jZXNzSWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE2Mzc1MikKKysrIFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ1LDcgKzU0NSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGkKICAgICAgICAgLy8g
VGhpcyBhbGxvd3MgdGhlIFdlYlByb2Nlc3MgdG8gc3RpbGwgc2VydmUgY2xpZW50cyB3aGlsZSB3
YWl0aW5nIGZvciB0aGUgbWVzc2FnZSB0byByZXR1cm4uCiAgICAgICAgIC8vIE5vdGFibHksIGl0
IGNhbiBjb250aW51ZSB0byBwcm9jZXNzIGFjY2Vzc2liaWxpdHkgcmVxdWVzdHMsIHdoaWNoIGFy
ZSBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAgIGlmIChzeW5jU2VuZEZsYWdzICYgU3BpblJ1
bkxvb3BXaGlsZVdhaXRpbmdGb3JSZXBseSkgewotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICAgICAgICAgIC8vIEZJWE1FOiBBbHRob3VnaCB3ZSBydW4gZm9yZXZl
ciwgYW55IGV2ZW50cyBpbmNvbWluZyB3aWxsIGNhdXNlIHVzIHRvIGRyb3Agb3V0IGFuZCBleGl0
IG91dC4gVGhpcyBob3dldmVyIGRvZXNuJ3QKICAgICAgICAgICAgIC8vIGFjY291bnQgZm9yIGEg
dGltZW91dCB2YWx1ZSBwYXNzZWQgaW4uIFRpbWVvdXQgaXMgYWx3YXlzIE5vVGltZW91dCBpbiB0
aGVzZSBjYXNlcywgYnV0IHRoYXQgY291bGQgY2hhbmdlLgogICAgICAgICAgICAgUnVuTG9vcDo6
Y3VycmVudCgpLT5ydW5Gb3JEdXJhdGlvbigxZTEwKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL2NmL01vZHVsZUNGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9jZi9Nb2R1bGVDRi5jcHAJKHJldmlzaW9uIDE2Mzc1MikJKGZyb20gU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL01vZHVsZU1hYy5tbToxNjM3NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTW9kdWxlLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitib29sIE1vZHVsZTo6bG9hZCgpCit7CisgICAgUmV0YWluUHRy
PENGVVJMUmVmPiBidW5kbGVVUkwgPSBhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1Q
YXRoKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fcGF0aC5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBr
Q0ZVUkxQT1NJWFBhdGhTdHlsZSwgRkFMU0UpKTsKKyAgICBpZiAoIWJ1bmRsZVVSTCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgUmV0YWluUHRyPENGQnVuZGxlUmVmPiBidW5kbGUgPSBh
ZG9wdENGKENGQnVuZGxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1bmRsZVVSTC5nZXQo
KSkpOworICAgIGlmICghYnVuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IUNGQnVuZGxlTG9hZEV4ZWN1dGFibGUoYnVuZGxlLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbV9idW5kbGUgPSBhZG9wdENGKGJ1bmRsZS5sZWFrUmVmKCkpOworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIE1vZHVsZTo6dW5sb2FkKCkKK3sKKyAgICBpZiAoIW1fYnVu
ZGxlKQorICAgICAgICByZXR1cm47CisKKyNpZiAhZGVmaW5lZChfX0xQNjRfXykKKyAgICBpZiAo
bV9idW5kbGVSZXNvdXJjZU1hcCAhPSAtMSkKKyAgICAgICAgQ0ZCdW5kbGVDbG9zZUJ1bmRsZVJl
c291cmNlTWFwKG1fYnVuZGxlLmdldCgpLCBtX2J1bmRsZVJlc291cmNlTWFwKTsKKyNlbmRpZgor
CisgICAgLy8gU2VlIHRoZSBjb21tZW50IGluIE1vZHVsZS5oIGZvciB3aHkgd2UgbGVhayB0aGUg
YnVuZGxlIGhlcmUuCisgICAgQ0ZCdW5kbGVSZWYgdW51c2VkID0gbV9idW5kbGUubGVha1JlZigp
OworICAgICh2b2lkKXVudXNlZDsKK30KKwordm9pZCogTW9kdWxlOjpwbGF0Zm9ybUZ1bmN0aW9u
UG9pbnRlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2J1
bmRsZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmdW5j
dGlvbk5hbWVTdHJpbmcgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmdOb0NvcHko
a0NGQWxsb2NhdG9yRGVmYXVsdCwgZnVuY3Rpb25OYW1lLCBrQ0ZTdHJpbmdFbmNvZGluZ0FTQ0lJ
LCBrQ0ZBbGxvY2F0b3JOdWxsKSk7CisgICAgcmV0dXJuIENGQnVuZGxlR2V0RnVuY3Rpb25Qb2lu
dGVyRm9yTmFtZShtX2J1bmRsZS5nZXQoKSwgZnVuY3Rpb25OYW1lU3RyaW5nLmdldCgpKTsKK30K
KworU3RyaW5nIE1vZHVsZTo6YnVuZGxlSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IENGQnVuZGxlR2V0SWRlbnRpZmllcihtX2J1bmRsZS5nZXQoKSk7Cit9CisKKyNpZiAhZGVmaW5l
ZChfX0xQNjRfXykKK0NGQnVuZGxlUmVmTnVtIE1vZHVsZTo6YnVuZGxlUmVzb3VyY2VNYXAoKQor
eworICAgIGlmIChtX2J1bmRsZVJlc291cmNlTWFwID09IC0xKQorICAgICAgICBtX2J1bmRsZVJl
c291cmNlTWFwID0gQ0ZCdW5kbGVPcGVuQnVuZGxlUmVzb3VyY2VNYXAobV9idW5kbGUuZ2V0KCkp
OworCisgICAgcmV0dXJuIG1fYnVuZGxlUmVzb3VyY2VNYXA7Cit9CisjZW5kaWYKKworfQpJbmRl
eDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2NmL01vZHVsZUNGLmNwcAkod29ya2luZyBjb3B5KQor
KysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw4ICsyMyw4IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJNb2R1bGUuaCIKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGUuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2luZ0ZvdW5kYXRpb24u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZm91bmRhdGlvbi9Mb2dn
aW5nRm91bmRhdGlvbi5tbQkocmV2aXNpb24gMTYzNzUyKQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9tYWMvTG9nZ2luZy5tYWMubW06MTYzNzUyKQorKysgU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZm91bmRhdGlvbi9Mb2dnaW5nRm91bmRhdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiAhTE9HX0RJU0FC
TEVECisKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRlZmF1bHRzRG9tYWluID0gQCJXZWJLaXQy
TG9nZ2luZyI7CisKK1N0cmluZyBsb2dMZXZlbFN0cmluZygpCit7CisgICAgcmV0dXJuIFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpkZWZhdWx0c0Rv
bWFpbl07Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Mb2dnaW5nLm1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTG9nZ2luZy5tYWMubW0JKHJldmlzaW9uIDE2Mzc1MikK
KysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Mb2dnaW5nLm1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLSNpZiAh
TE9HX0RJU0FCTEVECi0KLXN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRlZmF1bHRzRG9tYWluID0g
QCJXZWJLaXQyTG9nZ2luZyI7Ci0KLVN0cmluZyBsb2dMZXZlbFN0cmluZygpCi17Ci0gICAgcmV0
dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN0cmluZ0ZvcktleTpk
ZWZhdWx0c0RvbWFpbl07Ci19Ci0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9Nb2R1bGVNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL01vZHVsZU1hYy5tbQkocmV2aXNpb24gMTYz
NzUyKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL01vZHVsZU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJNb2R1bGUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWJvb2wgTW9kdWxl
Ojpsb2FkKCkKLXsKLSAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGJ1bmRsZVVSTCA9IGFkb3B0Q0Yo
Q0ZVUkxDcmVhdGVXaXRoRmlsZVN5c3RlbVBhdGgoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9wYXRo
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlVSTFBPU0lYUGF0aFN0eWxlLCBGQUxTRSkpOwot
ICAgIGlmICghYnVuZGxlVVJMKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBSZXRhaW5Q
dHI8Q0ZCdW5kbGVSZWY+IGJ1bmRsZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgYnVuZGxlVVJMLmdldCgpKSk7Ci0gICAgaWYgKCFidW5kbGUpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmICghQ0ZCdW5kbGVMb2FkRXhlY3V0YWJsZShidW5kbGUu
Z2V0KCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX2J1bmRsZSA9IGFkb3B0Q0Yo
YnVuZGxlLmxlYWtSZWYoKSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgTW9kdWxlOjp1
bmxvYWQoKQotewotICAgIGlmICghbV9idW5kbGUpCi0gICAgICAgIHJldHVybjsKLQotI2lmICFk
ZWZpbmVkKF9fTFA2NF9fKQotICAgIGlmIChtX2J1bmRsZVJlc291cmNlTWFwICE9IC0xKQotICAg
ICAgICBDRkJ1bmRsZUNsb3NlQnVuZGxlUmVzb3VyY2VNYXAobV9idW5kbGUuZ2V0KCksIG1fYnVu
ZGxlUmVzb3VyY2VNYXApOwotI2VuZGlmCi0KLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gTW9k
dWxlLmggZm9yIHdoeSB3ZSBsZWFrIHRoZSBidW5kbGUgaGVyZS4KLSAgICBDRkJ1bmRsZVJlZiB1
bnVzZWQgPSBtX2J1bmRsZS5sZWFrUmVmKCk7Ci0gICAgKHZvaWQpdW51c2VkOwotfQotCi12b2lk
KiBNb2R1bGU6OnBsYXRmb3JtRnVuY3Rpb25Qb2ludGVyKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFt
ZSkgY29uc3QKLXsKLSAgICBpZiAoIW1fYnVuZGxlKQotICAgICAgICByZXR1cm4gMDsKLSAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZ1bmN0aW9uTmFtZVN0cmluZyA9IGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVXaXRoQ1N0cmluZ05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmdW5jdGlvbk5h
bWUsIGtDRlN0cmluZ0VuY29kaW5nQVNDSUksIGtDRkFsbG9jYXRvck51bGwpKTsKLSAgICByZXR1
cm4gQ0ZCdW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JOYW1lKG1fYnVuZGxlLmdldCgpLCBmdW5j
dGlvbk5hbWVTdHJpbmcuZ2V0KCkpOwotfQotCi1TdHJpbmcgTW9kdWxlOjpidW5kbGVJZGVudGlm
aWVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gQ0ZCdW5kbGVHZXRJZGVudGlmaWVyKG1fYnVuZGxl
LmdldCgpKTsKLX0KLQotI2lmICFkZWZpbmVkKF9fTFA2NF9fKQotQ0ZCdW5kbGVSZWZOdW0gTW9k
dWxlOjpidW5kbGVSZXNvdXJjZU1hcCgpCi17Ci0gICAgaWYgKG1fYnVuZGxlUmVzb3VyY2VNYXAg
PT0gLTEpCi0gICAgICAgIG1fYnVuZGxlUmVzb3VyY2VNYXAgPSBDRkJ1bmRsZU9wZW5CdW5kbGVS
ZXNvdXJjZU1hcChtX2J1bmRsZS5nZXQoKSk7Ci0KLSAgICByZXR1cm4gbV9idW5kbGVSZXNvdXJj
ZU1hcDsKLX0KLSNlbmRpZgotCi19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjM3NTIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTcwOSw3ICs3MDksNyBAQAogCQk1MTVFNzczMDE4NDAxNTgwMDAwNzIwM0YgLyogVW5pcXVl
SURCRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNUU3NzJFMTg0MDE1ODAwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZS5oICovOyB9
OwogCQk1MTVFNzczMzE4NDAyRDUxMDAwNzIwM0YgLyogVW5pcXVlSURCRGF0YWJhc2VJZGVudGlm
aWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NUU3NzMxMTg0MDJENTEwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIuY3Bw
ICovOyB9OwogCQk1MTVFNzczNDE4NDAyRDUxMDAwNzIwM0YgLyogVW5pcXVlSURCRGF0YWJhc2VJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTVFNzczMjE4NDAyRDUxMDAwNzIwM0YgLyogVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVy
LmggKi87IH07Ci0JCTUxNjBCRkUxMTMzODFERjkwMDkxODk5OSAvKiBMb2dnaW5nLm1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjBCRkUwMTMz
ODFERjkwMDkxODk5OSAvKiBMb2dnaW5nLm1hYy5tbSAqLzsgfTsKKwkJNTE2MEJGRTExMzM4MURG
OTAwOTE4OTk5IC8qIExvZ2dpbmdGb3VuZGF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2MEJGRTAxMzM4MURGOTAwOTE4OTk5IC8qIExvZ2dp
bmdGb3VuZGF0aW9uLm1tICovOyB9OwogCQk1MTYzMTE4NzE4NTg0NDY2MDA1MzQ2NDcgLyogV2Vi
Q3Jvc3NUaHJlYWRDb3BpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNjMxMTg2MTg1ODQ0NjYwMDUzNDY0NyAvKiBXZWJDcm9zc1RocmVhZENvcGll
ci5oICovOyB9OwogCQk1MTYzMTk5MjE2Mjg5ODBBMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NQ
cm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNjMxOTkxMTYyODk4MEEwMEUyMkYwMCAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tICov
OyB9OwogCQk1MTYzMTk5NDE2Mjg5QTYwMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFBQ0M5MzQxNjI4MDY0ODAwMzQyNTUwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKQEAgLTEzNDQsNyArMTM0NCw3IEBACiAJCUMwQ0U3MkEwMTI0N0U3MUQw
MEJDMEVDNCAvKiBXZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQ0U3MjlFMTI0N0U3MUQwMEJDMEVDNCAvKiBX
ZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQzBDRTcyQTExMjQ3RTcxRDAwQkMw
RUM0IC8qIFdlYlBhZ2VNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzBDRTcyOUYxMjQ3RTcxRDAwQkMwRUM0IC8qIFdlYlBhZ2VNZXNzYWdl
cy5oICovOyB9OwogCQlDMENFNzJBRDEyNDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDRTcyQUMx
MjQ3RTc4RDAwQkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCAqLzsgfTsKLQkJQzBFM0FBN0ExMjA5
RTgzMDAwQTQ5RDAxIC8qIE1vZHVsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMwRTNBQTQ4MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVNYWMu
bW0gKi87IH07CisJCUMwRTNBQTdBMTIwOUU4MzAwMEE0OUQwMSAvKiBNb2R1bGVDRi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEUzQUE0ODEyMDlF
NDUwMDBBNDlEMDEgLyogTW9kdWxlQ0YuY3BwICovOyB9OwogCQlDMEUzQUE3QjEyMDlFODM1MDBB
NDlEMDEgLyogTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMwRTNBQTQ1MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1bGUuY3BwICovOyB9Owog
CQlDMEUzQUE3QzEyMDlFODNDMDBBNDlEMDEgLyogTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyog
TW9kdWxlLmggKi87IH07CiAJCUM1MTczODgxMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJv
bGxlckFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzUxNzM4ODAxMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggKi87
IH07CkBAIC0yNDMzLDcgKzI0MzMsNyBAQAogCQk1MTVFNzcyRTE4NDAxNTgwMDAwNzIwM0YgLyog
VW5pcXVlSURCRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5p
cXVlSURCRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1RTc3MzEx
ODQwMkQ1MTAwMDcyMDNGIC8qIFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZp
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTVFNzczMjE4NDAyRDUxMDAw
NzIwM0YgLyogVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MTYwQkZFMDEzMzgxREY5MDA5MTg5OTkgLyogTG9nZ2luZy5t
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2dnaW5nLm1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE2MEJGRTAxMzM4MURGOTAwOTE4
OTk5IC8qIExvZ2dpbmdGb3VuZGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTG9nZ2luZ0ZvdW5kYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxNjMxMTg2MTg1ODQ0NjYwMDUzNDY0NyAvKiBXZWJDcm9zc1RocmVhZENvcGllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDcm9zc1RocmVhZENvcGllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTYzMTk5MTE2Mjg5ODBBMDBFMjJGMDAg
LyogTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzUHJveHlNYWMubW07IHBhdGggPSBtYWMvTmV0d29y
a1Byb2Nlc3NQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2NTRF
RkIxODRFRjMzRjAwN0RDODM3IC8qIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMxMzMsNyArMzEzMyw3IEBACiAJCUMwQ0U3MzM3MTI0N0Y3MEUwMEJDMEVDNCAvKiBnZW5lcmF0
ZS1tZXNzYWdlcy1oZWFkZXIucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGgg
PSAiZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzBFM0FBNDQxMjA5RTJCQTAwQTQ5RDAxIC8qIE1vZHVsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzBFM0FBNDUxMjA5RTJCQTAwQTQ5RDAxIC8qIE1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlDMEUzQUE0ODEyMDlFNDUwMDBBNDlEMDEgLyogTW9kdWxlTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9kdWxlTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMEUzQUE0ODEyMDlFNDUwMDBBNDlEMDEgLyogTW9kdWxlQ0Yu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlQ0YuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE3Mzg4MDEyREY4RjRGMDBFRTNGNDcgLyog
RHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RHJhZ0NvbnRyb2xsZXJBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUy
MzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkVkaXRvckNsaWVudE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUyNDUzOEYxODlDNkI4NTAwM0RGNDc2IC8qIFdL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOyBwYXRoID0gaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NTYsMTAgKzM3NTYsOCBAQAog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJQkNFMDkzNzYxNEZCMTI4QjAwMTEzOEQ5IC8qIExheWVySG9z
dGluZ0NvbnRleHQuaCAqLywKIAkJCQlCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJI
b3N0aW5nQ29udGV4dC5tbSAqLywKLQkJCQk1MTYwQkZFMDEzMzgxREY5MDA5MTg5OTkgLyogTG9n
Z2luZy5tYWMubW0gKi8sCiAJCQkJMUEyNEI1RjAxMUY1MzFFODAwQzM4MjY5IC8qIE1hY2hVdGls
aXRpZXMuY3BwICovLAogCQkJCTFBMjRCNUYxMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0
aWVzLmggKi8sCi0JCQkJQzBFM0FBNDgxMjA5RTQ1MDAwQTQ5RDAxIC8qIE1vZHVsZU1hYy5tbSAq
LywKIAkJCQkxQTI0QkYzOTEyMDg5NkE2MDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5TWFjLmNwcCAq
LywKIAkJCQkyOTZCRDg1QjE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLmggKi8s
CiAJCQkJMjk2QkQ4NUMxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGllcy5tbSAqLywK
QEAgLTQzMzQsNiArNDMzMiwyMiBAQAogCQkJbmFtZSA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJMzcwOTUwNDExOEE4OEJBNDAwODdBRTVEIC8qIGNmICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMEUzQUE0ODEyMDlFNDUw
MDBBNDlEMDEgLyogTW9kdWxlQ0YuY3BwICovLAorCQkJKTsKKwkJCXBhdGggPSBjZjsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTM3MDk1MDQyMThBODhDREUwMDg3QUU1RCAv
KiBmb3VuZGF0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk1MTYwQkZFMDEzMzgxREY5MDA5MTg5OTkgLyogTG9nZ2luZ0ZvdW5kYXRpb24ubW0gKi8s
CisJCQkpOworCQkJcGF0aCA9IGZvdW5kYXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkzN0M0QzA4MzE4MTQ5QzJBMDAzNjg4QjkgLyogQ29jb2EgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNTUwMSw3ICs1NTE1LDkgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUFFMDBENjgxODMyN0MxMjAw
MDg3REQ3IC8qIElQQyAqLywKKwkJCQkzNzA5NTA0MTE4QTg4QkE0MDA4N0FFNUQgLyogY2YgKi8s
CiAJCQkJMUFBMkU1MUExMkU0QzA1NjAwQkM0OTY2IC8qIGNnICovLAorCQkJCTM3MDk1MDQyMThB
ODhDREUwMDg3QUU1RCAvKiBmb3VuZGF0aW9uICovLAogCQkJCTFBN0U4MTRFMTE1MkQyMjQwMDAz
Njk1QiAvKiBtYWMgKi8sCiAJCQkJNTFCMTVBN0QxMzg0MzlCMjAwMzIxQUQ4IC8qIHVuaXggKi8s
CiAJCQkJNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwICovLApAQCAtNzc0
NCwxNCArNzc2MCwxNCBAQAogCQkJCTFBMUQ4QkExMTczMUEzNjMwMDE0MURBNCAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThDNzI4QzE3Mzg0NzdDMDAw
QTY1NTQgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxQTdGMkY1MTI1QkY4RDQwMDhBRUIxRCAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUxNjBCRkUxMTMzODFERjkwMDkxODk5OSAvKiBMb2dnaW5nLm1hYy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTUxNjBCRkUxMTMzODFERjkwMDkxODk5OSAvKiBMb2dnaW5nRm91bmRhdGlv
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMjRCNUYyMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNo
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMjMyOTAyMTYyQzg2NzMwMEQ4MkY3
QSAvKiBNZXNzYWdlRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTIzMjhGRTE2MkM4
NjZBMDBEODJGN0EgLyogTWVzc2FnZUVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEz
RUVEMEUxNjFBNTM1NDAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTlFMzI4RTE4MjE2NUE5MDBGNUQwNEMgLyogV0tSZW1vdGVPYmplY3RJbnRl
cmZhY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMEUzQUE3QjEyMDlFODM1MDBBNDlEMDEgLyog
TW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUMwRTNBQTdBMTIwOUU4MzAwMEE0OUQwMSAv
KiBNb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMEUzQUE3QTEyMDlFODMwMDBBNDlE
MDEgLyogTW9kdWxlQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcwRjM0QTIxODI5QkUxRTAw
OTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGEubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0IwQUVF
QTEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzAyQkZGMUUxMjUxNTAyRTAwOUNDQkVBIC8qIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRN
YWMubW0gaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="247727"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>