<?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>125795</bug_id>
          
          <creation_ts>2013-12-16 12:03:25 -0800</creation_ts>
          <short_desc>[Win] Remove dead code after conversion to VS2013</short_desc>
          <delta_ts>2013-12-16 16:03:08 -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>WebKit Misc.</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>960166</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-16 12:03:25 -0800</bug_when>
    <thetext>Remove dead code left after migrating to require VS2013 to build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960201</commentid>
    <comment_count>1</comment_count>
      <attachid>219346</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-16 13:24:35 -0800</bug_when>
    <thetext>Created attachment 219346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960206</commentid>
    <comment_count>2</comment_count>
      <attachid>219346</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-12-16 13:30:21 -0800</bug_when>
    <thetext>Comment on attachment 219346
Patch

Attachment 219346 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/50088031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960208</commentid>
    <comment_count>3</comment_count>
      <attachid>219346</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-16 13:33:28 -0800</bug_when>
    <thetext>Comment on attachment 219346
Patch

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

&gt; Source/WTF/wtf/Compiler.h:-73
&gt; -#if _MSC_VER &lt; 1600
&gt; -#define WTF_COMPILER_MSVC9_OR_LOWER 1
&gt; -#endif

I think you should add an #error if someone tries to use an old version of VS2013.

&gt; Source/WTF/wtf/StdLibExtras.h:-321
&gt; -#if (defined(_MSC_VER) &amp;&amp; _MSC_VER &lt; 1700) || (COMPILER(GCC) &amp;&amp; !COMPILER(CLANG) &amp;&amp; !GCC_VERSION_AT_LEAST(4, 8, 1))
&gt; -
&gt; -// Work-around for Pre-C++11 syntax in MSVC 2010, and prior as well as GCC &lt; 4.8.1.
&gt; -namespace std {
&gt; -    template&lt;class T&gt; struct is_trivially_destructible {
&gt; -        static const bool value = std::has_trivial_destructor&lt;T&gt;::value;
&gt; -    };
&gt; -}
&gt; -#endif

This workaround needs to be left in for older GCCs.

&gt; Source/WTF/wtf/StdLibExtras.h:-354
&gt; -// MSVC 2013 supports std::make_unique already.
&gt; -#if !defined(_MSC_VER) || _MSC_VER &lt; 1800
&gt; -    template&lt;class T&gt; struct _Unique_if {
&gt; -        typedef unique_ptr&lt;T&gt; _Single_object;
&gt; -    };
&gt; -
&gt; -    template&lt;class T&gt; struct _Unique_if&lt;T[]&gt; {
&gt; -        typedef unique_ptr&lt;T[]&gt; _Unknown_bound;
&gt; -    };
&gt; -
&gt; -    template&lt;class T, size_t N&gt; struct _Unique_if&lt;T[N]&gt; {
&gt; -        typedef void _Known_bound;
&gt; -    };
&gt; -
&gt; -    template&lt;class T, class... Args&gt; inline typename _Unique_if&lt;T&gt;::_Single_object
&gt; -    make_unique(Args&amp;&amp;... args)
&gt; -    {
&gt; -        return unique_ptr&lt;T&gt;(new T(std::forward&lt;Args&gt;(args)...));
&gt; -    }
&gt; -
&gt; -    template&lt;class T&gt; inline typename _Unique_if&lt;T&gt;::_Unknown_bound
&gt; -    make_unique(size_t n)
&gt; -    {
&gt; -        typedef typename remove_extent&lt;T&gt;::type U;
&gt; -        return unique_ptr&lt;T&gt;(new U[n]());
&gt; -    }
&gt; -    
&gt; -    template&lt;class T, class... Args&gt; typename _Unique_if&lt;T&gt;::_Known_bound
&gt; -    make_unique(Args&amp;&amp;...) = delete;
&gt; -#endif

This workaround is used by everyone except VS2013!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960210</commentid>
    <comment_count>4</comment_count>
      <attachid>219346</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-12-16 13:35:35 -0800</bug_when>
    <thetext>Comment on attachment 219346
Patch

Attachment 219346 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/50108001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960211</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-16 13:38:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 219346 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219346&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Compiler.h:-73
&gt; &gt; -#if _MSC_VER &lt; 1600
&gt; &gt; -#define WTF_COMPILER_MSVC9_OR_LOWER 1
&gt; &gt; -#endif
&gt; 
&gt; I think you should add an #error if someone tries to use an old version of VS2013.

ok!

&gt; &gt; Source/WTF/wtf/StdLibExtras.h:-321
&gt; &gt; -#if (defined(_MSC_VER) &amp;&amp; _MSC_VER &lt; 1700) || (COMPILER(GCC) &amp;&amp; !COMPILER(CLANG) &amp;&amp; !GCC_VERSION_AT_LEAST(4, 8, 1))
&gt; &gt; -
&gt; &gt; -// Work-around for Pre-C++11 syntax in MSVC 2010, and prior as well as GCC &lt; 4.8.1.
&gt; &gt; -namespace std {
&gt; &gt; -    template&lt;class T&gt; struct is_trivially_destructible {
&gt; &gt; -        static const bool value = std::has_trivial_destructor&lt;T&gt;::value;
&gt; &gt; -    };
&gt; &gt; -}
&gt; &gt; -#endif
&gt; 
&gt; This workaround needs to be left in for older GCCs.

ok!

&gt; &gt; Source/WTF/wtf/StdLibExtras.h:-354
&gt; &gt; -// MSVC 2013 supports std::make_unique already.
&gt; &gt; -#if !defined(_MSC_VER) || _MSC_VER &lt; 1800
&gt; &gt; -    template&lt;class T&gt; struct _Unique_if {
&gt; &gt; -        typedef unique_ptr&lt;T&gt; _Single_object;
&gt; 
&gt; This workaround is used by everyone except VS2013!

Whoops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960214</commentid>
    <comment_count>6</comment_count>
      <attachid>219346</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-12-16 13:55:44 -0800</bug_when>
    <thetext>Comment on attachment 219346
Patch

Attachment 219346 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/44318102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960215</commentid>
    <comment_count>7</comment_count>
      <attachid>219349</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-16 13:56:08 -0800</bug_when>
    <thetext>Created attachment 219349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960283</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-16 16:03:08 -0800</bug_when>
    <thetext>Committed r160671: &lt;http://trac.webkit.org/changeset/160671&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219346</attachid>
            <date>2013-12-16 13:24:35 -0800</date>
            <delta_ts>2013-12-16 13:56:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125795-20131216132432.patch</filename>
            <type>text/plain</type>
            <size>21705</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNjU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDEzLTEyLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIFJlbW92ZSBkZWFkIGNvZGUgYWZ0ZXIgY29udmVyc2lvbiB0byBWUzIwMTMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTc5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL3Rlc3Rz
L3Rlc3RhcGkuYzogUmVtb3ZlIGxvY2FsIG5hbiBpbXBsZW1lbnRhdGlvbgorCiAyMDEzLTEyLTE2
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Rml4ZWQgV2luNjQgYnVpbGQgb24gVlMyMDEzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmMJKHJldmlzaW9uIDE2MDY1MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCSh3b3JraW5nIGNvcHkpCkBAIC00MywyMiArNDMs
NiBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgogCi0jaWYgQ09NUElMRVIoTVNWQykK
LQotI2lmIF9NU0NfVkVSIDwgMTgwMAotI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0KLXN0
YXRpYyBkb3VibGUgbmFuKGNvbnN0IGNoYXIqKQotewotICAgIHJldHVybiBzdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwotfQotCi11c2luZyBzdGQ6OmlzaW5mOwotdXNp
bmcgc3RkOjppc25hbjsKLSNlbmRpZgotCi0jZW5kaWYKLQogI2lmIEpTQ19PQkpDX0FQSV9FTkFC
TEVECiB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKHZvaWQpOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNp
b24gMTYwNjU3KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMCBAQAorMjAxMy0xMi0xNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2luXSBSZW1vdmUgZGVhZCBjb2RlIGFmdGVyIGNvbnZlcnNpb24gdG8g
VlMyMDEzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjU3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9Bc3NlcnRpb25zLmg6IEluY2x1ZGUgPGludHR5cGVzLmg+IG5vdyB0aGF0IGl0IGV4aXN0
cy4KKyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDogVXBkYXRlIGNvbXBpbGVyIGNoZWNrcyBmb3Ig
VlMyMDEzLCBhbmQKKyAgICAgICAgZW5hYmxlIHN1cHBvcnQgZm9yIE5FVkVSX0lOTElORQorICAg
ICAgICAqIHd0Zi9IYXNoRnVuY3Rpb25zLmg6CisgICAgICAgIChXVEY6OlB0ckhhc2g6Omhhc2gp
OiBSZW1vdmUgY29tcGlsZXIgd29ya2Fyb3VuZC4KKyAgICAgICAgKiB3dGYvTWF0aEV4dHJhcy5o
OiBSZW1vdmUgQzk5IGZ1bmN0aW9ucyB0aGF0IGFyZSBub3cgc3VwcGxpZWQKKyAgICAgICAgYnkg
dGhlIE1TIHJ1bnRpbWUgbGlicmFyeS4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDogUmVtb3Zl
IG9sZCBNU1ZDIHN1cHBvcnQgZmxhZ3MuCisgICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOiBS
ZW1vdmUgb2xkIE1TVkMgd29ya2Fyb3VuZCBjb2RlLgorCiAyMDEzLTEyLTE2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4ZWQgV2luNjQg
YnVpbGQgb24gVlMyMDEzLgpJbmRleDogU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAkocmV2aXNpb24gMTYwNjUwKQor
KysgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCAr
MzYsMTAgQEAKICAgIERlZmluaW5nIGFueSBvZiB0aGUgc3ltYm9scyBleHBsaWNpdGx5IHByZXZl
bnRzIHRoaXMgZnJvbSBoYXZpbmcgYW55IGVmZmVjdC4KICovCiAKLSNpbmNsdWRlIDx3dGYvUGxh
dGZvcm0uaD4KLQorI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAj
aW5jbHVkZSA8c3RkZGVmLmg+Ci0KLSNpZiAhQ09NUElMRVIoTVNWQykKLSNpbmNsdWRlIDxpbnR0
eXBlcy5oPgotI2VuZGlmCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKICNpZmRlZiBOREVC
VUcKIC8qIERpc2FibGUgQVNTRVJUKiBtYWNyb3MgaW4gcmVsZWFzZSBtb2RlLiAqLwpJbmRleDog
U291cmNlL1dURi93dGYvQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9D
b21waWxlci5oCShyZXZpc2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9Db21waWxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw0MyArNjUsMjcgQEAKICNlbmRpZgogCiAvKiBDT01QSUxF
UihNU1ZDKSAtIE1pY3Jvc29mdCBWaXN1YWwgQysrICovCi0vKiBDT01QSUxFUihNU1ZDOV9PUl9M
T1dFUikgLSBNaWNyb3NvZnQgVmlzdWFsIEMrKyAyMDA4IG9yIGxvd2VyKi8KICNpZiBkZWZpbmVk
KF9NU0NfVkVSKQogI2RlZmluZSBXVEZfQ09NUElMRVJfTVNWQyAxCi0jaWYgX01TQ19WRVIgPCAx
NjAwCi0jZGVmaW5lIFdURl9DT01QSUxFUl9NU1ZDOV9PUl9MT1dFUiAxCi0jZW5kaWYKIAogLyog
U3BlY2lmaWMgY29tcGlsZXIgZmVhdHVyZXMgKi8KLSNpZiAhQ09NUElMRVIoQ0xBTkcpICYmIF9N
U0NfVkVSID49IDE2MDAKKyNpZiAhQ09NUElMRVIoQ0xBTkcpCiAjZGVmaW5lIFdURl9DT01QSUxF
Ul9TVVBQT1JUU19DWFhfTlVMTFBUUiAxCiAjZW5kaWYKIAogI2lmICFDT01QSUxFUihDTEFORykK
ICNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0NYWF9PVkVSUklERV9DT05UUk9MIDEKLSNp
ZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPCAxODAwCi0jZGVmaW5lIFdURl9DT01Q
SUxFUl9RVUlSS19GSU5BTF9JU19DQUxMRURfU0VBTEVEIDEKLSNlbmRpZgogI2VuZGlmCiAKLS8q
IENoZWNrIGZvciBWUzIwMTAgb3IgbmV3ZXIgKi8KLSNpZiBfTVNDX1ZFUiA+PSAxNjAwCiAjZGVm
aW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19DWFhfUlZBTFVFX1JFRkVSRU5DRVMgMQogI2RlZmlu
ZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfQ1hYX1NUQVRJQ19BU1NFUlQgMQogI2RlZmluZSBXVEZf
Q09NUElMRVJfU1VQUE9SVFNfQ1hYX0FVVE9fVFlQRSAxCi0jZW5kaWYKLQotI2lmIF9NU0NfVkVS
ID49IDE3MDAKICNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0NYWF9TVFJPTkdfRU5VTVMg
MQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfQ1hYX09WRVJSSURFX0NPTlRST0wgMQot
I2VuZGlmCi0KLSNpZiBfTVNDX1ZFUiA+PSAxODAwCiAjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQ
T1JUU19DWFhfREVMRVRFRF9GVU5DVElPTlMgMQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9S
VFNfQ1hYX0VYUExJQ0lUX0NPTlZFUlNJT05TIDEKICNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBP
UlRTX0NYWF9HRU5FUkFMSVpFRF9JTklUSUFMSVpFUlMgMQogI2RlZmluZSBXVEZfQ09NUElMRVJf
U1VQUE9SVFNfQ1hYX1ZBUklBRElDX1RFTVBMQVRFUyAxCi0jZW5kaWYKIAogI2VuZGlmIC8qIGRl
ZmluZWQoX01TQ19WRVIpICovCiAKQEAgLTIyMyw2ICsyMDcsOCBAQAogI2lmbmRlZiBORVZFUl9J
TkxJTkUKICNpZiBDT01QSUxFUihHQ0MpCiAjZGVmaW5lIE5FVkVSX0lOTElORSBfX2F0dHJpYnV0
ZV9fKChfX25vaW5saW5lX18pKQorI2VsaWYgQ09NUElMRVIoTVNWQykgfHwgQ09NUElMRVIoUlZD
VCkKKyNkZWZpbmUgTkVWRVJfSU5MSU5FIF9fZGVjbHNwZWMobm9pbmxpbmUpCiAjZWxzZQogI2Rl
ZmluZSBORVZFUl9JTkxJTkUKICNlbmRpZgpAQCAtMzQ5LDYgKzMzNSw0IEBACiAjZGVmaW5lIFVO
VVNFRF9MQUJFTChsYWJlbCkgVU5VU0VEX1BBUkFNKCYmIGxhYmVsKQogI2VuZGlmCiAKLQotCiAj
ZW5kaWYgLyogV1RGX0NvbXBpbGVyX2ggKi8KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hGdW5j
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9IYXNoRnVuY3Rpb25zLmgJKHJl
dmlzaW9uIDE2MDY1MCkKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hGdW5jdGlvbnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIyLDE0ICsxMjIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUHRySGFzaCB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKFQga2V5KQogICAgICAgICB7Ci0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEgd2Fybmlu
ZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQyNDQpIC8vIHdvcmsgYXJvdW5kIHdo
YXQgc2VlbXMgdG8gYmUgYSBidWcgaW4gTVNWQydzIGNvbnZlcnNpb24gd2FybmluZ3MKLSNlbmRp
ZgogICAgICAgICAgICAgcmV0dXJuIEludEhhc2g8dWludHB0cl90Pjo6aGFzaChyZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oa2V5KSk7Ci0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEgd2Fy
bmluZyhwb3ApCi0jZW5kaWYKICAgICAgICAgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChU
IGEsIFQgYikgeyByZXR1cm4gYSA9PSBiOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKQEAgLTE3Nyw3ICsxNzAsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxsb25nIGxv
bmc+IHsgdHlwZWRlZiBJbnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4gSGFzaDsgfTsKICAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDx1bnNpZ25lZCBsb25nIGxvbmc+IHsgdHlwZWRl
ZiBJbnRIYXNoPHVuc2lnbmVkIGxvbmcgbG9uZz4gSGFzaDsgfTsKIAotI2lmICFDT01QSUxFUihN
U1ZDKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEKQorI2lmIGRlZmluZWQoX05B
VElWRV9XQ0hBUl9UX0RFRklORUQpCiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8
d2NoYXJfdD4geyB0eXBlZGVmIEludEhhc2g8d2NoYXJfdD4gSGFzaDsgfTsKICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvTWF0aEV4dHJhcy5oCShyZXZpc2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9N
YXRoRXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSwxMTcgKzEyMSwxMiBAQCBpbmxpbmUg
Ym9vbCBzaWduYml0KGRvdWJsZSB4KSB7IHN0cnVjdCBpCiAKICNlbmRpZgogCi0jaWYgQ09NUElM
RVIoTVNWQykKLQotI2lmIF9NU0NfVkVSIDwgMTgwMAotLy8gV2UgbXVzdCBub3QgZG8gJ251bSAr
IDAuNScgb3IgJ251bSAtIDAuNScgYmVjYXVzZSB0aGV5IGNhbiBjYXVzZSBwcmVjaXNpb24gbG9z
cy4KLXN0YXRpYyBkb3VibGUgcm91bmQoZG91YmxlIG51bSkKLXsKLSAgICBkb3VibGUgaW50ZWdl
ciA9IGNlaWwobnVtKTsKLSAgICBpZiAobnVtID4gMCkKLSAgICAgICAgcmV0dXJuIGludGVnZXIg
LSBudW0gPiAwLjUgPyBpbnRlZ2VyIC0gMS4wIDogaW50ZWdlcjsKLSAgICByZXR1cm4gaW50ZWdl
ciAtIG51bSA+PSAwLjUgPyBpbnRlZ2VyIC0gMS4wIDogaW50ZWdlcjsKLX0KLXN0YXRpYyBmbG9h
dCByb3VuZGYoZmxvYXQgbnVtKQotewotICAgIGZsb2F0IGludGVnZXIgPSBjZWlsZihudW0pOwot
ICAgIGlmIChudW0gPiAwKQotICAgICAgICByZXR1cm4gaW50ZWdlciAtIG51bSA+IDAuNWYgPyBp
bnRlZ2VyIC0gMS4wZiA6IGludGVnZXI7Ci0gICAgcmV0dXJuIGludGVnZXIgLSBudW0gPj0gMC41
ZiA/IGludGVnZXIgLSAxLjBmIDogaW50ZWdlcjsKLX0KLQotaW5saW5lIGxvbmcgbG9uZyBsbHJv
dW5kKGRvdWJsZSBudW0pIHsgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4ocm91bmQobnVt
KSk7IH0KLWlubGluZSBsb25nIGxvbmcgbGxyb3VuZGYoZmxvYXQgbnVtKSB7IHJldHVybiBzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KHJvdW5kZihudW0pKTsgfQotaW5saW5lIGxvbmcgbHJvdW5kKGRv
dWJsZSBudW0pIHsgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmc+KHJvdW5kKG51bSkpOyB9Ci1pbmxp
bmUgbG9uZyBscm91bmRmKGZsb2F0IG51bSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4ocm91
bmRmKG51bSkpOyB9Ci1pbmxpbmUgZG91YmxlIHRydW5jKGRvdWJsZSBudW0pIHsgcmV0dXJuIG51
bSA+IDAgPyBmbG9vcihudW0pIDogY2VpbChudW0pOyB9Ci0KLWlubGluZSBkb3VibGUgcmVtYWlu
ZGVyKGRvdWJsZSBudW1lcmF0b3IsIGRvdWJsZSBkZW5vbWluYXRvcikKLXsKLSAgICBkb3VibGUg
cmVzdWx0ID0gZm1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKLSAgICBpZiAocmVzdWx0ID4g
MC41ICogZGVub21pbmF0b3IpCi0gICAgICAgIHJldHVybiByZXN1bHQgLSBkZW5vbWluYXRvcjsK
LQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWlubGluZSBkb3VibGUgYXNpbmgoZG91YmxlIGQp
Ci17Ci0gICAgcmV0dXJuIGxvZyhkICsgc3FydChkICogZCArIDEuMCkpOwotfQotCi1pbmxpbmUg
ZG91YmxlIGFjb3NoKGRvdWJsZSBkKQotewotICAgIHJldHVybiBsb2coZCArIHNxcnQoZCArIDEp
ICogc3FydChkIC0gMSkpOwotfQotCi1pbmxpbmUgZG91YmxlIGF0YW5oKGRvdWJsZSBkKQotewot
ICAgIHJldHVybiAobG9nKCgxLjAgKyBkKSAvICgxLjAgLSBkKSkpIC8gMi4wOwotfQotCi1pbmxp
bmUgZG91YmxlIGV4cG0xKGRvdWJsZSBkKQotewotICAgIHJldHVybiBleHAoZCkgLSAxLjA7Ci19
Ci0KLWlubGluZSBkb3VibGUgbG9nMXAoZG91YmxlIGQpCi17Ci0gICAgcmV0dXJuIGxvZygxLjAg
KyBkKTsKLX0KLQotaW5saW5lIGRvdWJsZSBjYnJ0KGRvdWJsZSBkKQotewotICAgIHJldHVybiBw
b3coZCwgMS4wIC8gMy4wKTsKLX0KLQotI2VuZGlmCi0KLSNlbmRpZgotCiAjaWYgQ09NUElMRVIo
R0NDKSAmJiBPUyhRTlgpCiAvLyBUaGUgc3RkbGliIG9uIFFOWCBkb2Vzbid0IGNvbnRhaW4gbG9u
ZyBhYnMobG9uZykuIFNlZSBQUiAjMTA0NjY2LgogaW5saW5lIGxvbmcgbG9uZyBhYnMobG9uZyBu
dW0pIHsgcmV0dXJuIGxhYnMobnVtKTsgfQogI2VuZGlmCiAKICNpZiBDT01QSUxFUihNU1ZDKQot
Ly8gTVNWQydzIG1hdGguaCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcGx5IGxvZzIgb3IgbG9nMmYu
Ci1pbmxpbmUgZG91YmxlIGxvZzIoZG91YmxlIG51bSkKLXsKLSAgICAvLyBUaGlzIGNvbnN0YW50
IGlzIHJvdWdobHkgTV9MTjIsIHdoaWNoIGlzIG5vdCBwcm92aWRlZCBieSBkZWZhdWx0IG9uIFdp
bmRvd3MuCi0gICAgcmV0dXJuIGxvZyhudW0pIC8gMC42OTMxNDcxODA1NTk5NDUzMDk0MTcyMzIx
MjE0NTgxNzY1Njg7Ci19Ci0KLWlubGluZSBmbG9hdCBsb2cyZihmbG9hdCBudW0pCi17Ci0gICAg
Ly8gVGhpcyBjb25zdGFudCBpcyByb3VnaGx5IE1fTE4yLCB3aGljaCBpcyBub3QgcHJvdmlkZWQg
YnkgZGVmYXVsdCBvbiBXaW5kb3dzLgotICAgIHJldHVybiBsb2dmKG51bSkgLyAwLjY5MzE0NzE4
MDU1OTk0NTMwOTQxNzIzMjEyMTQ1ODE3NjU2OGY7Ci19Ci0jZW5kaWYKLQotI2lmIENPTVBJTEVS
KE1TVkMpCi0vLyBUaGUgNjRiaXQgdmVyc2lvbiBvZiBhYnMoKSBpcyBhbHJlYWR5IGRlZmluZWQg
aW4gc3RkbGliLmggd2hpY2ggY29tZXMgd2l0aCBWQzEwCi0jaWYgQ09NUElMRVIoTVNWQzlfT1Jf
TE9XRVIpCi1pbmxpbmUgbG9uZyBsb25nIGFicyhsb25nIGxvbmcgbnVtKSB7IHJldHVybiBfYWJz
NjQobnVtKTsgfQotI2VuZGlmCi0KLSNpZiBfTVNDX1ZFUiA8IDE4MDAKLQotbmFtZXNwYWNlIHN0
ZCB7Ci0KLWlubGluZSBib29sIGlzaW5mKGRvdWJsZSBudW0pIHsgcmV0dXJuICFfZmluaXRlKG51
bSkgJiYgIV9pc25hbihudW0pOyB9Ci1pbmxpbmUgYm9vbCBpc25hbihkb3VibGUgbnVtKSB7IHJl
dHVybiAhIV9pc25hbihudW0pOyB9Ci1pbmxpbmUgYm9vbCBpc2Zpbml0ZShkb3VibGUgeCkgeyBy
ZXR1cm4gX2Zpbml0ZSh4KTsgfQotaW5saW5lIGJvb2wgc2lnbmJpdChkb3VibGUgbnVtKSB7IHJl
dHVybiBfY29weXNpZ24oMS4wLCBudW0pIDwgMDsgfQotCi19IC8vIG5hbWVzcGFjZSBzdGQKLQot
I2VuZGlmCi0KLWlubGluZSBkb3VibGUgbmV4dGFmdGVyKGRvdWJsZSB4LCBkb3VibGUgeSkgeyBy
ZXR1cm4gX25leHRhZnRlcih4LCB5KTsgfQotaW5saW5lIGZsb2F0IG5leHRhZnRlcmYoZmxvYXQg
eCwgZmxvYXQgeSkgeyByZXR1cm4geCA+IHkgPyB4IC0gRkxUX0VQU0lMT04gOiB4ICsgRkxUX0VQ
U0lMT047IH0KLQotaW5saW5lIGRvdWJsZSBjb3B5c2lnbihkb3VibGUgeCwgZG91YmxlIHkpIHsg
cmV0dXJuIF9jb3B5c2lnbih4LCB5KTsgfQogCiAvLyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBXaW4s
IHdoZXJlIGF0YW4yKCstaW5maW5pdHksICstaW5maW5pdHkpIHlpZWxkcyBOYU4gaW5zdGVhZCBv
ZiBzcGVjaWZpYyB2YWx1ZXMuCiBleHRlcm4gIkMiIGlubGluZSBkb3VibGUgd3RmX2F0YW4yKGRv
dWJsZSB4LCBkb3VibGUgeSkKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTYwNjUwKQorKysg
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtOTM1LDcgKzkzNSw3
IEBACiAgICBzaW5jZSBtb3N0IHBvcnRzIHRyeSB0byBzdXBwb3J0IHN1Yi1wcm9qZWN0IGluZGVw
ZW5kZW5jZSwgYWRkaW5nIG5ldyBoZWFkZXJzCiAgICB0byBXVEYgY2F1c2VzIG1hbnkgcG9ydHMg
dG8gYnJlYWssIGFuZCBzbyB0aGlzIHdheSB3ZSBjYW4gYWRkcmVzcyB0aGUgYnVpbGQKICAgIGJy
ZWFrYWdlcyBvbmUgcG9ydCBhdCBhIHRpbWUuICovCi0jaWYgIWRlZmluZWQoV1RGX1VTRV9FWFBP
UlRfTUFDUk9TKSAmJiAoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoZGVmaW5l
ZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTYwMCkpKQorI2lmICFkZWZpbmVkKFdURl9VU0Vf
RVhQT1JUX01BQ1JPUykgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSkKICNkZWZp
bmUgV1RGX1VTRV9FWFBPUlRfTUFDUk9TIDEKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRy
YXMuaAkocmV2aXNpb24gMTYwNjUwKQorKysgU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxMCw0OSArMzEwLDggQEAgaW5saW5lIHZvaWQqIG9wZXJhdG9y
IG5ldyhzaXplX3QsIE5vdE51bAogICAgIHJldHVybiBsb2NhdGlvbjsKIH0KIAotI2lmIChkZWZp
bmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8IDE3MDApIHx8IChDT01QSUxFUihHQ0MpICYmICFD
T01QSUxFUihDTEFORykgJiYgIUdDQ19WRVJTSU9OX0FUX0xFQVNUKDQsIDgsIDEpKQotCi0vLyBX
b3JrLWFyb3VuZCBmb3IgUHJlLUMrKzExIHN5bnRheCBpbiBNU1ZDIDIwMTAsIGFuZCBwcmlvciBh
cyB3ZWxsIGFzIEdDQyA8IDQuOC4xLgotbmFtZXNwYWNlIHN0ZCB7Ci0gICAgdGVtcGxhdGU8Y2xh
c3MgVD4gc3RydWN0IGlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGUgewotICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCB2YWx1ZSA9IHN0ZDo6aGFzX3RyaXZpYWxfZGVzdHJ1Y3RvcjxUPjo6dmFsdWU7
Ci0gICAgfTsKLX0KLSNlbmRpZgotCiAvLyBUaGlzIGFkZHMgdmFyaW91cyBDKysxNCBmZWF0dXJl
cyBmb3IgdmVyc2lvbnMgb2YgdGhlIFNUTCB0aGF0IG1heSBub3QgeWV0IGhhdmUgdGhlbS4KIG5h
bWVzcGFjZSBzdGQgewotLy8gTVNWQyAyMDEzIHN1cHBvcnRzIHN0ZDo6bWFrZV91bmlxdWUgYWxy
ZWFkeS4KLSNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgX01TQ19WRVIgPCAxODAwCi0gICAgdGVt
cGxhdGU8Y2xhc3MgVD4gc3RydWN0IF9VbmlxdWVfaWYgewotICAgICAgICB0eXBlZGVmIHVuaXF1
ZV9wdHI8VD4gX1NpbmdsZV9vYmplY3Q7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+
IHN0cnVjdCBfVW5pcXVlX2lmPFRbXT4gewotICAgICAgICB0eXBlZGVmIHVuaXF1ZV9wdHI8VFtd
PiBfVW5rbm93bl9ib3VuZDsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgc2l6ZV90
IE4+IHN0cnVjdCBfVW5pcXVlX2lmPFRbTl0+IHsKLSAgICAgICAgdHlwZWRlZiB2b2lkIF9Lbm93
bl9ib3VuZDsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MuLi4gQXJncz4g
aW5saW5lIHR5cGVuYW1lIF9VbmlxdWVfaWY8VD46Ol9TaW5nbGVfb2JqZWN0Ci0gICAgbWFrZV91
bmlxdWUoQXJncyYmLi4uIGFyZ3MpCi0gICAgewotICAgICAgICByZXR1cm4gdW5pcXVlX3B0cjxU
PihuZXcgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTxjbGFzcyBUPiBpbmxpbmUgdHlwZW5hbWUgX1VuaXF1ZV9pZjxUPjo6X1Vua25vd25fYm91
bmQKLSAgICBtYWtlX3VuaXF1ZShzaXplX3QgbikKLSAgICB7Ci0gICAgICAgIHR5cGVkZWYgdHlw
ZW5hbWUgcmVtb3ZlX2V4dGVudDxUPjo6dHlwZSBVOwotICAgICAgICByZXR1cm4gdW5pcXVlX3B0
cjxUPihuZXcgVVtuXSgpKTsKLSAgICB9Ci0gICAgCi0gICAgdGVtcGxhdGU8Y2xhc3MgVCwgY2xh
c3MuLi4gQXJncz4gdHlwZW5hbWUgX1VuaXF1ZV9pZjxUPjo6X0tub3duX2JvdW5kCi0gICAgbWFr
ZV91bmlxdWUoQXJncyYmLi4uKSA9IGRlbGV0ZTsKLSNlbmRpZgotCiAgICAgLy8gQ29tcGlsZS10
aW1lIGludGVnZXIgc2VxdWVuY2VzCiAgICAgLy8gaHR0cDovL3d3dy5vcGVuLXN0ZC5vcmcvanRj
MS9zYzIyL3dnMjEvZG9jcy9wYXBlcnMvMjAxMy9uMzY1OC5odG1sCiAgICAgLy8gKE5vdGUgdGhh
dCB3ZSBvbmx5IGltcGxlbWVudCBpbmRleF9zZXF1ZW5jZSwgYW5kIG5vdCB0aGUgbW9yZSBnZW5l
cmljIGludGVnZXJfc2VxdWVuY2UpLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNjU3KQor
KysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTMtMTItMTYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dpbl0gUmVtb3ZlIGRlYWQgY29kZSBhZnRlciBjb252ZXJzdGlvbiB0byBWUzIwMTMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTc5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVByZWZpeC5oOiBSZW1vdmUgVlMyMDEyIGluY2x1ZGUga2x1ZGdlLgorICAgICAgICAqIGxvYWRl
ci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwOiBSZW1vdmUgZ210aW1lIHdvcmthcm91bmQgY29kZS4K
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IFJlbW92ZSBvbGRlciBwb2ludGVyLWJhc2Vk
IG9wZW4gaW1wbGVtZW50YXRpb24uCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDogRGl0dG8K
KyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZ05hbWVIYXNoOjplcXVhbCk6IFJlbW92ZSBvcHRpbWl6
YXRpb24gYnVnIHdvcmthcm91bmQKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKTog
UmVtb3ZlIGNvbXBpbGVyIHdvcmthcm91bmQKKwogMjAxMy0xMi0xNiAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeGVkIFdpbjY0IGJ1aWxk
IG9uIFZTMjAxMy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgJKHJldmlzaW9uIDE2MDY1MCkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAkod29ya2luZyBjb3B5KQpAQCAtMTMw
LDI1ICsxMzAsNiBAQCBfTElCQ1BQX0VORF9OQU1FU1BBQ0VfU1RECiAjaWYgT1MoV0lORE9XUykK
ICNpZiBVU0UoQ0cpCiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8PSAxNjAw
Ci0KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVIZWFkZXJEZXRlY3Rpb24uaD4KLQotI2lmIEhB
VkUoQVZDRl9MRUdJQkxFX09VVFBVVCkKLS8vIFRoZXNlIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUg
aW5jbHVkaW5nIENHRmxvYXQuaAotLy8gVGhpcyBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIG1vdmUg
dG8gVlMyMDEyIG9yIG5ld2VyCi0jaW5jbHVkZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgotI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0KLSNkZWZpbmUgaXNuYW4gX2lzbmFuCi0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCi0jaW5jbHVkZSA8Q29yZUdyYXBoaWNz
L0NHRmxvYXQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3Mu
aD4KLSN1bmRlZiBpc25hbgotI2VuZGlmCi0jZW5kaWYKLQogLy8gRklYTUUgPHJkYXI6Ly9wcm9i
bGVtLzgyMDg4Njg+IFJlbW92ZSBzdXBwb3J0IGZvciBvYnNvbGV0ZSBDb2xvclN5bmMgQVBJLCBD
b3JlU2VydmljZXMgaGVhZGVyIGluIENvcmVHcmFwaGljcwogLy8gV2UgY2FuIHJlbW92ZSB0aGlz
IG9uY2UgdGhlIG5ldyBDb2xvclN5bmMgQVBJcyBhcmUgYXZhaWxhYmxlIGluIGFuIGludGVybmFs
IFNhZmFyaSBTREsuCiAjaW5jbHVkZSA8Q29sb3JTeW5jL0NvbG9yU3luYy5oPgpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeVBhcnNlci5jcHAJKHJldmlzaW9uIDE2
MDY1MCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMiBD
eXJ1cyBQYXRlbCA8Y3lwQGZiMTQudW5pLW1haW56LmRlPgotICogICAgICAgICAgIChDKSAyMDA3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAoQykgMjAwNywg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpA
QCAtMzYsMTEgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmIE9TKFdJTkRPV1MpICYmICFkZWZpbmVkKGdtdGltZV9yKQotI2lmIGRlZmluZWQo
X01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxNDAwKSAKICNkZWZpbmUgZ210aW1lX3IoeCwgeSkg
Z210aW1lX3MoKHkpLCAoeCkpCi0jZWxzZSAvKiAhX01TQ19WRVIgKi8gCi0jZGVmaW5lIGdtdGlt
ZV9yKHgseSkgKGdtdGltZSh4KT8oKih5KT0qZ210aW1lKHgpLCh5KSk6MCkKLSNlbmRpZgogI2Vu
ZGlmCiAKIHN0YXRpYyBpbmxpbmUgRlRQRW50cnlUeXBlIFBhcnNpbmdGYWlsZWQoTGlzdFN0YXRl
JiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDE2MDY1
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTkwMCwxNSArMTkwMCw2IEBAIFBhc3NSZWZQdHI8RnJhbWU+IERPTVdpbmRvdzo6Y3JlYXRl
V2luZG8KICAgICByZXR1cm4gbmV3RnJhbWUucmVsZWFzZSgpOwogfQogCi0jaWYgZGVmaW5lZChf
TVNDX1ZFUikgJiYgX01TQ19WRVIgPD0gMTcwMAotLy8gV29yayBhcm91bmQgYSBjb21waWxlciBi
dWcgaW4gVmlzdWFsIFN0dWRpbzoKLVBhc3NSZWZQdHI8RE9NV2luZG93PiBET01XaW5kb3c6Om9w
ZW4oY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1l
LCBjb25zdCBTdHJpbmcmIHdpbmRvd0ZlYXR1cmVzU3RyaW5nLAotICAgIERPTVdpbmRvdyogYWN0
aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KQotewotICAgIHJldHVybiBvcGVuKHVy
bFN0cmluZywgZnJhbWVOYW1lLCB3aW5kb3dGZWF0dXJlc1N0cmluZywgKmFjdGl2ZVdpbmRvdywg
KmZpcnN0V2luZG93KTsKLX0KLSNlbmRpZgotCiBQYXNzUmVmUHRyPERPTVdpbmRvdz4gRE9NV2lu
ZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZy
YW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZywKICAgICBET01XaW5k
b3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdykKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gMTYwNjUwKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDEwICsxNjAsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgUGFzc1JlZlB0cjxET01XaW5kb3c+IG9wZW4oY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBT
dHJpbmcmIHdpbmRvd0ZlYXR1cmVzU3RyaW5nLAogICAgICAgICAgICAgRE9NV2luZG93JiBhY3Rp
dmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3cpOwotI2lmIGRlZmluZWQoX01TQ19WRVIp
ICYmIF9NU0NfVkVSIDw9IDE3MDAKLSAgICAgICAgUGFzc1JlZlB0cjxET01XaW5kb3c+IG9wZW4o
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBj
b25zdCBTdHJpbmcmIHdpbmRvd0ZlYXR1cmVzU3RyaW5nLAotICAgICAgICAgICAgRE9NV2luZG93
KiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cpOwotI2VuZGlmCiAKICAgICAg
ICAgdHlwZWRlZiB2b2lkICgqUHJlcGFyZURpYWxvZ0Z1bmN0aW9uKShET01XaW5kb3cqLCB2b2lk
KiBjb250ZXh0KTsKICAgICAgICAgdm9pZCBzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhdHVyZXNTdHJpbmcsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5
LmNwcAkocmV2aXNpb24gMTYwNjUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDE5ICs2NSwxMCBA
QCBzdHJ1Y3QgVGV4dEVuY29kaW5nTmFtZUhhc2ggewogICAgICAgICBjaGFyIGMxOwogICAgICAg
ICBjaGFyIGMyOwogICAgICAgICBkbyB7Ci0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19W
RVIgPT0gMTcwMAotICAgICAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gdGhlIFZT
MjAxMiBVcGRhdGUxIGFuZCBVcGRhdGUyIG9wdGltaXplciwgcmVtb3ZlIG9uY2UgdGhlIGZpeCBp
cyByZWxlYXNlZC4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29t
L1Zpc3VhbFN0dWRpby9mZWVkYmFjay9kZXRhaWxzLzc4MTE4OS92czIwMTItdXBkYXRlLWN0cDQt
Yy1vcHRpbWl6aW5nLWJ1ZwotICAgICAgICAgICAgYzEgPSB0b0FTQ0lJTG93ZXIoKnMxKyspOwot
ICAgICAgICAgICAgYzIgPSB0b0FTQ0lJTG93ZXIoKnMyKyspOwotICAgICAgICAgICAgaWYgKGMx
ICE9IGMyKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbHNlCiAgICAgICAgICAg
ICBjMSA9ICpzMSsrOwogICAgICAgICAgICAgYzIgPSAqczIrKzsKICAgICAgICAgICAgIGlmICh0
b0FTQ0lJTG93ZXIoYzEpICE9IHRvQVNDSUlMb3dlcihjMikpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgICAgIH0gd2hpbGUgKGMxICYmIGMyKTsKICAgICAgICAg
cmV0dXJuICFjMSAmJiAhYzI7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAkocmV2aXNpb24gMTYwNjUwKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTM3LDExICsxNTM3LDcgQEAgUGFzc1JlZlB0
cjxET01XaW5kb3c+IEludGVybmFsczo6b3BlbkR1bQogICAgIERPTVdpbmRvdyogd2luZG93ID0g
cGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7CiAgICAgQVNTRVJUKHdp
bmRvdyk7CiAKLSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8PSAxNzAwCi0gICAg
bV9mcm9udGVuZFdpbmRvdyA9IHdpbmRvdy0+b3Blbih1cmwsICIiLCAiIiwgd2luZG93LCB3aW5k
b3cpOyAvLyBXb3JrIGFyb3VuZCBidWcgaW4gVlMyMDEwIGFuZCBlYXJsaWVyCi0jZWxzZQogICAg
IG1fZnJvbnRlbmRXaW5kb3cgPSB3aW5kb3ctPm9wZW4odXJsLCAiIiwgIiIsICp3aW5kb3csICp3
aW5kb3cpOwotI2VuZGlmCiAgICAgQVNTRVJUKG1fZnJvbnRlbmRXaW5kb3cpOwogCiAgICAgUGFn
ZSogZnJvbnRlbmRQYWdlID0gbV9mcm9udGVuZFdpbmRvdy0+ZG9jdW1lbnQoKS0+cGFnZSgpOwpJ
bmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDY1NykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTItMTYgIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gUmVtb3ZlIGRlYWQgY29k
ZSBhZnRlciBjb252ZXJzaW9uIHRvIFZTMjAxMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1Nzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0
b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW46CisgICAgICAgIFJlbW92ZSB1bnVzZWQgZnVuY3Rpb24g
ZXhwb3J0cy4KKwogMjAxMy0xMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeGVkIFdpbjY0IGJ1aWxkIG9uIFZTMjAxMy4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktp
dEV4cG9ydHMuZGVmLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHBy
b2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCShyZXZpc2lvbiAx
NjA2NTApCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVy
YXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgkod29ya2luZyBjb3B5KQpAQCAtMzQ3LDEyICszNDcs
NyBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9wYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVsc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RGQEBQQVZGcmFt
ZUAyQEhISEhISEhAWiwgP3BhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzQFByaW50Q29udGV4dEBX
ZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBFQVZGcmFtZUAyQEhISEhISEhAWikKICAgICAgICAg
c3ltYm9sV2l0aFBvaW50ZXIoP2Nsb3NlQERPTVdpbmRvd0BXZWJDb3JlQEBRQUVYUEFWU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEAyQEBaLCA/Y2xvc2VARE9NV2luZG93QFdlYkNvcmVAQFFFQUFYUEVB
VlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRAMkBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIo
P2RvY3VtZW50QERPTVdpbmRvd0BXZWJDb3JlQEBRQkVQQVZEb2N1bWVudEAyQFhaLCA/ZG9jdW1l
bnRARE9NV2luZG93QFdlYkNvcmVAQFFFQkFQRUFWRG9jdW1lbnRAMkBYWikKLSNpZiBfTVNDX1ZF
UiA8IDE4MDAKLSAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP29wZW5ARE9NV2luZG93QFdlYkNv
cmVAQFFBRT9BVj8kUGFzc1JlZlB0ckBWRE9NV2luZG93QFdlYkNvcmVAQEBXVEZAQEFCVlN0cmlu
Z0A0QEFCVkF0b21pY1N0cmluZ0A0QDBQQVYxMkAyQFosID9vcGVuQERPTVdpbmRvd0BXZWJDb3Jl
QEBRRUFBP0FWPyRQYXNzUmVmUHRyQFZET01XaW5kb3dAV2ViQ29yZUBAQFdURkBAQUVCVlN0cmlu
Z0A0QEFFQlZBdG9taWNTdHJpbmdANEAwUEVBVjEyQDJAWikKLSNlbHNlCiAgICAgICAgIHN5bWJv
bFdpdGhQb2ludGVyKD9vcGVuQERPTVdpbmRvd0BXZWJDb3JlQEBRQUU/QVY/JFBhc3NSZWZQdHJA
VkRPTVdpbmRvd0BXZWJDb3JlQEBAV1RGQEBBQlZTdHJpbmdANEBBQlZBdG9taWNTdHJpbmdANEAw
QUFWMTJAMkBaLCA/b3BlbkBET01XaW5kb3dAV2ViQ29yZUBAUUVBQT9BVj8kUGFzc1JlZlB0ckBW
RE9NV2luZG93QFdlYkNvcmVAQEBXVEZAQEFFQlZTdHJpbmdANEBBRUJWQXRvbWljU3RyaW5nQDRA
MEFFQVYxMkAyQFopCi0KLSNlbmRpZgogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9KU0BX
ZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9i
amVjdEAxQFBBVkRPTVdpbmRvd0AxQEBaLCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlND
QEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEVBVkRPTVdpbmRvd0Ax
QEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/bGF5ZXJUcmVlQXNUZXh0QEZyYW1lQFdl
YkNvcmVAQFFCRT9BVlN0cmluZ0BXVEZAQElAWiwgP2xheWVyVHJlZUFzVGV4dEBGcmFtZUBXZWJD
b3JlQEBRRUJBP0FWU3RyaW5nQFdURkBASUBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/
dHJhY2tlZFJlcGFpbnRSZWN0c0FzVGV4dEBGcmFtZUBXZWJDb3JlQEBRQkU/QVZTdHJpbmdAV1RG
QEBYWiwgP3RyYWNrZWRSZXBhaW50UmVjdHNBc1RleHRARnJhbWVAV2ViQ29yZUBAUUVCQT9BVlN0
cmluZ0BXVEZAQFhaKQpAQCAtNDYzLDggKzQ1OCw2IEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9s
V2l0aFBvaW50ZXIoP2NhY2hlU3RvcmFnZUBXZWJDb3JlQEBZQUFBVkFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlQDFAWFosID9jYWNoZVN0b3JhZ2VAV2ViQ29yZUBAWUFBRUFWQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2VAMUBYWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3NldERlZmF1bHRPcmln
aW5RdW90YUBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUBXZWJDb3JlQEBRQUVYX0pAWiwgP3NldERl
ZmF1bHRPcmlnaW5RdW90YUBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUBXZWJDb3JlQEBRRUFBWF9K
QFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD92bUBTY3JpcHRFeGVjdXRpb25Db250ZXh0
QFdlYkNvcmVAQFFBRVBBVlZNQEpTQ0BAWFosID92bUBTY3JpcHRFeGVjdXRpb25Db250ZXh0QFdl
YkNvcmVAQFFFQUFQRUFWVk1ASlNDQEBYWikKLSNpZiBfTVNDX1ZFUiA+PSAxODAwCiAgICAgICAg
IHN5bWJvbFdpdGhQb2ludGVyKD9jb21wbGV0ZVVSTEBEb2N1bWVudEBXZWJDb3JlQEBVQkU/QVZV
UkxAMkBBQlZTdHJpbmdAV1RGQEBAWiwgP2NvbXBsZXRlVVJMQERvY3VtZW50QFdlYkNvcmVAQFVC
RUE/QVZVUkxAMkBBRUJWU3RyaW5nQFdURkBAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVy
KD8/MURPTVdpbmRvd0BXZWJDb3JlQEBVQUVAWFosID8/MURPTVdpbmRvd0BXZWJDb3JlQEBVRUFB
QFhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dmlzaWJsZUNvbnRlbnRSZWN0QFNjcm9s
bFZpZXdAV2ViQ29yZUBAVUJFP0FWSW50UmVjdEAyQFc0VmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVk
ZXNTY3JvbGxiYXJzQFNjcm9sbGFibGVBcmVhQDJAQFosID92aXNpYmxlQ29udGVudFJlY3RAU2Ny
b2xsVmlld0BXZWJDb3JlQEBVRUFBP0FWSW50UmVjdEAyQFc0VmlzaWJsZUNvbnRlbnRSZWN0SW5j
bHVkZXNTY3JvbGxiYXJzQFNjcm9sbGFibGVBcmVhQDJAQFopCi0jZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219349</attachid>
            <date>2013-12-16 13:56:08 -0800</date>
            <delta_ts>2013-12-16 14:41:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125795-20131216135605.patch</filename>
            <type>text/plain</type>
            <size>20521</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwNjU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDEzLTEyLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIFJlbW92ZSBkZWFkIGNvZGUgYWZ0ZXIgY29udmVyc2lvbiB0byBWUzIwMTMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTc5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL3Rlc3Rz
L3Rlc3RhcGkuYzogUmVtb3ZlIGxvY2FsIG5hbiBpbXBsZW1lbnRhdGlvbgorCiAyMDEzLTEyLTE2
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Rml4ZWQgV2luNjQgYnVpbGQgb24gVlMyMDEzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmMJKHJldmlzaW9uIDE2MDY1MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCSh3b3JraW5nIGNvcHkpCkBAIC00MywyMiArNDMs
NiBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgogCi0jaWYgQ09NUElMRVIoTVNWQykK
LQotI2lmIF9NU0NfVkVSIDwgMTgwMAotI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0KLXN0
YXRpYyBkb3VibGUgbmFuKGNvbnN0IGNoYXIqKQotewotICAgIHJldHVybiBzdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwotfQotCi11c2luZyBzdGQ6OmlzaW5mOwotdXNp
bmcgc3RkOjppc25hbjsKLSNlbmRpZgotCi0jZW5kaWYKLQogI2lmIEpTQ19PQkpDX0FQSV9FTkFC
TEVECiB2b2lkIHRlc3RPYmplY3RpdmVDQVBJKHZvaWQpOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNp
b24gMTYwNjU3KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMCBAQAorMjAxMy0xMi0xNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2luXSBSZW1vdmUgZGVhZCBjb2RlIGFmdGVyIGNvbnZlcnNpb24gdG8g
VlMyMDEzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjU3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9Bc3NlcnRpb25zLmg6IEluY2x1ZGUgPGludHR5cGVzLmg+IG5vdyB0aGF0IGl0IGV4aXN0
cy4KKyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDogVXBkYXRlIGNvbXBpbGVyIGNoZWNrcyBmb3Ig
VlMyMDEzLCBhbmQKKyAgICAgICAgZW5hYmxlIHN1cHBvcnQgZm9yIE5FVkVSX0lOTElORQorICAg
ICAgICAqIHd0Zi9IYXNoRnVuY3Rpb25zLmg6CisgICAgICAgIChXVEY6OlB0ckhhc2g6Omhhc2gp
OiBSZW1vdmUgY29tcGlsZXIgd29ya2Fyb3VuZC4KKyAgICAgICAgKiB3dGYvTWF0aEV4dHJhcy5o
OiBSZW1vdmUgQzk5IGZ1bmN0aW9ucyB0aGF0IGFyZSBub3cgc3VwcGxpZWQKKyAgICAgICAgYnkg
dGhlIE1TIHJ1bnRpbWUgbGlicmFyeS4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDogUmVtb3Zl
IG9sZCBNU1ZDIHN1cHBvcnQgZmxhZ3MuCisgICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOiBS
ZW1vdmUgb2xkIE1TVkMgd29ya2Fyb3VuZCBjb2RlLgorCiAyMDEzLTEyLTE2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4ZWQgV2luNjQg
YnVpbGQgb24gVlMyMDEzLgpJbmRleDogU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAkocmV2aXNpb24gMTYwNjUwKQor
KysgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCAr
MzYsMTAgQEAKICAgIERlZmluaW5nIGFueSBvZiB0aGUgc3ltYm9scyBleHBsaWNpdGx5IHByZXZl
bnRzIHRoaXMgZnJvbSBoYXZpbmcgYW55IGVmZmVjdC4KICovCiAKLSNpbmNsdWRlIDx3dGYvUGxh
dGZvcm0uaD4KLQorI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAj
aW5jbHVkZSA8c3RkZGVmLmg+Ci0KLSNpZiAhQ09NUElMRVIoTVNWQykKLSNpbmNsdWRlIDxpbnR0
eXBlcy5oPgotI2VuZGlmCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKICNpZmRlZiBOREVC
VUcKIC8qIERpc2FibGUgQVNTRVJUKiBtYWNyb3MgaW4gcmVsZWFzZSBtb2RlLiAqLwpJbmRleDog
U291cmNlL1dURi93dGYvQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9D
b21waWxlci5oCShyZXZpc2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9Db21waWxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw0MyArNjUsMzAgQEAKICNlbmRpZgogCiAvKiBDT01QSUxF
UihNU1ZDKSAtIE1pY3Jvc29mdCBWaXN1YWwgQysrICovCi0vKiBDT01QSUxFUihNU1ZDOV9PUl9M
T1dFUikgLSBNaWNyb3NvZnQgVmlzdWFsIEMrKyAyMDA4IG9yIGxvd2VyKi8KICNpZiBkZWZpbmVk
KF9NU0NfVkVSKQotI2RlZmluZSBXVEZfQ09NUElMRVJfTVNWQyAxCi0jaWYgX01TQ19WRVIgPCAx
NjAwCi0jZGVmaW5lIFdURl9DT01QSUxFUl9NU1ZDOV9PUl9MT1dFUiAxCisjaWYgX01TQ19WRVIg
PCAxODAwCisjZXJyb3IgIlBsZWFzZSB1c2UgYSBuZXdlciB2ZXJzaW9uIG9mIFZpc3VhbCBTdHVk
aW8uIFdlYktpdCByZXF1aXJlcyBWUzIwMTMgb3IgbmV3ZXJlIHRvIGNvbXBpbGUuIgogI2VuZGlm
CisjZGVmaW5lIFdURl9DT01QSUxFUl9NU1ZDIDEKIAogLyogU3BlY2lmaWMgY29tcGlsZXIgZmVh
dHVyZXMgKi8KLSNpZiAhQ09NUElMRVIoQ0xBTkcpICYmIF9NU0NfVkVSID49IDE2MDAKKyNpZiAh
Q09NUElMRVIoQ0xBTkcpCiAjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19DWFhfTlVMTFBU
UiAxCiAjZW5kaWYKIAogI2lmICFDT01QSUxFUihDTEFORykKICNkZWZpbmUgV1RGX0NPTVBJTEVS
X1NVUFBPUlRTX0NYWF9PVkVSUklERV9DT05UUk9MIDEKLSNpZiAhZGVmaW5lZChfTVNDX1ZFUikg
fHwgX01TQ19WRVIgPCAxODAwCi0jZGVmaW5lIFdURl9DT01QSUxFUl9RVUlSS19GSU5BTF9JU19D
QUxMRURfU0VBTEVEIDEKLSNlbmRpZgogI2VuZGlmCiAKLS8qIENoZWNrIGZvciBWUzIwMTAgb3Ig
bmV3ZXIgKi8KLSNpZiBfTVNDX1ZFUiA+PSAxNjAwCiAjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQ
T1JUU19DWFhfUlZBTFVFX1JFRkVSRU5DRVMgMQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9S
VFNfQ1hYX1NUQVRJQ19BU1NFUlQgMQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfQ1hY
X0FVVE9fVFlQRSAxCi0jZW5kaWYKLQotI2lmIF9NU0NfVkVSID49IDE3MDAKICNkZWZpbmUgV1RG
X0NPTVBJTEVSX1NVUFBPUlRTX0NYWF9TVFJPTkdfRU5VTVMgMQogI2RlZmluZSBXVEZfQ09NUElM
RVJfU1VQUE9SVFNfQ1hYX09WRVJSSURFX0NPTlRST0wgMQotI2VuZGlmCi0KLSNpZiBfTVNDX1ZF
UiA+PSAxODAwCiAjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19DWFhfREVMRVRFRF9GVU5D
VElPTlMgMQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfQ1hYX0VYUExJQ0lUX0NPTlZF
UlNJT05TIDEKICNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0NYWF9HRU5FUkFMSVpFRF9J
TklUSUFMSVpFUlMgMQogI2RlZmluZSBXVEZfQ09NUElMRVJfU1VQUE9SVFNfQ1hYX1ZBUklBRElD
X1RFTVBMQVRFUyAxCi0jZW5kaWYKIAogI2VuZGlmIC8qIGRlZmluZWQoX01TQ19WRVIpICovCiAK
QEAgLTIyMyw2ICsyMTAsOCBAQAogI2lmbmRlZiBORVZFUl9JTkxJTkUKICNpZiBDT01QSUxFUihH
Q0MpCiAjZGVmaW5lIE5FVkVSX0lOTElORSBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKQor
I2VsaWYgQ09NUElMRVIoTVNWQykgfHwgQ09NUElMRVIoUlZDVCkKKyNkZWZpbmUgTkVWRVJfSU5M
SU5FIF9fZGVjbHNwZWMobm9pbmxpbmUpCiAjZWxzZQogI2RlZmluZSBORVZFUl9JTkxJTkUKICNl
bmRpZgpAQCAtMzQ5LDYgKzMzOCw0IEBACiAjZGVmaW5lIFVOVVNFRF9MQUJFTChsYWJlbCkgVU5V
U0VEX1BBUkFNKCYmIGxhYmVsKQogI2VuZGlmCiAKLQotCiAjZW5kaWYgLyogV1RGX0NvbXBpbGVy
X2ggKi8KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hGdW5jdGlvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9IYXNoRnVuY3Rpb25zLmgJKHJldmlzaW9uIDE2MDY1MCkKKysrIFNv
dXJjZS9XVEYvd3RmL0hhc2hGdW5jdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDE0ICsx
MjIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
UHRySGFzaCB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFQga2V5KQogICAgICAgICB7
Ci0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEgd2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJu
aW5nKGRpc2FibGU6IDQyNDQpIC8vIHdvcmsgYXJvdW5kIHdoYXQgc2VlbXMgdG8gYmUgYSBidWcg
aW4gTVNWQydzIGNvbnZlcnNpb24gd2FybmluZ3MKLSNlbmRpZgogICAgICAgICAgICAgcmV0dXJu
IEludEhhc2g8dWludHB0cl90Pjo6aGFzaChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oa2V5
KSk7Ci0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEgd2FybmluZyhwb3ApCi0jZW5kaWYKICAg
ICAgICAgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChUIGEsIFQgYikgeyByZXR1cm4gYSA9
PSBiOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKQEAgLTE3Nyw3ICsxNzAsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxsb25nIGxvbmc+IHsgdHlwZWRlZiBJbnRIYXNo
PHVuc2lnbmVkIGxvbmcgbG9uZz4gSGFzaDsgfTsKICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZh
dWx0SGFzaDx1bnNpZ25lZCBsb25nIGxvbmc+IHsgdHlwZWRlZiBJbnRIYXNoPHVuc2lnbmVkIGxv
bmcgbG9uZz4gSGFzaDsgfTsKIAotI2lmICFDT01QSUxFUihNU1ZDKSB8fCBkZWZpbmVkKF9OQVRJ
VkVfV0NIQVJfVF9ERUZJTkVEKQorI2lmIGRlZmluZWQoX05BVElWRV9XQ0hBUl9UX0RFRklORUQp
CiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8d2NoYXJfdD4geyB0eXBlZGVmIElu
dEhhc2g8d2NoYXJfdD4gSGFzaDsgfTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9N
YXRoRXh0cmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCShy
ZXZpc2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMSwxMTcgKzEyMSwxMiBAQCBpbmxpbmUgYm9vbCBzaWduYml0KGRvdWJsZSB4
KSB7IHN0cnVjdCBpCiAKICNlbmRpZgogCi0jaWYgQ09NUElMRVIoTVNWQykKLQotI2lmIF9NU0Nf
VkVSIDwgMTgwMAotLy8gV2UgbXVzdCBub3QgZG8gJ251bSArIDAuNScgb3IgJ251bSAtIDAuNScg
YmVjYXVzZSB0aGV5IGNhbiBjYXVzZSBwcmVjaXNpb24gbG9zcy4KLXN0YXRpYyBkb3VibGUgcm91
bmQoZG91YmxlIG51bSkKLXsKLSAgICBkb3VibGUgaW50ZWdlciA9IGNlaWwobnVtKTsKLSAgICBp
ZiAobnVtID4gMCkKLSAgICAgICAgcmV0dXJuIGludGVnZXIgLSBudW0gPiAwLjUgPyBpbnRlZ2Vy
IC0gMS4wIDogaW50ZWdlcjsKLSAgICByZXR1cm4gaW50ZWdlciAtIG51bSA+PSAwLjUgPyBpbnRl
Z2VyIC0gMS4wIDogaW50ZWdlcjsKLX0KLXN0YXRpYyBmbG9hdCByb3VuZGYoZmxvYXQgbnVtKQot
ewotICAgIGZsb2F0IGludGVnZXIgPSBjZWlsZihudW0pOwotICAgIGlmIChudW0gPiAwKQotICAg
ICAgICByZXR1cm4gaW50ZWdlciAtIG51bSA+IDAuNWYgPyBpbnRlZ2VyIC0gMS4wZiA6IGludGVn
ZXI7Ci0gICAgcmV0dXJuIGludGVnZXIgLSBudW0gPj0gMC41ZiA/IGludGVnZXIgLSAxLjBmIDog
aW50ZWdlcjsKLX0KLQotaW5saW5lIGxvbmcgbG9uZyBsbHJvdW5kKGRvdWJsZSBudW0pIHsgcmV0
dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4ocm91bmQobnVtKSk7IH0KLWlubGluZSBsb25nIGxv
bmcgbGxyb3VuZGYoZmxvYXQgbnVtKSB7IHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHJv
dW5kZihudW0pKTsgfQotaW5saW5lIGxvbmcgbHJvdW5kKGRvdWJsZSBudW0pIHsgcmV0dXJuIHN0
YXRpY19jYXN0PGxvbmc+KHJvdW5kKG51bSkpOyB9Ci1pbmxpbmUgbG9uZyBscm91bmRmKGZsb2F0
IG51bSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4ocm91bmRmKG51bSkpOyB9Ci1pbmxpbmUg
ZG91YmxlIHRydW5jKGRvdWJsZSBudW0pIHsgcmV0dXJuIG51bSA+IDAgPyBmbG9vcihudW0pIDog
Y2VpbChudW0pOyB9Ci0KLWlubGluZSBkb3VibGUgcmVtYWluZGVyKGRvdWJsZSBudW1lcmF0b3Is
IGRvdWJsZSBkZW5vbWluYXRvcikKLXsKLSAgICBkb3VibGUgcmVzdWx0ID0gZm1vZChudW1lcmF0
b3IsIGRlbm9taW5hdG9yKTsKLSAgICBpZiAocmVzdWx0ID4gMC41ICogZGVub21pbmF0b3IpCi0g
ICAgICAgIHJldHVybiByZXN1bHQgLSBkZW5vbWluYXRvcjsKLQotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KLWlubGluZSBkb3VibGUgYXNpbmgoZG91YmxlIGQpCi17Ci0gICAgcmV0dXJuIGxvZyhk
ICsgc3FydChkICogZCArIDEuMCkpOwotfQotCi1pbmxpbmUgZG91YmxlIGFjb3NoKGRvdWJsZSBk
KQotewotICAgIHJldHVybiBsb2coZCArIHNxcnQoZCArIDEpICogc3FydChkIC0gMSkpOwotfQot
Ci1pbmxpbmUgZG91YmxlIGF0YW5oKGRvdWJsZSBkKQotewotICAgIHJldHVybiAobG9nKCgxLjAg
KyBkKSAvICgxLjAgLSBkKSkpIC8gMi4wOwotfQotCi1pbmxpbmUgZG91YmxlIGV4cG0xKGRvdWJs
ZSBkKQotewotICAgIHJldHVybiBleHAoZCkgLSAxLjA7Ci19Ci0KLWlubGluZSBkb3VibGUgbG9n
MXAoZG91YmxlIGQpCi17Ci0gICAgcmV0dXJuIGxvZygxLjAgKyBkKTsKLX0KLQotaW5saW5lIGRv
dWJsZSBjYnJ0KGRvdWJsZSBkKQotewotICAgIHJldHVybiBwb3coZCwgMS4wIC8gMy4wKTsKLX0K
LQotI2VuZGlmCi0KLSNlbmRpZgotCiAjaWYgQ09NUElMRVIoR0NDKSAmJiBPUyhRTlgpCiAvLyBU
aGUgc3RkbGliIG9uIFFOWCBkb2Vzbid0IGNvbnRhaW4gbG9uZyBhYnMobG9uZykuIFNlZSBQUiAj
MTA0NjY2LgogaW5saW5lIGxvbmcgbG9uZyBhYnMobG9uZyBudW0pIHsgcmV0dXJuIGxhYnMobnVt
KTsgfQogI2VuZGlmCiAKICNpZiBDT01QSUxFUihNU1ZDKQotLy8gTVNWQydzIG1hdGguaCBkb2Vz
IG5vdCBjdXJyZW50bHkgc3VwcGx5IGxvZzIgb3IgbG9nMmYuCi1pbmxpbmUgZG91YmxlIGxvZzIo
ZG91YmxlIG51bSkKLXsKLSAgICAvLyBUaGlzIGNvbnN0YW50IGlzIHJvdWdobHkgTV9MTjIsIHdo
aWNoIGlzIG5vdCBwcm92aWRlZCBieSBkZWZhdWx0IG9uIFdpbmRvd3MuCi0gICAgcmV0dXJuIGxv
ZyhudW0pIC8gMC42OTMxNDcxODA1NTk5NDUzMDk0MTcyMzIxMjE0NTgxNzY1Njg7Ci19Ci0KLWlu
bGluZSBmbG9hdCBsb2cyZihmbG9hdCBudW0pCi17Ci0gICAgLy8gVGhpcyBjb25zdGFudCBpcyBy
b3VnaGx5IE1fTE4yLCB3aGljaCBpcyBub3QgcHJvdmlkZWQgYnkgZGVmYXVsdCBvbiBXaW5kb3dz
LgotICAgIHJldHVybiBsb2dmKG51bSkgLyAwLjY5MzE0NzE4MDU1OTk0NTMwOTQxNzIzMjEyMTQ1
ODE3NjU2OGY7Ci19Ci0jZW5kaWYKLQotI2lmIENPTVBJTEVSKE1TVkMpCi0vLyBUaGUgNjRiaXQg
dmVyc2lvbiBvZiBhYnMoKSBpcyBhbHJlYWR5IGRlZmluZWQgaW4gc3RkbGliLmggd2hpY2ggY29t
ZXMgd2l0aCBWQzEwCi0jaWYgQ09NUElMRVIoTVNWQzlfT1JfTE9XRVIpCi1pbmxpbmUgbG9uZyBs
b25nIGFicyhsb25nIGxvbmcgbnVtKSB7IHJldHVybiBfYWJzNjQobnVtKTsgfQotI2VuZGlmCi0K
LSNpZiBfTVNDX1ZFUiA8IDE4MDAKLQotbmFtZXNwYWNlIHN0ZCB7Ci0KLWlubGluZSBib29sIGlz
aW5mKGRvdWJsZSBudW0pIHsgcmV0dXJuICFfZmluaXRlKG51bSkgJiYgIV9pc25hbihudW0pOyB9
Ci1pbmxpbmUgYm9vbCBpc25hbihkb3VibGUgbnVtKSB7IHJldHVybiAhIV9pc25hbihudW0pOyB9
Ci1pbmxpbmUgYm9vbCBpc2Zpbml0ZShkb3VibGUgeCkgeyByZXR1cm4gX2Zpbml0ZSh4KTsgfQot
aW5saW5lIGJvb2wgc2lnbmJpdChkb3VibGUgbnVtKSB7IHJldHVybiBfY29weXNpZ24oMS4wLCBu
dW0pIDwgMDsgfQotCi19IC8vIG5hbWVzcGFjZSBzdGQKLQotI2VuZGlmCi0KLWlubGluZSBkb3Vi
bGUgbmV4dGFmdGVyKGRvdWJsZSB4LCBkb3VibGUgeSkgeyByZXR1cm4gX25leHRhZnRlcih4LCB5
KTsgfQotaW5saW5lIGZsb2F0IG5leHRhZnRlcmYoZmxvYXQgeCwgZmxvYXQgeSkgeyByZXR1cm4g
eCA+IHkgPyB4IC0gRkxUX0VQU0lMT04gOiB4ICsgRkxUX0VQU0lMT047IH0KLQotaW5saW5lIGRv
dWJsZSBjb3B5c2lnbihkb3VibGUgeCwgZG91YmxlIHkpIHsgcmV0dXJuIF9jb3B5c2lnbih4LCB5
KTsgfQogCiAvLyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBXaW4sIHdoZXJlIGF0YW4yKCstaW5maW5p
dHksICstaW5maW5pdHkpIHlpZWxkcyBOYU4gaW5zdGVhZCBvZiBzcGVjaWZpYyB2YWx1ZXMuCiBl
eHRlcm4gIkMiIGlubGluZSBkb3VibGUgd3RmX2F0YW4yKGRvdWJsZSB4LCBkb3VibGUgeSkKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTYwNjUwKQorKysgU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAkod29ya2luZyBjb3B5KQpAQCAtOTM1LDcgKzkzNSw3IEBACiAgICBzaW5jZSBtb3N0IHBv
cnRzIHRyeSB0byBzdXBwb3J0IHN1Yi1wcm9qZWN0IGluZGVwZW5kZW5jZSwgYWRkaW5nIG5ldyBo
ZWFkZXJzCiAgICB0byBXVEYgY2F1c2VzIG1hbnkgcG9ydHMgdG8gYnJlYWssIGFuZCBzbyB0aGlz
IHdheSB3ZSBjYW4gYWRkcmVzcyB0aGUgYnVpbGQKICAgIGJyZWFrYWdlcyBvbmUgcG9ydCBhdCBh
IHRpbWUuICovCi0jaWYgIWRlZmluZWQoV1RGX1VTRV9FWFBPUlRfTUFDUk9TKSAmJiAoUExBVEZP
Uk0oTUFDKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19W
RVIgPj0gMTYwMCkpKQorI2lmICFkZWZpbmVkKFdURl9VU0VfRVhQT1JUX01BQ1JPUykgJiYgKFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSkKICNkZWZpbmUgV1RGX1VTRV9FWFBPUlRfTUFD
Uk9TIDEKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMTYwNjUw
KQorKysgU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
MCw3ICszMTAsNyBAQCBpbmxpbmUgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgTm90TnVsCiAg
ICAgcmV0dXJuIGxvY2F0aW9uOwogfQogCi0jaWYgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0Nf
VkVSIDwgMTcwMCkgfHwgKENPTVBJTEVSKEdDQykgJiYgIUNPTVBJTEVSKENMQU5HKSAmJiAhR0ND
X1ZFUlNJT05fQVRfTEVBU1QoNCwgOCwgMSkpCisjaWYgKENPTVBJTEVSKEdDQykgJiYgIUNPTVBJ
TEVSKENMQU5HKSAmJiAhR0NDX1ZFUlNJT05fQVRfTEVBU1QoNCwgOCwgMSkpCiAKIC8vIFdvcmst
YXJvdW5kIGZvciBQcmUtQysrMTEgc3ludGF4IGluIE1TVkMgMjAxMCwgYW5kIHByaW9yIGFzIHdl
bGwgYXMgR0NDIDwgNC44LjEuCiBuYW1lc3BhY2Ugc3RkIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE2MDY1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE5IEBACisyMDEzLTEyLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgorCisgICAgICAgIFtXaW5dIFJlbW92ZSBkZWFkIGNvZGUgYWZ0ZXIgY29udmVyc3Rp
b24gdG8gVlMyMDEzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjU3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVQcmVmaXguaDogUmVtb3ZlIFZTMjAxMiBpbmNsdWRlIGtsdWRnZS4KKyAg
ICAgICAgKiBsb2FkZXIvRlRQRGlyZWN0b3J5UGFyc2VyLmNwcDogUmVtb3ZlIGdtdGltZSB3b3Jr
YXJvdW5kIGNvZGUuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBSZW1vdmUgb2xkZXIg
cG9pbnRlci1iYXNlZCBvcGVuIGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93Lmg6IERpdHRvCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3Ry
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RW5jb2RpbmdOYW1lSGFzaDo6ZXF1YWwpOiBS
ZW1vdmUgb3B0aW1pemF0aW9uIGJ1ZyB3b3JrYXJvdW5kCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvcGVuRHVtbXlJbnNwZWN0
b3JGcm9udGVuZCk6IFJlbW92ZSBjb21waWxlciB3b3JrYXJvdW5kCisKIDIwMTMtMTItMTYgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXhl
ZCBXaW42NCBidWlsZCBvbiBWUzIwMTMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJl
Zml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCShyZXZp
c2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMCwyNSArMTMwLDYgQEAgX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURAogI2lm
IE9TKFdJTkRPV1MpCiAjaWYgVVNFKENHKQogCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01T
Q19WRVIgPD0gMTYwMAotCi0jaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSGVhZGVyRGV0ZWN0aW9u
Lmg+Ci0KLSNpZiBIQVZFKEFWQ0ZfTEVHSUJMRV9PVVRQVVQpCi0vLyBUaGVzZSBtdXN0IGJlIGRl
ZmluZWQgYmVmb3JlIGluY2x1ZGluZyBDR0Zsb2F0LmgKLS8vIFRoaXMgY2FuIGJlIHJlbW92ZWQg
b25jZSB3ZSBtb3ZlIHRvIFZTMjAxMiBvciBuZXdlcgotI2luY2x1ZGUgPHd0Zi9FeHBvcnRNYWNy
b3MuaD4KLSNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotCi0jZGVmaW5lIGlzbmFuIF9pc25h
bgotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAotI2luY2x1ZGUg
PENvcmVHcmFwaGljcy9DR0Zsb2F0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxDb3JlR3JhcGhpY3Mv
Q29yZUdyYXBoaWNzLmg+Ci0jdW5kZWYgaXNuYW4KLSNlbmRpZgotI2VuZGlmCi0KIC8vIEZJWE1F
IDxyZGFyOi8vcHJvYmxlbS84MjA4ODY4PiBSZW1vdmUgc3VwcG9ydCBmb3Igb2Jzb2xldGUgQ29s
b3JTeW5jIEFQSSwgQ29yZVNlcnZpY2VzIGhlYWRlciBpbiBDb3JlR3JhcGhpY3MKIC8vIFdlIGNh
biByZW1vdmUgdGhpcyBvbmNlIHRoZSBuZXcgQ29sb3JTeW5jIEFQSXMgYXJlIGF2YWlsYWJsZSBp
biBhbiBpbnRlcm5hbCBTYWZhcmkgU0RLLgogI2luY2x1ZGUgPENvbG9yU3luYy9Db2xvclN5bmMu
aD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3Bw
CShyZXZpc2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRlRQRGlyZWN0b3J5
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDIgQ3lydXMgUGF0ZWwgPGN5cEBmYjE0LnVuaS1tYWluei5kZT4KLSAqICAgICAg
ICAgICAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAg
ICAgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTM2LDExICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICNpZiBPUyhXSU5ET1dTKSAmJiAhZGVmaW5lZChnbXRpbWVfcikK
LSNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTQwMCkgCiAjZGVmaW5lIGdt
dGltZV9yKHgsIHkpIGdtdGltZV9zKCh5KSwgKHgpKQotI2Vsc2UgLyogIV9NU0NfVkVSICovIAot
I2RlZmluZSBnbXRpbWVfcih4LHkpIChnbXRpbWUoeCk/KCooeSk9KmdtdGltZSh4KSwoeSkpOjAp
Ci0jZW5kaWYKICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIEZUUEVudHJ5VHlwZSBQYXJzaW5nRmFp
bGVkKExpc3RTdGF0ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShy
ZXZpc2lvbiAxNjA2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5MDAsMTUgKzE5MDAsNiBAQCBQYXNzUmVmUHRyPEZyYW1lPiBET01X
aW5kb3c6OmNyZWF0ZVdpbmRvCiAgICAgcmV0dXJuIG5ld0ZyYW1lLnJlbGVhc2UoKTsKIH0KIAot
I2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSIDw9IDE3MDAKLS8vIFdvcmsgYXJvdW5k
IGEgY29tcGlsZXIgYnVnIGluIFZpc3VhbCBTdHVkaW86Ci1QYXNzUmVmUHRyPERPTVdpbmRvdz4g
RE9NV2luZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZywKLSAgICBE
T01XaW5kb3cqIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93KiBmaXJzdFdpbmRvdykKLXsKLSAgICBy
ZXR1cm4gb3Blbih1cmxTdHJpbmcsIGZyYW1lTmFtZSwgd2luZG93RmVhdHVyZXNTdHJpbmcsICph
Y3RpdmVXaW5kb3csICpmaXJzdFdpbmRvdyk7Ci19Ci0jZW5kaWYKLQogUGFzc1JlZlB0cjxET01X
aW5kb3c+IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRv
bWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFN0cmluZyYgd2luZG93RmVhdHVyZXNTdHJpbmcs
CiAgICAgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3cpCiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDE2MDY1MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MCwxMCArMTYw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFBhc3NSZWZQdHI8RE9NV2luZG93
PiBvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1l
TmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZywKICAgICAgICAgICAgIERP
TVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93KTsKLSNpZiBkZWZp
bmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8PSAxNzAwCi0gICAgICAgIFBhc3NSZWZQdHI8RE9N
V2luZG93PiBvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcm
IGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZywKLSAgICAgICAg
ICAgIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KTsKLSNl
bmRpZgogCiAgICAgICAgIHR5cGVkZWYgdm9pZCAoKlByZXBhcmVEaWFsb2dGdW5jdGlvbikoRE9N
V2luZG93Kiwgdm9pZCogY29udGV4dCk7CiAgICAgICAgIHZvaWQgc2hvd01vZGFsRGlhbG9nKGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYXR1cmVzU3RyaW5n
LApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3Ry
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDE2MDY1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
NSwxOSArNjUsMTAgQEAgc3RydWN0IFRleHRFbmNvZGluZ05hbWVIYXNoIHsKICAgICAgICAgY2hh
ciBjMTsKICAgICAgICAgY2hhciBjMjsKICAgICAgICAgZG8gewotI2lmIGRlZmluZWQoX01TQ19W
RVIpICYmIF9NU0NfVkVSID09IDE3MDAKLSAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIGEg
YnVnIGluIHRoZSBWUzIwMTIgVXBkYXRlMSBhbmQgVXBkYXRlMiBvcHRpbWl6ZXIsIHJlbW92ZSBv
bmNlIHRoZSBmaXggaXMgcmVsZWFzZWQuCi0gICAgICAgICAgICAvLyBodHRwczovL2Nvbm5lY3Qu
bWljcm9zb2Z0LmNvbS9WaXN1YWxTdHVkaW8vZmVlZGJhY2svZGV0YWlscy83ODExODkvdnMyMDEy
LXVwZGF0ZS1jdHA0LWMtb3B0aW1pemluZy1idWcKLSAgICAgICAgICAgIGMxID0gdG9BU0NJSUxv
d2VyKCpzMSsrKTsKLSAgICAgICAgICAgIGMyID0gdG9BU0NJSUxvd2VyKCpzMisrKTsKLSAgICAg
ICAgICAgIGlmIChjMSAhPSBjMikKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZWxz
ZQogICAgICAgICAgICAgYzEgPSAqczErKzsKICAgICAgICAgICAgIGMyID0gKnMyKys7CiAgICAg
ICAgICAgICBpZiAodG9BU0NJSUxvd2VyKGMxKSAhPSB0b0FTQ0lJTG93ZXIoYzIpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogICAgICAgICB9IHdoaWxlIChjMSAmJiBj
Mik7CiAgICAgICAgIHJldHVybiAhYzEgJiYgIWMyOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDE2MDY1MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzNywxMSArMTUzNyw3
IEBAIFBhc3NSZWZQdHI8RE9NV2luZG93PiBJbnRlcm5hbHM6Om9wZW5EdW0KICAgICBET01XaW5k
b3cqIHdpbmRvdyA9IHBhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmRvbVdpbmRvdygpOwog
ICAgIEFTU0VSVCh3aW5kb3cpOwogCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIg
PD0gMTcwMAotICAgIG1fZnJvbnRlbmRXaW5kb3cgPSB3aW5kb3ctPm9wZW4odXJsLCAiIiwgIiIs
IHdpbmRvdywgd2luZG93KTsgLy8gV29yayBhcm91bmQgYnVnIGluIFZTMjAxMCBhbmQgZWFybGll
cgotI2Vsc2UKICAgICBtX2Zyb250ZW5kV2luZG93ID0gd2luZG93LT5vcGVuKHVybCwgIiIsICIi
LCAqd2luZG93LCAqd2luZG93KTsKLSNlbmRpZgogICAgIEFTU0VSVChtX2Zyb250ZW5kV2luZG93
KTsKIAogICAgIFBhZ2UqIGZyb250ZW5kUGFnZSA9IG1fZnJvbnRlbmRXaW5kb3ctPmRvY3VtZW50
KCktPnBhZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjA2NTcpCisrKyBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEyLTE2
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFJl
bW92ZSBkZWFkIGNvZGUgYWZ0ZXIgY29udmVyc2lvbiB0byBWUzIwMTMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTc5NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluOgorICAgICAgICBSZW1vdmUgdW51
c2VkIGZ1bmN0aW9uIGV4cG9ydHMuCisKIDIwMTMtMTItMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXhlZCBXaW42NCBidWlsZCBvbiBW
UzIwMTMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdl
bmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5p
bgkocmV2aXNpb24gMTYwNjUwKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJL
aXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTM0NywxMiArMzQ3LDcgQEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/cGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FWU3RyaW5n
QFdURkBAUEFWRnJhbWVAMkBISEhISEhIQFosID9wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0BQ
cmludENvbnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RGQEBQRUFWRnJhbWVAMkBISEhISEhI
QFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9jbG9zZUBET01XaW5kb3dAV2ViQ29yZUBA
UUFFWFBBVlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRAMkBAWiwgP2Nsb3NlQERPTVdpbmRvd0BXZWJD
b3JlQEBRRUFBWFBFQVZTY3JpcHRFeGVjdXRpb25Db250ZXh0QDJAQFopCiAgICAgICAgIHN5bWJv
bFdpdGhQb2ludGVyKD9kb2N1bWVudEBET01XaW5kb3dAV2ViQ29yZUBAUUJFUEFWRG9jdW1lbnRA
MkBYWiwgP2RvY3VtZW50QERPTVdpbmRvd0BXZWJDb3JlQEBRRUJBUEVBVkRvY3VtZW50QDJAWFop
Ci0jaWYgX01TQ19WRVIgPCAxODAwCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9vcGVuQERP
TVdpbmRvd0BXZWJDb3JlQEBRQUU/QVY/JFBhc3NSZWZQdHJAVkRPTVdpbmRvd0BXZWJDb3JlQEBA
V1RGQEBBQlZTdHJpbmdANEBBQlZBdG9taWNTdHJpbmdANEAwUEFWMTJAMkBaLCA/b3BlbkBET01X
aW5kb3dAV2ViQ29yZUBAUUVBQT9BVj8kUGFzc1JlZlB0ckBWRE9NV2luZG93QFdlYkNvcmVAQEBX
VEZAQEFFQlZTdHJpbmdANEBBRUJWQXRvbWljU3RyaW5nQDRAMFBFQVYxMkAyQFopCi0jZWxzZQog
ICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/b3BlbkBET01XaW5kb3dAV2ViQ29yZUBAUUFFP0FW
PyRQYXNzUmVmUHRyQFZET01XaW5kb3dAV2ViQ29yZUBAQFdURkBAQUJWU3RyaW5nQDRAQUJWQXRv
bWljU3RyaW5nQDRAMEFBVjEyQDJAWiwgP29wZW5ARE9NV2luZG93QFdlYkNvcmVAQFFFQUE/QVY/
JFBhc3NSZWZQdHJAVkRPTVdpbmRvd0BXZWJDb3JlQEBAV1RGQEBBRUJWU3RyaW5nQDRAQUVCVkF0
b21pY1N0cmluZ0A0QDBBRUFWMTJAMkBaKQotCi0jZW5kaWYKICAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFW
SlNET01HbG9iYWxPYmplY3RAMUBQQVZET01XaW5kb3dAMUBAWiwgP3RvSlNAV2ViQ29yZUBAWUE/
QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBFQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBF
QVZET01XaW5kb3dAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2xheWVyVHJlZUFz
VGV4dEBGcmFtZUBXZWJDb3JlQEBRQkU/QVZTdHJpbmdAV1RGQEBJQFosID9sYXllclRyZWVBc1Rl
eHRARnJhbWVAV2ViQ29yZUBAUUVCQT9BVlN0cmluZ0BXVEZAQElAWikKICAgICAgICAgc3ltYm9s
V2l0aFBvaW50ZXIoP3RyYWNrZWRSZXBhaW50UmVjdHNBc1RleHRARnJhbWVAV2ViQ29yZUBAUUJF
P0FWU3RyaW5nQFdURkBAWFosID90cmFja2VkUmVwYWludFJlY3RzQXNUZXh0QEZyYW1lQFdlYkNv
cmVAQFFFQkE/QVZTdHJpbmdAV1RGQEBYWikKQEAgLTQ2Myw4ICs0NTgsNiBAQCBFWFBPUlRTCiAg
ICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9jYWNoZVN0b3JhZ2VAV2ViQ29yZUBAWUFBQVZBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZUAxQFhaLCA/Y2FjaGVTdG9yYWdlQFdlYkNvcmVAQFlBQUVBVkFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlQDFAWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9z
ZXREZWZhdWx0T3JpZ2luUXVvdGFAQXBwbGljYXRpb25DYWNoZVN0b3JhZ2VAV2ViQ29yZUBAUUFF
WF9KQFosID9zZXREZWZhdWx0T3JpZ2luUXVvdGFAQXBwbGljYXRpb25DYWNoZVN0b3JhZ2VAV2Vi
Q29yZUBAUUVBQVhfSkBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dm1AU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEBXZWJDb3JlQEBRQUVQQVZWTUBKU0NAQFhaLCA/dm1AU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEBXZWJDb3JlQEBRRUFBUEVBVlZNQEpTQ0BAWFopCi0jaWYgX01TQ19WRVIgPj0g
MTgwMAogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/Y29tcGxldGVVUkxARG9jdW1lbnRAV2Vi
Q29yZUBAVUJFP0FWVVJMQDJAQUJWU3RyaW5nQFdURkBAQFosID9jb21wbGV0ZVVSTEBEb2N1bWVu
dEBXZWJDb3JlQEBVQkVBP0FWVVJMQDJAQUVCVlN0cmluZ0BXVEZAQEBaKQogICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/PzFET01XaW5kb3dAV2ViQ29yZUBAVUFFQFhaLCA/PzFET01XaW5kb3dA
V2ViQ29yZUBAVUVBQUBYWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Zpc2libGVDb250
ZW50UmVjdEBTY3JvbGxWaWV3QFdlYkNvcmVAQFVCRT9BVkludFJlY3RAMkBXNFZpc2libGVDb250
ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFyc0BTY3JvbGxhYmxlQXJlYUAyQEBaLCA/dmlzaWJsZUNv
bnRlbnRSZWN0QFNjcm9sbFZpZXdAV2ViQ29yZUBAVUVBQT9BVkludFJlY3RAMkBXNFZpc2libGVD
b250ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFyc0BTY3JvbGxhYmxlQXJlYUAyQEBaKQotI2VuZGlm
Cg==
</data>
<flag name="review"
          id="242964"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>