<?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>102758</bug_id>
          
          <creation_ts>2012-11-19 19:20:53 -0800</creation_ts>
          <short_desc>[Blackberry] When a frame is being detached, cancel all its network jobs.</short_desc>
          <delta_ts>2012-11-19 20:55:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris.Guan">logingx</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>771399</commentid>
    <comment_count>0</comment_count>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-11-19 19:20:53 -0800</bug_when>
    <thetext>When a frame is being detached, cancel all its network jobs with exception of
PingLoader.

This is a follow-up of RIM PR134207.

Each NetworkJob contains a pointer to Frame. The safety relies on the
assumption that FrameLoader::stopAllLoaders() always cancels all network jobs
that belongs to the frame (except PingLoader, for which we unlink the
NetworkJob from the Frame, so it is safe). If one day that is no longer true,
we are in trouble.

We already maintain the full list of active NetworkJob in the NetworkManager
skeleton. So it is easy to cancel all network jobs that link to the
falling-down Frame if any, or clear their m_frame pointers... At least we
should assert no such NetworkJob exists in debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771416</commentid>
    <comment_count>1</comment_count>
      <attachid>175120</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-11-19 19:56:31 -0800</bug_when>
    <thetext>Created attachment 175120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771417</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 19:59:06 -0800</bug_when>
    <thetext>Attachment 175120 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/ChangeLog:15:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:16:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771419</commentid>
    <comment_count>3</comment_count>
      <attachid>175120</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-11-19 20:02:17 -0800</bug_when>
    <thetext>Comment on attachment 175120
Patch

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

I like this patch a lot.  I don&apos;t think it&apos;s worth it to fix the typo in the commit log as a new round of changes.

&gt; Source/WebCore/ChangeLog:8
&gt; +        I use FrameDestructionObserver to refatcor Networkjob code.

Typo here - refactor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771421</commentid>
    <comment_count>4</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-11-19 20:02:42 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 175120 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; Source/WebCore/ChangeLog:15:  Line contains tab character.  [whitespace/tab] [5]
&gt; Source/WebCore/ChangeLog:16:  Line contains tab character.  [whitespace/tab] [5]
&gt; Total errors found: 2 in 6 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

But you have to fix these.  So you might as well fix the typo too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771422</commentid>
    <comment_count>5</comment_count>
      <attachid>175123</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-11-19 20:02:54 -0800</bug_when>
    <thetext>Created attachment 175123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771426</commentid>
    <comment_count>6</comment_count>
      <attachid>175124</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-11-19 20:07:03 -0800</bug_when>
    <thetext>Created attachment 175124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771448</commentid>
    <comment_count>7</comment_count>
      <attachid>175124</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 20:55:54 -0800</bug_when>
    <thetext>Comment on attachment 175124
Patch

Clearing flags on attachment: 175124

Committed r135243: &lt;http://trac.webkit.org/changeset/135243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771449</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 20:55:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175120</attachid>
            <date>2012-11-19 19:56:31 -0800</date>
            <delta_ts>2012-11-19 20:02:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102758-20121120115419.patch</filename>
            <type>text/plain</type>
            <size>14922</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM2ZmVjMTIxYjgxZjA2
ZjI4ZWNhODBjYWUzZjNhNGNkMTZmOTk5NC4uNDVlOGQ1MTE4ODMyNTk4NTMxNzdiY2UwMDRmYWVj
NGI1NThkYzRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTE5ICBDaHJp
cyBHdWFuICA8Y2hyaXMuZ3VhbkB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNr
YmVycnldIFdoZW4gYSBmcmFtZSBpcyBiZWluZyBkZXRhY2hlZCwgY2FuY2VsIGFsbCBpdHMgbmV0
d29yayBqb2JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyNzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSSB1c2UgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHRvIHJlZmF0Y29yIE5ldHdvcmtqb2Ig
Y29kZS4KKyAgICAgICAgTmV0d29ya0pvYiBpcyBpbmhlcml0aW5nIGZyb20gRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyIHRvIGJlCisgICAgICAgIGF3YXJlIG9mIGZyYW1lJ3MgZGVzdHJveWVkLiBX
aGVuIGEgZnJhbWUgaXMgYmVpbmcgZGV0YWNoZWQsCisgICAgICAgIHRoZSB3aWxsRGV0YWNoUGFn
ZSgpIGNhbiBiZSBjYWxsZWQgaW4gd2hpY2ggd2UgY2FuIGNhbmNlbCAKKyAgICAgICAgdGhlIGpv
Yi4gVGhpcyBwYXRjaCByZXZlcnRlZCB0aGUgZml4IGZvciBSSU0gUFIxMzQyMDcgYXMgd2VsbC4K
KworICAgICAgICBNYW51YWxseSB0ZXN0IGlzIG9uCisJCSJodHRwOi8vd3d3LnJldXRlcnMuY29t
L2FydGljbGUvMjAxMi8wMS8yNy91cy1ncmVlY2UtaWRVU1RSRTgwUDBERTIwMTIwMTI3IgorCQl3
aGljaCB0cmlnZ2VycyBhIHBpbmcgbG9hZGVyLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5n
ZWQsIG5vIG5ldyBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpO
ZXR3b3JrSm9iKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5SGVhZGVyUmVjZWl2ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6c3RhcnROZXdKb2JXaXRoUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpmcmFtZURlc3Ryb3llZCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OndpbGxEZXRhY2hQYWdl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oOgor
ICAgICAgICAoTmV0d29ya0pvYik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L05ldHdvcmtNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtNYW5hZ2Vy
OjpzdGFydEpvYik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtNYW5hZ2VyLmg6CisgICAgICAgIChOZXR3b3JrTWFuYWdlcik6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEyLTExLTE5
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiBDb2Rl
R2VuZXJhdG9yR09iamVjdC5wbSB3ZSBzaG91bGQgcmVuYW1lICRkYXRhTm9kZSB0byAkaW50ZXJm
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvTmV0d29ya0pvYi5jcHAKaW5kZXggZTI5NGU1ZTY1MjU5MTRiY2JlNGFlYTgxMjUwMmIy
OWVhNGYzMjBlYi4uNmMxODZmN2I4NGUyZjNlOTZjZTJjOTI2OTdiMWUwYTVlMzk1ZGEzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9OZXR3b3JrSm9iLmNwcApAQCAtNjQsNyArNjQsOCBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaXNV
bmF1dGhvcml6ZWQoaW50IHN0YXR1c0NvZGUpCiB9CiAKIE5ldHdvcmtKb2I6Ok5ldHdvcmtKb2Io
KQotICAgIDogbV9wbGF5ZXJJZCgwKQorICAgIDogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKDAp
CisgICAgLCBtX3BsYXllcklkKDApCiAgICAgLCBtX2RlbGV0ZUpvYlRpbWVyKHRoaXMsICZOZXR3
b3JrSm9iOjpmaXJlRGVsZXRlSm9iVGltZXIpCiAgICAgLCBtX3N0cmVhbUZhY3RvcnkoMCkKICAg
ICAsIG1faXNGaWxlKGZhbHNlKQpAQCAtODYsNyArODcsNiBAQCBOZXR3b3JrSm9iOjpOZXR3b3Jr
Sm9iKCkKICAgICAsIG1fcmVkaXJlY3RDb3VudCgwKQogICAgICwgbV9kZWZlcnJlZERhdGEoKnRo
aXMpCiAgICAgLCBtX2RlZmVyTG9hZGluZ0NvdW50KDApCi0gICAgLCBtX2ZyYW1lKDApCiAgICAg
LCBtX2lzQXV0aGVudGljYXRpb25DaGFsbGVuZ2luZyhmYWxzZSkKIHsKIH0KQEAgLTEwMywxMSAr
MTAzLDEyIEBAIGJvb2wgTmV0d29ya0pvYjo6aW5pdGlhbGl6ZShpbnQgcGxheWVySWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdv
cmtSZXF1ZXN0JiByZXF1ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZhY3RvcnkqIHN0cmVhbUZhY3Rvcnks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRnJhbWUmIGZyYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZyYW1lKiBmcmFtZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgZGVmZXJMb2FkaW5nQ291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IHJlZGlyZWN0Q291bnQpCiB7CiAgICAgQkxBQ0tCRVJSWV9BU1NFUlQoaGFuZGxlKTsK
KyAgICBCTEFDS0JFUlJZX0FTU0VSVChmcmFtZSk7CiAKICAgICBtX3BsYXllcklkID0gcGxheWVy
SWQ7CiAgICAgbV9wYWdlR3JvdXBOYW1lID0gcGFnZUdyb3VwTmFtZTsKQEAgLTExOSwxNCArMTIw
LDE1IEBAIGJvb2wgTmV0d29ya0pvYjo6aW5pdGlhbGl6ZShpbnQgcGxheWVySWQsCiAgICAgbV9o
YW5kbGUgPSBoYW5kbGU7CiAKICAgICBtX3N0cmVhbUZhY3RvcnkgPSBzdHJlYW1GYWN0b3J5Owot
ICAgIG1fZnJhbWUgPSAmZnJhbWU7CiAKLSAgICBpZiAobV9mcmFtZSAmJiBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+cGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgIT0gRnJhbWVMb2FkZXI6
Ok5vRGlzbWlzc2FsKSB7CisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS0+cGFnZURp
c21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgIT0gRnJhbWVMb2FkZXI6Ok5vRGlzbWlzc2Fs
KSB7CiAgICAgICAgIC8vIEluIHRoZSBjYXNlIHRoZSBmcmFtZSB3aWxsIGJlIGRldGFjaGVkIHNv
b24sIHdlIHN0aWxsIG5lZWQgdG8gcGluZyB0aGUgc2VydmVyLCBidXQgaXQgaXMKICAgICAgICAg
Ly8gbm8gbG9uZ2VyIHNhZmUgdG8gcmVmZXJlbmNlIHRoZSBGcmFtZSBvYmplY3QuCiAgICAgICAg
IC8vIFNlZSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NTkxMCBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDU3LgotICAgICAgICBtX2ZyYW1l
ID0gMDsKLSAgICB9CisgICAgICAgIC8vIG1fZnJhbWUgd291bGQgYmUgc2V0IHRvIHplcm8uCisg
ICAgICAgIG9ic2VydmVGcmFtZSgwKTsKKyAgICB9IGVsc2UKKyAgICAgICAgb2JzZXJ2ZUZyYW1l
KGZyYW1lKTsKIAogICAgIG1fcmVkaXJlY3RDb3VudCA9IHJlZGlyZWN0Q291bnQ7CiAgICAgbV9k
ZWZlckxvYWRpbmdDb3VudCA9IGRlZmVyTG9hZGluZ0NvdW50OwpAQCAtMzMyLDExICszMzQsNyBA
QCB2b2lkIE5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeUhlYWRlclJlY2VpdmVkKGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbAogICAgIGVsc2UgaWYgKGxvd2VyS2V5ID09ICJjb250
ZW50LWRpc3Bvc2l0aW9uIikKICAgICAgICAgbV9jb250ZW50RGlzcG9zaXRpb24gPSB2YWx1ZTsK
ICAgICBlbHNlIGlmIChsb3dlcktleSA9PSAic2V0LWNvb2tpZSIpIHsKLSAgICAgICAgLy8gRklY
TUU6IElmIGEgdGFiIGlzIGNsb3NlZCwgc29tZXRpbWVzIG5ldHdvcmsgZGF0YSB3aWxsIGNvbWUg
aW4gYWZ0ZXIgdGhlIGZyYW1lIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gaXRzIHBhZ2UgYnV0IGJl
Zm9yZSBpdCBpcyBkZWxldGVkLgotICAgICAgICAvLyBJZiB0aGlzIGhhcHBlbnMsIG1fZnJhbWUt
PnBhZ2UoKSB3aWxsIHJldHVybiAwLCBhbmQgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpIHdp
bGwgYmUgaW4gYSBiYWQgc3RhdGUgYW5kIGNhbGxpbmcgaW50byBpdCB3aWxsIGNyYXNoLgotICAg
ICAgICAvLyBGb3Igbm93IHdlIGNoZWNrIGZvciB0aGlzIGV4cGxpY2l0bHkgYnkgY2hlY2tpbmcg
bV9mcmFtZS0+cGFnZSgpLiBCdXQgd2Ugc2hvdWxkIGZpbmQgb3V0IHdoeSB0aGUgbmV0d29yayBq
b2IgaGFzbid0IGJlZW4gY2FuY2VsbGVkIHdoZW4gdGhlIGZyYW1lIHdhcyBkZXRhY2hlZC4KLSAg
ICAgICAgLy8gU2VlIFJJTSBQUiAxMzQyMDcKLSAgICAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFt
ZS0+cGFnZSgpICYmIG1fZnJhbWUtPmxvYWRlcigpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKQorICAgICAgICBpZiAobV9mcmFtZSAmJiBtX2ZyYW1lLT5sb2FkZXIoKSAmJiBtX2ZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCkKICAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PEZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeSo+KG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tp
ZXNFbmFibGVkKCkpIHsKICAgICAgICAgICAgIGhhbmRsZVNldENvb2tpZUhlYWRlcih2YWx1ZSk7
CiAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc2V2ZXJhbCAiU2V0LUNvb2tpZSIgaGVhZGVy
cywgd2Ugc2hvdWxkIGNvbWJpbmUgdGhlIGZvbGxvd2luZyBvbmVzIHdpdGggdGhlIGZpcnN0LgpA
QCAtNTg4LDcgKzU4Niw3IEBAIGJvb2wgTmV0d29ya0pvYjo6c3RhcnROZXdKb2JXaXRoUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGJvb2wgaW5jcmVhCiAgICAgICAgIGhhbmRs
ZSwKICAgICAgICAgbmV3UmVxdWVzdCwKICAgICAgICAgbV9zdHJlYW1GYWN0b3J5LAotICAgICAg
ICAqbV9mcmFtZSwKKyAgICAgICAgbV9mcmFtZSwKICAgICAgICAgbV9kZWZlckxvYWRpbmdDb3Vu
dCwKICAgICAgICAgaW5jcmVhc2VSZWRpcmVjdENvdW50ID8gbV9yZWRpcmVjdENvdW50ICsgMSA6
IG1fcmVkaXJlY3RDb3VudCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC05MzksNCArOTM3LDE3IEBA
IHZvaWQgTmV0d29ya0pvYjo6bm90aWZ5Q2hhbGxlbmdlUmVzdWx0KGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiBwCiAgICAgbV9uZXdKb2JXaXRoQ3JlZGVudGlhbHNTdGFy
dGVkID0gc3RhcnROZXdKb2JXaXRoUmVxdWVzdChuZXdSZXF1ZXN0KTsKIH0KIAordm9pZCBOZXR3
b3JrSm9iOjpmcmFtZURlc3Ryb3llZCgpCit7CisgICAgaWYgKG1fZnJhbWUgJiYgIW1fY2FuY2Vs
bGVkKQorICAgICAgICBjYW5jZWxKb2IoKTsKKyAgICBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6
OmZyYW1lRGVzdHJveWVkKCk7Cit9CisKK3ZvaWQgTmV0d29ya0pvYjo6d2lsbERldGFjaFBhZ2Uo
KQoreworICAgIGlmIChtX2ZyYW1lICYmICFtX2NhbmNlbGxlZCkKKyAgICAgICAgY2FuY2VsSm9i
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCmluZGV4IDE4YTI5
YzJjMDRlOWRlMjZmOWJjMjk0MzAyYjVjMTJjN2MzNmY3ZWYuLmViNWM5NDQyMDI3OGJiZDE0YWY2
MzVmNjg0MzUyZWFiOGM2NTJiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaApAQCAtMjEsNyArMjEsNyBAQAog
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
RGVmZXJyZWREYXRhLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJG
cmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNDcs
NyArNDcsNyBAQCBjbGFzcyBLVVJMOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVz
b3VyY2VSZXF1ZXN0OwogCi1jbGFzcyBOZXR3b3JrSm9iIDogcHVibGljIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQ2xpZW50LCBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVh
bSB7CitjbGFzcyBOZXR3b3JrSm9iIDogcHVibGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ2xp
ZW50LCBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbSwgcHVibGljIEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgTmV0d29ya0pvYigpOwogICAg
IH5OZXR3b3JrSm9iKCk7CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0JiwKICAgICAg
ICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4sCiAgICAgICAgICAgICAg
ICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSosCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEZyYW1lJiwKKyAgICAgICAgICAgICAgICAgICAgRnJhbWUq
LAogICAgICAgICAgICAgICAgICAgICBpbnQgZGVmZXJMb2FkaW5nQ291bnQsCiAgICAgICAgICAg
ICAgICAgICAgIGludCByZWRpcmVjdENvdW50KTsKICAgICBQYXNzUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZTsgfQpAQCAtODksNiArODksMTAg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25z
dCBLVVJMJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VS
ZXN1bHQsIGNvbnN0IENyZWRlbnRpYWwmKTsKIAorICAgIC8vIEltcGxlbWVudGF0aW9uIG9mIEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciBwdXJlIHZpcnR1YWxzLgorICAgIHZpcnR1YWwgdm9pZCBm
cmFtZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUGFnZSgpOworCiBw
cml2YXRlOgogICAgIGJvb2wgaXNDbGllbnRBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiAhbV9j
YW5jZWxsZWQgJiYgbV9oYW5kbGUgJiYgbV9oYW5kbGUtPmNsaWVudCgpOyB9CiAKQEAgLTE3NCw3
ICsxNzgsNiBAQCBwcml2YXRlOgogCiAgICAgRGVmZXJyZWREYXRhIG1fZGVmZXJyZWREYXRhOwog
ICAgIGludCBtX2RlZmVyTG9hZGluZ0NvdW50OwotICAgIGNvbnN0IEZyYW1lKiBtX2ZyYW1lOwog
CiAgICAgYm9vbCBtX2lzQXV0aGVudGljYXRpb25DaGFsbGVuZ2luZzsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtNYW5hZ2VyLmNwcAppbmRleCAxOGJjMWU3NTE3MzVjZGJhODI2ZTUzNzU2MTBkNGY2NGM0NjY3
ZmIyLi41YmJkMGIxM2VhNjZhZTZhMmRlNWRmODg2MTU5ZDUzOWNmYjk5NjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrTWFuYWdlci5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBTSU5HTEVUT05fSU5JVElBTElaRVJfVEhSRUFEVU5TQUZFKE5ldHdvcmtNYW5hZ2VyKQogCi1i
b29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGpvYiwgY29uc3QgRnJhbWUmIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcp
Citib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGpvYiwgRnJhbWUqIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcpCiB7
CiAgICAgQVNTRVJUKGpvYi5nZXQoKSk7CiAgICAgLy8gV2Ugc2hvdWxkbid0IGNhbGwgbWV0aG9k
cyBvbiBQYXNzUmVmUHRyIHNvIG1ha2UgYSBuZXcgUmVmUHQuCkBAIC00NiwxNiArNDYsMTYgQEAg
Ym9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBQYXNzUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBqb2IsIGNvbnMKICAgICByZXR1cm4gc3RhcnRKb2IocGxheWVySWQsIHJl
ZkpvYiwgcmVmSm9iLT5maXJzdFJlcXVlc3QoKSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogfQog
Ci1ib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGpvYiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBGcmFtZSYgZnJhbWUsIGJvb2wgZGVmZXJzTG9hZGluZykKK2Jvb2wgTmV0d29ya01hbmFnZXI6
OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9iLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZlcnNM
b2FkaW5nKQogewotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAgUGFnZSogcGFn
ZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJlYW1GYWN0b3J5KiBzdHJlYW1G
YWN0b3J5ID0gcGFnZS0+Y2hyb21lKCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5uZXR3b3JrU3Ry
ZWFtRmFjdG9yeSgpOwogICAgIHJldHVybiBzdGFydEpvYihwbGF5ZXJJZCwgcGFnZS0+Z3JvdXBO
YW1lKCksIGpvYiwgcmVxdWVzdCwgc3RyZWFtRmFjdG9yeSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcg
PyAxIDogMCk7CiB9CiAKLWJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJ
ZCwgY29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBqb2IsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZv
cm06Ok5ldHdvcmtTdHJlYW1GYWN0b3J5KiBzdHJlYW1GYWN0b3J5LCBjb25zdCBGcmFtZSYgZnJh
bWUsIGludCBkZWZlckxvYWRpbmdDb3VudCwgaW50IHJlZGlyZWN0Q291bnQpCitib29sIE5ldHdv
cmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdyb3Vw
TmFtZSwgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9iLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSog
c3RyZWFtRmFjdG9yeSwgRnJhbWUqIGZyYW1lLCBpbnQgZGVmZXJMb2FkaW5nQ291bnQsIGludCBy
ZWRpcmVjdENvdW50KQogewogICAgIC8vIE1ha2Ugc3VyZSB0aGUgUmVzb3VyY2VIYW5kbGUgZG9l
c24ndCBnbyBvdXQgb2Ygc2NvcGUgd2hpbGUgY2FsbGluZyBjYWxsYmFja3MuCiAgICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBndWFyZEpvYihqb2IpOwpAQCAtNjgsMTQgKzY4LDE0IEBAIGJvb2wg
TmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgY29uc3QgU3RyaW5nJiBwYWdl
R3JvdXBOYW1lLCBQYXNzUmVmCiAgICAgICAgIG1faW5pdGlhbFVSTCA9IEtVUkwoKTsKIAogICAg
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7Ci0g
ICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZnJh
bWUubG9hZGVyKCkgJiYgZnJhbWUubG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRpY19jYXN0PEZy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KGZyYW1lLmxvYWRlcigpLT5jbGllbnQoKSktPmNv
b2tpZXNFbmFibGVkKCksIGlzSW5pdGlhbCwgcmVkaXJlY3RDb3VudCk7CisgICAgcmVxdWVzdC5p
bml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgZnJhbWUtPmxvYWRlcigp
ICYmIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkgJiYgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPmNvb2tpZXNFbmFi
bGVkKCksIGlzSW5pdGlhbCwgcmVkaXJlY3RDb3VudCk7CiAKLSAgICBjb25zdCBTdHJpbmcmIGRv
Y3VtZW50VXJsID0gZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCk7CisgICAgY29uc3Qg
U3RyaW5nJiBkb2N1bWVudFVybCA9IGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKTsK
ICAgICBpZiAoIWRvY3VtZW50VXJsLmlzRW1wdHkoKSkgewogICAgICAgICBwbGF0Zm9ybVJlcXVl
c3Quc2V0UmVmZXJyZXIoZG9jdW1lbnRVcmwpOwogICAgIH0KIAotICAgIHBsYXRmb3JtUmVxdWVz
dC5zZXRTZWN1cml0eU9yaWdpbihmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50
b1Jhd1N0cmluZygpKTsKKyAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0U2VjdXJpdHlPcmlnaW4oZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvUmF3U3RyaW5nKCkpOwogCiAgICAg
Ly8gQXR0YWNoIGFueSBhcHBsaWNhYmxlIGF1dGggY3JlZGVudGlhbHMgdG8gdGhlIE5ldHdvcmtS
ZXF1ZXN0LgogICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UgPSBndWFyZEpv
Yi0+Z2V0SW50ZXJuYWwoKS0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuaAppbmRleCBhZjYwYWI4OTBiNTZlYjU4YjYyZDVmNDM4YTVkODlhMGQ0ZGQ1YWE1Li44ODgz
M2YwOTJlZWJlMjQxNmMzODEyOTM3YzA4ZTczMTg5ZjBiYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya01hbmFn
ZXIuaApAQCAtNDIsOCArNDIsOCBAQCBjbGFzcyBOZXR3b3JrTWFuYWdlciA6IHB1YmxpYyBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6VGhyZWFkVW5zYWZlU2luZ2xldG9uPE5ldHdvcgogcHVibGljOgog
ICAgIHZvaWQgc2V0SW5pdGlhbFVSTChjb25zdCBLVVJMJiB1cmwpIHsgbV9pbml0aWFsVVJMID0g
dXJsOyB9CiAgICAgS1VSTCBpbml0aWFsVVJMKCkgeyByZXR1cm4gbV9pbml0aWFsVVJMOyB9Ci0g
ICAgYm9vbCBzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGpvYiwgY29uc3QgRnJhbWUmLCBib29sIGRlZmVyc0xvYWRpbmcpOwotICAgIGJvb2wgc3RhcnRK
b2IoaW50IHBsYXllcklkLCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IEZyYW1lJiwgYm9vbCBkZWZlcnNMb2FkaW5nKTsKKyAgICBi
b29sIHN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9i
LCBGcmFtZSosIGJvb2wgZGVmZXJzTG9hZGluZyk7CisgICAgYm9vbCBzdGFydEpvYihpbnQgcGxh
eWVySWQsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGpvYiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcpOwogICAgIGJvb2wgc3RvcEpvYihQYXNz
UmVmUHRyPFJlc291cmNlSGFuZGxlPik7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFBhc3NS
ZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGpvYiwgYm9vbCBkZWZlcnNMb2FkaW5nKTsKICAgICB2b2lk
IHBhdXNlTG9hZChQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGJvb2wgcGF1c2UpOwpA
QCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogCiAgICAgTmV0d29ya0pvYiogZmluZEpvYkZvckhh
bmRsZShQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPik7CiAgICAgdm9pZCBkZWxldGVKb2IoTmV0
d29ya0pvYiopOwotICAgIGJvb2wgc3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25zdCBTdHJpbmcm
IHBhZ2VHcm91cE5hbWUsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZhY3RvcnkqLCBj
b25zdCBGcmFtZSYsIGludCBkZWZlckxvYWRpbmdDb3VudCA9IDAsIGludCByZWRpcmVjdENvdW50
ID0gMCk7CisgICAgYm9vbCBzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFn
ZUdyb3VwTmFtZSwgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4sIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSosIEZyYW1l
KiwgaW50IGRlZmVyTG9hZGluZ0NvdW50ID0gMCwgaW50IHJlZGlyZWN0Q291bnQgPSAwKTsKIAog
ICAgIFZlY3RvcjxOZXR3b3JrSm9iKj4gbV9qb2JzOwogICAgIEtVUkwgbV9pbml0aWFsVVJMOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jl
c291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAppbmRleCAyYTQwNDQ1
MTI1NDA5OTcwMTE4YzhiZjg5MzQzNmJjYTQ0OTczOTY3Li4yOTA1YTIxYTRjOTU4NGFmZDUxZTA3
YWRmODM5NzZhMzIwODQ3YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFj
a0JlcnJ5LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5s
b2FkZXIoKSB8fCAhZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSB8fCAhY2xpZW50KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpbnQgcGxheWVySWQgPSBzdGF0aWNfY2FzdDxGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+cGxheWVy
SWQoKTsKLSAgICByZXR1cm4gTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPnN0YXJ0Sm9iKHBs
YXllcklkLCB0aGlzLCAqZnJhbWUsIGQtPm1fZGVmZXJzTG9hZGluZyk7CisgICAgcmV0dXJuIE5l
dHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zdGFydEpvYihwbGF5ZXJJZCwgdGhpcywgZnJhbWUs
IGQtPm1fZGVmZXJzTG9hZGluZyk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBhdXNlTG9h
ZChib29sIHBhdXNlKQpAQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Omxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
CiAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSBmYWxzZTsKIAogICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3Qs
ICZzeW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKLSAgICBO
ZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQsIGhhbmRsZSwgKmZy
YW1lLCBkZWZlcnNMb2FkaW5nKTsKKyAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3Rh
cnRKb2IocGxheWVySWQsIGhhbmRsZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29u
c3QgZG91YmxlIHN5bmNMb2FkVGltZU91dCA9IDYwOyAvLyBzZWNvbmRzCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175123</attachid>
            <date>2012-11-19 20:02:54 -0800</date>
            <delta_ts>2012-11-19 20:06:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102758-20121120120041.patch</filename>
            <type>text/plain</type>
            <size>14935</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM2ZmVjMTIxYjgxZjA2
ZjI4ZWNhODBjYWUzZjNhNGNkMTZmOTk5NC4uZGRmZmY2ZDk3MTYxMTljYjgwNzFhY2Y2MjkwY2Zj
ZmE5YzQ1YTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTE5ICBDaHJp
cyBHdWFuICA8Y2hyaXMuZ3VhbkB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNr
YmVycnldIFdoZW4gYSBmcmFtZSBpcyBiZWluZyBkZXRhY2hlZCwgY2FuY2VsIGFsbCBpdHMgbmV0
d29yayBqb2JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyNzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSSB1c2UgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHRvIHJlZmF0Y29yIE5ldHdvcmtqb2Ig
Y29kZS4KKyAgICAgICAgTmV0d29ya0pvYiBpcyBpbmhlcml0aW5nIGZyb20gRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyIHRvIGJlCisgICAgICAgIGF3YXJlIG9mIGZyYW1lJ3MgZGVzdHJveWVkLiBX
aGVuIGEgZnJhbWUgaXMgYmVpbmcgZGV0YWNoZWQsCisgICAgICAgIHRoZSB3aWxsRGV0YWNoUGFn
ZSgpIGNhbiBiZSBjYWxsZWQgaW4gd2hpY2ggd2UgY2FuIGNhbmNlbCAKKyAgICAgICAgdGhlIGpv
Yi4gVGhpcyBwYXRjaCByZXZlcnRlZCB0aGUgZml4IGZvciBSSU0gUFIxMzQyMDcgYXMgd2VsbC4K
KworICAgICAgICBNYW51YWxseSB0ZXN0IGlzIG9uIAorICAgICAgICAiaHR0cDovL3d3dy5yZXV0
ZXJzLmNvbS9hcnRpY2xlLzIwMTIvMDEvMjcvdXMtZ3JlZWNlLWlkVVNUUkU4MFAwREUyMDEyMDEy
NyIKKyAgICAgICAgd2hpY2ggdHJpZ2dlcnMgYSBwaW5nIGxvYWRlci4KKworICAgICAgICBObyBi
ZWhhdmlvciBjaGFuZ2VkLCBubyBuZXcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya0pvYjo6TmV0d29ya0pvYik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpp
bml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeUhl
YWRlclJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnN0YXJ0TmV3Sm9i
V2l0aFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6ZnJhbWVEZXN0cm95
ZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjp3
aWxsRGV0YWNoUGFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05l
dHdvcmtKb2IuaDoKKyAgICAgICAgKE5ldHdvcmtKb2IpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5oOgorICAgICAgICAoTmV0d29ya01hbmFnZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToK
KwogMjAxMi0xMS0xOSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgSW4gQ29kZUdlbmVyYXRvckdPYmplY3QucG0gd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5v
ZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IGUyOTRlNWU2NTI1OTE0YmNi
ZTRhZWE4MTI1MDJiMjllYTRmMzIwZWIuLjZjMTg2ZjdiODRlMmYzZTk2Y2UyYzkyNjk3YjFlMGE1
ZTM5NWRhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTY0LDcgKzY0LDggQEAgaW5saW5lIHN0
YXRpYyBib29sIGlzVW5hdXRob3JpemVkKGludCBzdGF0dXNDb2RlKQogfQogCiBOZXR3b3JrSm9i
OjpOZXR3b3JrSm9iKCkKLSAgICA6IG1fcGxheWVySWQoMCkKKyAgICA6IEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlcigwKQorICAgICwgbV9wbGF5ZXJJZCgwKQogICAgICwgbV9kZWxldGVKb2JUaW1l
cih0aGlzLCAmTmV0d29ya0pvYjo6ZmlyZURlbGV0ZUpvYlRpbWVyKQogICAgICwgbV9zdHJlYW1G
YWN0b3J5KDApCiAgICAgLCBtX2lzRmlsZShmYWxzZSkKQEAgLTg2LDcgKzg3LDYgQEAgTmV0d29y
a0pvYjo6TmV0d29ya0pvYigpCiAgICAgLCBtX3JlZGlyZWN0Q291bnQoMCkKICAgICAsIG1fZGVm
ZXJyZWREYXRhKCp0aGlzKQogICAgICwgbV9kZWZlckxvYWRpbmdDb3VudCgwKQotICAgICwgbV9m
cmFtZSgwKQogICAgICwgbV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmcoZmFsc2UpCiB7CiB9
CkBAIC0xMDMsMTEgKzEwMywxMiBAQCBib29sIE5ldHdvcmtKb2I6OmluaXRpYWxpemUoaW50IHBs
YXllcklkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpOZXR3b3JrUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJlYW1GYWN0b3J5KiBz
dHJlYW1GYWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZyYW1lJiBm
cmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZnJhbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGRlZmVyTG9hZGluZ0NvdW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCByZWRpcmVjdENvdW50KQogewogICAgIEJMQUNLQkVSUllfQVNT
RVJUKGhhbmRsZSk7CisgICAgQkxBQ0tCRVJSWV9BU1NFUlQoZnJhbWUpOwogCiAgICAgbV9wbGF5
ZXJJZCA9IHBsYXllcklkOwogICAgIG1fcGFnZUdyb3VwTmFtZSA9IHBhZ2VHcm91cE5hbWU7CkBA
IC0xMTksMTQgKzEyMCwxNSBAQCBib29sIE5ldHdvcmtKb2I6OmluaXRpYWxpemUoaW50IHBsYXll
cklkLAogICAgIG1faGFuZGxlID0gaGFuZGxlOwogCiAgICAgbV9zdHJlYW1GYWN0b3J5ID0gc3Ry
ZWFtRmFjdG9yeTsKLSAgICBtX2ZyYW1lID0gJmZyYW1lOwogCi0gICAgaWYgKG1fZnJhbWUgJiYg
bV9mcmFtZS0+bG9hZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9
IEZyYW1lTG9hZGVyOjpOb0Rpc21pc3NhbCkgeworICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9h
ZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9hZGVy
OjpOb0Rpc21pc3NhbCkgewogICAgICAgICAvLyBJbiB0aGUgY2FzZSB0aGUgZnJhbWUgd2lsbCBi
ZSBkZXRhY2hlZCBzb29uLCB3ZSBzdGlsbCBuZWVkIHRvIHBpbmcgdGhlIHNlcnZlciwgYnV0IGl0
IGlzCiAgICAgICAgIC8vIG5vIGxvbmdlciBzYWZlIHRvIHJlZmVyZW5jZSB0aGUgRnJhbWUgb2Jq
ZWN0LgogICAgICAgICAvLyBTZWUgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjU5
MTAgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDQ1Ny4KLSAg
ICAgICAgbV9mcmFtZSA9IDA7Ci0gICAgfQorICAgICAgICAvLyBtX2ZyYW1lIHdvdWxkIGJlIHNl
dCB0byB6ZXJvLgorICAgICAgICBvYnNlcnZlRnJhbWUoMCk7CisgICAgfSBlbHNlCisgICAgICAg
IG9ic2VydmVGcmFtZShmcmFtZSk7CiAKICAgICBtX3JlZGlyZWN0Q291bnQgPSByZWRpcmVjdENv
dW50OwogICAgIG1fZGVmZXJMb2FkaW5nQ291bnQgPSBkZWZlckxvYWRpbmdDb3VudDsKQEAgLTMz
MiwxMSArMzM0LDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlIZWFkZXJSZWNlaXZl
ZChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWwKICAgICBlbHNlIGlmIChsb3dl
cktleSA9PSAiY29udGVudC1kaXNwb3NpdGlvbiIpCiAgICAgICAgIG1fY29udGVudERpc3Bvc2l0
aW9uID0gdmFsdWU7CiAgICAgZWxzZSBpZiAobG93ZXJLZXkgPT0gInNldC1jb29raWUiKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBJZiBhIHRhYiBpcyBjbG9zZWQsIHNvbWV0aW1lcyBuZXR3b3JrIGRh
dGEgd2lsbCBjb21lIGluIGFmdGVyIHRoZSBmcmFtZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIGl0
cyBwYWdlIGJ1dCBiZWZvcmUgaXQgaXMgZGVsZXRlZC4KLSAgICAgICAgLy8gSWYgdGhpcyBoYXBw
ZW5zLCBtX2ZyYW1lLT5wYWdlKCkgd2lsbCByZXR1cm4gMCwgYW5kIG1fZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKSB3aWxsIGJlIGluIGEgYmFkIHN0YXRlIGFuZCBjYWxsaW5nIGludG8gaXQgd2ls
bCBjcmFzaC4KLSAgICAgICAgLy8gRm9yIG5vdyB3ZSBjaGVjayBmb3IgdGhpcyBleHBsaWNpdGx5
IGJ5IGNoZWNraW5nIG1fZnJhbWUtPnBhZ2UoKS4gQnV0IHdlIHNob3VsZCBmaW5kIG91dCB3aHkg
dGhlIG5ldHdvcmsgam9iIGhhc24ndCBiZWVuIGNhbmNlbGxlZCB3aGVuIHRoZSBmcmFtZSB3YXMg
ZGV0YWNoZWQuCi0gICAgICAgIC8vIFNlZSBSSU0gUFIgMTM0MjA3Ci0gICAgICAgIGlmIChtX2Zy
YW1lICYmIG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKSAmJiBtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCkKKyAgICAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+bG9hZGVy
KCkgJiYgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpCiAgICAgICAgICAgICAmJiBzdGF0aWNf
Y2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCkpLT5jb29raWVzRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBoYW5kbGVTZXRDb29raWVI
ZWFkZXIodmFsdWUpOwogICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNldmVyYWwgIlNldC1D
b29raWUiIGhlYWRlcnMsIHdlIHNob3VsZCBjb21iaW5lIHRoZSBmb2xsb3dpbmcgb25lcyB3aXRo
IHRoZSBmaXJzdC4KQEAgLTU4OCw3ICs1ODYsNyBAQCBib29sIE5ldHdvcmtKb2I6OnN0YXJ0TmV3
Sm9iV2l0aFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBib29sIGluY3JlYQog
ICAgICAgICBoYW5kbGUsCiAgICAgICAgIG5ld1JlcXVlc3QsCiAgICAgICAgIG1fc3RyZWFtRmFj
dG9yeSwKLSAgICAgICAgKm1fZnJhbWUsCisgICAgICAgIG1fZnJhbWUsCiAgICAgICAgIG1fZGVm
ZXJMb2FkaW5nQ291bnQsCiAgICAgICAgIGluY3JlYXNlUmVkaXJlY3RDb3VudCA/IG1fcmVkaXJl
Y3RDb3VudCArIDEgOiBtX3JlZGlyZWN0Q291bnQpOwogICAgIHJldHVybiB0cnVlOwpAQCAtOTM5
LDQgKzkzNywxNyBAQCB2b2lkIE5ldHdvcmtKb2I6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcAogICAgIG1fbmV3Sm9iV2l0aENy
ZWRlbnRpYWxzU3RhcnRlZCA9IHN0YXJ0TmV3Sm9iV2l0aFJlcXVlc3QobmV3UmVxdWVzdCk7CiB9
CiAKK3ZvaWQgTmV0d29ya0pvYjo6ZnJhbWVEZXN0cm95ZWQoKQoreworICAgIGlmIChtX2ZyYW1l
ICYmICFtX2NhbmNlbGxlZCkKKyAgICAgICAgY2FuY2VsSm9iKCk7CisgICAgRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyOjpmcmFtZURlc3Ryb3llZCgpOworfQorCit2b2lkIE5ldHdvcmtKb2I6Ondp
bGxEZXRhY2hQYWdlKCkKK3sKKyAgICBpZiAobV9mcmFtZSAmJiAhbV9jYW5jZWxsZWQpCisgICAg
ICAgIGNhbmNlbEpvYigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2Iu
aAppbmRleCAxOGEyOWMyYzA0ZTlkZTI2ZjliYzI5NDMwMmI1YzEyYzdjMzZmN2VmLi5lYjVjOTQ0
MjAyNzhiYmQxNGFmNjM1ZjY4NDM1MmVhYjhjNjUyYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKQEAgLTIx
LDcgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5o
IgogI2luY2x1ZGUgIkRlZmVycmVkRGF0YS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgS1VSTDsKIGNsYXNzIFByb3RlY3Rpb25TcGFj
ZTsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIAotY2xhc3MgTmV0d29ya0pvYiA6IHB1YmxpYyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpGaWx0ZXJTdHJlYW0geworY2xhc3MgTmV0d29ya0pvYiA6IHB1YmxpYyBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJl
YW0sIHB1YmxpYyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIE5ldHdv
cmtKb2IoKTsKICAgICB+TmV0d29ya0pvYigpOwpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVx
dWVzdCYsCiAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+LAog
ICAgICAgICAgICAgICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZh
Y3RvcnkqLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBGcmFtZSYsCisgICAgICAgICAgICAg
ICAgICAgIEZyYW1lKiwKICAgICAgICAgICAgICAgICAgICAgaW50IGRlZmVyTG9hZGluZ0NvdW50
LAogICAgICAgICAgICAgICAgICAgICBpbnQgcmVkaXJlY3RDb3VudCk7CiAgICAgUGFzc1JlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGU7IH0KQEAg
LTg5LDYgKzg5LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDaGFsbGVu
Z2VSZXN1bHQoY29uc3QgS1VSTCYsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUmVzdWx0LCBjb25zdCBDcmVkZW50aWFsJik7CiAKKyAgICAvLyBJbXBsZW1l
bnRhdGlvbiBvZiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgcHVyZSB2aXJ0dWFscy4KKyAgICB2
aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFj
aFBhZ2UoKTsKKwogcHJpdmF0ZToKICAgICBib29sIGlzQ2xpZW50QXZhaWxhYmxlKCkgY29uc3Qg
eyByZXR1cm4gIW1fY2FuY2VsbGVkICYmIG1faGFuZGxlICYmIG1faGFuZGxlLT5jbGllbnQoKTsg
fQogCkBAIC0xNzQsNyArMTc4LDYgQEAgcHJpdmF0ZToKIAogICAgIERlZmVycmVkRGF0YSBtX2Rl
ZmVycmVkRGF0YTsKICAgICBpbnQgbV9kZWZlckxvYWRpbmdDb3VudDsKLSAgICBjb25zdCBGcmFt
ZSogbV9mcmFtZTsKIAogICAgIGJvb2wgbV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmc7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggMThiYzFlNzUxNzM1Y2RiYTgyNmU1Mzc1
NjEwZDRmNjRjNDY2N2ZiMi4uNWJiZDBiMTNlYTY2YWU2YTJkZTVkZjg4NjE1OWQ1MzljZmI5OTYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogU0lOR0xFVE9OX0lOSVRJQUxJWkVSX1RIUkVBRFVOU0FGRShOZXR3b3Jr
TWFuYWdlcikKIAotYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBQ
YXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IEZyYW1lJiBmcmFtZSwgYm9vbCBk
ZWZlcnNMb2FkaW5nKQorYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklk
LCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZl
cnNMb2FkaW5nKQogewogICAgIEFTU0VSVChqb2IuZ2V0KCkpOwogICAgIC8vIFdlIHNob3VsZG4n
dCBjYWxsIG1ldGhvZHMgb24gUGFzc1JlZlB0ciBzbyBtYWtlIGEgbmV3IFJlZlB0LgpAQCAtNDYs
MTYgKzQ2LDE2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwg
UGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9iLCBjb25zCiAgICAgcmV0dXJuIHN0YXJ0Sm9i
KHBsYXllcklkLCByZWZKb2IsIHJlZkpvYi0+Zmlyc3RSZXF1ZXN0KCksIGZyYW1lLCBkZWZlcnNM
b2FkaW5nKTsKIH0KIAotYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklk
LCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgRnJhbWUmIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcpCitib29sIE5l
dHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGpvYiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSogZnJhbWUs
IGJvb2wgZGVmZXJzTG9hZGluZykKIHsKLSAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFnZSgpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFj
dG9yeSogc3RyZWFtRmFjdG9yeSA9IHBhZ2UtPmNocm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KS0+bmV0d29ya1N0cmVhbUZhY3RvcnkoKTsKICAgICByZXR1cm4gc3RhcnRKb2IocGxheWVySWQs
IHBhZ2UtPmdyb3VwTmFtZSgpLCBqb2IsIHJlcXVlc3QsIHN0cmVhbUZhY3RvcnksIGZyYW1lLCBk
ZWZlcnNMb2FkaW5nID8gMSA6IDApOwogfQogCi1ib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpv
YihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdyb3VwTmFtZSwgUGFzc1JlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gam9iLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSogc3RyZWFtRmFjdG9yeSwgY29u
c3QgRnJhbWUmIGZyYW1lLCBpbnQgZGVmZXJMb2FkaW5nQ291bnQsIGludCByZWRpcmVjdENvdW50
KQorYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25zdCBTdHJp
bmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGpvYiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0
cmVhbUZhY3RvcnkqIHN0cmVhbUZhY3RvcnksIEZyYW1lKiBmcmFtZSwgaW50IGRlZmVyTG9hZGlu
Z0NvdW50LCBpbnQgcmVkaXJlY3RDb3VudCkKIHsKICAgICAvLyBNYWtlIHN1cmUgdGhlIFJlc291
cmNlSGFuZGxlIGRvZXNuJ3QgZ28gb3V0IG9mIHNjb3BlIHdoaWxlIGNhbGxpbmcgY2FsbGJhY2tz
LgogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gZ3VhcmRKb2Ioam9iKTsKQEAgLTY4LDE0ICs2
OCwxNCBAQCBib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0
IFN0cmluZyYgcGFnZUdyb3VwTmFtZSwgUGFzc1JlZgogICAgICAgICBtX2luaXRpYWxVUkwgPSBL
VVJMKCk7CiAKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZv
cm1SZXF1ZXN0OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9y
bVJlcXVlc3QsIGZyYW1lLmxvYWRlcigpICYmIGZyYW1lLmxvYWRlcigpLT5jbGllbnQoKSAmJiBz
dGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihmcmFtZS5sb2FkZXIoKS0+
Y2xpZW50KCkpLT5jb29raWVzRW5hYmxlZCgpLCBpc0luaXRpYWwsIHJlZGlyZWN0Q291bnQpOwor
ICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGZy
YW1lLT5sb2FkZXIoKSAmJiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRpY19jYXN0
PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkp
LT5jb29raWVzRW5hYmxlZCgpLCBpc0luaXRpYWwsIHJlZGlyZWN0Q291bnQpOwogCi0gICAgY29u
c3QgU3RyaW5nJiBkb2N1bWVudFVybCA9IGZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygp
OworICAgIGNvbnN0IFN0cmluZyYgZG9jdW1lbnRVcmwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFkb2N1bWVudFVybC5pc0VtcHR5KCkpIHsKICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LnNldFJlZmVycmVyKGRvY3VtZW50VXJsKTsKICAgICB9CiAKLSAgICBw
bGF0Zm9ybVJlcXVlc3Quc2V0U2VjdXJpdHlPcmlnaW4oZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+dG9SYXdTdHJpbmcoKSk7CisgICAgcGxhdGZvcm1SZXF1ZXN0LnNldFNlY3Vy
aXR5T3JpZ2luKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1Jhd1N0cmlu
ZygpKTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGljYWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRv
IHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3
b3JrTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmgKaW5kZXggYWY2MGFiODkwYjU2ZWI1OGI2MmQ1ZjQzOGE1ZDg5YTBk
NGRkNWFhNS4uODg4MzNmMDkyZWViZTI0MTZjMzgxMjkzN2MwOGU3MzE4OWYwYmJmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmgKQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgTmV0d29ya01hbmFnZXIg
OiBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRocmVhZFVuc2FmZVNpbmdsZXRvbjxOZXR3
b3IKIHB1YmxpYzoKICAgICB2b2lkIHNldEluaXRpYWxVUkwoY29uc3QgS1VSTCYgdXJsKSB7IG1f
aW5pdGlhbFVSTCA9IHVybDsgfQogICAgIEtVUkwgaW5pdGlhbFVSTCgpIHsgcmV0dXJuIG1faW5p
dGlhbFVSTDsgfQotICAgIGJvb2wgc3RhcnRKb2IoaW50IHBsYXllcklkLCBQYXNzUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IEZyYW1lJiwgYm9vbCBkZWZlcnNMb2FkaW5nKTsKLSAg
ICBib29sIHN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
am9iLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBGcmFtZSYsIGJvb2wgZGVmZXJzTG9h
ZGluZyk7CisgICAgYm9vbCBzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IGpvYiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcpOworICAgIGJvb2wgc3Rh
cnRKb2IoaW50IHBsYXllcklkLCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5nKTsKICAgICBib29s
IHN0b3BKb2IoUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4pOwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGJvb2wgZGVmZXJzTG9hZGlu
Zyk7CiAgICAgdm9pZCBwYXVzZUxvYWQoUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9iLCBi
b29sIHBhdXNlKTsKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIE5ldHdvcmtKb2Iq
IGZpbmRKb2JGb3JIYW5kbGUoUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4pOwogICAgIHZvaWQg
ZGVsZXRlSm9iKE5ldHdvcmtKb2IqKTsKLSAgICBib29sIHN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwg
Y29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJl
YW1GYWN0b3J5KiwgY29uc3QgRnJhbWUmLCBpbnQgZGVmZXJMb2FkaW5nQ291bnQgPSAwLCBpbnQg
cmVkaXJlY3RDb3VudCA9IDApOworICAgIGJvb2wgc3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25z
dCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZh
Y3RvcnkqLCBGcmFtZSosIGludCBkZWZlckxvYWRpbmdDb3VudCA9IDAsIGludCByZWRpcmVjdENv
dW50ID0gMCk7CiAKICAgICBWZWN0b3I8TmV0d29ya0pvYio+IG1fam9iczsKICAgICBLVVJMIG1f
aW5pdGlhbFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAK
aW5kZXggMmE0MDQ0NTEyNTQwOTk3MDExOGM4YmY4OTM0MzZiY2E0NDk3Mzk2Ny4uMjkwNWEyMWE0
Yzk1ODRhZmQ1MWUwN2FkZjgzOTc2YTMyMDg0N2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICBpZiAoIWZyYW1l
IHx8ICFmcmFtZS0+bG9hZGVyKCkgfHwgIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkgfHwgIWNs
aWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50IHBsYXllcklkID0gc3RhdGlj
X2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKSktPnBsYXllcklkKCk7Ci0gICAgcmV0dXJuIE5ldHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgp
LT5zdGFydEpvYihwbGF5ZXJJZCwgdGhpcywgKmZyYW1lLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwor
ICAgIHJldHVybiBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQs
IHRoaXMsIGZyYW1lLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwogfQogCiB2b2lkIFJlc291cmNlSGFu
ZGxlOjpwYXVzZUxvYWQoYm9vbCBwYXVzZSkKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdAogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFsc2U7CiAKICAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNu
aWZmKSk7Ci0gICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklk
LCBoYW5kbGUsICpmcmFtZSwgZGVmZXJzTG9hZGluZyk7CisgICAgTmV0d29ya01hbmFnZXI6Omlu
c3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklkLCBoYW5kbGUsIGZyYW1lLCBkZWZlcnNMb2FkaW5n
KTsKIAogICAgIGNvbnN0IGRvdWJsZSBzeW5jTG9hZFRpbWVPdXQgPSA2MDsgLy8gc2Vjb25kcwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175124</attachid>
            <date>2012-11-19 20:07:03 -0800</date>
            <delta_ts>2012-11-19 20:55:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102758-20121120120451.patch</filename>
            <type>text/plain</type>
            <size>14935</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM2ZmVjMTIxYjgxZjA2
ZjI4ZWNhODBjYWUzZjNhNGNkMTZmOTk5NC4uOTQ2NzQwMTdmMTU4YTVjYmE3NzU3YzExNjVhZjJm
MzlkYjA2YmVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTE5ICBDaHJp
cyBHdWFuICA8Y2hyaXMuZ3VhbkB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNr
YmVycnldIFdoZW4gYSBmcmFtZSBpcyBiZWluZyBkZXRhY2hlZCwgY2FuY2VsIGFsbCBpdHMgbmV0
d29yayBqb2JzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyNzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSSB1c2UgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHRvIHJlZmFjdG9yIE5ldHdvcmtqb2Ig
Y29kZS4KKyAgICAgICAgTmV0d29ya0pvYiBpcyBpbmhlcml0aW5nIGZyb20gRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyIHRvIGJlCisgICAgICAgIGF3YXJlIG9mIGZyYW1lJ3MgZGVzdHJveWVkLiBX
aGVuIGEgZnJhbWUgaXMgYmVpbmcgZGV0YWNoZWQsCisgICAgICAgIHRoZSB3aWxsRGV0YWNoUGFn
ZSgpIGNhbiBiZSBjYWxsZWQgaW4gd2hpY2ggd2UgY2FuIGNhbmNlbCAKKyAgICAgICAgdGhlIGpv
Yi4gVGhpcyBwYXRjaCByZXZlcnRlZCB0aGUgZml4IGZvciBSSU0gUFIxMzQyMDcgYXMgd2VsbC4K
KworICAgICAgICBNYW51YWxseSB0ZXN0IGlzIG9uIAorICAgICAgICAiaHR0cDovL3d3dy5yZXV0
ZXJzLmNvbS9hcnRpY2xlLzIwMTIvMDEvMjcvdXMtZ3JlZWNlLWlkVVNUUkU4MFAwREUyMDEyMDEy
NyIKKyAgICAgICAgd2hpY2ggdHJpZ2dlcnMgYSBwaW5nIGxvYWRlci4KKworICAgICAgICBObyBi
ZWhhdmlvciBjaGFuZ2VkLCBubyBuZXcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya0pvYjo6TmV0d29ya0pvYik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpp
bml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeUhl
YWRlclJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnN0YXJ0TmV3Sm9i
V2l0aFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6ZnJhbWVEZXN0cm95
ZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjp3
aWxsRGV0YWNoUGFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05l
dHdvcmtKb2IuaDoKKyAgICAgICAgKE5ldHdvcmtKb2IpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5oOgorICAgICAgICAoTmV0d29ya01hbmFnZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToK
KwogMjAxMi0xMS0xOSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgSW4gQ29kZUdlbmVyYXRvckdPYmplY3QucG0gd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5v
ZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IGUyOTRlNWU2NTI1OTE0YmNi
ZTRhZWE4MTI1MDJiMjllYTRmMzIwZWIuLjZjMTg2ZjdiODRlMmYzZTk2Y2UyYzkyNjk3YjFlMGE1
ZTM5NWRhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTY0LDcgKzY0LDggQEAgaW5saW5lIHN0
YXRpYyBib29sIGlzVW5hdXRob3JpemVkKGludCBzdGF0dXNDb2RlKQogfQogCiBOZXR3b3JrSm9i
OjpOZXR3b3JrSm9iKCkKLSAgICA6IG1fcGxheWVySWQoMCkKKyAgICA6IEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlcigwKQorICAgICwgbV9wbGF5ZXJJZCgwKQogICAgICwgbV9kZWxldGVKb2JUaW1l
cih0aGlzLCAmTmV0d29ya0pvYjo6ZmlyZURlbGV0ZUpvYlRpbWVyKQogICAgICwgbV9zdHJlYW1G
YWN0b3J5KDApCiAgICAgLCBtX2lzRmlsZShmYWxzZSkKQEAgLTg2LDcgKzg3LDYgQEAgTmV0d29y
a0pvYjo6TmV0d29ya0pvYigpCiAgICAgLCBtX3JlZGlyZWN0Q291bnQoMCkKICAgICAsIG1fZGVm
ZXJyZWREYXRhKCp0aGlzKQogICAgICwgbV9kZWZlckxvYWRpbmdDb3VudCgwKQotICAgICwgbV9m
cmFtZSgwKQogICAgICwgbV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmcoZmFsc2UpCiB7CiB9
CkBAIC0xMDMsMTEgKzEwMywxMiBAQCBib29sIE5ldHdvcmtKb2I6OmluaXRpYWxpemUoaW50IHBs
YXllcklkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpOZXR3b3JrUmVxdWVzdCYgcmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJlYW1GYWN0b3J5KiBz
dHJlYW1GYWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZyYW1lJiBm
cmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSogZnJhbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGRlZmVyTG9hZGluZ0NvdW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCByZWRpcmVjdENvdW50KQogewogICAgIEJMQUNLQkVSUllfQVNT
RVJUKGhhbmRsZSk7CisgICAgQkxBQ0tCRVJSWV9BU1NFUlQoZnJhbWUpOwogCiAgICAgbV9wbGF5
ZXJJZCA9IHBsYXllcklkOwogICAgIG1fcGFnZUdyb3VwTmFtZSA9IHBhZ2VHcm91cE5hbWU7CkBA
IC0xMTksMTQgKzEyMCwxNSBAQCBib29sIE5ldHdvcmtKb2I6OmluaXRpYWxpemUoaW50IHBsYXll
cklkLAogICAgIG1faGFuZGxlID0gaGFuZGxlOwogCiAgICAgbV9zdHJlYW1GYWN0b3J5ID0gc3Ry
ZWFtRmFjdG9yeTsKLSAgICBtX2ZyYW1lID0gJmZyYW1lOwogCi0gICAgaWYgKG1fZnJhbWUgJiYg
bV9mcmFtZS0+bG9hZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9
IEZyYW1lTG9hZGVyOjpOb0Rpc21pc3NhbCkgeworICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9h
ZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9hZGVy
OjpOb0Rpc21pc3NhbCkgewogICAgICAgICAvLyBJbiB0aGUgY2FzZSB0aGUgZnJhbWUgd2lsbCBi
ZSBkZXRhY2hlZCBzb29uLCB3ZSBzdGlsbCBuZWVkIHRvIHBpbmcgdGhlIHNlcnZlciwgYnV0IGl0
IGlzCiAgICAgICAgIC8vIG5vIGxvbmdlciBzYWZlIHRvIHJlZmVyZW5jZSB0aGUgRnJhbWUgb2Jq
ZWN0LgogICAgICAgICAvLyBTZWUgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjU5
MTAgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDQ1Ny4KLSAg
ICAgICAgbV9mcmFtZSA9IDA7Ci0gICAgfQorICAgICAgICAvLyBtX2ZyYW1lIHdvdWxkIGJlIHNl
dCB0byB6ZXJvLgorICAgICAgICBvYnNlcnZlRnJhbWUoMCk7CisgICAgfSBlbHNlCisgICAgICAg
IG9ic2VydmVGcmFtZShmcmFtZSk7CiAKICAgICBtX3JlZGlyZWN0Q291bnQgPSByZWRpcmVjdENv
dW50OwogICAgIG1fZGVmZXJMb2FkaW5nQ291bnQgPSBkZWZlckxvYWRpbmdDb3VudDsKQEAgLTMz
MiwxMSArMzM0LDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlIZWFkZXJSZWNlaXZl
ZChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWwKICAgICBlbHNlIGlmIChsb3dl
cktleSA9PSAiY29udGVudC1kaXNwb3NpdGlvbiIpCiAgICAgICAgIG1fY29udGVudERpc3Bvc2l0
aW9uID0gdmFsdWU7CiAgICAgZWxzZSBpZiAobG93ZXJLZXkgPT0gInNldC1jb29raWUiKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBJZiBhIHRhYiBpcyBjbG9zZWQsIHNvbWV0aW1lcyBuZXR3b3JrIGRh
dGEgd2lsbCBjb21lIGluIGFmdGVyIHRoZSBmcmFtZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIGl0
cyBwYWdlIGJ1dCBiZWZvcmUgaXQgaXMgZGVsZXRlZC4KLSAgICAgICAgLy8gSWYgdGhpcyBoYXBw
ZW5zLCBtX2ZyYW1lLT5wYWdlKCkgd2lsbCByZXR1cm4gMCwgYW5kIG1fZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKSB3aWxsIGJlIGluIGEgYmFkIHN0YXRlIGFuZCBjYWxsaW5nIGludG8gaXQgd2ls
bCBjcmFzaC4KLSAgICAgICAgLy8gRm9yIG5vdyB3ZSBjaGVjayBmb3IgdGhpcyBleHBsaWNpdGx5
IGJ5IGNoZWNraW5nIG1fZnJhbWUtPnBhZ2UoKS4gQnV0IHdlIHNob3VsZCBmaW5kIG91dCB3aHkg
dGhlIG5ldHdvcmsgam9iIGhhc24ndCBiZWVuIGNhbmNlbGxlZCB3aGVuIHRoZSBmcmFtZSB3YXMg
ZGV0YWNoZWQuCi0gICAgICAgIC8vIFNlZSBSSU0gUFIgMTM0MjA3Ci0gICAgICAgIGlmIChtX2Zy
YW1lICYmIG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKSAmJiBtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCkKKyAgICAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+bG9hZGVy
KCkgJiYgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpCiAgICAgICAgICAgICAmJiBzdGF0aWNf
Y2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCkpLT5jb29raWVzRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBoYW5kbGVTZXRDb29raWVI
ZWFkZXIodmFsdWUpOwogICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHNldmVyYWwgIlNldC1D
b29raWUiIGhlYWRlcnMsIHdlIHNob3VsZCBjb21iaW5lIHRoZSBmb2xsb3dpbmcgb25lcyB3aXRo
IHRoZSBmaXJzdC4KQEAgLTU4OCw3ICs1ODYsNyBAQCBib29sIE5ldHdvcmtKb2I6OnN0YXJ0TmV3
Sm9iV2l0aFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBib29sIGluY3JlYQog
ICAgICAgICBoYW5kbGUsCiAgICAgICAgIG5ld1JlcXVlc3QsCiAgICAgICAgIG1fc3RyZWFtRmFj
dG9yeSwKLSAgICAgICAgKm1fZnJhbWUsCisgICAgICAgIG1fZnJhbWUsCiAgICAgICAgIG1fZGVm
ZXJMb2FkaW5nQ291bnQsCiAgICAgICAgIGluY3JlYXNlUmVkaXJlY3RDb3VudCA/IG1fcmVkaXJl
Y3RDb3VudCArIDEgOiBtX3JlZGlyZWN0Q291bnQpOwogICAgIHJldHVybiB0cnVlOwpAQCAtOTM5
LDQgKzkzNywxNyBAQCB2b2lkIE5ldHdvcmtKb2I6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcAogICAgIG1fbmV3Sm9iV2l0aENy
ZWRlbnRpYWxzU3RhcnRlZCA9IHN0YXJ0TmV3Sm9iV2l0aFJlcXVlc3QobmV3UmVxdWVzdCk7CiB9
CiAKK3ZvaWQgTmV0d29ya0pvYjo6ZnJhbWVEZXN0cm95ZWQoKQoreworICAgIGlmIChtX2ZyYW1l
ICYmICFtX2NhbmNlbGxlZCkKKyAgICAgICAgY2FuY2VsSm9iKCk7CisgICAgRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyOjpmcmFtZURlc3Ryb3llZCgpOworfQorCit2b2lkIE5ldHdvcmtKb2I6Ondp
bGxEZXRhY2hQYWdlKCkKK3sKKyAgICBpZiAobV9mcmFtZSAmJiAhbV9jYW5jZWxsZWQpCisgICAg
ICAgIGNhbmNlbEpvYigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2Iu
aAppbmRleCAxOGEyOWMyYzA0ZTlkZTI2ZjliYzI5NDMwMmI1YzEyYzdjMzZmN2VmLi5lYjVjOTQ0
MjAyNzhiYmQxNGFmNjM1ZjY4NDM1MmVhYjhjNjUyYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKQEAgLTIx
LDcgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlTWFuYWdlci5o
IgogI2luY2x1ZGUgIkRlZmVycmVkRGF0YS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgS1VSTDsKIGNsYXNzIFByb3RlY3Rpb25TcGFj
ZTsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIAotY2xhc3MgTmV0d29ya0pvYiA6IHB1YmxpYyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpGaWx0ZXJTdHJlYW0geworY2xhc3MgTmV0d29ya0pvYiA6IHB1YmxpYyBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJl
YW0sIHB1YmxpYyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIE5ldHdv
cmtKb2IoKTsKICAgICB+TmV0d29ya0pvYigpOwpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVx
dWVzdCYsCiAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+LAog
ICAgICAgICAgICAgICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZh
Y3RvcnkqLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBGcmFtZSYsCisgICAgICAgICAgICAg
ICAgICAgIEZyYW1lKiwKICAgICAgICAgICAgICAgICAgICAgaW50IGRlZmVyTG9hZGluZ0NvdW50
LAogICAgICAgICAgICAgICAgICAgICBpbnQgcmVkaXJlY3RDb3VudCk7CiAgICAgUGFzc1JlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGU7IH0KQEAg
LTg5LDYgKzg5LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDaGFsbGVu
Z2VSZXN1bHQoY29uc3QgS1VSTCYsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUmVzdWx0LCBjb25zdCBDcmVkZW50aWFsJik7CiAKKyAgICAvLyBJbXBsZW1l
bnRhdGlvbiBvZiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgcHVyZSB2aXJ0dWFscy4KKyAgICB2
aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFj
aFBhZ2UoKTsKKwogcHJpdmF0ZToKICAgICBib29sIGlzQ2xpZW50QXZhaWxhYmxlKCkgY29uc3Qg
eyByZXR1cm4gIW1fY2FuY2VsbGVkICYmIG1faGFuZGxlICYmIG1faGFuZGxlLT5jbGllbnQoKTsg
fQogCkBAIC0xNzQsNyArMTc4LDYgQEAgcHJpdmF0ZToKIAogICAgIERlZmVycmVkRGF0YSBtX2Rl
ZmVycmVkRGF0YTsKICAgICBpbnQgbV9kZWZlckxvYWRpbmdDb3VudDsKLSAgICBjb25zdCBGcmFt
ZSogbV9mcmFtZTsKIAogICAgIGJvb2wgbV9pc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdpbmc7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrTWFuYWdlci5jcHAKaW5kZXggMThiYzFlNzUxNzM1Y2RiYTgyNmU1Mzc1
NjEwZDRmNjRjNDY2N2ZiMi4uNWJiZDBiMTNlYTY2YWU2YTJkZTVkZjg4NjE1OWQ1MzljZmI5OTYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvTmV0d29ya01hbmFnZXIuY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogU0lOR0xFVE9OX0lOSVRJQUxJWkVSX1RIUkVBRFVOU0FGRShOZXR3b3Jr
TWFuYWdlcikKIAotYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBQ
YXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IEZyYW1lJiBmcmFtZSwgYm9vbCBk
ZWZlcnNMb2FkaW5nKQorYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklk
LCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIEZyYW1lKiBmcmFtZSwgYm9vbCBkZWZl
cnNMb2FkaW5nKQogewogICAgIEFTU0VSVChqb2IuZ2V0KCkpOwogICAgIC8vIFdlIHNob3VsZG4n
dCBjYWxsIG1ldGhvZHMgb24gUGFzc1JlZlB0ciBzbyBtYWtlIGEgbmV3IFJlZlB0LgpAQCAtNDYs
MTYgKzQ2LDE2IEBAIGJvb2wgTmV0d29ya01hbmFnZXI6OnN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwg
UGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9iLCBjb25zCiAgICAgcmV0dXJuIHN0YXJ0Sm9i
KHBsYXllcklkLCByZWZKb2IsIHJlZkpvYi0+Zmlyc3RSZXF1ZXN0KCksIGZyYW1lLCBkZWZlcnNM
b2FkaW5nKTsKIH0KIAotYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklk
LCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgRnJhbWUmIGZyYW1lLCBib29sIGRlZmVyc0xvYWRpbmcpCitib29sIE5l
dHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGpvYiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZSogZnJhbWUs
IGJvb2wgZGVmZXJzTG9hZGluZykKIHsKLSAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFnZSgpOwor
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFj
dG9yeSogc3RyZWFtRmFjdG9yeSA9IHBhZ2UtPmNocm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KS0+bmV0d29ya1N0cmVhbUZhY3RvcnkoKTsKICAgICByZXR1cm4gc3RhcnRKb2IocGxheWVySWQs
IHBhZ2UtPmdyb3VwTmFtZSgpLCBqb2IsIHJlcXVlc3QsIHN0cmVhbUZhY3RvcnksIGZyYW1lLCBk
ZWZlcnNMb2FkaW5nID8gMSA6IDApOwogfQogCi1ib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpv
YihpbnQgcGxheWVySWQsIGNvbnN0IFN0cmluZyYgcGFnZUdyb3VwTmFtZSwgUGFzc1JlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gam9iLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSogc3RyZWFtRmFjdG9yeSwgY29u
c3QgRnJhbWUmIGZyYW1lLCBpbnQgZGVmZXJMb2FkaW5nQ291bnQsIGludCByZWRpcmVjdENvdW50
KQorYm9vbCBOZXR3b3JrTWFuYWdlcjo6c3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25zdCBTdHJp
bmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGpvYiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0
cmVhbUZhY3RvcnkqIHN0cmVhbUZhY3RvcnksIEZyYW1lKiBmcmFtZSwgaW50IGRlZmVyTG9hZGlu
Z0NvdW50LCBpbnQgcmVkaXJlY3RDb3VudCkKIHsKICAgICAvLyBNYWtlIHN1cmUgdGhlIFJlc291
cmNlSGFuZGxlIGRvZXNuJ3QgZ28gb3V0IG9mIHNjb3BlIHdoaWxlIGNhbGxpbmcgY2FsbGJhY2tz
LgogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gZ3VhcmRKb2Ioam9iKTsKQEAgLTY4LDE0ICs2
OCwxNCBAQCBib29sIE5ldHdvcmtNYW5hZ2VyOjpzdGFydEpvYihpbnQgcGxheWVySWQsIGNvbnN0
IFN0cmluZyYgcGFnZUdyb3VwTmFtZSwgUGFzc1JlZgogICAgICAgICBtX2luaXRpYWxVUkwgPSBL
VVJMKCk7CiAKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZv
cm1SZXF1ZXN0OwotICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9y
bVJlcXVlc3QsIGZyYW1lLmxvYWRlcigpICYmIGZyYW1lLmxvYWRlcigpLT5jbGllbnQoKSAmJiBz
dGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihmcmFtZS5sb2FkZXIoKS0+
Y2xpZW50KCkpLT5jb29raWVzRW5hYmxlZCgpLCBpc0luaXRpYWwsIHJlZGlyZWN0Q291bnQpOwor
ICAgIHJlcXVlc3QuaW5pdGlhbGl6ZVBsYXRmb3JtUmVxdWVzdChwbGF0Zm9ybVJlcXVlc3QsIGZy
YW1lLT5sb2FkZXIoKSAmJiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpICYmIHN0YXRpY19jYXN0
PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkp
LT5jb29raWVzRW5hYmxlZCgpLCBpc0luaXRpYWwsIHJlZGlyZWN0Q291bnQpOwogCi0gICAgY29u
c3QgU3RyaW5nJiBkb2N1bWVudFVybCA9IGZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygp
OworICAgIGNvbnN0IFN0cmluZyYgZG9jdW1lbnRVcmwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCkuc3RyaW5nKCk7CiAgICAgaWYgKCFkb2N1bWVudFVybC5pc0VtcHR5KCkpIHsKICAgICAgICAg
cGxhdGZvcm1SZXF1ZXN0LnNldFJlZmVycmVyKGRvY3VtZW50VXJsKTsKICAgICB9CiAKLSAgICBw
bGF0Zm9ybVJlcXVlc3Quc2V0U2VjdXJpdHlPcmlnaW4oZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+dG9SYXdTdHJpbmcoKSk7CisgICAgcGxhdGZvcm1SZXF1ZXN0LnNldFNlY3Vy
aXR5T3JpZ2luKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1Jhd1N0cmlu
ZygpKTsKIAogICAgIC8vIEF0dGFjaCBhbnkgYXBwbGljYWJsZSBhdXRoIGNyZWRlbnRpYWxzIHRv
IHRoZSBOZXR3b3JrUmVxdWVzdC4KICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlID0gZ3VhcmRKb2ItPmdldEludGVybmFsKCktPm1fY3VycmVudFdlYkNoYWxsZW5nZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3
b3JrTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmgKaW5kZXggYWY2MGFiODkwYjU2ZWI1OGI2MmQ1ZjQzOGE1ZDg5YTBk
NGRkNWFhNS4uODg4MzNmMDkyZWViZTI0MTZjMzgxMjkzN2MwOGU3MzE4OWYwYmJmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtNYW5hZ2VyLmgKQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgTmV0d29ya01hbmFnZXIg
OiBwdWJsaWMgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlRocmVhZFVuc2FmZVNpbmdsZXRvbjxOZXR3
b3IKIHB1YmxpYzoKICAgICB2b2lkIHNldEluaXRpYWxVUkwoY29uc3QgS1VSTCYgdXJsKSB7IG1f
aW5pdGlhbFVSTCA9IHVybDsgfQogICAgIEtVUkwgaW5pdGlhbFVSTCgpIHsgcmV0dXJuIG1faW5p
dGlhbFVSTDsgfQotICAgIGJvb2wgc3RhcnRKb2IoaW50IHBsYXllcklkLCBQYXNzUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBqb2IsIGNvbnN0IEZyYW1lJiwgYm9vbCBkZWZlcnNMb2FkaW5nKTsKLSAg
ICBib29sIHN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
am9iLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBGcmFtZSYsIGJvb2wgZGVmZXJzTG9h
ZGluZyk7CisgICAgYm9vbCBzdGFydEpvYihpbnQgcGxheWVySWQsIFBhc3NSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IGpvYiwgRnJhbWUqLCBib29sIGRlZmVyc0xvYWRpbmcpOworICAgIGJvb2wgc3Rh
cnRKb2IoaW50IHBsYXllcklkLCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lKiwgYm9vbCBkZWZlcnNMb2FkaW5nKTsKICAgICBib29s
IHN0b3BKb2IoUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4pOwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBqb2IsIGJvb2wgZGVmZXJzTG9hZGlu
Zyk7CiAgICAgdm9pZCBwYXVzZUxvYWQoUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gam9iLCBi
b29sIHBhdXNlKTsKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIE5ldHdvcmtKb2Iq
IGZpbmRKb2JGb3JIYW5kbGUoUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4pOwogICAgIHZvaWQg
ZGVsZXRlSm9iKE5ldHdvcmtKb2IqKTsKLSAgICBib29sIHN0YXJ0Sm9iKGludCBwbGF5ZXJJZCwg
Y29uc3QgU3RyaW5nJiBwYWdlR3JvdXBOYW1lLCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJl
YW1GYWN0b3J5KiwgY29uc3QgRnJhbWUmLCBpbnQgZGVmZXJMb2FkaW5nQ291bnQgPSAwLCBpbnQg
cmVkaXJlY3RDb3VudCA9IDApOworICAgIGJvb2wgc3RhcnRKb2IoaW50IHBsYXllcklkLCBjb25z
dCBTdHJpbmcmIHBhZ2VHcm91cE5hbWUsIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZh
Y3RvcnkqLCBGcmFtZSosIGludCBkZWZlckxvYWRpbmdDb3VudCA9IDAsIGludCByZWRpcmVjdENv
dW50ID0gMCk7CiAKICAgICBWZWN0b3I8TmV0d29ya0pvYio+IG1fam9iczsKICAgICBLVVJMIG1f
aW5pdGlhbFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAK
aW5kZXggMmE0MDQ0NTEyNTQwOTk3MDExOGM4YmY4OTM0MzZiY2E0NDk3Mzk2Ny4uMjkwNWEyMWE0
Yzk1ODRhZmQ1MWUwN2FkZjgzOTc2YTMyMDg0N2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICBpZiAoIWZyYW1l
IHx8ICFmcmFtZS0+bG9hZGVyKCkgfHwgIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkgfHwgIWNs
aWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50IHBsYXllcklkID0gc3RhdGlj
X2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKSktPnBsYXllcklkKCk7Ci0gICAgcmV0dXJuIE5ldHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgp
LT5zdGFydEpvYihwbGF5ZXJJZCwgdGhpcywgKmZyYW1lLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwor
ICAgIHJldHVybiBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQs
IHRoaXMsIGZyYW1lLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwogfQogCiB2b2lkIFJlc291cmNlSGFu
ZGxlOjpwYXVzZUxvYWQoYm9vbCBwYXVzZSkKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdAogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFsc2U7CiAKICAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNu
aWZmKSk7Ci0gICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklk
LCBoYW5kbGUsICpmcmFtZSwgZGVmZXJzTG9hZGluZyk7CisgICAgTmV0d29ya01hbmFnZXI6Omlu
c3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklkLCBoYW5kbGUsIGZyYW1lLCBkZWZlcnNMb2FkaW5n
KTsKIAogICAgIGNvbnN0IGRvdWJsZSBzeW5jTG9hZFRpbWVPdXQgPSA2MDsgLy8gc2Vjb25kcwog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>