<?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>81453</bug_id>
          
          <creation_ts>2012-03-17 12:04:47 -0700</creation_ts>
          <short_desc>Actual crash (not assertion failure) underneath WebFrameProxy::removeChild on Lion Intel Debug WebKit2 testers</short_desc>
          <delta_ts>2012-03-19 23:10:03 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc>http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r111114%20(5002)/fast/frames/iframe-reparenting-crash-log.txt</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, LayoutTestFailure, MakingBotsRed, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81590</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>jberlin</cc>
    
    <cc>menard</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581345</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-03-17 12:04:47 -0700</bug_when>
    <thetext>http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r111114%20(5002)/fast/frames/iframe-reparenting-crash-log.txt
http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r111114%20(5002)/fast/events/before-unload-adopt-within-subframes-crash-log.txt

Unfortunately, due to the state of our tests, I am not sure when this started.

I do suspect fast/frames/iframe-reparenting.html and fast/events/before-unload-adopt-withing-subframes.html, but I have yet to verify that locally (don&apos;t have updated source but wanted to document this).

Process:         WebKitTestRunner [71009]
Path:            /Volumes/VOLUME/*/WebKitTestRunner
Identifier:      WebKitTestRunner
Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  Python [70835]

Date/Time:       2012-03-17 00:16:47.550 -0700
OS Version:      Mac OS X 10.7.3 (11D50)
Report Version:  9

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000040

VM Regions Near 0x40:
--&gt; 
    __TEXT                 000000010503f000-0000000105056000 [   92K] r-x/rwx SM=COW  /Volumes/VOLUME/*

Application Specific Information:
objc[71009]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebKit2             	0x0000000105268737 WebKit::WebFrameProxy::removeChild(WebKit::WebFrameProxy*) + 231 (type_traits:3028)
1   com.apple.WebKit2             	0x00000001052688b2 WebKit::WebFrameProxy::didRemoveFromHierarchy() + 50 (WebFrameProxy.cpp:264)
2   com.apple.WebKit2             	0x00000001052f0abc WebKit::WebPageProxy::didRemoveFrameFromHierarchy(unsigned long long, CoreIPC::ArgumentDecoder*) + 316 (WebPageProxy.cpp:1967)
3   com.apple.WebKit2             	0x0000000105347a22 void CoreIPC::callMemberFunction&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, CoreIPC::ArgumentDecoder*), unsigned long long&gt;(CoreIPC::Arguments1&lt;unsigned long long&gt; const&amp;, CoreIPC::ArgumentDecoder*, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, CoreIPC::ArgumentDecoder*)) + 146 (HandleMessage.h:230)
4   com.apple.WebKit2             	0x00000001053396f7 void CoreIPC::handleMessageVariadic&lt;Messages::WebPageProxy::DidRemoveFrameFromHierarchy, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, CoreIPC::ArgumentDecoder*)&gt;(CoreIPC::ArgumentDecoder*, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, CoreIPC::ArgumentDecoder*)) + 119 (HandleMessage.h:327)
5   com.apple.WebKit2             	0x0000000105335b08 WebKit::WebPageProxy::didReceiveWebPageProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 3016 (WebPageProxyMessageReceiver.cpp:258)
6   com.apple.WebKit2             	0x00000001052ee23f WebKit::WebPageProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 271 (WebPageProxy.cpp:1615)
7   com.apple.WebKit2             	0x0000000105389be6 WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 438 (WebProcessProxy.cpp:332)
8   com.apple.WebKit2             	0x0000000105203735 WebKit::WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 405 (WebConnectionToWebProcess.cpp:93)
9   com.apple.WebKit2             	0x000000010520377d non-virtual thunk to WebKit::WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 61
10  com.apple.WebKit2             	0x000000010509ed2c CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message&lt;CoreIPC::ArgumentDecoder&gt;&amp;) + 428 (Connection.cpp:692)
11  com.apple.WebKit2             	0x00000001050a1883 CoreIPC::Connection::dispatchMessages() + 211 (Connection.cpp:720)
12  com.apple.WebKit2             	0x00000001050a8990 WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;::operator()(CoreIPC::Connection*) + 112 (Functional.h:173)
13  com.apple.WebKit2             	0x00000001050a8915 WTF::BoundFunctionImpl&lt;WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;, void ()(CoreIPC::Connection*)&gt;::operator()() + 53 (Functional.h:373)
14  com.apple.WebCore             	0x00000001087139cd WTF::Function&lt;void ()()&gt;::operator()() const + 141 (Functional.h:581)
15  com.apple.WebCore             	0x0000000108713753 WebCore::RunLoop::performWork() + 147 (RunLoop.cpp:66)
16  com.apple.WebCore             	0x0000000108714b70 WebCore::RunLoop::performWork(void*) + 96 (RunLoopMac.mm:65)
17  com.apple.CoreFoundation      	0x00007fff8b9856e1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
18  com.apple.CoreFoundation      	0x00007fff8b984f4d __CFRunLoopDoSources0 + 253
19  com.apple.CoreFoundation      	0x00007fff8b9abd39 __CFRunLoopRun + 905
20  com.apple.CoreFoundation      	0x00007fff8b9ab676 CFRunLoopRunSpecific + 230
21  com.apple.Foundation          	0x00007fff8a8cdf9f -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 267
22  WebKitTestRunner              	0x0000000105049ccc WTR::TestController::platformRunUntil(bool&amp;, double) + 204 (TestControllerMac.mm:60)
23  WebKitTestRunner              	0x00000001050455e5 WTR::TestController::runUntil(bool&amp;, WTR::TestController::TimeoutDuration) + 149 (TestController.cpp:564)
24  WebKitTestRunner              	0x000000010504547c WTR::TestController::resetStateToConsistentValues() + 1564 (TestController.cpp:487)
25  WebKitTestRunner              	0x0000000105045626 WTR::TestController::runTest(char const*) + 54 (TestController.cpp:492)
26  WebKitTestRunner              	0x0000000105045d72 WTR::TestController::runTestingServerLoop() + 178 (TestController.cpp:530)
27  WebKitTestRunner              	0x00000001050443e0 WTR::TestController::run() + 48 (TestController.cpp:538)
28  WebKitTestRunner              	0x00000001050430a6 WTR::TestController::TestController(int, char const**) + 614 (TestController.cpp:88)
29  WebKitTestRunner              	0x0000000105042e33 WTR::TestController::TestController(int, char const**) + 35 (TestController.cpp:89)
30  WebKitTestRunner              	0x0000000105040d8f main + 143 (main.mm:36)
31  WebKitTestRunner              	0x0000000105040cf4 start + 52</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581346</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-03-17 12:05:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/11069393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582469</commentid>
    <comment_count>2</comment_count>
      <attachid>132723</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-19 16:56:47 -0700</bug_when>
    <thetext>Created attachment 132723
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582476</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-19 17:00:29 -0700</bug_when>
    <thetext>*** Bug 81525 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582480</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-19 17:01:52 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582491</commentid>
    <comment_count>5</comment_count>
      <attachid>132723</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-19 17:11:27 -0700</bug_when>
    <thetext>Comment on attachment 132723
proposed fix

Yikes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582677</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-19 20:20:10 -0700</bug_when>
    <thetext>And now it looks like the whole concept of magic frame is being removed today. Nice timing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582697</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-19 20:39:03 -0700</bug_when>
    <thetext>Do you want to land this, or should we wait to see if we remove magic iframe in the next couple of days?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582702</commentid>
    <comment_count>8</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-03-19 20:51:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Do you want to land this, or should we wait to see if we remove magic iframe in the next couple of days?

This patch an update the WK API struct, so Alexey has to make that change before he lands it.

Is there still a question about whether or not we are going to remove &quot;magic frames&quot;? What is the timeline for removing it? We are trying to get the bots green as soon as possible ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582705</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-19 20:54:38 -0700</bug_when>
    <thetext>I don&apos;t think that we should land this.

We could skip the frame reparenting tests in WK2 for now. Do you expect to remove any tests? The current patch in bug 81590 doesn&apos;t touch any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582719</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-19 21:15:56 -0700</bug_when>
    <thetext>&gt; Is there still a question about whether or not we are going to remove &quot;magic frames&quot;? What is the timeline for removing it? We are trying to get the bots green as soon as possible ...

There seemed to be consensus on webkit-dev, so I think the timeline we&apos;re going to remove it relatively soon (as in, someone should feel free to R+ my patch and I can land it whenever).

&gt; We could skip the frame reparenting tests in WK2 for now. Do you expect to remove any tests? The current patch in bug 81590 doesn&apos;t touch any.

I&apos;ve updated the patch to remove the reparenting tests.  I don&apos;t think there&apos;s much (any?) value in keeping them without the feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582784</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-19 23:05:40 -0700</bug_when>
    <thetext>Support for &quot;magic&quot; iframe has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582786</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-19 23:10:03 -0700</bug_when>
    <thetext>All is well that ends well.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132723</attachid>
            <date>2012-03-19 16:56:47 -0700</date>
            <delta_ts>2012-03-19 17:11:27 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>TransferLiveFrame.txt</filename>
            <type>text/plain</type>
            <size>19081</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTI3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTE5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEFjdHVhbCBjcmFzaCAobm90
IGFzc2VydGlvbiBmYWlsdXJlKSB1bmRlcm5lYXRoIFdlYkZyYW1lUHJveHk6OnJlbW92ZUNoaWxk
IG9uIExpb24gSW50ZWwKKyAgICAgICAgRGVidWcgV2ViS2l0MiB0ZXN0ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTQ1MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTEwNjkzOTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgdHJhbnNmZXJyaW5nIGxpdmUgIm1hZ2ljIiBmcmFt
ZXMgaW4gV2ViS2l0Mi4gTG90cyBvZiBjaG5hZ2VzIGJlbG93LCBidXQgdGhpcyBpcworICAgICAg
ICBhbGwganVzdCBwYXNzaW5nIG9uZSBtZXNzYWdlIHRvIGFsbCBjbGllbnRzLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hMb2FkZXJDbGllbnRUb1Zp
ZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVQcm94eTo6c2V0UGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckxpdmVTdWJmcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFRyYW5zZmVyTGl2ZVN1YmZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50OjpkaWRUcmFuc2ZlckxpdmVTdWJmcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKElu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5CdW5kbGVQYWdlKToKKwog
MjAxMi0wMy0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSBtb3JlIGxpa2UgV2ViS2l0
MSB2ZXJzaW9uLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmNwcAkocmV2aXNpb24gMTExMjAyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYsNiArMTk2LDEzIEBAIHZvaWQgV2Vi
RnJhbWVQcm94eTo6ZGlkQ2hhbmdlVGl0bGUoY29uc3QKICAgICBtX3RpdGxlID0gdGl0bGU7CiB9
CiAKK3ZvaWQgV2ViRnJhbWVQcm94eTo6c2V0UGFnZShXZWJQYWdlUHJveHkqIG5ld1BhZ2UpCit7
CisgICAgQVNTRVJUKCFtX3BhcmVudEZyYW1lKTsgLy8gQ2FuIG9ubHkgbW92ZSBiZXR3ZWVuIHBh
Z2VzIHdoZW4gZGV0YWNoZWQgKHRoaXMgaXMgZm9yICJtYWdpYyBmcmFtZSIgZnVuY3Rpb25hbGl0
eSkuCisKKyAgICBtX3BhZ2UgPSBuZXdQYWdlOworfQorCiB2b2lkIFdlYkZyYW1lUHJveHk6OmFw
cGVuZENoaWxkKFdlYkZyYW1lUHJveHkqIGNoaWxkKQogewogICAgIEFTU0VSVChjaGlsZC0+cGFn
ZSgpID09IHBhZ2UoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVBy
b3h5LmgJKHJldmlzaW9uIDExMTIwMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
cmFtZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGljOgogCiAg
ICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdl
YlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIHZvaWQgc2V0
UGFnZShXZWJQYWdlUHJveHkqKTsKIAogICAgIFdlYkZyYW1lUHJveHkqIHBhcmVudEZyYW1lKCkg
eyByZXR1cm4gbV9wYXJlbnRGcmFtZTsgfQogICAgIFdlYkZyYW1lUHJveHkqIG5leHRTaWJsaW5n
KCkgeyByZXR1cm4gbV9uZXh0U2libGluZzsgfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9uIDExMTIwMikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzksNiArMTM5LDE0IEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRSZW1vdmVGcmFtZUZyb20K
ICAgICBtX2NsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodG9BUEkocGFnZSksIHRv
QVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAor
dm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFRyYW5zZmVyTGl2ZVN1YmZyYW1lKFdlYkZyYW1lUHJv
eHkqIGZyYW1lLCBXZWJGcmFtZVByb3h5KiBuZXdQYXJlbnQsIEFQSU9iamVjdCogdXNlckRhdGEp
Cit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRUcmFuc2ZlckxpdmVTdWJmcmFtZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9jbGllbnQuZGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUodG9BUEkoZnJh
bWUpLCB0b0FQSShuZXdQYXJlbnQpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmNsaWVudElu
Zm8pOworfQorCiB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSU9i
amVjdCogdXNlckRhdGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWREaXNwbGF5SW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRl
ckNsaWVudC5oCShyZXZpc2lvbiAxMTEyMDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFt
ZVByb3h5KiwgQVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7
CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2ViUGFnZVByb3h5KiwgV2Vi
RnJhbWVQcm94eSosIEFQSU9iamVjdCopOworICAgIHZvaWQgZGlkVHJhbnNmZXJMaXZlU3ViZnJh
bWUoV2ViRnJhbWVQcm94eSosIFdlYkZyYW1lUHJveHkqIG5ld1BhcmVudCwgQVBJT2JqZWN0Kik7
CiAgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZVByb3h5
KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCop
OwogICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIEFQSU9iamVjdCopOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHJldmlzaW9uIDExMTIwMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTY3LDYgKzE5NjcsMjYgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZQogICAgIG1fbG9hZGVyQ2xp
ZW50LmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0
KCkpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmV3UGFyZW50SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQoreworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1f
cHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBw
cm9jZXNzKCktPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOwor
CisgICAgV2ViRnJhbWVQcm94eSogbmV3UGFyZW50ID0gcHJvY2VzcygpLT53ZWJGcmFtZShuZXdQ
YXJlbnRJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhuZXdQYXJlbnQpOworCisgICAgZnJhbWUtPmRp
ZFJlbW92ZUZyb21IaWVyYXJjaHkoKTsKKyAgICBmcmFtZS0+c2V0UGFnZShuZXdQYXJlbnQtPnBh
Z2UoKSk7CisgICAgbmV3UGFyZW50LT5hcHBlbmRDaGlsZChmcmFtZSk7CisKKyAgICBtX2xvYWRl
ckNsaWVudC5kaWRUcmFuc2ZlckxpdmVTdWJmcmFtZShmcmFtZSwgbmV3UGFyZW50LCB1c2VyRGF0
YS5nZXQoKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAxMTEyMDIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY3NSw2ICs2NzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CiAgICAgdm9pZCBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJj
aHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9p
ZCBkaWRUcmFuc2ZlckxpdmVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuZXdQ
YXJlbnRJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZERl
dGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxMTEyMDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEw
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWROZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXQoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1
c2VyRGF0YSkKICAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB1cmwsIFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkUmVtb3ZlRnJhbWVG
cm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCisgICAgRGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmV3UGFyZW50SUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5n
IHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
IHVzZXJEYXRhKQogICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFdURjo6U3RyaW5nIHRpdGxlLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyIHVzZXJEYXRhKQogICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVz
ZXJEYXRhKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2
aXNpb24gMTExMjAyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZFJlY2VpdmVUaXRsZUZvckYKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZpcnN0TGF5b3V0Rm9y
RnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlbW92ZUZyYW1lRnJvbUhp
ZXJhcmNoeUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldL
UGFnZURpZFRyYW5zZmVyTGl2ZVN1YmZyYW1lQ2FsbGJhY2spKFdLRnJhbWVSZWYgZnJhbWUsIFdL
RnJhbWVSZWYgbmV3UGFyZW50LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZv
ckZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVS
ZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQ
YWdlRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWREZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTExMyw2ICsxMTQsOCBAQCBzdHJ1Y3QgV0tQYWdl
TG9hZGVyQ2xpZW50IHsKICAgICBXS1BhZ2VEaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dDsKIAogICAgIFdLUGFnZVdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOwor
CisgICAgV0tQYWdlRGlkVHJhbnNmZXJMaXZlU3ViZnJhbWVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRUcmFuc2ZlckxpdmVTdWJmcmFtZTsKIH07CiB0eXBlZGVmIHN0
cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgV0tQYWdlTG9hZGVyQ2xpZW50OwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNs
aWVudC5jcHAJKHJldmlzaW9uIDExMTIwMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsx
NDUsOSBAQCB2b2lkIGF0dGFjaExvYWRlckNsaWVudFRvVmlldyhXZWJLaXRXZWJWCiAgICAgICAg
IDAsIC8vIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtCiAgICAgICAgIDAsIC8vIGRpZEZh
aWxUb0luaXRpYWxpemVQbHVnaW4KICAgICAgICAgMCwgLy8gZGlkRGV0ZWN0WFNTRm9yRnJhbWUK
LSAgICAgICAgMCAvLyBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSAKKyAg
ICAgICAgMCwgLy8gZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUKKyAgICAg
ICAgMCwgLy8gd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtCisgICAgICAgIDAgLy8gZGlkVHJh
bnNmZXJMaXZlU3ViZnJhbWUKICAgICB9OwogICAgIFdLUGFnZVJlZiB3a1BhZ2UgPSB0b0FQSSh3
ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldykpKTsK
ICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdrUGFnZSwgJndrTG9hZGVyQ2xpZW50KTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5j
cHAJKHJldmlzaW9uIDExMTIwMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM2LDYgKzEzNiwxNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dDo6ZGlkCiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsK
IH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFRyYW5zZmVyTGl2
ZVN1YmZyYW1lKFdlYkZyYW1lKiBmcmFtZSwgV2ViRnJhbWUqIG5ld1BhcmVudCwgUmVmUHRyPEFQ
SU9iamVjdD4mIHVzZXJEYXRhKQoreworICAgIGlmICghbV9jbGllbnQuZGlkVHJhbnNmZXJMaXZl
U3ViZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFz
cyA9IDA7CisgICAgbV9jbGllbnQuZGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUodG9BUEkoZnJhbWUp
LCB0b0FQSShuZXdQYXJlbnQpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8p
OworICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisK
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWREaXNwbGF5SW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJ
T2JqZWN0PiYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDExMTIwMikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIFNhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkZy
YW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlbW92ZUZy
YW1lRnJvbUhpZXJhcmNoeShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYg
dXNlckRhdGEpOworICAgIHZvaWQgZGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUoV2ViRnJhbWUqLCBX
ZWJGcmFtZSogbmV3UGFyZW50LCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZv
aWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSos
IFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNl
ckRhdGEpOwogICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1l
KiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaAkocmV2aXNpb24gMTExMjAyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTAs
NiArOTAsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRGYWlsTG9hZFdpCiB0eXBl
ZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWVD
YWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFRyYW5zZmVyTGl2ZVN1YmZy
YW1lQ2FsbGJhY2spKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlRnJhbWVSZWYgbmV3
UGFyZW50LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
V0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRs
ZVBhZ2VEaWREZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CkBAIC0xMzAsNiArMTMxLDcgQEAgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRl
ckNsaWVudCB7CiAgICAgV0tCdW5kbGVQYWdlRGlkTGF5b3V0Rm9yRnJhbWVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMYXlvdXRGb3JGcmFtZTsKICAgICBXS0J1bmRs
ZVBhZ2VEaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRDYWxsYmFjayAgICAgICAgICAg
ICAgIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dDsKICAgICBXS0J1bmRsZVBhZ2VE
aWREZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
ZERldGVjdFhTU0ZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZFRyYW5zZmVyTGl2ZVN1YmZy
YW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgZGlkVHJhbnNmZXJMaXZlU3ViZnJh
bWU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IFdLQnVuZGxl
UGFnZUxvYWRlckNsaWVudDsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAJKHJldmlzaW9uIDExMTIzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjU2
LDcgKzEyNTYsMTYgQEAgUGFzc1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6Ogog
CiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0Rv
Y3VtZW50KFBhZ2UqKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgV2ViUGFnZSogd2Vi
UGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBBU1NFUlQod2ViUGFnZSk7IC8vIENhbid0IGJl
IG51bGwsIGJlY2F1c2UgZnJhbWVzIGFyZSBvbmx5IHRyYW5zZmVyZWQgbGl2ZSBiZXR3ZWVuIHBh
Z2VzLgorCisgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CisgICAgCisgICAgLy8gTm90
aWZ5IHRoZSBidW5kbGUgY2xpZW50LgorICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVy
Q2xpZW50KCkuZGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUobV9mcmFtZSwgbV9mcmFtZS0+cGFyZW50
RnJhbWUoKSwgdXNlckRhdGEpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCisgICAg
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRUcmFuc2ZlckxpdmVTdWJm
cmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPnBhcmVudEZyYW1lKCktPmZyYW1lSUQo
KSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9
CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJv
bVBhZ2UoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYWdlKikKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5k
bGVQYWdlLmNwcAkocmV2aXNpb24gMTExMjAyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjks
NyBAQCBRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5CdW5kbGVQYWdlCiAgICAgICAgIDAs
IC8vIGRpZExheW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZERldGVjdFhTU0ZvckZyYW1l
CisgICAgICAgIDAsIC8vIGRpZFRyYW5zZmVyTGl2ZVN1YmZyYW1lCiAgICAgfTsKICAgICBXS0J1
bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwgJmxvYWRlckNsaWVudCk7CiB9Cklu
ZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMTEyNzApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMSBAQAorMjAxMi0wMy0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
KworICAgICAgICBBY3R1YWwgY3Jhc2ggKG5vdCBhc3NlcnRpb24gZmFpbHVyZSkgdW5kZXJuZWF0
aCBXZWJGcmFtZVByb3h5OjpyZW1vdmVDaGlsZCBvbiBMaW9uIEludGVsCisgICAgICAgIERlYnVn
IFdlYktpdDIgdGVzdGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODE0NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzExMDY5MzkzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0aW5nIHRoZSB0
b29scy4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxl
ci5tOgorICAgICAgICAoLVtCcm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5k
bGVQYWdlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorCiAyMDEyLTAzLTE5
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTA4NDg1NzU+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODE1MTYKSW5kZXg6IFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJv
bGxlci5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93
Q29udHJvbGxlci5tCShyZXZpc2lvbiAxMTEyMDIpCisrKyBUb29scy9NaW5pQnJvd3Nlci9tYWMv
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQkod29ya2luZyBjb3B5KQpAQCAtNjEwLDYgKzYxMCw3
IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIGRpZERldGVjdFhTU0ZvckZyYW1lLAog
ICAgICAgICAwLCAvLyBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQKICAgICAgICAg
MCwgLy8gd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtCisgICAgICAgIDAsIC8vIGRpZFRyYW5z
ZmVyTGl2ZVN1YmZyYW1lCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KF93
ZWJWaWV3LnBhZ2VSZWYsICZsb2FkQ2xpZW50KTsKICAgICAKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMTEyMDIpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA3
LDYgKzQwNyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAg
ICAgICAgMCwgLy8gZGlkRGV0ZWN0WFNTRm9yRnJhbWUgCiAgICAgICAgIDAsIC8vIGRpZE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dAogICAgICAgICAwLCAvLyB3aWxsR29Ub0JhY2tGb3J3
YXJkTGlzdEl0ZW0KKyAgICAgICAgMCwgLy8gZGlkVHJhbnNmZXJMaXZlU3ViZnJhbWUKICAgICB9
OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAm
cGFnZUxvYWRlckNsaWVudCk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCShyZXZp
c2lvbiAxMTEyMDIpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw2ICsyMzUsNyBAQCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXCiAgICAgICAgIDAsIC8vIGRp
ZExheW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lCiAgICAgICAgIGRpZERldGVjdFhTU0ZvckZyYW1lLAorICAgICAgICAw
LCAvLyBkaWRUcmFuc2ZlckxpdmVTdWJmcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0
UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCg==
</data>
<flag name="review"
          id="136449"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>