<?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>41697</bug_id>
          
          <creation_ts>2010-07-06 07:20:21 -0700</creation_ts>
          <short_desc>[Chromium] Crash when re-entering message loop</short_desc>
          <delta_ts>2010-07-08 02:55:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>fishd</cc>
    
    <cc>masterov</cc>
    
    <cc>pfeldman</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>247067</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-06 07:20:21 -0700</bug_when>
    <thetext>ASSERT(!pageGroupLoadDeferrer) fails in void WebView::willEnterModalLoop() when re-entering message loop (e.g. when evaluating properties that require message loop to be run (e.g. document.cookie) in Web Inspector, on a breakpoint.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247083</commentid>
    <comment_count>1</comment_count>
      <attachid>60633</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-06 08:20:53 -0700</bug_when>
    <thetext>Created attachment 60633
[PATCH] Suggested solution

Enable re-entrancy of the message loop by tracking the nesting level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247416</commentid>
    <comment_count>2</comment_count>
      <attachid>60633</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 02:33:14 -0700</bug_when>
    <thetext>Comment on attachment 60633
[PATCH] Suggested solution

WebKit/chromium/src/WebViewImpl.cpp:141
 +  static PageGroupLoadDeferrer* pageGroupLoadDeferrer = 0;
You don&apos;t need explicit initialization here.

WebKit/chromium/ChangeLog:5
 +          [Chromium] Crash when re-entering message loop
Please provide more detailed comment including the description of the drawbacks of this solution.

WebKit/chromium/src/WebViewImpl.cpp:191
 +          ASSERT(pageGroupLoadDeferrer);
You may want to check in debug mode that PageGroup hasn&apos;t changed since previous call to this method

WebKit/chromium/src/js/Tests.js:1862
 +      WebInspector.console.visible = true;
Use  WebInspector.showConsole instead.

WebKit/chromium/src/js/Tests.js:1896
 +          function(callFrames) {
Please use evaluateInConsole_ instead of this custom code.

WebKit/chromium/src/js/Tests.js:1872
 +                      function(commandResult) {
Use evaluateInConsole_ instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247577</commentid>
    <comment_count>3</comment_count>
      <attachid>60736</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-07 08:45:42 -0700</bug_when>
    <thetext>Created attachment 60736
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247589</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-07 09:03:25 -0700</bug_when>
    <thetext>Darin, can you please have a look at this change? You seem to know those ropes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247598</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-07 09:41:31 -0700</bug_when>
    <thetext>I think it would be better to create a stack of PageGroupLoadDeferrer objects.  It is safe to nest instances of those, and that&apos;s what we should actually do if we need to support multiple levels of nesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247633</commentid>
    <comment_count>6</comment_count>
      <attachid>60752</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-07 10:44:31 -0700</bug_when>
    <thetext>Created attachment 60752
[PATCH] Implemented a stack of PageGroupLoadDeferrers, as suggested by fishd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248115</commentid>
    <comment_count>7</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-08 02:55:21 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       WebCore/ChangeLog
        M       WebCore/page/PageGroupLoadDeferrer.cpp
        M       WebCore/page/PageGroupLoadDeferrer.h
        M       WebKit/chromium/ChangeLog
        M       WebKit/chromium/src/WebViewImpl.cpp
        M       WebKit/chromium/src/js/Tests.js
Committed r62774</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60633</attachid>
            <date>2010-07-06 08:20:53 -0700</date>
            <delta_ts>2010-07-07 08:45:42 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>pagegroup.patch</filename>
            <type>text/plain</type>
            <size>4294</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDI5Y2Y4ZjQuLjgxMmNlNmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEwLTA3LTA2ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0No
cm9taXVtXSBDcmFzaCB3aGVuIHJlLWVudGVyaW5nIG1lc3NhZ2UgbG9vcAorCisgICAgICAgIEFs
bG93IHJlLWVudHJhbmN5IG9mIHRoZSBtZXNzYWdlIGxvb3AgYnkgdHJhY2tpbmcgdGhlIGN1cnJl
bnQgbmVzdGluZyBsZXZlbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNjk3CisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Ojp3aWxsRW50ZXJNb2RhbExvb3ApOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3OjpkaWRFeGl0TW9kYWxMb29wKToKKyAgICAgICAgKiBzcmMvanMvVGVzdHMuanM6
CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0TWVzc2FnZUxvb3BSZWVudHJhbnQu
dGhpcy5fd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZC4pOgorICAgICAgICAoLlRlc3RTdWl0ZS5w
cm90b3R5cGUudGVzdE1lc3NhZ2VMb29wUmVlbnRyYW50KToKKwogMjAxMC0wNy0wNSAgWXVyeSBT
ZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQ
YXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0NWI5MTE3
Li4xMjQ4NDA4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTM4LDcgKzEz
OCwxMCBAQCBjb25zdCBjaGFyKiBwYWdlR3JvdXBOYW1lID0gImRlZmF1bHQiOwogCiAvLyBVc2Vk
IHRvIGRlZmVyIGFsbCBwYWdlIGFjdGl2aXR5IGluIGNhc2VzIHdoZXJlIHRoZSBlbWJlZGRlciB3
aXNoZXMgdG8gcnVuCiAvLyBhIG5lc3RlZCBldmVudCBsb29wLgotc3RhdGljIFBhZ2VHcm91cExv
YWREZWZlcnJlciogcGFnZUdyb3VwTG9hZERlZmVycmVyOworc3RhdGljIFBhZ2VHcm91cExvYWRE
ZWZlcnJlciogcGFnZUdyb3VwTG9hZERlZmVycmVyID0gMDsKKworLy8gVXNlZCB0byB0cmFjayB0
aGUgbW9kYWwgbG9vcCBuZXN0aW5nIGxldmVsIHRvIGFsbG93IHJlLWVudHJhbmN5Lgorc3RhdGlj
IHVuc2lnbmVkIGludCBtb2RhbExvb3BOZXN0aW5nTGV2ZWwgPSAwOwogCiAvLyBFbnN1cmUgdGhh
dCB0aGUgV2ViRHJhZ09wZXJhdGlvbiBlbnVtIHZhbHVlcyBzdGF5IGluIHN5bmMgd2l0aCB0aGUg
b3JpZ2luYWwKIC8vIERyYWdPcGVyYXRpb24gY29uc3RhbnRzLgpAQCAtMTgzLDcgKzE4NiwxMSBA
QCB2b2lkIFdlYlZpZXc6OnJlc2V0VmlzaXRlZExpbmtTdGF0ZSgpCiAKIHZvaWQgV2ViVmlldzo6
d2lsbEVudGVyTW9kYWxMb29wKCkKIHsKLSAgICAvLyBJdCBpcyBub3QgdmFsaWQgdG8gbmVzdCBt
b3JlIHRoYW4gb25jZS4KKyAgICArK21vZGFsTG9vcE5lc3RpbmdMZXZlbDsKKyAgICBpZiAobW9k
YWxMb29wTmVzdGluZ0xldmVsID4gMSkgeworICAgICAgICBBU1NFUlQocGFnZUdyb3VwTG9hZERl
ZmVycmVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBBU1NFUlQoIXBhZ2VHcm91cExv
YWREZWZlcnJlcik7CiAKICAgICBQYWdlR3JvdXAqIHBhZ2VHcm91cCA9IFBhZ2VHcm91cDo6cGFn
ZUdyb3VwKHBhZ2VHcm91cE5hbWUpOwpAQCAtMTk4LDYgKzIwNSwxMSBAQCB2b2lkIFdlYlZpZXc6
OndpbGxFbnRlck1vZGFsTG9vcCgpCiAKIHZvaWQgV2ViVmlldzo6ZGlkRXhpdE1vZGFsTG9vcCgp
CiB7CisgICAgQVNTRVJUKHBhZ2VHcm91cExvYWREZWZlcnJlcik7CisKKyAgICAtLW1vZGFsTG9v
cE5lc3RpbmdMZXZlbDsKKyAgICBpZiAobW9kYWxMb29wTmVzdGluZ0xldmVsKQorICAgICAgICBy
ZXR1cm47CiAgICAgZGVsZXRlIHBhZ2VHcm91cExvYWREZWZlcnJlcjsKICAgICBwYWdlR3JvdXBM
b2FkRGVmZXJyZXIgPSAwOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9U
ZXN0cy5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvVGVzdHMuanMKaW5kZXggY2Q0ZDlmYi4u
MWEzZmEzOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5qcworKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL1Rlc3RzLmpzCkBAIC0xODUwLDYgKzE4NTAsNTkgQEAg
VGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RXZhbEdsb2JhbCA9IGZ1bmN0aW9uKCkKIAogCiAvKioK
KyAqIFRlc3RzIHRoZSBtZXNzYWdlIGxvb3AgcmUtZW50cmFuY3kuCisgKi8KK1Rlc3RTdWl0ZS5w
cm90b3R5cGUudGVzdE1lc3NhZ2VMb29wUmVlbnRyYW50ID0gZnVuY3Rpb24oKQoreworICAgIHZh
ciB0ZXN0ID0gdGhpczsKKyAgICB0aGlzLnNob3dQYW5lbCgic2NyaXB0cyIpOworCisgICAgdmFy
IGJyZWFrcG9pbnRMaW5lID0gMTY7CisKKyAgICBXZWJJbnNwZWN0b3IuY29uc29sZS52aXNpYmxl
ID0gdHJ1ZTsKKworICAgIHRoaXMuX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWQoWyJkZWJ1Z2dl
cl90ZXN0X3BhZ2UuaHRtbCJdLAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICB0ZXN0
LnNob3dNYWluUGFnZVNjcmlwdFNvdXJjZV8oCisgICAgICAgICAgICAgICJkZWJ1Z2dlcl90ZXN0
X3BhZ2UuaHRtbCIsCisgICAgICAgICAgICAgIGZ1bmN0aW9uKHZpZXcsIHVybCkgeworICAgICAg
ICAgICAgICAgIHZpZXcuX2FkZEJyZWFrcG9pbnQoYnJlYWtwb2ludExpbmUpOworCisgICAgICAg
ICAgICAgICAgdGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUsICJhZGRNZXNzYWdlIiwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oY29tbWFuZFJl
c3VsdCkgeworICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBjb21tYW5kUmVzdWx0Lm1l
c3NhZ2U7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtc2cpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAobXNnID09PSAiXCJS
ZXN1bHQ6IFwiIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzOiBpZiB3
ZSBoYXZlIHJlYWNoZWQgdGhpcyBmYXIsIHRoZXJlIGhhcyBiZWVuIG5vIGNyYXNoLgorICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0LnJlbGVhc2VDb250cm9sKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LCB0cnVlKTsKKworCisgICAgICAgICAg
ICAgICAgdGVzdC5ldmFsdWF0ZUluQ29uc29sZV8oCisgICAgICAgICAgICAgICAgICAgICdzZXRU
aW1lb3V0KCJjYWxjdWxhdGUoKSIsIDApJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24o
cmVzdWx0VGV4dCkgeworICAgICAgICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZSghaXNO
YU4ocmVzdWx0VGV4dCksICJGYWlsZWQgdG8gZ2V0IHRpbWVyIGlkOiAiICsgcmVzdWx0VGV4dCk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKworICAgIC8vIFdhaXQgdW50aWwgc2NyaXB0IGlzIHBhdXNlZC4KKyAgICB0aGlzLmFkZFNu
aWZmZXIoCisgICAgICAgIFdlYkluc3BlY3RvciwKKyAgICAgICAgInBhdXNlZFNjcmlwdCIsCisg
ICAgICAgIGZ1bmN0aW9uKGNhbGxGcmFtZXMpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlLnByb21wdC50ZXh0ID0gJyJSZXN1bHQ6ICIgKyBkb2N1bWVudC5jb29raWUnOworICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUucHJvbXB0RWxlbWVudC5kaXNwYXRjaEV2ZW50
KFRlc3RTdWl0ZS5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7CisgICAgICAgIH0pOworCisgICAg
dGhpcy50YWtlQ29udHJvbCgpOworfTsKKworCisvKioKICAqIFRlc3RzIHRoYXQgU3RvcmFnZSBw
YW5lbCBjYW4gYmUgb3BlbiBhbmQgdGhhdCBsb2NhbCBET00gc3RvcmFnZSBpcyBhZGRlZAogICog
dG8gdGhlIHBhbmVsLgogICovCg==
</data>
<flag name="review"
          id="48261"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60736</attachid>
            <date>2010-07-07 08:45:42 -0700</date>
            <delta_ts>2010-07-07 10:44:31 -0700</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>pagegroup.patch</filename>
            <type>text/plain</type>
            <size>5514</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDM1OWRjMTUuLjc4NGE2YTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDEwLTA3LTA3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0No
cm9taXVtXSBDcmFzaCB3aGVuIHJlLWVudGVyaW5nIG1lc3NhZ2UgbG9vcAorCisgICAgICAgIEFs
bG93IHJlLWVudHJhbmN5IG9mIHRoZSBtZXNzYWdlIGxvb3AgYnkgdHJhY2tpbmcgdGhlIGN1cnJl
bnQgbmVzdGluZyBsZXZlbC4gVGhpcyBkb2VzIG5vdCBlbmFibGUKKyAgICAgICAgZnVsbC1mZWF0
dXJlZCByZS1lbnRyYW5jeSwgYXMgdGhlIGNoYW5nZXMgdG8gdGhlIHRyYWNrZWQgcGFnZSBncm91
cCAoYWRkZWQvcmVtb3ZlZCBwYWdlcykKKyAgICAgICAgYXJlIG5vdCB0YWtlbiBpbnRvIGFjY291
bnQgYnkgdGhlIGRlZmVycmVyIHdoZW4gbm90aWZ5aW5nIGFib3V0IEpTIGhhbmRsaW5nIHN1c3Bl
bnNpb24vcmVzdW1wdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNjk3CisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Ojp3aWxsRW50ZXJNb2RhbExvb3ApOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3OjpkaWRFeGl0TW9kYWxMb29wKToKKyAgICAgICAgKiBzcmMvanMvVGVzdHMuanM6
CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS5ldmFsdWF0ZUluQ29uc29sZV8pOgorICAg
ICAgICAoLlRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdENvbXBsZXRpb25PblBhdXNlKToKKyAgICAg
ICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RNZXNzYWdlTG9vcFJlZW50cmFudC50aGlzKToK
KwogMjAxMC0wNy0wNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VHJ5IHRvIGZpeCBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNDVi
OTExNy4uOGEwODcxMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE0MCw2
ICsxNDAsOSBAQCBjb25zdCBjaGFyKiBwYWdlR3JvdXBOYW1lID0gImRlZmF1bHQiOwogLy8gYSBu
ZXN0ZWQgZXZlbnQgbG9vcC4KIHN0YXRpYyBQYWdlR3JvdXBMb2FkRGVmZXJyZXIqIHBhZ2VHcm91
cExvYWREZWZlcnJlcjsKIAorLy8gVXNlZCB0byB0cmFjayB0aGUgbW9kYWwgbG9vcCBuZXN0aW5n
IGxldmVsIHRvIGFsbG93IHJlLWVudHJhbmN5Lgorc3RhdGljIHVuc2lnbmVkIGludCBtb2RhbExv
b3BOZXN0aW5nTGV2ZWw7CisKIC8vIEVuc3VyZSB0aGF0IHRoZSBXZWJEcmFnT3BlcmF0aW9uIGVu
dW0gdmFsdWVzIHN0YXkgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbAogLy8gRHJhZ09wZXJhdGlv
biBjb25zdGFudHMuCiAjZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oY29yZU5h
bWUpIFwKQEAgLTE4Myw3ICsxODYsMTEgQEAgdm9pZCBXZWJWaWV3OjpyZXNldFZpc2l0ZWRMaW5r
U3RhdGUoKQogCiB2b2lkIFdlYlZpZXc6OndpbGxFbnRlck1vZGFsTG9vcCgpCiB7Ci0gICAgLy8g
SXQgaXMgbm90IHZhbGlkIHRvIG5lc3QgbW9yZSB0aGFuIG9uY2UuCisgICAgKyttb2RhbExvb3BO
ZXN0aW5nTGV2ZWw7CisgICAgaWYgKG1vZGFsTG9vcE5lc3RpbmdMZXZlbCA+IDEpIHsKKyAgICAg
ICAgQVNTRVJUKHBhZ2VHcm91cExvYWREZWZlcnJlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAgICAgQVNTRVJUKCFwYWdlR3JvdXBMb2FkRGVmZXJyZXIpOwogCiAgICAgUGFnZUdyb3VwKiBw
YWdlR3JvdXAgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXBOYW1lKTsKQEAgLTE5OCw2
ICsyMDUsMTEgQEAgdm9pZCBXZWJWaWV3Ojp3aWxsRW50ZXJNb2RhbExvb3AoKQogCiB2b2lkIFdl
YlZpZXc6OmRpZEV4aXRNb2RhbExvb3AoKQogeworICAgIEFTU0VSVChwYWdlR3JvdXBMb2FkRGVm
ZXJyZXIpOworCisgICAgLS1tb2RhbExvb3BOZXN0aW5nTGV2ZWw7CisgICAgaWYgKG1vZGFsTG9v
cE5lc3RpbmdMZXZlbCkKKyAgICAgICAgcmV0dXJuOwogICAgIGRlbGV0ZSBwYWdlR3JvdXBMb2Fk
RGVmZXJyZXI7CiAgICAgcGFnZUdyb3VwTG9hZERlZmVycmVyID0gMDsKIH0KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvanMvVGVzdHMuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pz
L1Rlc3RzLmpzCmluZGV4IGNkNGQ5ZmIuLjgxNDMyZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvanMvVGVzdHMuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5q
cwpAQCAtODUyLDcgKzg1Miw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUuc2hvd01haW5QYWdlU2Ny
aXB0U291cmNlXyA9IGZ1bmN0aW9uKHNjcmlwdE5hbWUsIGNhbGxiYWNrKQogICovCiBUZXN0U3Vp
dGUucHJvdG90eXBlLmV2YWx1YXRlSW5Db25zb2xlXyA9IGZ1bmN0aW9uKGNvZGUsIGNhbGxiYWNr
KQogewotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnZpc2libGUgPSB0cnVlOworICAgIFdlYklu
c3BlY3Rvci5zaG93Q29uc29sZSgpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnByb21wdC50
ZXh0ID0gY29kZTsKICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5wcm9tcHRFbGVtZW50LmRpc3Bh
dGNoRXZlbnQoIFRlc3RTdWl0ZS5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7CiAKQEAgLTk1Miw4
ICs5NTIsMTIgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0Q29tcGxldGlvbk9uUGF1c2UgPSBm
dW5jdGlvbigpCiAgICAgICAgIHNob3dDb25zb2xlKTsKIAogICAgIGZ1bmN0aW9uIHNob3dDb25z
b2xlKCkgewotICAgICAgICB0ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmNvbnNvbGUsICJh
ZnRlclNob3ciLCB0ZXN0TG9jYWxzQ29tcGxldGlvbik7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5z
aG93Q29uc29sZSgpOworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1l
bnQgPT09IFdlYkluc3BlY3Rvci5jb25zb2xlLnByb21wdEVsZW1lbnQpCisgICAgICAgICAgICB0
ZXN0TG9jYWxzQ29tcGxldGlvbigpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuY29uc29sZSwgImFmdGVyU2hvdyIsIHRlc3RMb2NhbHND
b21wbGV0aW9uKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93Q29uc29sZSgpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGVzdExvY2Fsc0NvbXBsZXRpb24oKSB7CkBA
IC0xNzc1LDcgKzE3NzksNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RDb25zb2xlRXZhbCA9
IGZ1bmN0aW9uKCkKICAqLwogVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0Q29uc29sZUxvZyA9IGZ1
bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuY29uc29sZS52aXNpYmxlID0gdHJ1ZTsKKyAg
ICBXZWJJbnNwZWN0b3Iuc2hvd0NvbnNvbGUoKTsKICAgICB2YXIgbWVzc2FnZXMgPSBXZWJJbnNw
ZWN0b3IuY29uc29sZS5tZXNzYWdlczsKICAgICB2YXIgaW5kZXggPSAwOwogCkBAIC0xODE3LDcg
KzE4MjEsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RDb25zb2xlTG9nID0gZnVuY3Rpb24o
KQogICovCiBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFdmFsR2xvYmFsID0gZnVuY3Rpb24oKQog
ewotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnZpc2libGUgPSB0cnVlOworICAgIFdlYkluc3Bl
Y3Rvci5zaG93Q29uc29sZSgpOwogCiAgICAgdmFyIGlucHV0cyA9IFsiZm9vIiwgImZvb2JhciJd
OwogICAgIHZhciBleHBlY3RhdGlvbnMgPSBbImZvbyIsICJmb29WYWx1ZSIsICJmb29iYXIiLCAi
UmVmZXJlbmNlRXJyb3I6IGZvb2JhciBpcyBub3QgZGVmaW5lZCJdOwpAQCAtMTg1MCw2ICsxODU0
LDQ4IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdEV2YWxHbG9iYWwgPSBmdW5jdGlvbigpCiAK
IAogLyoqCisgKiBUZXN0cyB0aGUgbWVzc2FnZSBsb29wIHJlLWVudHJhbmN5LgorICovCitUZXN0
U3VpdGUucHJvdG90eXBlLnRlc3RNZXNzYWdlTG9vcFJlZW50cmFudCA9IGZ1bmN0aW9uKCkKK3sK
KyAgICB2YXIgdGVzdCA9IHRoaXM7CisgICAgdGhpcy5zaG93UGFuZWwoInNjcmlwdHMiKTsKKwor
ICAgIHZhciBicmVha3BvaW50TGluZSA9IDE2OworCisgICAgV2ViSW5zcGVjdG9yLnNob3dDb25z
b2xlKCk7CisKKyAgICB0aGlzLl93YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkKFsiZGVidWdnZXJf
dGVzdF9wYWdlLmh0bWwiXSwKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGVzdC5z
aG93TWFpblBhZ2VTY3JpcHRTb3VyY2VfKAorICAgICAgICAgICAgICAiZGVidWdnZXJfdGVzdF9w
YWdlLmh0bWwiLAorICAgICAgICAgICAgICBmdW5jdGlvbih2aWV3LCB1cmwpIHsKKyAgICAgICAg
ICAgICAgICB2aWV3Ll9hZGRCcmVha3BvaW50KGJyZWFrcG9pbnRMaW5lKTsKKworICAgICAgICAg
ICAgICAgIHRlc3QuZXZhbHVhdGVJbkNvbnNvbGVfKAorICAgICAgICAgICAgICAgICAgICAnc2V0
VGltZW91dCgiY2FsY3VsYXRlKCkiLCAwKScsCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KHJlc3VsdFRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmFzc2VydFRydWUoIWlz
TmFOKHJlc3VsdFRleHQpLCAiRmFpbGVkIHRvIGdldCB0aW1lciBpZDogIiArIHJlc3VsdFRleHQp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisKKyAgICAvLyBXYWl0IHVudGlsIHNjcmlwdCBpcyBwYXVzZWQuCisgICAgdGhpcy5hZGRT
bmlmZmVyKAorICAgICAgICBXZWJJbnNwZWN0b3IsCisgICAgICAgICJwYXVzZWRTY3JpcHQiLAor
ICAgICAgICBmdW5jdGlvbihjYWxsRnJhbWVzKSB7CisgICAgICAgICAgICB0ZXN0LmV2YWx1YXRl
SW5Db25zb2xlXygKKyAgICAgICAgICAgICAgICAnZG9jdW1lbnQuY29va2llJywKKyAgICAgICAg
ICAgICAgICB0ZXN0LnJlbGVhc2VDb250cm9sLmJpbmQodGVzdCkpOyAvLyBUaGlzIGNhbGxiYWNr
IHdpbGwgYmUgaW52b2tlZCBvbmx5IGlmIHRoZSB0ZXN0IHN1Y2NlZWRzIChpLmUuIG5vIGNyYXNo
KS4KKyAgICAgICAgfSk7CisKKyAgICB0aGlzLnRha2VDb250cm9sKCk7Cit9OworCisKKy8qKgog
ICogVGVzdHMgdGhhdCBTdG9yYWdlIHBhbmVsIGNhbiBiZSBvcGVuIGFuZCB0aGF0IGxvY2FsIERP
TSBzdG9yYWdlIGlzIGFkZGVkCiAgKiB0byB0aGUgcGFuZWwuCiAgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60752</attachid>
            <date>2010-07-07 10:44:31 -0700</date>
            <delta_ts>2010-07-07 11:47:12 -0700</delta_ts>
            <desc>[PATCH] Implemented a stack of PageGroupLoadDeferrers, as suggested by fishd</desc>
            <filename>pagegroup.patch</filename>
            <type>text/plain</type>
            <size>7238</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzVlOGM5ZC4uYTM5M2MyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wNy0wNyAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQ3Jhc2ggd2hlbiByZS1lbnRlcmluZyBt
ZXNzYWdlIGxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxNjk3CisKKyAgICAgICAgQSBDaHJvbWl1bS1zcGVjaWZpYyB0ZXN0IGNhc2Ugd2lsbCBi
ZSBzdWJtaXR0ZWQgaW50byBDaHJvbWl1bSBzaG9ydGx5LgorCisgICAgICAgICogcGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERl
ZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6
Om5leHREZWZlcnJlcik6CisKIDIwMTAtMDctMDcgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggZmFpbHVyZXMgaW4gYSBoYW5kZnVsIG9mIEphdmEtcmVsYXRlZCB0
ZXN0cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3Bw
IGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKaW5kZXggY2VkOGYzNi4u
ODZmMDdmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKQEAgLTMwLDcg
KzMwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1Q
YWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBi
b29sIGRlZmVyU2VsZikKK1BhZ2VHcm91cExvYWREZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERlZmVy
cmVyKFBhZ2UqIHBhZ2UsIGJvb2wgZGVmZXJTZWxmLCBQYWdlR3JvdXBMb2FkRGVmZXJyZXIqIG5l
eHREZWZlcnJlcikKKyAgICA6IG1fbmV4dERlZmVycmVyKG5leHREZWZlcnJlcikKIHsKICAgICBj
b25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBwYWdlLT5ncm91cCgpLnBhZ2VzKCk7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBiL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaAppbmRleCBkNDQzZWJkLi5kZDdjZjRkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmgKKysrIGIvV2ViQ29y
ZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oCkBAIC0zMCwxMSArMzAsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgUGFnZUdyb3VwTG9hZERlZmVycmVyIDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFBhZ2VHcm91cExvYWREZWZlcnJl
cihQYWdlKiwgYm9vbCBkZWZlclNlbGYpOworICAgICAgICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIo
UGFnZSosIGJvb2wgZGVmZXJTZWxmLCBQYWdlR3JvdXBMb2FkRGVmZXJyZXIqIG5leHREZWZlcnJl
ciA9IDApOwogICAgICAgICB+UGFnZUdyb3VwTG9hZERlZmVycmVyKCk7CisgICAgICAgIFBhZ2VH
cm91cExvYWREZWZlcnJlciogbmV4dERlZmVycmVyKCkgeyByZXR1cm4gbV9uZXh0RGVmZXJyZXI7
IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8RnJhbWU+LCAxNj4gbV9k
ZWZlcnJlZEZyYW1lczsKKyAgICAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyKiBtX25leHREZWZl
cnJlcjsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNTlkYzE1Li43YTk0NjY0IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0wNyAgQWxleGFuZGVyIFBhdmxvdiAg
PGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQ3Jhc2ggd2hlbiByZS1lbnRlcmluZyBtZXNzYWdl
IGxvb3AKKworICAgICAgICBBbGxvdyByZS1lbnRyYW5jeSBvZiB0aGUgbWVzc2FnZSBsb29wIGJ5
IHRyYWNraW5nIGFsbCBzdXNwZW5kZWQgcGFnZXMKKyAgICAgICAgdGhyb3VnaCBhIFBhZ2VHcm91
cExvYWREZWZlcnJlciBzdGFjay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQxNjk3CisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3Ojp3aWxsRW50ZXJNb2RhbExvb3ApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3OjpkaWRFeGl0TW9kYWxMb29wKToKKyAgICAgICAgKiBzcmMvanMvVGVzdHMu
anM6CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS5ldmFsdWF0ZUluQ29uc29sZV8pOgor
ICAgICAgICAoLlRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdENvbXBsZXRpb25PblBhdXNlKToKKyAg
ICAgICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RNZXNzYWdlTG9vcFJlZW50cmFudC50aGlz
KToKKwogMjAxMC0wNy0wNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVHJ5IHRvIGZpeCBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXgg
NDViOTExNy4uOTM3NGIwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE4
Myw5ICsxODMsNiBAQCB2b2lkIFdlYlZpZXc6OnJlc2V0VmlzaXRlZExpbmtTdGF0ZSgpCiAKIHZv
aWQgV2ViVmlldzo6d2lsbEVudGVyTW9kYWxMb29wKCkKIHsKLSAgICAvLyBJdCBpcyBub3QgdmFs
aWQgdG8gbmVzdCBtb3JlIHRoYW4gb25jZS4KLSAgICBBU1NFUlQoIXBhZ2VHcm91cExvYWREZWZl
cnJlcik7Ci0KICAgICBQYWdlR3JvdXAqIHBhZ2VHcm91cCA9IFBhZ2VHcm91cDo6cGFnZUdyb3Vw
KHBhZ2VHcm91cE5hbWUpOwogICAgIEFTU0VSVChwYWdlR3JvdXApOwogCkBAIC0xOTMsMTMgKzE5
MCwxNiBAQCB2b2lkIFdlYlZpZXc6OndpbGxFbnRlck1vZGFsTG9vcCgpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIFBpY2sgYW55IHBhZ2UgaW4gdGhlIHBhZ2UgZ3JvdXAgc2luY2Ugd2UgYXJl
IGRlZmVycmluZyBhbGwgcGFnZXMuCi0gICAgcGFnZUdyb3VwTG9hZERlZmVycmVyID0gbmV3IFBh
Z2VHcm91cExvYWREZWZlcnJlcigqcGFnZUdyb3VwLT5wYWdlcygpLmJlZ2luKCksIHRydWUpOwor
ICAgIHBhZ2VHcm91cExvYWREZWZlcnJlciA9IG5ldyBQYWdlR3JvdXBMb2FkRGVmZXJyZXIoKnBh
Z2VHcm91cC0+cGFnZXMoKS5iZWdpbigpLCB0cnVlLCBwYWdlR3JvdXBMb2FkRGVmZXJyZXIpOwog
fQogCiB2b2lkIFdlYlZpZXc6OmRpZEV4aXRNb2RhbExvb3AoKQogeworICAgIEFTU0VSVChwYWdl
R3JvdXBMb2FkRGVmZXJyZXIpOworICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciogbmV4dERlZmVy
cmVyID0gcGFnZUdyb3VwTG9hZERlZmVycmVyLT5uZXh0RGVmZXJyZXIoKTsKKwogICAgIGRlbGV0
ZSBwYWdlR3JvdXBMb2FkRGVmZXJyZXI7Ci0gICAgcGFnZUdyb3VwTG9hZERlZmVycmVyID0gMDsK
KyAgICBwYWdlR3JvdXBMb2FkRGVmZXJyZXIgPSBuZXh0RGVmZXJyZXI7CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OmluaXRpYWxpemVNYWluRnJhbWUoV2ViRnJhbWVDbGllbnQqIGZyYW1lQ2xpZW50
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5qcyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvanMvVGVzdHMuanMKaW5kZXggY2Q0ZDlmYi4uODE0MzJlYiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5qcworKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL1Rlc3RzLmpzCkBAIC04NTIsNyArODUyLDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS5z
aG93TWFpblBhZ2VTY3JpcHRTb3VyY2VfID0gZnVuY3Rpb24oc2NyaXB0TmFtZSwgY2FsbGJhY2sp
CiAgKi8KIFRlc3RTdWl0ZS5wcm90b3R5cGUuZXZhbHVhdGVJbkNvbnNvbGVfID0gZnVuY3Rpb24o
Y29kZSwgY2FsbGJhY2spCiB7Ci0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUudmlzaWJsZSA9IHRy
dWU7CisgICAgV2ViSW5zcGVjdG9yLnNob3dDb25zb2xlKCk7CiAgICAgV2ViSW5zcGVjdG9yLmNv
bnNvbGUucHJvbXB0LnRleHQgPSBjb2RlOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnByb21w
dEVsZW1lbnQuZGlzcGF0Y2hFdmVudCggVGVzdFN1aXRlLmNyZWF0ZUtleUV2ZW50KCJFbnRlciIp
KTsKIApAQCAtOTUyLDggKzk1MiwxMiBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RDb21wbGV0
aW9uT25QYXVzZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgc2hvd0NvbnNvbGUpOwogCiAgICAgZnVu
Y3Rpb24gc2hvd0NvbnNvbGUoKSB7Ci0gICAgICAgIHRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuY29uc29sZSwgImFmdGVyU2hvdyIsIHRlc3RMb2NhbHNDb21wbGV0aW9uKTsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLnNob3dDb25zb2xlKCk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuY3Vy
cmVudEZvY3VzRWxlbWVudCA9PT0gV2ViSW5zcGVjdG9yLmNvbnNvbGUucHJvbXB0RWxlbWVudCkK
KyAgICAgICAgICAgIHRlc3RMb2NhbHNDb21wbGV0aW9uKCk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgdGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5jb25zb2xlLCAiYWZ0ZXJTaG93
IiwgdGVzdExvY2Fsc0NvbXBsZXRpb24pOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dD
b25zb2xlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBmdW5jdGlvbiB0ZXN0TG9jYWxzQ29t
cGxldGlvbigpIHsKQEAgLTE3NzUsNyArMTc3OSw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVz
dENvbnNvbGVFdmFsID0gZnVuY3Rpb24oKQogICovCiBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RD
b25zb2xlTG9nID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnZpc2li
bGUgPSB0cnVlOworICAgIFdlYkluc3BlY3Rvci5zaG93Q29uc29sZSgpOwogICAgIHZhciBtZXNz
YWdlcyA9IFdlYkluc3BlY3Rvci5jb25zb2xlLm1lc3NhZ2VzOwogICAgIHZhciBpbmRleCA9IDA7
CiAKQEAgLTE4MTcsNyArMTgyMSw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdENvbnNvbGVM
b2cgPSBmdW5jdGlvbigpCiAgKi8KIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdEV2YWxHbG9iYWwg
PSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUudmlzaWJsZSA9IHRydWU7
CisgICAgV2ViSW5zcGVjdG9yLnNob3dDb25zb2xlKCk7CiAKICAgICB2YXIgaW5wdXRzID0gWyJm
b28iLCAiZm9vYmFyIl07CiAgICAgdmFyIGV4cGVjdGF0aW9ucyA9IFsiZm9vIiwgImZvb1ZhbHVl
IiwgImZvb2JhciIsICJSZWZlcmVuY2VFcnJvcjogZm9vYmFyIGlzIG5vdCBkZWZpbmVkIl07CkBA
IC0xODUwLDYgKzE4NTQsNDggQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RXZhbEdsb2JhbCA9
IGZ1bmN0aW9uKCkKIAogCiAvKioKKyAqIFRlc3RzIHRoZSBtZXNzYWdlIGxvb3AgcmUtZW50cmFu
Y3kuCisgKi8KK1Rlc3RTdWl0ZS5wcm90b3R5cGUudGVzdE1lc3NhZ2VMb29wUmVlbnRyYW50ID0g
ZnVuY3Rpb24oKQoreworICAgIHZhciB0ZXN0ID0gdGhpczsKKyAgICB0aGlzLnNob3dQYW5lbCgi
c2NyaXB0cyIpOworCisgICAgdmFyIGJyZWFrcG9pbnRMaW5lID0gMTY7CisKKyAgICBXZWJJbnNw
ZWN0b3Iuc2hvd0NvbnNvbGUoKTsKKworICAgIHRoaXMuX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJz
ZWQoWyJkZWJ1Z2dlcl90ZXN0X3BhZ2UuaHRtbCJdLAorICAgICAgICBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICB0ZXN0LnNob3dNYWluUGFnZVNjcmlwdFNvdXJjZV8oCisgICAgICAgICAgICAgICJk
ZWJ1Z2dlcl90ZXN0X3BhZ2UuaHRtbCIsCisgICAgICAgICAgICAgIGZ1bmN0aW9uKHZpZXcsIHVy
bCkgeworICAgICAgICAgICAgICAgIHZpZXcuX2FkZEJyZWFrcG9pbnQoYnJlYWtwb2ludExpbmUp
OworCisgICAgICAgICAgICAgICAgdGVzdC5ldmFsdWF0ZUluQ29uc29sZV8oCisgICAgICAgICAg
ICAgICAgICAgICdzZXRUaW1lb3V0KCJjYWxjdWxhdGUoKSIsIDApJywKKyAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24ocmVzdWx0VGV4dCkgeworICAgICAgICAgICAgICAgICAgICAgIHRlc3Qu
YXNzZXJ0VHJ1ZSghaXNOYU4ocmVzdWx0VGV4dCksICJGYWlsZWQgdG8gZ2V0IHRpbWVyIGlkOiAi
ICsgcmVzdWx0VGV4dCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKworICAgIC8vIFdhaXQgdW50aWwgc2NyaXB0IGlzIHBhdXNlZC4K
KyAgICB0aGlzLmFkZFNuaWZmZXIoCisgICAgICAgIFdlYkluc3BlY3RvciwKKyAgICAgICAgInBh
dXNlZFNjcmlwdCIsCisgICAgICAgIGZ1bmN0aW9uKGNhbGxGcmFtZXMpIHsKKyAgICAgICAgICAg
IHRlc3QuZXZhbHVhdGVJbkNvbnNvbGVfKAorICAgICAgICAgICAgICAgICdkb2N1bWVudC5jb29r
aWUnLAorICAgICAgICAgICAgICAgIHRlc3QucmVsZWFzZUNvbnRyb2wuYmluZCh0ZXN0KSk7IC8v
IFRoaXMgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkIG9ubHkgaWYgdGhlIHRlc3Qgc3VjY2VlZHMg
KGkuZS4gbm8gY3Jhc2gpLgorICAgICAgICB9KTsKKworICAgIHRoaXMudGFrZUNvbnRyb2woKTsK
K307CisKKworLyoqCiAgKiBUZXN0cyB0aGF0IFN0b3JhZ2UgcGFuZWwgY2FuIGJlIG9wZW4gYW5k
IHRoYXQgbG9jYWwgRE9NIHN0b3JhZ2UgaXMgYWRkZWQKICAqIHRvIHRoZSBwYW5lbC4KICAqLwo=
</data>
<flag name="review"
          id="48486"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>