<?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>125241</bug_id>
          
          <creation_ts>2013-12-04 12:21:15 -0800</creation_ts>
          <short_desc>Add RetainPtr::autorelease to combine leakPtr() + autorelease</short_desc>
          <delta_ts>2016-08-04 14:18:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Brian Burg">burg</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>956518</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2013-12-04 12:21:15 -0800</bug_when>
    <thetext>Client code should not have to worry about calling leakPtr() manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986152</commentid>
    <comment_count>1</comment_count>
      <attachid>225606</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-03-02 12:43:44 -0800</bug_when>
    <thetext>Created attachment 225606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986173</commentid>
    <comment_count>2</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-03-02 14:39:47 -0800</bug_when>
    <thetext>/Volumes/Data/EWS/WebKit/WebKitBuild/Release/usr/local/include/wtf/RetainPtr.h:195:39: error: use of undeclared identifier &apos;CFAutorelease&apos;
        PtrType ptr = fromStorageType(CFAutorelease(m_ptr));
                                      ^
/Volumes/Data/EWS/WebKit/Source/WebCore/bindings/objc/DOM.mm:558:50: note: in instantiation of member function &apos;WTF::RetainPtr&lt;NSImage&gt;::autorelease&apos; requested here
    return createDragImageForNode(*frame, *node).autorelease();
                                                 ^
1 error generated.

No CFAutorelease on Mountain Lion. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986185</commentid>
    <comment_count>3</comment_count>
      <attachid>225606</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 15:23:46 -0800</bug_when>
    <thetext>Comment on attachment 225606
Patch

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

Looks like CFAutorelease is new to Mavericks. We’ll have to do something different to support pre-Mavericks versions of Mac. And maybe something different for Windows too.

r=me, but we need to get this compiling

&gt; Source/WTF/wtf/RetainPtr.h:198
&gt; +    template&lt;typename T&gt; inline typename RetainPtr&lt;T&gt;::PtrType RetainPtr&lt;T&gt;::autorelease()
&gt; +    {
&gt; +        if (!m_ptr)
&gt; +            return 0;
&gt; +        PtrType ptr = fromStorageType(CFAutorelease(m_ptr));
&gt; +        m_ptr = 0;
&gt; +        return ptr;
&gt; +    }

The 0 here should be nullptr.

I am not sure that fromStorageType will always do the right thing with the return value of CFAutorelease. I suggest putting the CFAutorelease on a separate line and ignoring the return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986189</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 15:36:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; No CFAutorelease on Mountain Lion. :(

For MountainLion, we can put a function in some .mm file in WTF that casts the pointer to (id) and then calls -[NSObject autorelease] on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986410</commentid>
    <comment_count>5</comment_count>
      <attachid>225671</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-03-03 11:00:44 -0800</bug_when>
    <thetext>Created attachment 225671
For the mountain lion bots

This adds autorelease implementation for Mountain Lion to AutodrainedMac.mm. Lets see how this one fares.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986839</commentid>
    <comment_count>6</comment_count>
      <attachid>225671</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-04 09:05:45 -0800</bug_when>
    <thetext>Comment on attachment 225671
For the mountain lion bots

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

&gt; Source/WTF/wtf/AutodrainedPoolMac.mm:57
&gt; +#if !PLATFORM(IOS) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &lt; 1090
&gt; +template&lt;typename T&gt; inline typename RetainPtr&lt;T&gt;::PtrType RetainPtr&lt;T&gt;::autorelease()
&gt; +{
&gt; +    if (!m_ptr)
&gt; +        return nullptr;
&gt; +    [(id)m_ptr autorelease];
&gt; +    PtrType ptr = fromStorageType(m_ptr);
&gt; +    m_ptr = nullptr;
&gt; +    return ptr;
&gt; +}
&gt; +#endif

A function template has to be in a header, not an implementation file. I was talking about putting a non-inline function that calls autorelease in the .mm file, which the function template would call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217596</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-04 14:18:20 -0700</bug_when>
    <thetext>We already did this some time ago.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225606</attachid>
            <date>2014-03-02 12:43:44 -0800</date>
            <delta_ts>2014-03-02 15:23:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125241-20140302124343.patch</filename>
            <type>text/plain</type>
            <size>13113</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI2OTZkYzZiOTY0MmU2YzQzZjI4Nzlj
MmY2YjgzMjBkMGNlMTQ1MTYuLmU2MWMyMGI0YTI4MGFkMWZjYzU2YThkODgyNDM2NmE1NzUyMjRk
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDMtMDIgIFByYXRpayBTb2xhbmtpICA8cHNv
bGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXRhaW5QdHI6OmF1dG9yZWxlYXNlIHRv
IGNvbWJpbmUgbGVha1B0cigpICsgYXV0b3JlbGVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTI0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JldGFpblB0ci5oOgorICAgICAgICAoV1RG
OjpSZXRhaW5QdHI8VD46OmF1dG9yZWxlYXNlKToKKwogMjAxNC0wMi0yNiAgR2F2aW4gQmFycmFj
bG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgRmFzdE1hbGxvYyBzaG91
bGQgdXNlIHZtX3BhZ2Vfc2hpZnQgaW50ZWFkIG9mIFBBR0VfU0hJRlQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NThhMWQxNDc1MWI0NWY2MGM5YzYyMzBlNTFhZDdmODYwNDg1NmY4My4uNmE1ZTA2ZWYxZGU5Mjk3
YTU5YmZmMGRjYzhjOWJkNjJjNGRhMzJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDE0LTAzLTAyICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgUmV0YWluUHRyOjphdXRvcmVsZWFzZSB0byBjb21iaW5lIGxlYWtQdHIoKSArIGF1dG9y
ZWxlYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjUyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgZHVlIHRvIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoLVtET01Ob2RlIHJlbmRlcmVkSW1hZ2VdKToK
KyAgICAgICAgKC1bRE9NUmFuZ2UgcmVuZGVyZWRJbWFnZUZvcmNpbmdCbGFja1RleHQ6cmVuZGVy
ZWRJbWFnZUZvcmNpbmdCbGFja1RleHQ6XSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01V
SUtpdEV4dGVuc2lvbnMubW06CisgICAgICAgICgtW0RPTUhUTUxJbWFnZUVsZW1lbnQgZGF0YVJl
cHJlc2VudGF0aW9uOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2ls
bFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxDYWNoZVJl
c3BvbnNlOl0pOgorCiAyMDE0LTAzLTAxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY0OTI5IGFuZCBy
MTY0OTM0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGVlYTlhNzdiMTEzM2E2MDI4MTNjMTEyYzdhZjE2
ZGExOGY5Mzk4MDYuLjU0ZjZlMjNkY2M4YmNkOWE5NWQxZDQ5M2Q5MTc2Y2JjMTliYjE5MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wMy0wMiAgUHJhdGlrIFNvbGFu
a2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldGFpblB0cjo6YXV0b3Jl
bGVhc2UgdG8gY29tYmluZSBsZWFrUHRyKCkgKyBhdXRvcmVsZWFzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1MjQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2Uu
bW06CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgZGF0YV0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZWxlY3Rpb25EcmFnZ2lu
Z0ltYWdlXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNlbGVjdGlvbkltYWdlRm9yY2luZ0Js
YWNrVGV4dDpzZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1RleHQ6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAgICAgKC1bV2ViUmVzb3VyY2UgZGF0YV0pOgorCiAy
MDE0LTAzLTAxICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBzZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1RleHQgc2hvdWxkIHJldHVybiBhdXRv
cmVsZWFzZWQgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjljOWFjMWNhZDFhMTUxY2RkZDE0ODFhNTc3
NTVjZWJkZGU0YTE4Mi4uNjIxNTU3MjIwZDZhOTY3ZTNiMzg4OGVhZWI4NzRiYjI3OTRjODY5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAzLTAyICBQcmF0aWsgU29sYW5raSAg
PHBzb2xhbmtpQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV0YWluUHRyOjphdXRvcmVsZWFz
ZSB0byBjb21iaW5lIGxlYWtQdHIoKSArIGF1dG9yZWxlYXNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjUyNDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVP
YmplY3RDb2Rlci5tbToKKyAgICAgICAgKGRlY29kZU9iamVjdCk6CisgICAgICAgICogU2hhcmVk
L0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoLVtXS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFjZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IG5hdmlnYXRpb25EZWxlZ2F0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgVUlEZWxlZ2F0
ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbG9hZFJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfaGlzdG9yeURlbGVnYXRlXSk6CisKIDIwMTQtMDMtMDEgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRv
IHIxNjQ5MDUgYW5kIHIxNjQ5MTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5Q
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCmluZGV4IDljZjUyNjcwMWVlZjk0ODE3
NzVhZWFlNzkwODVkMWM0YzM2OWNiNmMuLmMzOGFmZjgwYzc2MjgwZjliYWY0NDZmNzEyMDdjYjNh
NWNhZDFmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCkBAIC0xMTQsNiArMTE0LDcgQEAgbmFtZXNwYWNlIFdU
RiB7CiAKICAgICAgICAgdm9pZCBjbGVhcigpOwogICAgICAgICBQdHJUeXBlIGxlYWtSZWYoKSBX
QVJOX1VOVVNFRF9SRVRVUk47CisgICAgICAgIFB0clR5cGUgYXV0b3JlbGVhc2UoKSBXQVJOX1VO
VVNFRF9SRVRVUk47CiAKICAgICAgICAgUHRyVHlwZSBnZXQoKSBjb25zdCB7IHJldHVybiBmcm9t
U3RvcmFnZVR5cGUobV9wdHIpOyB9CiAgICAgICAgIFB0clR5cGUgb3BlcmF0b3ItPigpIGNvbnN0
IHsgcmV0dXJuIGZyb21TdG9yYWdlVHlwZShtX3B0cik7IH0KQEAgLTE4Nyw2ICsxODgsMTUgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIHR5cGVuYW1lIFJldGFpblB0cjxUPjo6UHRyVHlwZSBSZXRh
aW5QdHI8VD46OmF1dG9yZWxlYXNlKCkKKyAgICB7CisgICAgICAgIGlmICghbV9wdHIpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgUHRyVHlwZSBwdHIgPSBmcm9tU3RvcmFnZVR5cGUo
Q0ZBdXRvcmVsZWFzZShtX3B0cikpOworICAgICAgICBtX3B0ciA9IDA7CisgICAgICAgIHJldHVy
biBwdHI7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFpblB0
cjxUPiYgUmV0YWluUHRyPFQ+OjpvcGVyYXRvcj0oY29uc3QgUmV0YWluUHRyJiBvKQogICAgIHsK
ICAgICAgICAgUmV0YWluUHRyIHB0ciA9IG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1t
CmluZGV4IDY1MDA1MjBlNDdkYjMxMjc5OTM5NDI1NmMyMzQ1YjdkZmQwMzc3YmIuLjJiZWQzM2Rl
Nzc4NGUyYjNhOGEzOGYyYTUyMzYzNTc4NDQ0MGUyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NLm1tCkBAIC01NTUsNyArNTU1LDcgQEAgaWQgPERPTUV2ZW50VGFyZ2V0PiBraXQoV2Vi
Q29yZTo6RXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0KQogICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFt
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICBy
ZXR1cm4gbmlsOwotICAgIHJldHVybiBbY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZSgqZnJhbWUsICpu
b2RlKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VG
b3JOb2RlKCpmcmFtZSwgKm5vZGUpLmF1dG9yZWxlYXNlKCk7CiB9CiAjZW5kaWYKIApAQCAtNjEw
LDEyICs2MTAsNyBAQCBpZCA8RE9NRXZlbnRUYXJnZXQ+IGtpdChXZWJDb3JlOjpFdmVudFRhcmdl
dCogZXZlbnRUYXJnZXQpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
I2lmIFBMQVRGT1JNKElPUykKLSAgICBDR0ltYWdlUmVmIGRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJ
bWFnZUZvclJhbmdlKCpmcmFtZSwgKnJhbmdlLCBmb3JjZUJsYWNrVGV4dCkubGVha1JlZigpOwot
ICAgIHJldHVybiBkcmFnSW1hZ2UgPyAoQ0dJbWFnZVJlZilDRkF1dG9yZWxlYXNlKGRyYWdJbWFn
ZSkgOiBuaWw7Ci0jZWxzZQotICAgIHJldHVybiBbY3JlYXRlRHJhZ0ltYWdlRm9yUmFuZ2UoKmZy
YW1lLCAqcmFuZ2UsIGZvcmNlQmxhY2tUZXh0KS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOwotI2Vu
ZGlmCisgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZvclJhbmdlKCpmcmFtZSwgKnJhbmdlLCBm
b3JjZUJsYWNrVGV4dCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAoTlNBcnJheSAqKXRleHRSZWN0
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUtpdEV4dGVu
c2lvbnMubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJS2l0RXh0ZW5zaW9u
cy5tbQppbmRleCA1ZDI0NjMzNGE2OGRiOTNjN2Q4ZGYwNGFkYzE0OGQwZmVmNjVhZTA4Li45MzBj
ZTliODRjOWU3ZDcwOTY5NDRhMjUzZTc2OGZhOGUzYmRkOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQpAQCAtNDg0LDcgKzQ4
NCw3IEBAIHVzaW5nIFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbjsKICAgICBpZiAoIWRhdGEpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgCi0gICAgcmV0dXJuIFtkYXRhLT5jcmVhdGVOU0RhdGEo
KS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBkYXRhLT5jcmVhdGVOU0RhdGEo
KS5hdXRvcmVsZWFzZSgpOwogfQogCiAtIChOU1N0cmluZyAqKW1pbWVUeXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
bW0KaW5kZXggMDQyMTRjMmViYmU4MjAzMTkyZjVhYTBiZmE5OTI1ODJhZmJhZjMzMS4uM2E4ZTM3
M2U1NWViMzMyMDdjM2U3MmQ2MWU0NDE5NGI4ZWJlZTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQpAQCAt
MTM3LDcgKzEzNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIH0pOwogCiAgICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZF
Uik7Ci0gICAgcmV0dXJuIFttX3JlcXVlc3RSZXN1bHQubGVha1JlZigpIGF1dG9yZWxlYXNlXTsK
KyAgICByZXR1cm4gbV9yZXF1ZXN0UmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKEJPT0wp
Y29ubmVjdGlvblNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOihOU1VSTENvbm5lY3Rpb24gKilj
b25uZWN0aW9uCkBAIC0zNTYsNyArMzU2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgfSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3NlbWFwaG9yZSwgRElTUEFU
Q0hfVElNRV9GT1JFVkVSKTsKLSAgICByZXR1cm4gW21fY2FjaGVkUmVzcG9uc2VSZXN1bHQubGVh
a1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gbV9jYWNoZWRSZXNwb25zZVJlc3VsdC5h
dXRvcmVsZWFzZSgpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRh
dGFTb3VyY2UubW0KaW5kZXggNDRmMTQ2NGY5OGIzM2FiMDJiYTk3Mjk4NTdiMmU0YjVjNTUxNzRk
Ni4uNjA4YmQwYTA2MGM1MWEzOTNmNGJhYmMxNmJhOGNjYzkzOGQwN2RkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQpAQCAtNTI2LDcgKzUyNiw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICph
bGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtYWluUmVz
b3VyY2VEYXRhID0gdG9Qcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT5tYWluUmVzb3VyY2VEYXRh
KCk7CiAgICAgaWYgKCFtYWluUmVzb3VyY2VEYXRhKQogICAgICAgICByZXR1cm4gbmlsOwotICAg
IHJldHVybiBbbWFpblJlc291cmNlRGF0YS0+Y3JlYXRlTlNEYXRhKCkubGVha1JlZigpIGF1dG9y
ZWxlYXNlXTsKKyAgICByZXR1cm4gbWFpblJlc291cmNlRGF0YS0+Y3JlYXRlTlNEYXRhKCkuYXV0
b3JlbGVhc2UoKTsKIH0KIAogLSAoaWQgPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+KXJlcHJl
c2VudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBi
N2FhYzMyYzNmNGY3ODM4ODM2ZGY2Zjc1NDdhNTQzMDIzNDZiMTQxLi5hYjVhYzZkNWM4MjUwOWU3
MzM4ZGE2ODQyM2ExNTE0NWQ2MTU2M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0KQEAgLTIwMjEsNyArMjAyMSw3IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJ
c1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgIGlmICghY29yZUZyYW1lKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgTlNJbWFnZSAqZHJhZ0ltYWdlID0gW2NyZWF0ZURy
YWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOwor
ICAgIE5TSW1hZ2UgKmRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29y
ZUZyYW1lKS5hdXRvcmVsZWFzZSgpOwogICAgIFtkcmFnSW1hZ2UgX3dlYl9kaXNzb2x2ZVRvRnJh
Y3Rpb246V2ViRHJhZ0ltYWdlQWxwaGFdOwogICAgIHJldHVybiBkcmFnSW1hZ2U7CiB9CkBAIC02
NTY4LDEyICs2NTY4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1
dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICBpZiAoIWNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDR0lt
YWdlUmVmIGRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1l
LCBmb3JjZUJsYWNrVGV4dCkubGVha1JlZigpOwotICAgIHJldHVybiBkcmFnSW1hZ2UgPyAoQ0dJ
bWFnZVJlZilDRkF1dG9yZWxlYXNlKGRyYWdJbWFnZSkgOiBuaWw7Ci0jZWxzZQotICAgIHJldHVy
biBbY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUsIGZvcmNlQmxhY2tUZXh0
KS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOwotI2VuZGlmCisgICAgcmV0dXJuIGNyZWF0ZURyYWdJ
bWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lLCBmb3JjZUJsYWNrVGV4dCkuYXV0b3JlbGVhc2Uo
KTsKIH0KIAogLSAoTlNSZWN0KXNlbGVjdGlvbkltYWdlUmVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUmVzb3VyY2UubW0KaW5kZXggZWUzMTRjN2I2NWU1Njk1M2VkYTcxY2RiYjk5NjFi
MzExNGE4MDEzMC4uOWU5MjQ3MTJkN2VhNGYyYTc0YWVhY2YxNzNmYjU0ZDQwNmU4ZGQ3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0yMTEsNyArMjExLDcg
QEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViUmVzb3VyY2VSZXNwb25zZUtleSA9ICAgICAg
ICAgIEAiV2ViUmVzb3VyY2VSZXNwb25zZSIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBpZiAo
IV9wcml2YXRlLT5jb3JlUmVzb3VyY2UtPmRhdGEoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAg
ICByZXR1cm4gW19wcml2YXRlLT5jb3JlUmVzb3VyY2UtPmRhdGEoKS0+Y3JlYXRlTlNEYXRhKCku
bGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPmNvcmVSZXNvdXJj
ZS0+ZGF0YSgpLT5jcmVhdGVOU0RhdGEoKS5hdXRvcmVsZWFzZSgpOwogfQogCiAtIChOU1VSTCAq
KVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90
ZU9iamVjdENvZGVyLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90
ZU9iamVjdENvZGVyLm1tCmluZGV4IGRmZDcyMTEyOTE3OGQxODI4NGEzMzdiZmUzYjQ5ZWJmY2Rh
Y2U2ZjkuLmMwZmVlMTlhZWUyNWQxOWMxM2M3ZWYxYzEyZWIxMzkzNmYyZjhiNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0Q29k
ZXIubW0KQEAgLTUwOSw3ICs1MDksNyBAQCBzdGF0aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3Rl
T2JqZWN0RGVjb2RlciAqZGVjb2RlcikKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgW05TRXhj
ZXB0aW9uIHJhaXNlOk5TSW52YWxpZFVuYXJjaGl2ZU9wZXJhdGlvbkV4Y2VwdGlvbiBmb3JtYXQ6
QCJPYmplY3Qgb2YgY2xhc3MgXCIlc1wiIHJldHVybmVkIG5pbCBmcm9tIC1hd2FrZUFmdGVyVXNp
bmdDb2Rlcjogd2hpbGUgYmVpbmcgZGVjb2RlZCIsIGNsYXNzTmFtZS5kYXRhKCldOwogCi0gICAg
cmV0dXJuIFtyZXN1bHQubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gcmVzdWx0
LmF1dG9yZWxlYXNlKCk7CiB9CiAKIHN0YXRpYyBpZCBkZWNvZGVPYmplY3QoV0tSZW1vdGVPYmpl
Y3REZWNvZGVyICpkZWNvZGVyLCBjb25zdCBJbW11dGFibGVEaWN0aW9uYXJ5KiBkaWN0aW9uYXJ5
LCBOU1NldCAqYWxsb3dlZENsYXNzZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggMGQ4ZjM1OTZm
OGJlMGI3YzE4YTRlYWMyMzgxZmU4Yzg0MWYwMTMxYS4uZGJjYWYzMDEyMjk0MTJhOTFjOTkxZTM5
MzZhMmY4YWNiMzY4ZDEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9D
b2NvYS9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQpAQCAtODAsNyArODAsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFJldGFpblB0cjxXS1JlbW90ZU9iamVjdD4gcmVt
b3RlT2JqZWN0ID0gYWRvcHROUyhbW1dLUmVtb3RlT2JqZWN0IGFsbG9jXSBfaW5pdFdpdGhPYmpl
Y3RSZWdpc3RyeTpzZWxmIGludGVyZmFjZTppbnRlcmZhY2VdKTsKICAgICBbX3JlbW90ZU9iamVj
dFByb3hpZXMgc2V0T2JqZWN0OnJlbW90ZU9iamVjdC5nZXQoKSBmb3JLZXk6aWRlbnRpZmllci5n
ZXQoKV07CiAKLSAgICByZXR1cm4gW3JlbW90ZU9iamVjdC5sZWFrUmVmKCkgYXV0b3JlbGVhc2Vd
OworICAgIHJldHVybiByZW1vdGVPYmplY3QuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAoaWQpX2lu
aXRXaXRoTWVzc2FnZVNlbmRlcjooSVBDOjpNZXNzYWdlU2VuZGVyJiltZXNzYWdlU2VuZGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4
IDhjN2U3NDQ3OWRmZWFjNjhjZjhhZWQxYzQxZTAwNjM1NTQ4OGY4M2YuLjU2YjcxZDBlMmUzYjgw
ODFiYmM2YWVhZGMwZDM0MTQ0OTNjODFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xOTcsNyArMTk3LDcgQEAKIAogLSAoaWQg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUKIHsKLSAgICByZXR1cm4g
W19uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb25EZWxlZ2F0ZSgpLmxlYWtSZWYoKSBhdXRvcmVs
ZWFzZV07CisgICAgcmV0dXJuIF9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb25EZWxlZ2F0ZSgp
LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKHZvaWQpc2V0TmF2aWdhdGlvbkRlbGVnYXRlOihpZCA8
V0tOYXZpZ2F0aW9uRGVsZWdhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZQpAQCAtMjA3LDcgKzIwNyw3
IEBACiAKIC0gKGlkIDxXS1VJRGVsZWdhdGU+KVVJRGVsZWdhdGUKIHsKLSAgICByZXR1cm4gW3N0
YXRpY19jYXN0PFdlYktpdDo6VUlDbGllbnQmPihfcGFnZS0+dWlDbGllbnQoKSkuZGVsZWdhdGUo
KS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXQ6
OlVJQ2xpZW50Jj4oX3BhZ2UtPnVpQ2xpZW50KCkpLmRlbGVnYXRlKCkuYXV0b3JlbGVhc2UoKTsK
IH0KIAogLSAodm9pZClzZXRVSURlbGVnYXRlOihpZDxXS1VJRGVsZWdhdGU+KVVJRGVsZWdhdGUK
QEAgLTIyMCw3ICsyMjAsNyBAQAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCA9IF9wYWdlLT5s
b2FkUmVxdWVzdChyZXF1ZXN0KTsKICAgICBhdXRvIG5hdmlnYXRpb24gPSBfbmF2aWdhdGlvblN0
YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24obmF2aWdhdGlvbklELCByZXF1ZXN0KTsK
IAotICAgIHJldHVybiBbbmF2aWdhdGlvbi5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJl
dHVybiBuYXZpZ2F0aW9uLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKFdLTmF2aWdhdGlvbiAqKWdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtCkBAIC01
NzAsNyArNTcwLDcgQEAKIAogLSAoaWQgPFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZT4pX2hpc3Rv
cnlEZWxlZ2F0ZQogewotICAgIHJldHVybiBbX25hdmlnYXRpb25TdGF0ZS0+aGlzdG9yeURlbGVn
YXRlKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gX25hdmlnYXRpb25TdGF0
ZS0+aGlzdG9yeURlbGVnYXRlKCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAodm9pZClfc2V0SGlz
dG9yeURlbGVnYXRlOihpZCA8V0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlPiloaXN0b3J5RGVsZWdh
dGUK
</data>
<flag name="review"
          id="249749"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225671</attachid>
            <date>2014-03-03 11:00:44 -0800</date>
            <delta_ts>2014-03-04 09:05:45 -0800</delta_ts>
            <desc>For the mountain lion bots</desc>
            <filename>125241-for-MoutainLion.patch</filename>
            <type>text/plain</type>
            <size>13017</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjY5NmRjNi4uZTYxYzIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0wMiAg
UHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldGFp
blB0cjo6YXV0b3JlbGVhc2UgdG8gY29tYmluZSBsZWFrUHRyKCkgKyBhdXRvcmVsZWFzZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1MjQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUmV0YWlu
UHRyLmg6CisgICAgICAgIChXVEY6OlJldGFpblB0cjxUPjo6YXV0b3JlbGVhc2UpOgorCiAyMDE0
LTAyLTI2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGYXN0TWFsbG9jIHNob3VsZCB1c2Ugdm1fcGFnZV9zaGlmdCBpbnRlYWQgb2YgUEFHRV9T
SElGVC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9kcmFpbmVkUG9vbE1hYy5tbSBi
L1NvdXJjZS9XVEYvd3RmL0F1dG9kcmFpbmVkUG9vbE1hYy5tbQppbmRleCBiMWY0NGFhMS4uYmE3
NWY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b2RyYWluZWRQb29sTWFjLm1tCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9kcmFpbmVkUG9vbE1hYy5tbQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkF1dG9kcmFpbmVkUG9vbC5oIgorI2lt
cG9ydCAiUmV0YWluUHRyLmgiCiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgog
CkBAIC00Myw0ICs0NCwxNiBAQCBBdXRvZHJhaW5lZFBvb2w6On5BdXRvZHJhaW5lZFBvb2woKQog
ICAgIFttX3Bvb2wgZHJhaW5dOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwOTAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGlu
ZSB0eXBlbmFtZSBSZXRhaW5QdHI8VD46OlB0clR5cGUgUmV0YWluUHRyPFQ+OjphdXRvcmVsZWFz
ZSgpCit7CisgICAgaWYgKCFtX3B0cikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgWyhp
ZCltX3B0ciBhdXRvcmVsZWFzZV07CisgICAgUHRyVHlwZSBwdHIgPSBmcm9tU3RvcmFnZVR5cGUo
bV9wdHIpOworICAgIG1fcHRyID0gbnVsbHB0cjsKKyAgICByZXR1cm4gcHRyOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmV0YWlu
UHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAppbmRleCA5Y2Y1MjY3Li42NThkOTRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9SZXRhaW5QdHIuaApAQCAtMTE0LDYgKzExNCw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiAg
ICAgICAgIHZvaWQgY2xlYXIoKTsKICAgICAgICAgUHRyVHlwZSBsZWFrUmVmKCkgV0FSTl9VTlVT
RURfUkVUVVJOOworICAgICAgICBQdHJUeXBlIGF1dG9yZWxlYXNlKCkgV0FSTl9VTlVTRURfUkVU
VVJOOwogCiAgICAgICAgIFB0clR5cGUgZ2V0KCkgY29uc3QgeyByZXR1cm4gZnJvbVN0b3JhZ2VU
eXBlKG1fcHRyKTsgfQogICAgICAgICBQdHJUeXBlIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVy
biBmcm9tU3RvcmFnZVR5cGUobV9wdHIpOyB9CkBAIC0xODcsNiArMTg4LDE4IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAorI2lmIFBMQVRGT1JNKElPUykg
fHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIHR5cGVuYW1lIFJldGFpblB0cjxUPjo6UHRyVHlwZSBSZXRhaW5Q
dHI8VD46OmF1dG9yZWxlYXNlKCkKKyAgICB7CisgICAgICAgIGlmICghbV9wdHIpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgQ0ZBdXRvcmVsZWFzZShtX3B0cik7CisgICAg
ICAgIFB0clR5cGUgcHRyID0gZnJvbVN0b3JhZ2VUeXBlKG1fcHRyKTsKKyAgICAgICAgbV9wdHIg
PSBudWxscHRyOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0KKyNlbmRpZgorCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFpblB0cjxUPiYgUmV0YWluUHRyPFQ+OjpvcGVy
YXRvcj0oY29uc3QgUmV0YWluUHRyJiBvKQogICAgIHsKICAgICAgICAgUmV0YWluUHRyIHB0ciA9
IG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNThhMWQxNC4uNmE1ZTA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDE0LTAzLTAyICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgUmV0YWluUHRyOjphdXRvcmVsZWFzZSB0byBjb21iaW5lIGxlYWtQdHIo
KSArIGF1dG9yZWxlYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjUyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgZHVlIHRvIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAg
ICAgICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAoLVtET01Ob2RlIHJlbmRlcmVk
SW1hZ2VdKToKKyAgICAgICAgKC1bRE9NUmFuZ2UgcmVuZGVyZWRJbWFnZUZvcmNpbmdCbGFja1Rl
eHQ6cmVuZGVyZWRJbWFnZUZvcmNpbmdCbGFja1RleHQ6XSk6CisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01VSUtpdEV4dGVuc2lvbnMubW06CisgICAgICAgICgtW0RPTUhUTUxJbWFnZUVsZW1l
bnQgZGF0YVJlcHJlc2VudGF0aW9uOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAg
ICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5l
Y3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOndp
bGxDYWNoZVJlc3BvbnNlOl0pOgorCiAyMDE0LTAzLTAxICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY0
OTI5IGFuZCByMTY0OTM0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET00ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQppbmRleCA2NTAw
NTIwLi4yYmVkMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQpAQCAtNTU1LDcg
KzU1NSw3IEBAIGlkIDxET01FdmVudFRhcmdldD4ga2l0KFdlYkNvcmU6OkV2ZW50VGFyZ2V0KiBl
dmVudFRhcmdldCkKICAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgp
LmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1
cm4gW2NyZWF0ZURyYWdJbWFnZUZvck5vZGUoKmZyYW1lLCAqbm9kZSkubGVha1JlZigpIGF1dG9y
ZWxlYXNlXTsKKyAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZSgqZnJhbWUsICpub2Rl
KS5hdXRvcmVsZWFzZSgpOwogfQogI2VuZGlmCiAKQEAgLTYxMCwxMiArNjEwLDcgQEAgaWQgPERP
TUV2ZW50VGFyZ2V0PiBraXQoV2ViQ29yZTo6RXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0KQogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgQ0dJbWFnZVJlZiBkcmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2VGb3JSYW5nZSgqZnJhbWUs
ICpyYW5nZSwgZm9yY2VCbGFja1RleHQpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gZHJhZ0ltYWdl
ID8gKENHSW1hZ2VSZWYpQ0ZBdXRvcmVsZWFzZShkcmFnSW1hZ2UpIDogbmlsOwotI2Vsc2UKLSAg
ICByZXR1cm4gW2NyZWF0ZURyYWdJbWFnZUZvclJhbmdlKCpmcmFtZSwgKnJhbmdlLCBmb3JjZUJs
YWNrVGV4dCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKLSNlbmRpZgorICAgIHJldHVybiBjcmVh
dGVEcmFnSW1hZ2VGb3JSYW5nZSgqZnJhbWUsICpyYW5nZSwgZm9yY2VCbGFja1RleHQpLmF1dG9y
ZWxlYXNlKCk7CiB9CiAKIC0gKE5TQXJyYXkgKil0ZXh0UmVjdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlLaXRFeHRlbnNpb25zLm1tIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUtpdEV4dGVuc2lvbnMubW0KaW5kZXggNWQyNDYzMy4u
OTMwY2U5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUtp
dEV4dGVuc2lvbnMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUtp
dEV4dGVuc2lvbnMubW0KQEAgLTQ4NCw3ICs0ODQsNyBAQCB1c2luZyBXZWJDb3JlOjpWaXNpYmxl
UG9zaXRpb247CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAg
IHJldHVybiBbZGF0YS0+Y3JlYXRlTlNEYXRhKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAg
ICByZXR1cm4gZGF0YS0+Y3JlYXRlTlNEYXRhKCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAoTlNT
dHJpbmcgKiltaW1lVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCmluZGV4IDA0MjE0YzIuLjNhOGUzNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUubW0KQEAgLTEzNyw3ICsxMzcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKICAgICB9KTsKIAogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fc2VtYXBob3JlLCBE
SVNQQVRDSF9USU1FX0ZPUkVWRVIpOwotICAgIHJldHVybiBbbV9yZXF1ZXN0UmVzdWx0LmxlYWtS
ZWYoKSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIG1fcmVxdWVzdFJlc3VsdC5hdXRvcmVsZWFz
ZSgpOwogfQogCiAtIChCT09MKWNvbm5lY3Rpb25TaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZToo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbgpAQCAtMzU2LDcgKzM1Niw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogICAgIH0pOwogCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQo
bV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7Ci0gICAgcmV0dXJuIFttX2NhY2hl
ZFJlc3BvbnNlUmVzdWx0LmxlYWtSZWYoKSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIG1fY2Fj
aGVkUmVzcG9uc2VSZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IGVlYTlhNzcuLjU0ZjZlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxNC0wMy0wMiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIFJldGFpblB0cjo6YXV0b3JlbGVhc2UgdG8gY29tYmluZSBsZWFrUHRyKCkgKyBh
dXRvcmVsZWFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI1MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2Ug
ZGF0YV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dl
YkhUTUxWaWV3IF9zZWxlY3Rpb25EcmFnZ2luZ0ltYWdlXSk6CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IHNlbGVjdGlvbkltYWdlRm9yY2luZ0JsYWNrVGV4dDpzZWxlY3Rpb25JbWFnZUZvcmNpbmdC
bGFja1RleHQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAgICAg
KC1bV2ViUmVzb3VyY2UgZGF0YV0pOgorCiAyMDE0LTAzLTAxICBQcmF0aWsgU29sYW5raSAgPHBz
b2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBzZWxlY3Rpb25JbWFnZUZvcmNpbmdC
bGFja1RleHQgc2hvdWxkIHJldHVybiBhdXRvcmVsZWFzZWQgb2JqZWN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KaW5kZXggNDRmMTQ2NC4uNjA4YmQwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQpAQCAtNTI2LDcgKzUy
Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0
aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgUmVmUHRyPFJlc291cmNlQnVmZmVy
PiBtYWluUmVzb3VyY2VEYXRhID0gdG9Qcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT5tYWluUmVz
b3VyY2VEYXRhKCk7CiAgICAgaWYgKCFtYWluUmVzb3VyY2VEYXRhKQogICAgICAgICByZXR1cm4g
bmlsOwotICAgIHJldHVybiBbbWFpblJlc291cmNlRGF0YS0+Y3JlYXRlTlNEYXRhKCkubGVha1Jl
ZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gbWFpblJlc291cmNlRGF0YS0+Y3JlYXRlTlNE
YXRhKCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAoaWQgPFdlYkRvY3VtZW50UmVwcmVzZW50YXRp
b24+KXJlcHJlc2VudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQppbmRleCBiN2FhYzMyLi5hYjVhYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0KQEAgLTIwMjEsNyArMjAyMSw3IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJ
c1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgIGlmICghY29yZUZyYW1lKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgTlNJbWFnZSAqZHJhZ0ltYWdlID0gW2NyZWF0ZURy
YWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOwor
ICAgIE5TSW1hZ2UgKmRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29y
ZUZyYW1lKS5hdXRvcmVsZWFzZSgpOwogICAgIFtkcmFnSW1hZ2UgX3dlYl9kaXNzb2x2ZVRvRnJh
Y3Rpb246V2ViRHJhZ0ltYWdlQWxwaGFdOwogICAgIHJldHVybiBkcmFnSW1hZ2U7CiB9CkBAIC02
NTY4LDEyICs2NTY4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1
dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICBpZiAoIWNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBDR0lt
YWdlUmVmIGRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1l
LCBmb3JjZUJsYWNrVGV4dCkubGVha1JlZigpOwotICAgIHJldHVybiBkcmFnSW1hZ2UgPyAoQ0dJ
bWFnZVJlZilDRkF1dG9yZWxlYXNlKGRyYWdJbWFnZSkgOiBuaWw7Ci0jZWxzZQotICAgIHJldHVy
biBbY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUsIGZvcmNlQmxhY2tUZXh0
KS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOwotI2VuZGlmCisgICAgcmV0dXJuIGNyZWF0ZURyYWdJ
bWFnZUZvclNlbGVjdGlvbigqY29yZUZyYW1lLCBmb3JjZUJsYWNrVGV4dCkuYXV0b3JlbGVhc2Uo
KTsKIH0KIAogLSAoTlNSZWN0KXNlbGVjdGlvbkltYWdlUmVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUmVzb3VyY2UubW0KaW5kZXggZWUzMTRjNy4uOWU5MjQ3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGlj
IE5TU3RyaW5nICogY29uc3QgV2ViUmVzb3VyY2VSZXNwb25zZUtleSA9ICAgICAgICAgIEAiV2Vi
UmVzb3VyY2VSZXNwb25zZSIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBpZiAoIV9wcml2YXRl
LT5jb3JlUmVzb3VyY2UtPmRhdGEoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4g
W19wcml2YXRlLT5jb3JlUmVzb3VyY2UtPmRhdGEoKS0+Y3JlYXRlTlNEYXRhKCkubGVha1JlZigp
IGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPmNvcmVSZXNvdXJjZS0+ZGF0YSgp
LT5jcmVhdGVOU0RhdGEoKS5hdXRvcmVsZWFzZSgpOwogfQogCiAtIChOU1VSTCAqKVVSTApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDY5YzlhYzEuLjYyMTU1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxNC0wMy0wMiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIFJldGFpblB0cjo6YXV0b3JlbGVhc2UgdG8gY29tYmluZSBsZWFrUHRyKCkgKyBhdXRv
cmVsZWFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI1MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW06CisgICAgICAgIChkZWNv
ZGVPYmplY3QpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RSZWdp
c3RyeS5tbToKKyAgICAgICAgKC1bV0tSZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQ
cm94eVdpdGhJbnRlcmZhY2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBuYXZpZ2F0aW9uRGVsZWdhdGVdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IFVJRGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGxv
YWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2hpc3RvcnlEZWxlZ2F0ZV0pOgor
CiAyMDE0LTAzLTAxICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGZvbGxvdy11cCB0byByMTY0OTA1IGFuZCByMTY0OTEyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVy
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVy
Lm1tCmluZGV4IGRmZDcyMTEuLmMwZmVlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW0KQEAgLTUwOSw3ICs1MDks
NyBAQCBzdGF0aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RGVjb2RlciAqZGVjb2Rl
cikKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxp
ZFVuYXJjaGl2ZU9wZXJhdGlvbkV4Y2VwdGlvbiBmb3JtYXQ6QCJPYmplY3Qgb2YgY2xhc3MgXCIl
c1wiIHJldHVybmVkIG5pbCBmcm9tIC1hd2FrZUFmdGVyVXNpbmdDb2Rlcjogd2hpbGUgYmVpbmcg
ZGVjb2RlZCIsIGNsYXNzTmFtZS5kYXRhKCldOwogCi0gICAgcmV0dXJuIFtyZXN1bHQubGVha1Jl
ZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAK
IHN0YXRpYyBpZCBkZWNvZGVPYmplY3QoV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNvZGVyLCBj
b25zdCBJbW11dGFibGVEaWN0aW9uYXJ5KiBkaWN0aW9uYXJ5LCBOU1NldCAqYWxsb3dlZENsYXNz
ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggMGQ4ZjM1OS4uZGJjYWYzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RSZWdp
c3RyeS5tbQpAQCAtODAsNyArODAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFJl
dGFpblB0cjxXS1JlbW90ZU9iamVjdD4gcmVtb3RlT2JqZWN0ID0gYWRvcHROUyhbW1dLUmVtb3Rl
T2JqZWN0IGFsbG9jXSBfaW5pdFdpdGhPYmplY3RSZWdpc3RyeTpzZWxmIGludGVyZmFjZTppbnRl
cmZhY2VdKTsKICAgICBbX3JlbW90ZU9iamVjdFByb3hpZXMgc2V0T2JqZWN0OnJlbW90ZU9iamVj
dC5nZXQoKSBmb3JLZXk6aWRlbnRpZmllci5nZXQoKV07CiAKLSAgICByZXR1cm4gW3JlbW90ZU9i
amVjdC5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJldHVybiByZW1vdGVPYmplY3QuYXV0
b3JlbGVhc2UoKTsKIH0KIAogLSAoaWQpX2luaXRXaXRoTWVzc2FnZVNlbmRlcjooSVBDOjpNZXNz
YWdlU2VuZGVyJiltZXNzYWdlU2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDhjN2U3NDQuLjU2YjcxZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xOTcsNyAr
MTk3LDcgQEAKIAogLSAoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiluYXZpZ2F0aW9uRGVsZWdh
dGUKIHsKLSAgICByZXR1cm4gW19uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb25EZWxlZ2F0ZSgp
LmxlYWtSZWYoKSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIF9uYXZpZ2F0aW9uU3RhdGUtPm5h
dmlnYXRpb25EZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKHZvaWQpc2V0TmF2aWdh
dGlvbkRlbGVnYXRlOihpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+KW5hdmlnYXRpb25EZWxlZ2F0
ZQpAQCAtMjA3LDcgKzIwNyw3IEBACiAKIC0gKGlkIDxXS1VJRGVsZWdhdGU+KVVJRGVsZWdhdGUK
IHsKLSAgICByZXR1cm4gW3N0YXRpY19jYXN0PFdlYktpdDo6VUlDbGllbnQmPihfcGFnZS0+dWlD
bGllbnQoKSkuZGVsZWdhdGUoKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJLaXQ6OlVJQ2xpZW50Jj4oX3BhZ2UtPnVpQ2xpZW50KCkpLmRlbGVnYXRl
KCkuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAodm9pZClzZXRVSURlbGVnYXRlOihpZDxXS1VJRGVs
ZWdhdGU+KVVJRGVsZWdhdGUKQEAgLTIyMCw3ICsyMjAsNyBAQAogICAgIHVpbnQ2NF90IG5hdmln
YXRpb25JRCA9IF9wYWdlLT5sb2FkUmVxdWVzdChyZXF1ZXN0KTsKICAgICBhdXRvIG5hdmlnYXRp
b24gPSBfbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24obmF2aWdh
dGlvbklELCByZXF1ZXN0KTsKIAotICAgIHJldHVybiBbbmF2aWdhdGlvbi5sZWFrUmVmKCkgYXV0
b3JlbGVhc2VdOworICAgIHJldHVybiBuYXZpZ2F0aW9uLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0g
KFdLTmF2aWdhdGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlz
dEl0ZW0gKilpdGVtCkBAIC01NzAsNyArNTcwLDcgQEAKIAogLSAoaWQgPFdLSGlzdG9yeURlbGVn
YXRlUHJpdmF0ZT4pX2hpc3RvcnlEZWxlZ2F0ZQogewotICAgIHJldHVybiBbX25hdmlnYXRpb25T
dGF0ZS0+aGlzdG9yeURlbGVnYXRlKCkubGVha1JlZigpIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1
cm4gX25hdmlnYXRpb25TdGF0ZS0+aGlzdG9yeURlbGVnYXRlKCkuYXV0b3JlbGVhc2UoKTsKIH0K
IAogLSAodm9pZClfc2V0SGlzdG9yeURlbGVnYXRlOihpZCA8V0tIaXN0b3J5RGVsZWdhdGVQcml2
YXRlPiloaXN0b3J5RGVsZWdhdGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>