<?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>54141</bug_id>
          
          <creation_ts>2011-02-09 13:44:49 -0800</creation_ts>
          <short_desc>WKView draws at wrong size, performs badly if is resized while hidden (assertion fails in BackingStore::incorporateUpdate in Debug builds)</short_desc>
          <delta_ts>2011-02-10 04:43:01 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53805</blocked>
    
    <blocked>54142</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348530</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-09 13:44:49 -0800</bug_when>
    <thetext>If a WKView is resized while hidden, then shown again, it will repaint at whatever size it had before it was hidden, and will generally perform badly. In Debug builds, you&apos;ll hit an assertion in BackingStore::incorporateUpdate:

    ASSERT(m_size == updateInfo.viewSize);

Here&apos;s the backtrace:

&gt;	WebKit.dll!WebKit::BackingStore::incorporateUpdate(const WebKit::UpdateInfo &amp; updateInfo={...})  Line 58 + 0x35 bytes	C++
 	WebKit.dll!WebKit::DrawingAreaProxyImpl::incorporateUpdate(const WebKit::UpdateInfo &amp; updateInfo={...})  Line 207	C++
 	WebKit.dll!WebKit::DrawingAreaProxyImpl::update(unsigned __int64 sequenceNumber=3, const WebKit::UpdateInfo &amp; updateInfo={...})  Line 142	C++
 	WebKit.dll!CoreIPC::callMemberFunction&lt;WebKit::DrawingAreaProxy,void (__thiscall WebKit::DrawingAreaProxy::*)(unsigned __int64,WebKit::UpdateInfo const &amp;),unsigned __int64,WebKit::UpdateInfo&gt;(const CoreIPC::Arguments2&lt;unsigned __int64,WebKit::UpdateInfo&gt; &amp; args={...}, WebKit::DrawingAreaProxy * object=0x05389238, void (unsigned __int64, const WebKit::UpdateInfo &amp;)* function=0x0065cab3)  Line 25 + 0x19 bytes	C++
 	WebKit.dll!CoreIPC::handleMessage&lt;Messages::DrawingAreaProxy::Update,WebKit::DrawingAreaProxy,void (__thiscall WebKit::DrawingAreaProxy::*)(unsigned __int64,WebKit::UpdateInfo const &amp;)&gt;(CoreIPC::ArgumentDecoder * argumentDecoder=0x053fede8, WebKit::DrawingAreaProxy * object=0x05389238, void (unsigned __int64, const WebKit::UpdateInfo &amp;)* function=0x0065cab3)  Line 246 + 0x11 bytes	C++
 	WebKit.dll!WebKit::DrawingAreaProxy::didReceiveDrawingAreaProxyMessage(CoreIPC::Connection * __formal=0x05392c98, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x053fede8)  Line 41 + 0x12 bytes	C++
 	WebKit.dll!WebKit::WebPageProxy::didReceiveMessage(CoreIPC::Connection * connection=0x05392c98, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x053fede8)  Line 1169	C++
 	WebKit.dll!WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection * connection=0x05392c98, CoreIPC::MessageID messageID={...}, CoreIPC::ArgumentDecoder * arguments=0x053fede8)  Line 245	C++
 	WebKit.dll!CoreIPC::Connection::dispatchMessages()  Line 450 + 0x31 bytes	C++
 	WebKit.dll!MemberFunctionWorkItem0&lt;CoreIPC::Connection&gt;::execute()  Line 76 + 0x10 bytes	C++
 	WebKit.dll!RunLoop::performWork()  Line 63 + 0x1a bytes	C++
 	WebKit.dll!RunLoop::wndProc(HWND__ * hWnd=0x00140564, unsigned int message=1025, unsigned int wParam=85650232, long lParam=0)  Line 57	C++
 	WebKit.dll!RunLoop::RunLoopWndProc(HWND__ * hWnd=0x00140564, unsigned int message=1025, unsigned int wParam=85650232, long lParam=0)  Line 39 + 0x18 bytes	C++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348531</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-09 13:45:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/8979195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348551</commentid>
    <comment_count>2</comment_count>
      <attachid>81870</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-09 14:03:06 -0800</bug_when>
    <thetext>Created attachment 81870
Decode a null SharedMemory::Handle correctly on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348553</commentid>
    <comment_count>3</comment_count>
      <attachid>81871</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-09 14:06:21 -0800</bug_when>
    <thetext>Created attachment 81871
Decode a null SharedMemory::Handle correctly on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348559</commentid>
    <comment_count>4</comment_count>
      <attachid>81872</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-09 14:11:30 -0800</bug_when>
    <thetext>Created attachment 81872
Decode a null SharedMemory::Handle correctly on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348944</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-10 04:43:01 -0800</bug_when>
    <thetext>Committed r78198: &lt;http://trac.webkit.org/changeset/78198&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81870</attachid>
            <date>2011-02-09 14:03:06 -0800</date>
            <delta_ts>2011-02-09 14:06:14 -0800</delta_ts>
            <desc>Decode a null SharedMemory::Handle correctly on Windows</desc>
            <filename>bug-54141-20110209170304.patch</filename>
            <type>text/plain</type>
            <size>12098</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMzcwYTQ2NjgyMTkyMmU1
YTZjZWU0MTQ2MTAxN2NmM2E2MDVmNTMyLi5kZWFkNzBmMGYwZGU2NzhlNTYxOTRjMjM3MjdmZDMw
NTVlMzI3ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTEtMDItMDkgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIERlY29kZSBhIG51bGwgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgY29ycmVjdGx5IG9uIFdpbmRvd3MKKworICAgICAgICBGaXhlcyA8aHR0
cDovL3dlYmtpdC5vcmcvYi81NDE0MT4gPHJkYXI6Ly9wcm9ibGVtLzg5NzkxOTU+IFdLVmlldyBk
cmF3cyBhdCB3cm9uZyBzaXplLAorICAgICAgICBwZXJmb3JtcyBiYWRseSBpZiBpcyByZXNpemVk
IHdoaWxlIGhpZGRlbiAoYXNzZXJ0aW9uIGZhaWxzIGluCisgICAgICAgIEJhY2tpbmdTdG9yZTo6
aW5jb3Jwb3JhdGVVcGRhdGUgaW4gRGVidWcgYnVpbGRzKQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldER1cGxpY2F0ZWRIYW5kbGUpOiBBZGRlZC4gQ29k
ZSBjYW1lIGZyb20gZGVjb2RlLiBUaGUgb25seSBjaGFuZ2VzIHdlcmUgdG8KKyAgICAgICAgbnVs
bC1jaGVjayBzb3VyY2VIYW5kbGUgKHRoaXMgaXMgdGhlIGJ1ZyBmaXgpIGFuZCB0byBhc3NlcnQg
d2hlbiA6OkR1cGxpY2F0ZUhhbmRsZSBmYWlscworICAgICAgICAod2hpY2ggd291bGQgaGF2ZSBj
YXVnaHQgdGhlIGJ1ZyBlYXJsaWVyKS4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmRlY29kZSk6IENoYW5nZWQgdG8gdXNlIGdldER1cGxpY2F0ZWRIYW5kbGUuCisKKzIw
MTEtMDItMDkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIERvbid0
IGludmFsaWRhdGUgb3V0c2lkZSBvZiB0aGUgV2ViUGFnZSdzIGJvdW5kcwogCiAgICAgICAgIEZp
eGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU0MTIzPiA8cmRhcjovL3Byb2JsZW0vODk3ODM4Mz4g
QXNzZXJ0aW9uIGZhaWx1cmUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggNDE2OTk1NzIxM2ZkZjNhYTE4ODdiMzI0NjFmMzViZjU5
YWE4ZGY2ZS4uYzhjYjJkYmYwMzI3YWRjMGU1ZTkzYWQyM2MzMjRhYTU4YzBkMjUwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKQEAgLTYw
LDYgKzYwLDI1IEBAIHZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDMy
KDo6R2V0Q3VycmVudFByb2Nlc3NJZCgpKTsKIH0KIAorc3RhdGljIGJvb2wgZ2V0RHVwbGljYXRl
ZEhhbmRsZShIQU5ETEUgc291cmNlSGFuZGxlLCBEV09SRCBzb3VyY2VQSUQsIEhBTkRMRSYgZHVw
bGljYXRlZEhhbmRsZSkKK3sKKyAgICBkdXBsaWNhdGVkSGFuZGxlID0gMDsKKyAgICBpZiAoIXNv
dXJjZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSEFORExFIHNvdXJjZVBy
b2Nlc3MgPSA6Ok9wZW5Qcm9jZXNzKFBST0NFU1NfRFVQX0hBTkRMRSwgRkFMU0UsIHNvdXJjZVBJ
RCk7CisgICAgaWYgKCFzb3VyY2VQcm9jZXNzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvLyBDb3B5IHRoZSBoYW5kbGUgaW50byBvdXIgcHJvY2VzcyBhbmQgY2xvc2UgdGhlIGhhbmRs
ZSB0aGF0IHRoZSBzZW5kaW5nIHByb2Nlc3MgY3JlYXRlZCBmb3IgdXMuCisgICAgQk9PTCBzdWNj
ZXNzID0gOjpEdXBsaWNhdGVIYW5kbGUoc291cmNlUHJvY2Vzcywgc291cmNlSGFuZGxlLCA6Okdl
dEN1cnJlbnRQcm9jZXNzKCksICZkdXBsaWNhdGVkSGFuZGxlLCAwLCBGQUxTRSwgRFVQTElDQVRF
X1NBTUVfQUNDRVNTIHwgRFVQTElDQVRFX0NMT1NFX1NPVVJDRSk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShzdWNjZXNzLCAiOjpEdXBsaWNhdGVIYW5kbGUgZmFpbGVkIHdpdGggZXJyb3IgJWx1
IiwgOjpHZXRMYXN0RXJyb3IoKSk7CisKKyAgICA6OkNsb3NlSGFuZGxlKHNvdXJjZVByb2Nlc3Mp
OworCisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CisKIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxl
KQogewogICAgIEFTU0VSVF9BUkcoaGFuZGxlLCAhaGFuZGxlLm1faGFuZGxlKTsKQEAgLTc3LDE3
ICs5Niw4IEBAIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIEhhbmRsZSYgaGFuCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVVSW50MzIoc291cmNlUElEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSEFORExF
IHNvdXJjZVByb2Nlc3MgPSA6Ok9wZW5Qcm9jZXNzKFBST0NFU1NfRFVQX0hBTkRMRSwgRkFMU0Us
IHNvdXJjZVBJRCk7Ci0gICAgaWYgKCFzb3VyY2VQcm9jZXNzKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICAvLyBDb3B5IHRoZSBoYW5kbGUgaW50byBvdXIgcHJvY2VzcyBhbmQgY2xvc2Ug
dGhlIGhhbmRsZSB0aGF0IHRoZSBzZW5kaW5nIHByb2Nlc3MgY3JlYXRlZCBmb3IgdXMuCiAgICAg
SEFORExFIGR1cGxpY2F0ZWRIYW5kbGU7Ci0gICAgQk9PTCBzdWNjZXNzID0gOjpEdXBsaWNhdGVI
YW5kbGUoc291cmNlUHJvY2VzcywgcmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KHNvdXJjZUhhbmRs
ZSksIDo6R2V0Q3VycmVudFByb2Nlc3MoKSwgJmR1cGxpY2F0ZWRIYW5kbGUsIDAsIEZBTFNFLCBE
VVBMSUNBVEVfU0FNRV9BQ0NFU1MgfCBEVVBMSUNBVEVfQ0xPU0VfU09VUkNFKTsKLQotICAgIDo6
Q2xvc2VIYW5kbGUoc291cmNlUHJvY2Vzcyk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3MpCisgICAgaWYg
KCFnZXREdXBsaWNhdGVkSGFuZGxlKHJlaW50ZXJwcmV0X2Nhc3Q8SEFORExFPihzb3VyY2VIYW5k
bGUpLCBzb3VyY2VQSUQsIGR1cGxpY2F0ZWRIYW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBoYW5kbGUubV9oYW5kbGUgPSBkdXBsaWNhdGVkSGFuZGxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKaW5kZXggMDFhZTY4
ZjdhMWQ5ZDlmZTU0ZjBjODFlMjdkODEyMWI2ZGNiNjU1Mi4uYjkzNmEwMGIwMWIwZmVlMTQ3Yjcx
NGM1NGVlNzQ0NWEwZDZlN2Q3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0xOTUsNiArMTk1LDcgQEAgdm9pZCBEcmF3aW5n
QXJlYVByb3h5SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IHNl
cXVlbmNlTnVtYmUKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmluY29ycG9yYXRlVXBkYXRl
KGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgQVNTRVJUKCFpc0luQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoKSk7CisgICAgZnByaW50ZihzdGRlcnIsICJpbmNvcnBvcmF0
ZVVwZGF0ZSglZHglZClcbiIsIHVwZGF0ZUluZm8udmlld1NpemUud2lkdGgoKSwgdXBkYXRlSW5m
by52aWV3U2l6ZS5oZWlnaHQoKSk7CiAKICAgICBpZiAodXBkYXRlSW5mby51cGRhdGVSZWN0Qm91
bmRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA0YzZiMzEzNzY0N2U1ZDUzNjY0OGQ5MmJmNzZh
MDIyYWM5Y2NkNDguLmFmYTk2YzE4MzliZTg2MGY0ZDIwYTJmMmMyM2RkZWNiMjdmNjVhY2IgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMCBAQAorMjAxMS0wMi0wOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgdGVzdCB0aGF0IHJlc2l6ZXMgYSBXS1ZpZXcgd2hpbGUgaXQncyBoaWRkZW4K
KworICAgICAgICBUZXN0IGZvciA8aHR0cDovL3dlYmtpdC5vcmcvYi81NDE0MT4gPHJkYXI6Ly9w
cm9ibGVtLzg5NzkxOTU+IFdLVmlldyBkcmF3cyBhdCB3cm9uZyBzaXplLAorICAgICAgICBwZXJm
b3JtcyBiYWRseSBpZiBpcyByZXNpemVkIHdoaWxlIGhpZGRlbiAoYXNzZXJ0aW9uIGZhaWxzIGlu
CisgICAgICAgIEJhY2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRhdGUgaW4gRGVidWcgYnVpbGRz
KQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9SZXNpemVWaWV3V2hpbGVIaWRkZW4uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6IFJl
Y29yZCB0aGF0IHRoZSBsb2FkIGZpbmlzaGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2V0
UGFnZUxvYWRlckNsaWVudCk6IEhvb2sgdXAgb3VyIGRpZEZpbmlzaExvYWRGb3JGcmFtZSBjYWxs
YmFjay4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmZsdXNoTWVzc2FnZXMpOiBMb2FkIGEgVVJM
IGFuZCB3YWl0IGZvciB0aGUgbG9hZCB0byBjb21wbGV0ZS4gVGhpcyBlbnN1cmVzCisgICAgICAg
IHRoYXQgYWxsIHBlbmRpbmcgbWVzc2FnZXMgaGF2ZSBiZWVuIGhhbmRsZWQgYnkgdGhlIFVJIGFu
ZCB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRpbWVyQ2FsbGJhY2spOiBL
aWxsIHRoZSB0aW1lciBhbmQgcmVjb3JkIHRoYXQgaXQgZmlyZWQuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpydW5Gb3JEdXJhdGlvbik6IFNldCBhIHRpbWVyIGFuZCBydW4gdGhlIHJ1biBsb29w
IHVudGlsIGl0IGZpcmVzLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2FpdEZvckJhY2tpbmdT
dG9yZVVwZGF0ZSk6IFdhaXQgZm9yIGhhbGYgYSBzZWNvbmQgdG8gZ2l2ZSB0aGUgd2ViIHByb2Nl
c3MgYQorICAgICAgICBjaGFuY2UgdG8gZGlzcGxheSwgdGhlbiBmbHVzaCBhbGwgcGVuZGluZyBt
ZXNzYWdlcy4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBSZXNpemUgdGhlIFdLVmll
dyB3aGlsZSBpdCdzIGhpZGRlbiwgdGhlbiBzaG93IGl0IGFnYWluIGFuZCB3YWl0IGZvcgorICAg
ICAgICB0aGUgYmFja2luZyBzdG9yZSB0byB1cGRhdGUuIFRoaXMgdHJpZ2dlcnMgdGhlIGFzc2Vy
dGlvbiBmcm9tIGJ1ZyA1NDE0MS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd2luL1BsYXRm
b3JtV2ViVmlld1dpbi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZp
ZXc6OnJlc2l6ZVRvKTogSW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dp
bi9UZXN0V2ViS2l0QVBJLnZjcHJvajogQWRkZWQgbmV3IHRlc3QuCisKIDIwMTEtMDItMDggIEhh
eWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRv
bnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
d2luL1Jlc2l6ZVZpZXdXaGlsZUhpZGRlbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvd2luL1Jlc2l6ZVZpZXdXaGlsZUhpZGRlbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNjZWU3
NGI0MGQ2ZDAxYWQ3ZDFlMTQ2YmUwZWUxZmY3M2FiYTg3MAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vUmVzaXplVmlld1doaWxlSGlkZGVu
LmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJUZXN0LmgiCisK
KyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmll
dy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkOworCitzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYsIGNv
bnN0IHZvaWQqKQoreworICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorCitzdGF0aWMgdm9p
ZCBzZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlKQoreworICAgIFdLUGFnZUxvYWRl
ckNsaWVudCBsb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVv
Zihsb2FkZXJDbGllbnQpKTsKKyAgICBsb2FkZXJDbGllbnQudmVyc2lvbiA9IDA7CisgICAgbG9h
ZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRGb3JGcmFtZTsK
KworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZSwgJmxvYWRlckNsaWVudCk7Cit9
CisKK3N0YXRpYyB2b2lkIGZsdXNoTWVzc2FnZXMoV0tQYWdlUmVmIHBhZ2UpCit7CisgICAgLy8g
SW4gb3JkZXIgdG8gZW5zdXJlIGFsbCBwZW5kaW5nIG1lc3NhZ2VzIGhhdmUgYmVlbiBoYW5kbGVk
IGJ5IHRoZSBVSSBhbmQgd2ViIHByb2Nlc3Nlcywgd2UKKyAgICAvLyBsb2FkIGEgVVJMIGFuZCB3
YWl0IGZvciB0aGUgbG9hZCB0byBmaW5pc2guCisKKyAgICBzZXRQYWdlTG9hZGVyQ2xpZW50KHBh
Z2UpOworCisgICAgV0tQYWdlTG9hZFVSTChwYWdlLCBVdGlsOjphZG9wdFdLKFV0aWw6OmNyZWF0
ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKS5nZXQoKSk7CisgICAgVXRpbDo6cnVu
KCZkaWRGaW5pc2hMb2FkKTsKKyAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CisKKyAgICBXS1Bh
Z2VTZXRQYWdlTG9hZGVyQ2xpZW50KHBhZ2UsIDApOworfQorCitzdGF0aWMgYm9vbCB0aW1lckZp
cmVkOworc3RhdGljIHZvaWQgQ0FMTEJBQ0sgdGltZXJDYWxsYmFjayhIV05EIGh3bmQsIFVJTlQs
IFVJTlRfUFRSIHRpbWVySUQsIERXT1JEKQoreworICAgIDo6S2lsbFRpbWVyKGh3bmQsIHRpbWVy
SUQpOworICAgIHRpbWVyRmlyZWQgPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCBydW5Gb3JEdXJh
dGlvbihkb3VibGUgc2Vjb25kcykKK3sKKyAgICA6OlNldFRpbWVyKDAsIDAsIHNlY29uZHMgKiAx
MDAwLCB0aW1lckNhbGxiYWNrKTsKKyAgICBVdGlsOjpydW4oJnRpbWVyRmlyZWQpOworICAgIHRp
bWVyRmlyZWQgPSBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgd2FpdEZvckJhY2tpbmdTdG9yZVVw
ZGF0ZShXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICAvLyBXYWl0IGZvciB0aGUgd2ViIHByb2Nlc3Mg
dG8gaGFuZGxlIHRoZSBjaGFuZ2VzIHdlIGp1c3QgbWFkZSwgdG8gcGVyZm9ybSBhIGRpc3BsYXkg
KHdoaWNoCisgICAgLy8gaGFwcGVucyBvbiBhIHRpbWVyKSwgYW5kIHRvIHRlbGwgdGhlIFVJIHBy
b2Nlc3MgYWJvdXQgdGhlIGRpc3BsYXkgKHdoaWNoIHVwZGF0ZXMgdGhlIGJhY2tpbmcKKyAgICAv
LyBzdG9yZSkuCisgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG11Y2ggbGVzcyBmcmFnaWxlIChh
bmQgbWF5YmUgZmFzdGVyKSB0byBoYXZlIGFuIGV4cGxpY2l0IHdheSB0byB3YWl0CisgICAgLy8g
dW50aWwgdGhlIGJhY2tpbmcgc3RvcmUgaXMgdXBkYXRlZC4KKyAgICBydW5Gb3JEdXJhdGlvbigw
LjUpOworICAgIGZsdXNoTWVzc2FnZXMocGFnZSk7Cit9CisKK1RFU1QoV2ViS2l0MiwgUmVzaXpl
Vmlld1doaWxlSGlkZGVuKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBIV05EIHdpbmRvdyA9IFdLVmlld0dldFdpbmRvdyh3
ZWJWaWV3LnBsYXRmb3JtVmlldygpKTsKKworICAgIFJFQ1Qgb3JpZ2luYWxSZWN0OworICAgIDo6
R2V0Q2xpZW50UmVjdCh3aW5kb3csICZvcmlnaW5hbFJlY3QpOworICAgIFJFQ1QgbmV3UmVjdCA9
IG9yaWdpbmFsUmVjdDsKKyAgICA6OkluZmxhdGVSZWN0KCZuZXdSZWN0LCAxLCAxKTsKKworICAg
IC8vIFNob3cgdGhlIFdLVmlldyBhbmQgcmVzaXplIGl0IHNvIHRoYXQgdGhlIFdLVmlldydzIGJh
Y2tpbmcgc3RvcmUgd2lsbCBiZSBjcmVhdGVkLiBJZGVhbGx5CisgICAgLy8gd2UnZCBoYXZlIHNv
bWUgbW9yZSBleHBsaWNpdCB3YXkgb2YgZm9yY2luZyB0aGUgYmFja2luZyBzdG9yZSB0byBiZSBj
cmVhdGVkLgorICAgIDo6U2hvd1dpbmRvdyh3aW5kb3csIFNXX1NIT1cpOworICAgIHdlYlZpZXcu
cmVzaXplVG8obmV3UmVjdC5yaWdodCAtIG5ld1JlY3QubGVmdCwgbmV3UmVjdC5ib3R0b20gLSBu
ZXdSZWN0LnRvcCk7CisKKyAgICB3YWl0Rm9yQmFja2luZ1N0b3JlVXBkYXRlKHdlYlZpZXcucGFn
ZSgpKTsKKworICAgIC8vIFJlc2l6ZSB0aGUgd2luZG93IHdoaWxlIGhpZGRlbiBhbmQgc2hvdyBp
dCBhZ2FpbiBzbyB0aGF0IGl0IHdpbGwgdXBkYXRlIGl0cyBiYWNraW5nIHN0b3JlIGF0CisgICAg
Ly8gdGhlIG5ldyBzaXplLgorICAgIDo6U2hvd1dpbmRvdyh3aW5kb3csIFNXX0hJREUpOworICAg
IHdlYlZpZXcucmVzaXplVG8ob3JpZ2luYWxSZWN0LnJpZ2h0IC0gb3JpZ2luYWxSZWN0LmxlZnQs
IG9yaWdpbmFsUmVjdC5ib3R0b20gLSBvcmlnaW5hbFJlY3QudG9wKTsKKyAgICA6OlNob3dXaW5k
b3cod2luZG93LCBTV19TSE9XKTsKKworICAgIC8vIEluIERlYnVnIGJ1aWxkcyB3aXRob3V0IHRo
ZSBmaXggZm9yIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU0MTQxPiwgdGhlIHdlYiBwcm9jZXNzIHdp
bGwgYXNzZXJ0CisgICAgLy8gYXQgdGhpcyBwb2ludC4KKyAgICAvLyBGSVhNRTogSXQgd291bGQg
YmUgZ29vZCB0byBoYXZlIGEgd2F5IHRvIGNoZWNrIHRoYXQgb3VyIGJlaGF2aW9yIGlzIGNvcnJl
Y3QgaW4gUmVsZWFzZQorICAgIC8vIGJ1aWxkcywgdG9vIQorICAgIHdhaXRGb3JCYWNraW5nU3Rv
cmVVcGRhdGUod2ViVmlldy5wYWdlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdX
aW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcApp
bmRleCBkZWRlNGIyYmZmYzkwZjg5ZWJmMDBmY2RlYWQ0NjliMzBjZGJkYmU3Li4xODM2N2NiNDM4
Y2EwYzExMDFiYzQyNWQ1YmY2OWFlM2Q5NTViMjMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKQEAgLTc3LDYgKzc3LDExIEBAIFdLUGFnZVJl
ZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQogICAgIHJldHVybiBXS1ZpZXdHZXRQYWdlKG1fdmll
dyk7CiB9CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwg
dW5zaWduZWQgaGVpZ2h0KQoreworICAgIDo6U2V0V2luZG93UG9zKFdLVmlld0dldFdpbmRvdyht
X3ZpZXcpLCAwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBTV1BfTk9NT1ZFIHwgU1dQX05PWk9SREVS
IHwgU1dQX05PQUNUSVZBVEUgfCBTV1BfTk9DT1BZQklUUyk7Cit9CisKIHZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogewogICAgIEhXTkQgd2luZG93ID0g
V0tWaWV3R2V0V2luZG93KG1fdmlldyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RX
ZWJLaXRBUEkudmNwcm9qCmluZGV4IDJlNGVmYzAyNzYwM2IxZTFiOTFiYmY1MjBhNTI0MmE4YWZh
MTlmOGYuLjhhNjBmMTUwMzgzMjEwMWVkNWJjZWMwYmQxNGUxMzEzMTgzMmM5NjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCkBAIC00OTUsNiArNDk1
LDEwIEBACiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVGVzdHNcV2ViS2l0Mlx3aW5cUmVzaXplVmlld1doaWxlSGlkZGVuLmNwcCIKKwkJ
CQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxU
ZXN0c1xXZWJLaXQyXHdpblxXTUNsb3NlQ2FsbHNVSUNsaWVudENsb3NlLmNwcCIKIAkJCQkJCT4K
IAkJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81871</attachid>
            <date>2011-02-09 14:06:21 -0800</date>
            <delta_ts>2011-02-09 14:11:25 -0800</delta_ts>
            <desc>Decode a null SharedMemory::Handle correctly on Windows</desc>
            <filename>bug-54141-20110209170619.patch</filename>
            <type>text/plain</type>
            <size>12097</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMzcwYTQ2NjgyMTkyMmU1
YTZjZWU0MTQ2MTAxN2NmM2E2MDVmNTMyLi5kZWFkNzBmMGYwZGU2NzhlNTYxOTRjMjM3MjdmZDMw
NTVlMzI3ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTEtMDItMDkgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIERlY29kZSBhIG51bGwgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgY29ycmVjdGx5IG9uIFdpbmRvd3MKKworICAgICAgICBGaXhlcyA8aHR0
cDovL3dlYmtpdC5vcmcvYi81NDE0MT4gPHJkYXI6Ly9wcm9ibGVtLzg5NzkxOTU+IFdLVmlldyBk
cmF3cyBhdCB3cm9uZyBzaXplLAorICAgICAgICBwZXJmb3JtcyBiYWRseSBpZiBpcyByZXNpemVk
IHdoaWxlIGhpZGRlbiAoYXNzZXJ0aW9uIGZhaWxzIGluCisgICAgICAgIEJhY2tpbmdTdG9yZTo6
aW5jb3Jwb3JhdGVVcGRhdGUgaW4gRGVidWcgYnVpbGRzKQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldER1cGxpY2F0ZWRIYW5kbGUpOiBBZGRlZC4gQ29k
ZSBjYW1lIGZyb20gZGVjb2RlLiBUaGUgb25seSBjaGFuZ2VzIHdlcmUgdG8KKyAgICAgICAgbnVs
bC1jaGVjayBzb3VyY2VIYW5kbGUgKHRoaXMgaXMgdGhlIGJ1ZyBmaXgpIGFuZCB0byBhc3NlcnQg
d2hlbiA6OkR1cGxpY2F0ZUhhbmRsZSBmYWlscworICAgICAgICAod2hpY2ggd291bGQgaGF2ZSBj
YXVnaHQgdGhlIGJ1ZyBlYXJsaWVyKS4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmRlY29kZSk6IENoYW5nZWQgdG8gdXNlIGdldER1cGxpY2F0ZWRIYW5kbGUuCisKKzIw
MTEtMDItMDkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIERvbid0
IGludmFsaWRhdGUgb3V0c2lkZSBvZiB0aGUgV2ViUGFnZSdzIGJvdW5kcwogCiAgICAgICAgIEZp
eGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU0MTIzPiA8cmRhcjovL3Byb2JsZW0vODk3ODM4Mz4g
QXNzZXJ0aW9uIGZhaWx1cmUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggNDE2OTk1NzIxM2ZkZjNhYTE4ODdiMzI0NjFmMzViZjU5
YWE4ZGY2ZS4uMTM4MWM3ZmVjMjI3ZGVkMzVkMTlmM2JmZjc5ZWI5ZDVkNTQxOTJjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKQEAgLTYw
LDYgKzYwLDI1IEBAIHZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDMy
KDo6R2V0Q3VycmVudFByb2Nlc3NJZCgpKTsKIH0KIAorc3RhdGljIGJvb2wgZ2V0RHVwbGljYXRl
ZEhhbmRsZShIQU5ETEUgc291cmNlSGFuZGxlLCBEV09SRCBzb3VyY2VQSUQsIEhBTkRMRSYgZHVw
bGljYXRlZEhhbmRsZSkKK3sKKyAgICBkdXBsaWNhdGVkSGFuZGxlID0gMDsKKyAgICBpZiAoIXNv
dXJjZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBIQU5ETEUgc291cmNlUHJv
Y2VzcyA9IDo6T3BlblByb2Nlc3MoUFJPQ0VTU19EVVBfSEFORExFLCBGQUxTRSwgc291cmNlUElE
KTsKKyAgICBpZiAoIXNvdXJjZVByb2Nlc3MpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vIENvcHkgdGhlIGhhbmRsZSBpbnRvIG91ciBwcm9jZXNzIGFuZCBjbG9zZSB0aGUgaGFuZGxl
IHRoYXQgdGhlIHNlbmRpbmcgcHJvY2VzcyBjcmVhdGVkIGZvciB1cy4KKyAgICBCT09MIHN1Y2Nl
c3MgPSA6OkR1cGxpY2F0ZUhhbmRsZShzb3VyY2VQcm9jZXNzLCBzb3VyY2VIYW5kbGUsIDo6R2V0
Q3VycmVudFByb2Nlc3MoKSwgJmR1cGxpY2F0ZWRIYW5kbGUsIDAsIEZBTFNFLCBEVVBMSUNBVEVf
U0FNRV9BQ0NFU1MgfCBEVVBMSUNBVEVfQ0xPU0VfU09VUkNFKTsKKyAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKHN1Y2Nlc3MsICI6OkR1cGxpY2F0ZUhhbmRsZSBmYWlsZWQgd2l0aCBlcnJvciAlbHUi
LCA6OkdldExhc3RFcnJvcigpKTsKKworICAgIDo6Q2xvc2VIYW5kbGUoc291cmNlUHJvY2Vzcyk7
CisKKyAgICByZXR1cm4gc3VjY2VzczsKK30KKwogYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUp
CiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsICFoYW5kbGUubV9oYW5kbGUpOwpAQCAtNzcsMTcg
Kzk2LDggQEAgYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW4KICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZVVJbnQzMihzb3VyY2VQSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBIQU5ETEUg
c291cmNlUHJvY2VzcyA9IDo6T3BlblByb2Nlc3MoUFJPQ0VTU19EVVBfSEFORExFLCBGQUxTRSwg
c291cmNlUElEKTsKLSAgICBpZiAoIXNvdXJjZVByb2Nlc3MpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIC8vIENvcHkgdGhlIGhhbmRsZSBpbnRvIG91ciBwcm9jZXNzIGFuZCBjbG9zZSB0
aGUgaGFuZGxlIHRoYXQgdGhlIHNlbmRpbmcgcHJvY2VzcyBjcmVhdGVkIGZvciB1cy4KICAgICBI
QU5ETEUgZHVwbGljYXRlZEhhbmRsZTsKLSAgICBCT09MIHN1Y2Nlc3MgPSA6OkR1cGxpY2F0ZUhh
bmRsZShzb3VyY2VQcm9jZXNzLCByZWludGVycHJldF9jYXN0PEhBTkRMRT4oc291cmNlSGFuZGxl
KSwgOjpHZXRDdXJyZW50UHJvY2VzcygpLCAmZHVwbGljYXRlZEhhbmRsZSwgMCwgRkFMU0UsIERV
UExJQ0FURV9TQU1FX0FDQ0VTUyB8IERVUExJQ0FURV9DTE9TRV9TT1VSQ0UpOwotCi0gICAgOjpD
bG9zZUhhbmRsZShzb3VyY2VQcm9jZXNzKTsKLQotICAgIGlmICghc3VjY2VzcykKKyAgICBpZiAo
IWdldER1cGxpY2F0ZWRIYW5kbGUocmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KHNvdXJjZUhhbmRs
ZSksIHNvdXJjZVBJRCwgZHVwbGljYXRlZEhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGhhbmRsZS5tX2hhbmRsZSA9IGR1cGxpY2F0ZWRIYW5kbGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRleCAwMWFlNjhm
N2ExZDlkOWZlNTRmMGM4MWUyN2Q4MTIxYjZkY2I2NTUyLi5iOTM2YTAwYjAxYjBmZWUxNDdiNzE0
YzU0ZWU3NDQ1YTBkNmU3ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTE5NSw2ICsxOTUsNyBAQCB2b2lkIERyYXdpbmdB
cmVhUHJveHlJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3Qgc2Vx
dWVuY2VOdW1iZQogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6aW5jb3Jwb3JhdGVVcGRhdGUo
Y29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIHsKICAgICBBU1NFUlQoIWlzSW5BY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSgpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgImluY29ycG9yYXRl
VXBkYXRlKCVkeCVkKVxuIiwgdXBkYXRlSW5mby52aWV3U2l6ZS53aWR0aCgpLCB1cGRhdGVJbmZv
LnZpZXdTaXplLmhlaWdodCgpKTsKIAogICAgIGlmICh1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3Vu
ZHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDRjNmIzMTM3NjQ3ZTVkNTM2NjQ4ZDkyYmY3NmEw
MjJhYzljY2Q0OC4uYWZhOTZjMTgzOWJlODYwZjRkMjBhMmYyYzIzZGRlY2IyN2Y2NWFjYiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMwIEBACisyMDExLTAyLTA5ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgYSB0ZXN0IHRoYXQgcmVzaXplcyBhIFdLVmlldyB3aGlsZSBpdCdzIGhpZGRlbgor
CisgICAgICAgIFRlc3QgZm9yIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU0MTQxPiA8cmRhcjovL3By
b2JsZW0vODk3OTE5NT4gV0tWaWV3IGRyYXdzIGF0IHdyb25nIHNpemUsCisgICAgICAgIHBlcmZv
cm1zIGJhZGx5IGlmIGlzIHJlc2l6ZWQgd2hpbGUgaGlkZGVuIChhc3NlcnRpb24gZmFpbHMgaW4K
KyAgICAgICAgQmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSBpbiBEZWJ1ZyBidWlsZHMp
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL1Jlc2l6ZVZpZXdXaGlsZUhpZGRlbi5jcHA6IEFk
ZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKTogUmVj
b3JkIHRoYXQgdGhlIGxvYWQgZmluaXNoZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzZXRQ
YWdlTG9hZGVyQ2xpZW50KTogSG9vayB1cCBvdXIgZGlkRmluaXNoTG9hZEZvckZyYW1lIGNhbGxi
YWNrLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Zmx1c2hNZXNzYWdlcyk6IExvYWQgYSBVUkwg
YW5kIHdhaXQgZm9yIHRoZSBsb2FkIHRvIGNvbXBsZXRlLiBUaGlzIGVuc3VyZXMKKyAgICAgICAg
dGhhdCBhbGwgcGVuZGluZyBtZXNzYWdlcyBoYXZlIGJlZW4gaGFuZGxlZCBieSB0aGUgVUkgYW5k
IHdlYiBwcm9jZXNzLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGltZXJDYWxsYmFjayk6IEtp
bGwgdGhlIHRpbWVyIGFuZCByZWNvcmQgdGhhdCBpdCBmaXJlZC4KKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OnJ1bkZvckR1cmF0aW9uKTogU2V0IGEgdGltZXIgYW5kIHJ1biB0aGUgcnVuIGxvb3Ag
dW50aWwgaXQgZmlyZXMuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3YWl0Rm9yQmFja2luZ1N0
b3JlVXBkYXRlKTogV2FpdCBmb3IgaGFsZiBhIHNlY29uZCB0byBnaXZlIHRoZSB3ZWIgcHJvY2Vz
cyBhCisgICAgICAgIGNoYW5jZSB0byBkaXNwbGF5LCB0aGVuIGZsdXNoIGFsbCBwZW5kaW5nIG1l
c3NhZ2VzLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6IFJlc2l6ZSB0aGUgV0tWaWV3
IHdoaWxlIGl0J3MgaGlkZGVuLCB0aGVuIHNob3cgaXQgYWdhaW4gYW5kIHdhaXQgZm9yCisgICAg
ICAgIHRoZSBiYWNraW5nIHN0b3JlIHRvIHVwZGF0ZS4gVGhpcyB0cmlnZ2VycyB0aGUgYXNzZXJ0
aW9uIGZyb20gYnVnIDU0MTQxLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vUGxhdGZv
cm1XZWJWaWV3V2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmll
dzo6cmVzaXplVG8pOiBJbXBsZW1lbnRlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd2lu
L1Rlc3RXZWJLaXRBUEkudmNwcm9qOiBBZGRlZCBuZXcgdGVzdC4KKwogMjAxMS0wMi0wOCAgSGF5
YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9u
eSBDaGFuZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93
aW4vUmVzaXplVmlld1doaWxlSGlkZGVuLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi93aW4vUmVzaXplVmlld1doaWxlSGlkZGVuLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2NlZTc0
YjQwZDZkMDFhZDdkMWUxNDZiZTBlZTFmZjczYWJhODcwCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9SZXNpemVWaWV3V2hpbGVIaWRkZW4u
Y3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIlRlc3QuaCIKKwor
I2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3
LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7CisKK3N0YXRpYyB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiwgY29u
c3Qgdm9pZCopCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lk
IHNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2UpCit7CisgICAgV0tQYWdlTG9hZGVy
Q2xpZW50IGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9m
KGxvYWRlckNsaWVudCkpOworICAgIGxvYWRlckNsaWVudC52ZXJzaW9uID0gMDsKKyAgICBsb2Fk
ZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOwor
CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlLCAmbG9hZGVyQ2xpZW50KTsKK30K
Kworc3RhdGljIHZvaWQgZmx1c2hNZXNzYWdlcyhXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICAvLyBJ
biBvcmRlciB0byBlbnN1cmUgYWxsIHBlbmRpbmcgbWVzc2FnZXMgaGF2ZSBiZWVuIGhhbmRsZWQg
YnkgdGhlIFVJIGFuZCB3ZWIgcHJvY2Vzc2VzLCB3ZQorICAgIC8vIGxvYWQgYSBVUkwgYW5kIHdh
aXQgZm9yIHRoZSBsb2FkIHRvIGZpbmlzaC4KKworICAgIHNldFBhZ2VMb2FkZXJDbGllbnQocGFn
ZSk7CisKKyAgICBXS1BhZ2VMb2FkVVJMKHBhZ2UsIFV0aWw6OmFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpLmdldCgpKTsKKyAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaExvYWQpOworICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKKworICAgIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZSwgMCk7Cit9CisKK3N0YXRpYyBib29sIHRpbWVyRmly
ZWQ7CitzdGF0aWMgdm9pZCBDQUxMQkFDSyB0aW1lckNhbGxiYWNrKEhXTkQgaHduZCwgVUlOVCwg
VUlOVF9QVFIgdGltZXJJRCwgRFdPUkQpCit7CisgICAgOjpLaWxsVGltZXIoaHduZCwgdGltZXJJ
RCk7CisgICAgdGltZXJGaXJlZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bkZvckR1cmF0
aW9uKGRvdWJsZSBzZWNvbmRzKQoreworICAgIDo6U2V0VGltZXIoMCwgMCwgc2Vjb25kcyAqIDEw
MDAsIHRpbWVyQ2FsbGJhY2spOworICAgIFV0aWw6OnJ1bigmdGltZXJGaXJlZCk7CisgICAgdGlt
ZXJGaXJlZCA9IGZhbHNlOworfQorCitzdGF0aWMgdm9pZCB3YWl0Rm9yQmFja2luZ1N0b3JlVXBk
YXRlKFdLUGFnZVJlZiBwYWdlKQoreworICAgIC8vIFdhaXQgZm9yIHRoZSB3ZWIgcHJvY2VzcyB0
byBoYW5kbGUgdGhlIGNoYW5nZXMgd2UganVzdCBtYWRlLCB0byBwZXJmb3JtIGEgZGlzcGxheSAo
d2hpY2gKKyAgICAvLyBoYXBwZW5zIG9uIGEgdGltZXIpLCBhbmQgdG8gdGVsbCB0aGUgVUkgcHJv
Y2VzcyBhYm91dCB0aGUgZGlzcGxheSAod2hpY2ggdXBkYXRlcyB0aGUgYmFja2luZworICAgIC8v
IHN0b3JlKS4KKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbXVjaCBsZXNzIGZyYWdpbGUgKGFu
ZCBtYXliZSBmYXN0ZXIpIHRvIGhhdmUgYW4gZXhwbGljaXQgd2F5IHRvIHdhaXQKKyAgICAvLyB1
bnRpbCB0aGUgYmFja2luZyBzdG9yZSBpcyB1cGRhdGVkLgorICAgIHJ1bkZvckR1cmF0aW9uKDAu
NSk7CisgICAgZmx1c2hNZXNzYWdlcyhwYWdlKTsKK30KKworVEVTVChXZWJLaXQyLCBSZXNpemVW
aWV3V2hpbGVIaWRkZW4pCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0
KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpKTsKKworICAgIEhXTkQgd2luZG93ID0gV0tWaWV3R2V0V2luZG93KHdl
YlZpZXcucGxhdGZvcm1WaWV3KCkpOworCisgICAgUkVDVCBvcmlnaW5hbFJlY3Q7CisgICAgOjpH
ZXRDbGllbnRSZWN0KHdpbmRvdywgJm9yaWdpbmFsUmVjdCk7CisgICAgUkVDVCBuZXdSZWN0ID0g
b3JpZ2luYWxSZWN0OworICAgIDo6SW5mbGF0ZVJlY3QoJm5ld1JlY3QsIDEsIDEpOworCisgICAg
Ly8gU2hvdyB0aGUgV0tWaWV3IGFuZCByZXNpemUgaXQgc28gdGhhdCB0aGUgV0tWaWV3J3MgYmFj
a2luZyBzdG9yZSB3aWxsIGJlIGNyZWF0ZWQuIElkZWFsbHkKKyAgICAvLyB3ZSdkIGhhdmUgc29t
ZSBtb3JlIGV4cGxpY2l0IHdheSBvZiBmb3JjaW5nIHRoZSBiYWNraW5nIHN0b3JlIHRvIGJlIGNy
ZWF0ZWQuCisgICAgOjpTaG93V2luZG93KHdpbmRvdywgU1dfU0hPVyk7CisgICAgd2ViVmlldy5y
ZXNpemVUbyhuZXdSZWN0LnJpZ2h0IC0gbmV3UmVjdC5sZWZ0LCBuZXdSZWN0LmJvdHRvbSAtIG5l
d1JlY3QudG9wKTsKKworICAgIHdhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGUod2ViVmlldy5wYWdl
KCkpOworCisgICAgLy8gUmVzaXplIHRoZSB3aW5kb3cgd2hpbGUgaGlkZGVuIGFuZCBzaG93IGl0
IGFnYWluIHNvIHRoYXQgaXQgd2lsbCB1cGRhdGUgaXRzIGJhY2tpbmcgc3RvcmUgYXQKKyAgICAv
LyB0aGUgbmV3IHNpemUuCisgICAgOjpTaG93V2luZG93KHdpbmRvdywgU1dfSElERSk7CisgICAg
d2ViVmlldy5yZXNpemVUbyhvcmlnaW5hbFJlY3QucmlnaHQgLSBvcmlnaW5hbFJlY3QubGVmdCwg
b3JpZ2luYWxSZWN0LmJvdHRvbSAtIG9yaWdpbmFsUmVjdC50b3ApOworICAgIDo6U2hvd1dpbmRv
dyh3aW5kb3csIFNXX1NIT1cpOworCisgICAgLy8gSW4gRGVidWcgYnVpbGRzIHdpdGhvdXQgdGhl
IGZpeCBmb3IgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTQxNDE+LCB0aGUgd2ViIHByb2Nlc3Mgd2ls
bCBhc3NlcnQKKyAgICAvLyBhdCB0aGlzIHBvaW50LgorICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBi
ZSBnb29kIHRvIGhhdmUgYSB3YXkgdG8gY2hlY2sgdGhhdCBvdXIgYmVoYXZpb3IgaXMgY29ycmVj
dCBpbiBSZWxlYXNlCisgICAgLy8gYnVpbGRzLCB0b28hCisgICAgd2FpdEZvckJhY2tpbmdTdG9y
ZVVwZGF0ZSh3ZWJWaWV3LnBhZ2UoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dp
bi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCmlu
ZGV4IGRlZGU0YjJiZmZjOTBmODllYmYwMGZjZGVhZDQ2OWIzMGNkYmRiZTcuLjE4MzY3Y2I0Mzhj
YTBjMTEwMWJjNDI1ZDViZjY5YWUzZDk1NWIyMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcApAQCAtNzcsNiArNzcsMTEgQEAgV0tQYWdlUmVm
IFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCiAgICAgcmV0dXJuIFdLVmlld0dldFBhZ2UobV92aWV3
KTsKIH0KIAordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1
bnNpZ25lZCBoZWlnaHQpCit7CisgICAgOjpTZXRXaW5kb3dQb3MoV0tWaWV3R2V0V2luZG93KG1f
dmlldyksIDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFNXUF9OT01PVkUgfCBTV1BfTk9aT1JERVIg
fCBTV1BfTk9BQ1RJVkFURSB8IFNXUF9OT0NPUFlCSVRTKTsKK30KKwogdm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygpCiB7CiAgICAgSFdORCB3aW5kb3cgPSBX
S1ZpZXdHZXRXaW5kb3cobV92aWV3KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdl
YktpdEFQSS52Y3Byb2oKaW5kZXggMmU0ZWZjMDI3NjAzYjFlMWI5MWJiZjUyMGE1MjQyYThhZmEx
OWY4Zi4uOGE2MGYxNTAzODMyMTAxZWQ1YmNlYzBiZDE0ZTEzMTMxODMyYzk2MyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKQEAgLTQ5NSw2ICs0OTUs
MTAgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxUZXN0c1xXZWJLaXQyXHdpblxSZXNpemVWaWV3V2hpbGVIaWRkZW4uY3BwIgorCQkJ
CQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRl
c3RzXFdlYktpdDJcd2luXFdNQ2xvc2VDYWxsc1VJQ2xpZW50Q2xvc2UuY3BwIgogCQkJCQkJPgog
CQkJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81872</attachid>
            <date>2011-02-09 14:11:30 -0800</date>
            <delta_ts>2011-02-09 15:31:10 -0800</delta_ts>
            <desc>Decode a null SharedMemory::Handle correctly on Windows</desc>
            <filename>bug-54141-20110209171128.patch</filename>
            <type>text/plain</type>
            <size>11368</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwNTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMzcwYTQ2NjgyMTkyMmU1
YTZjZWU0MTQ2MTAxN2NmM2E2MDVmNTMyLi5kZWFkNzBmMGYwZGU2NzhlNTYxOTRjMjM3MjdmZDMw
NTVlMzI3ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTEtMDItMDkgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIERlY29kZSBhIG51bGwgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgY29ycmVjdGx5IG9uIFdpbmRvd3MKKworICAgICAgICBGaXhlcyA8aHR0
cDovL3dlYmtpdC5vcmcvYi81NDE0MT4gPHJkYXI6Ly9wcm9ibGVtLzg5NzkxOTU+IFdLVmlldyBk
cmF3cyBhdCB3cm9uZyBzaXplLAorICAgICAgICBwZXJmb3JtcyBiYWRseSBpZiBpcyByZXNpemVk
IHdoaWxlIGhpZGRlbiAoYXNzZXJ0aW9uIGZhaWxzIGluCisgICAgICAgIEJhY2tpbmdTdG9yZTo6
aW5jb3Jwb3JhdGVVcGRhdGUgaW4gRGVidWcgYnVpbGRzKQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldER1cGxpY2F0ZWRIYW5kbGUpOiBBZGRlZC4gQ29k
ZSBjYW1lIGZyb20gZGVjb2RlLiBUaGUgb25seSBjaGFuZ2VzIHdlcmUgdG8KKyAgICAgICAgbnVs
bC1jaGVjayBzb3VyY2VIYW5kbGUgKHRoaXMgaXMgdGhlIGJ1ZyBmaXgpIGFuZCB0byBhc3NlcnQg
d2hlbiA6OkR1cGxpY2F0ZUhhbmRsZSBmYWlscworICAgICAgICAod2hpY2ggd291bGQgaGF2ZSBj
YXVnaHQgdGhlIGJ1ZyBlYXJsaWVyKS4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmRlY29kZSk6IENoYW5nZWQgdG8gdXNlIGdldER1cGxpY2F0ZWRIYW5kbGUuCisKKzIw
MTEtMDItMDkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIERvbid0
IGludmFsaWRhdGUgb3V0c2lkZSBvZiB0aGUgV2ViUGFnZSdzIGJvdW5kcwogCiAgICAgICAgIEZp
eGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU0MTIzPiA8cmRhcjovL3Byb2JsZW0vODk3ODM4Mz4g
QXNzZXJ0aW9uIGZhaWx1cmUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggNDE2OTk1NzIxM2ZkZjNhYTE4ODdiMzI0NjFmMzViZjU5
YWE4ZGY2ZS4uMTM4MWM3ZmVjMjI3ZGVkMzVkMTlmM2JmZjc5ZWI5ZDVkNTQxOTJjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKQEAgLTYw
LDYgKzYwLDI1IEBAIHZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlVUludDMy
KDo6R2V0Q3VycmVudFByb2Nlc3NJZCgpKTsKIH0KIAorc3RhdGljIGJvb2wgZ2V0RHVwbGljYXRl
ZEhhbmRsZShIQU5ETEUgc291cmNlSGFuZGxlLCBEV09SRCBzb3VyY2VQSUQsIEhBTkRMRSYgZHVw
bGljYXRlZEhhbmRsZSkKK3sKKyAgICBkdXBsaWNhdGVkSGFuZGxlID0gMDsKKyAgICBpZiAoIXNv
dXJjZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBIQU5ETEUgc291cmNlUHJv
Y2VzcyA9IDo6T3BlblByb2Nlc3MoUFJPQ0VTU19EVVBfSEFORExFLCBGQUxTRSwgc291cmNlUElE
KTsKKyAgICBpZiAoIXNvdXJjZVByb2Nlc3MpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vIENvcHkgdGhlIGhhbmRsZSBpbnRvIG91ciBwcm9jZXNzIGFuZCBjbG9zZSB0aGUgaGFuZGxl
IHRoYXQgdGhlIHNlbmRpbmcgcHJvY2VzcyBjcmVhdGVkIGZvciB1cy4KKyAgICBCT09MIHN1Y2Nl
c3MgPSA6OkR1cGxpY2F0ZUhhbmRsZShzb3VyY2VQcm9jZXNzLCBzb3VyY2VIYW5kbGUsIDo6R2V0
Q3VycmVudFByb2Nlc3MoKSwgJmR1cGxpY2F0ZWRIYW5kbGUsIDAsIEZBTFNFLCBEVVBMSUNBVEVf
U0FNRV9BQ0NFU1MgfCBEVVBMSUNBVEVfQ0xPU0VfU09VUkNFKTsKKyAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKHN1Y2Nlc3MsICI6OkR1cGxpY2F0ZUhhbmRsZSBmYWlsZWQgd2l0aCBlcnJvciAlbHUi
LCA6OkdldExhc3RFcnJvcigpKTsKKworICAgIDo6Q2xvc2VIYW5kbGUoc291cmNlUHJvY2Vzcyk7
CisKKyAgICByZXR1cm4gc3VjY2VzczsKK30KKwogYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUp
CiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsICFoYW5kbGUubV9oYW5kbGUpOwpAQCAtNzcsMTcg
Kzk2LDggQEAgYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW4KICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZVVJbnQzMihzb3VyY2VQSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBIQU5ETEUg
c291cmNlUHJvY2VzcyA9IDo6T3BlblByb2Nlc3MoUFJPQ0VTU19EVVBfSEFORExFLCBGQUxTRSwg
c291cmNlUElEKTsKLSAgICBpZiAoIXNvdXJjZVByb2Nlc3MpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIC8vIENvcHkgdGhlIGhhbmRsZSBpbnRvIG91ciBwcm9jZXNzIGFuZCBjbG9zZSB0
aGUgaGFuZGxlIHRoYXQgdGhlIHNlbmRpbmcgcHJvY2VzcyBjcmVhdGVkIGZvciB1cy4KICAgICBI
QU5ETEUgZHVwbGljYXRlZEhhbmRsZTsKLSAgICBCT09MIHN1Y2Nlc3MgPSA6OkR1cGxpY2F0ZUhh
bmRsZShzb3VyY2VQcm9jZXNzLCByZWludGVycHJldF9jYXN0PEhBTkRMRT4oc291cmNlSGFuZGxl
KSwgOjpHZXRDdXJyZW50UHJvY2VzcygpLCAmZHVwbGljYXRlZEhhbmRsZSwgMCwgRkFMU0UsIERV
UExJQ0FURV9TQU1FX0FDQ0VTUyB8IERVUExJQ0FURV9DTE9TRV9TT1VSQ0UpOwotCi0gICAgOjpD
bG9zZUhhbmRsZShzb3VyY2VQcm9jZXNzKTsKLQotICAgIGlmICghc3VjY2VzcykKKyAgICBpZiAo
IWdldER1cGxpY2F0ZWRIYW5kbGUocmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KHNvdXJjZUhhbmRs
ZSksIHNvdXJjZVBJRCwgZHVwbGljYXRlZEhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGhhbmRsZS5tX2hhbmRsZSA9IGR1cGxpY2F0ZWRIYW5kbGU7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDRjNmIzMTM3NjQ3ZTVkNTM2
NjQ4ZDkyYmY3NmEwMjJhYzljY2Q0OC4uYWZhOTZjMTgzOWJlODYwZjRkMjBhMmYyYzIzZGRlY2Iy
N2Y2NWFjYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTAyLTA5ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgcmVzaXplcyBhIFdLVmlldyB3aGlsZSBp
dCdzIGhpZGRlbgorCisgICAgICAgIFRlc3QgZm9yIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU0MTQx
PiA8cmRhcjovL3Byb2JsZW0vODk3OTE5NT4gV0tWaWV3IGRyYXdzIGF0IHdyb25nIHNpemUsCisg
ICAgICAgIHBlcmZvcm1zIGJhZGx5IGlmIGlzIHJlc2l6ZWQgd2hpbGUgaGlkZGVuIChhc3NlcnRp
b24gZmFpbHMgaW4KKyAgICAgICAgQmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSBpbiBE
ZWJ1ZyBidWlsZHMpCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvd2luL1Jlc2l6ZVZpZXdXaGlsZUhp
ZGRlbi5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTG9hZEZv
ckZyYW1lKTogUmVjb3JkIHRoYXQgdGhlIGxvYWQgZmluaXNoZWQuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpzZXRQYWdlTG9hZGVyQ2xpZW50KTogSG9vayB1cCBvdXIgZGlkRmluaXNoTG9hZEZv
ckZyYW1lIGNhbGxiYWNrLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Zmx1c2hNZXNzYWdlcyk6
IExvYWQgYSBVUkwgYW5kIHdhaXQgZm9yIHRoZSBsb2FkIHRvIGNvbXBsZXRlLiBUaGlzIGVuc3Vy
ZXMKKyAgICAgICAgdGhhdCBhbGwgcGVuZGluZyBtZXNzYWdlcyBoYXZlIGJlZW4gaGFuZGxlZCBi
eSB0aGUgVUkgYW5kIHdlYiBwcm9jZXNzLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGltZXJD
YWxsYmFjayk6IEtpbGwgdGhlIHRpbWVyIGFuZCByZWNvcmQgdGhhdCBpdCBmaXJlZC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnJ1bkZvckR1cmF0aW9uKTogU2V0IGEgdGltZXIgYW5kIHJ1biB0
aGUgcnVuIGxvb3AgdW50aWwgaXQgZmlyZXMuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3YWl0
Rm9yQmFja2luZ1N0b3JlVXBkYXRlKTogV2FpdCBmb3IgaGFsZiBhIHNlY29uZCB0byBnaXZlIHRo
ZSB3ZWIgcHJvY2VzcyBhCisgICAgICAgIGNoYW5jZSB0byBkaXNwbGF5LCB0aGVuIGZsdXNoIGFs
bCBwZW5kaW5nIG1lc3NhZ2VzLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6IFJlc2l6
ZSB0aGUgV0tWaWV3IHdoaWxlIGl0J3MgaGlkZGVuLCB0aGVuIHNob3cgaXQgYWdhaW4gYW5kIHdh
aXQgZm9yCisgICAgICAgIHRoZSBiYWNraW5nIHN0b3JlIHRvIHVwZGF0ZS4gVGhpcyB0cmlnZ2Vy
cyB0aGUgYXNzZXJ0aW9uIGZyb20gYnVnIDU0MTQxLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBs
YXRmb3JtV2ViVmlldzo6cmVzaXplVG8pOiBJbXBsZW1lbnRlZC4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qOiBBZGRlZCBuZXcgdGVzdC4KKwogMjAx
MS0wMi0wOCAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi93aW4vUmVzaXplVmlld1doaWxlSGlkZGVuLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vUmVzaXplVmlld1doaWxlSGlkZGVuLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xM2NlZTc0YjQwZDZkMDFhZDdkMWUxNDZiZTBlZTFmZjczYWJhODcwCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9SZXNpemVWaWV3
V2hpbGVIaWRkZW4uY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
IlRlc3QuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRpZEZpbmlzaExvYWQ7CisKK3N0
YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisK
K3N0YXRpYyB2b2lkIHNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2UpCit7CisgICAg
V0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVu
dCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOworICAgIGxvYWRlckNsaWVudC52ZXJzaW9uID0g
MDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNoTG9h
ZEZvckZyYW1lOworCisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlLCAmbG9hZGVy
Q2xpZW50KTsKK30KKworc3RhdGljIHZvaWQgZmx1c2hNZXNzYWdlcyhXS1BhZ2VSZWYgcGFnZSkK
K3sKKyAgICAvLyBJbiBvcmRlciB0byBlbnN1cmUgYWxsIHBlbmRpbmcgbWVzc2FnZXMgaGF2ZSBi
ZWVuIGhhbmRsZWQgYnkgdGhlIFVJIGFuZCB3ZWIgcHJvY2Vzc2VzLCB3ZQorICAgIC8vIGxvYWQg
YSBVUkwgYW5kIHdhaXQgZm9yIHRoZSBsb2FkIHRvIGZpbmlzaC4KKworICAgIHNldFBhZ2VMb2Fk
ZXJDbGllbnQocGFnZSk7CisKKyAgICBXS1BhZ2VMb2FkVVJMKHBhZ2UsIFV0aWw6OmFkb3B0V0so
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpLmdldCgpKTsKKyAg
ICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsK
KworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZSwgMCk7Cit9CisKK3N0YXRpYyBi
b29sIHRpbWVyRmlyZWQ7CitzdGF0aWMgdm9pZCBDQUxMQkFDSyB0aW1lckNhbGxiYWNrKEhXTkQg
aHduZCwgVUlOVCwgVUlOVF9QVFIgdGltZXJJRCwgRFdPUkQpCit7CisgICAgOjpLaWxsVGltZXIo
aHduZCwgdGltZXJJRCk7CisgICAgdGltZXJGaXJlZCA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lk
IHJ1bkZvckR1cmF0aW9uKGRvdWJsZSBzZWNvbmRzKQoreworICAgIDo6U2V0VGltZXIoMCwgMCwg
c2Vjb25kcyAqIDEwMDAsIHRpbWVyQ2FsbGJhY2spOworICAgIFV0aWw6OnJ1bigmdGltZXJGaXJl
ZCk7CisgICAgdGltZXJGaXJlZCA9IGZhbHNlOworfQorCitzdGF0aWMgdm9pZCB3YWl0Rm9yQmFj
a2luZ1N0b3JlVXBkYXRlKFdLUGFnZVJlZiBwYWdlKQoreworICAgIC8vIFdhaXQgZm9yIHRoZSB3
ZWIgcHJvY2VzcyB0byBoYW5kbGUgdGhlIGNoYW5nZXMgd2UganVzdCBtYWRlLCB0byBwZXJmb3Jt
IGEgZGlzcGxheSAod2hpY2gKKyAgICAvLyBoYXBwZW5zIG9uIGEgdGltZXIpLCBhbmQgdG8gdGVs
bCB0aGUgVUkgcHJvY2VzcyBhYm91dCB0aGUgZGlzcGxheSAod2hpY2ggdXBkYXRlcyB0aGUgYmFj
a2luZworICAgIC8vIHN0b3JlKS4KKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbXVjaCBsZXNz
IGZyYWdpbGUgKGFuZCBtYXliZSBmYXN0ZXIpIHRvIGhhdmUgYW4gZXhwbGljaXQgd2F5IHRvIHdh
aXQKKyAgICAvLyB1bnRpbCB0aGUgYmFja2luZyBzdG9yZSBpcyB1cGRhdGVkLgorICAgIHJ1bkZv
ckR1cmF0aW9uKDAuNSk7CisgICAgZmx1c2hNZXNzYWdlcyhwYWdlKTsKK30KKworVEVTVChXZWJL
aXQyLCBSZXNpemVWaWV3V2hpbGVIaWRkZW4pCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIEhXTkQgd2luZG93ID0gV0tWaWV3
R2V0V2luZG93KHdlYlZpZXcucGxhdGZvcm1WaWV3KCkpOworCisgICAgUkVDVCBvcmlnaW5hbFJl
Y3Q7CisgICAgOjpHZXRDbGllbnRSZWN0KHdpbmRvdywgJm9yaWdpbmFsUmVjdCk7CisgICAgUkVD
VCBuZXdSZWN0ID0gb3JpZ2luYWxSZWN0OworICAgIDo6SW5mbGF0ZVJlY3QoJm5ld1JlY3QsIDEs
IDEpOworCisgICAgLy8gU2hvdyB0aGUgV0tWaWV3IGFuZCByZXNpemUgaXQgc28gdGhhdCB0aGUg
V0tWaWV3J3MgYmFja2luZyBzdG9yZSB3aWxsIGJlIGNyZWF0ZWQuIElkZWFsbHkKKyAgICAvLyB3
ZSdkIGhhdmUgc29tZSBtb3JlIGV4cGxpY2l0IHdheSBvZiBmb3JjaW5nIHRoZSBiYWNraW5nIHN0
b3JlIHRvIGJlIGNyZWF0ZWQuCisgICAgOjpTaG93V2luZG93KHdpbmRvdywgU1dfU0hPVyk7Cisg
ICAgd2ViVmlldy5yZXNpemVUbyhuZXdSZWN0LnJpZ2h0IC0gbmV3UmVjdC5sZWZ0LCBuZXdSZWN0
LmJvdHRvbSAtIG5ld1JlY3QudG9wKTsKKworICAgIHdhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGUo
d2ViVmlldy5wYWdlKCkpOworCisgICAgLy8gUmVzaXplIHRoZSB3aW5kb3cgd2hpbGUgaGlkZGVu
IGFuZCBzaG93IGl0IGFnYWluIHNvIHRoYXQgaXQgd2lsbCB1cGRhdGUgaXRzIGJhY2tpbmcgc3Rv
cmUgYXQKKyAgICAvLyB0aGUgbmV3IHNpemUuCisgICAgOjpTaG93V2luZG93KHdpbmRvdywgU1df
SElERSk7CisgICAgd2ViVmlldy5yZXNpemVUbyhvcmlnaW5hbFJlY3QucmlnaHQgLSBvcmlnaW5h
bFJlY3QubGVmdCwgb3JpZ2luYWxSZWN0LmJvdHRvbSAtIG9yaWdpbmFsUmVjdC50b3ApOworICAg
IDo6U2hvd1dpbmRvdyh3aW5kb3csIFNXX1NIT1cpOworCisgICAgLy8gSW4gRGVidWcgYnVpbGRz
IHdpdGhvdXQgdGhlIGZpeCBmb3IgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTQxNDE+LCB0aGUgd2Vi
IHByb2Nlc3Mgd2lsbCBhc3NlcnQKKyAgICAvLyBhdCB0aGlzIHBvaW50LgorICAgIC8vIEZJWE1F
OiBJdCB3b3VsZCBiZSBnb29kIHRvIGhhdmUgYSB3YXkgdG8gY2hlY2sgdGhhdCBvdXIgYmVoYXZp
b3IgaXMgY29ycmVjdCBpbiBSZWxlYXNlCisgICAgLy8gYnVpbGRzLCB0b28hCisgICAgd2FpdEZv
ckJhY2tpbmdTdG9yZVVwZGF0ZSh3ZWJWaWV3LnBhZ2UoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRm
b3JtV2ViVmlld1dpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZp
ZXdXaW4uY3BwCmluZGV4IGRlZGU0YjJiZmZjOTBmODllYmYwMGZjZGVhZDQ2OWIzMGNkYmRiZTcu
LjE4MzY3Y2I0MzhjYTBjMTEwMWJjNDI1ZDViZjY5YWUzZDk1NWIyMzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcApAQCAtNzcsNiArNzcsMTEg
QEAgV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCiAgICAgcmV0dXJuIFdLVmlld0dl
dFBhZ2UobV92aWV3KTsKIH0KIAordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgOjpTZXRXaW5kb3dQb3MoV0tWaWV3
R2V0V2luZG93KG1fdmlldyksIDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFNXUF9OT01PVkUgfCBT
V1BfTk9aT1JERVIgfCBTV1BfTk9BQ1RJVkFURSB8IFNXUF9OT0NPUFlCSVRTKTsKK30KKwogdm9p
ZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygpCiB7CiAgICAgSFdO
RCB3aW5kb3cgPSBXS1ZpZXdHZXRXaW5kb3cobV92aWV3KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKaW5kZXggMmU0ZWZjMDI3NjAzYjFlMWI5MWJiZjUy
MGE1MjQyYThhZmExOWY4Zi4uOGE2MGYxNTAzODMyMTAxZWQ1YmNlYzBiZDE0ZTEzMTMxODMyYzk2
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3By
b2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKQEAg
LTQ5NSw2ICs0OTUsMTAgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXHdpblxSZXNpemVWaWV3V2hpbGVIaWRk
ZW4uY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCiAJCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcd2luXFdNQ2xvc2VDYWxsc1VJQ2xpZW50Q2xvc2UuY3Bw
IgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+Cg==
</data>
<flag name="review"
          id="73483"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>