<?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>140307</bug_id>
          
          <creation_ts>2015-01-09 14:06:17 -0800</creation_ts>
          <short_desc>If building with ASan, copy libclang_rt.asan_osx_dynamic.dylib to the build directory</short_desc>
          <delta_ts>2015-02-10 23:53:08 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Burkart">dburkart</reporter>
          <assigned_to name="Dana Burkart">dburkart</assigned_to>
          <cc>ap</cc>
    
    <cc>dburkart</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mitz</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1060264</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-09 14:06:17 -0800</bug_when>
    <thetext>We should copy over the ASan dylib when producing an ASan root, so that we can distribute the root to systems which don&apos;t necessarily have ASan in their toolchain. This can be accomplished by adding a Makefile to /Tools/asan, and modifying /Tools/Makefile.

Alexey had the good idea of plopping it into WebKit.framework/Versions/A/Resources so that it&apos;s automatically next to WebKitTestRunner and such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061919</commentid>
    <comment_count>1</comment_count>
      <attachid>244793</attachid>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-16 12:57:09 -0800</bug_when>
    <thetext>Created attachment 244793
New target for DumpRenderTree which copies the dylib

This patch adds a new target to DumpRenderTree which calls a new tool to copy libclang_rt.asan_osx_dynamic.dylib to the build dir.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061938</commentid>
    <comment_count>2</comment_count>
      <attachid>244793</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-16 13:20:19 -0800</bug_when>
    <thetext>Comment on attachment 244793
New target for DumpRenderTree which copies the dylib

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

I looked at the script, but I cannot meaningfully review xcodeproj changes.

&gt; Tools/Scripts/copy-asan-dylib:23
&gt; +if ($should_copy_dylib) {

This should probably compare to YES.

&gt; Tools/Scripts/copy-asan-dylib:24
&gt; +    my $xcrun_output = `xcrun --toolchain Default clang -fsanitize=address -x c - -### 2&gt;&amp;1`;

Can&apos;t we use a toolchain specified by asan.xcodeproj.

&gt; Tools/Scripts/copy-asan-dylib:28
&gt; +    $result |= system(&quot;mkdir -p $DSTROOT/System/Library/Frameworks/WebKit.framework/Versions/A/Resources&quot;);

Why does this need to use system()? Perl is very capable of creating directories and copying.

&gt; Tools/Scripts/copy-asan-dylib:29
&gt; +    $result |= system(&quot;ditto $1 $DSTROOT/System/Library/Frameworks/WebKit.framework/Versions/A/Resources/libclang_rt.asan_osx_dynamic.dylib&quot;) &gt;&gt; 8;

I think that this is the right path when building a root (i.e. when installing), but not for normal developer builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061948</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2015-01-16 13:35:36 -0800</bug_when>
    <thetext>The Resources directory within a framework isn&apos;t an appropriate place for a dylib. Putting one there can break code signing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061949</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-16 13:37:23 -0800</bug_when>
    <thetext>The only reason we were doing that is so that it would be next to DumpRenderTree. I guess we could put it somewhere else and add a build step to move the dylib around.

Where would you suggest putting it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061951</commentid>
    <comment_count>5</comment_count>
      <attachid>244793</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2015-01-16 13:39:18 -0800</bug_when>
    <thetext>Comment on attachment 244793
New target for DumpRenderTree which copies the dylib

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

&gt; Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:738
&gt; +			buildWorkingDirectory = ../Scripts;

This violates some of our assumptions that projects don&apos;t require access content outside of their source root. DRT already violates this assumption in other places, but we should be trying to address those rather than making things worse.

&gt; Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:1153
&gt; +			buildSettings = {
&gt; +				ALWAYS_SEARCH_USER_PATHS = NO;
&gt; +				CLANG_CXX_LANGUAGE_STANDARD = &quot;gnu++0x&quot;;
&gt; +				CLANG_CXX_LIBRARY = &quot;libc++&quot;;
&gt; +				CLANG_ENABLE_MODULES = YES;
&gt; +				CLANG_ENABLE_OBJC_ARC = YES;

Please use .xcconfig files rather than including this gunk in the project. Please also filter out the irrelevant bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062786</commentid>
    <comment_count>6</comment_count>
      <attachid>244793</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-20 10:12:50 -0800</bug_when>
    <thetext>Comment on attachment 244793
New target for DumpRenderTree which copies the dylib

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

r- to address Mark&apos;s and Alexey&apos;s comments.

&gt; Tools/ChangeLog:10
&gt; +        * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add a new target which runs copy-asan-dylib.
&gt; +        * Scripts/copy-asan-dylib: Added. This script checks to see if we are building with asan, and
&gt; +        if so, copies libclang_rt.asan_osx_dynamic.dylib to the build directory.

Xcode has a built-in way to copy files; can we just use a &quot;copy files&quot; build phase instead of a build phase script?

Or do we only need to copy this when building for ASan, so we have to include logic in the copy files build phase?

&gt;&gt; Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:738
&gt;&gt; +			buildWorkingDirectory = ../Scripts;
&gt; 
&gt; This violates some of our assumptions that projects don&apos;t require access content outside of their source root. DRT already violates this assumption in other places, but we should be trying to address those rather than making things worse.

In other words, please move this script into Tools/DumpRenderTree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062787</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-20 10:13:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/18542159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062848</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-20 12:38:46 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 244793 [details]
&gt; New target for DumpRenderTree which copies the dylib
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244793&amp;action=review
&gt; 
&gt; r- to address Mark&apos;s and Alexey&apos;s comments.
&gt; 
&gt; &gt; Tools/ChangeLog:10
&gt; &gt; +        * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add a new target which runs copy-asan-dylib.
&gt; &gt; +        * Scripts/copy-asan-dylib: Added. This script checks to see if we are building with asan, and
&gt; &gt; +        if so, copies libclang_rt.asan_osx_dynamic.dylib to the build directory.
&gt; 
&gt; Xcode has a built-in way to copy files; can we just use a &quot;copy files&quot; build
&gt; phase instead of a build phase script?
&gt; 
&gt; Or do we only need to copy this when building for ASan, so we have to
&gt; include logic in the copy files build phase?
&gt; 

We need to not only conditionally copy the file, we need to find it in the first place. This is not quite trivial, which is why I didn&apos;t just use Xcode&apos;s built-in way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065012</commentid>
    <comment_count>9</comment_count>
      <attachid>245568</attachid>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-28 13:19:11 -0800</bug_when>
    <thetext>Created attachment 245568
Address concerns raised in review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065023</commentid>
    <comment_count>10</comment_count>
      <attachid>245568</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-28 13:46:50 -0800</bug_when>
    <thetext>Comment on attachment 245568
Address concerns raised in review

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

&gt; Tools/DumpRenderTree/copy-asan-dylib:7
&gt; +#  copy-asan-dylib
&gt; +#  asan
&gt; +#
&gt; +#  Created by Dana Burkart on 1/15/15.
&gt; +#

I don&apos;t think that this is the sort of comment we us in open source tools; should be a BSD license instead.

&gt; Tools/DumpRenderTree/copy-asan-dylib:23
&gt; +my $asan_enabled_file = File::Spec-&gt;catfile($OBJROOT, &apos;ASan&apos;);

I thought that the plan was to switch to CLANG_ADDRESS_SANITIZER, and use that variable.

&gt; Tools/DumpRenderTree/copy-asan-dylib:39
&gt; +    $result |= system(&quot;ditto $asan_dylib_path $destination/$asan_dylib_name&quot;) &gt;&gt; 8;

You previously said that we needed copies or symlinks for XPC service binaries, is that the case?

I&apos;m now thinking that we probably don&apos;t, because WebKit2 uses DYLD_INSERT_LIBRARIES when launching secondary processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065037</commentid>
    <comment_count>11</comment_count>
      <attachid>245568</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2015-01-28 15:06:15 -0800</bug_when>
    <thetext>Comment on attachment 245568
Address concerns raised in review

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

&gt; Tools/DumpRenderTree/copy-asan-dylib:20
&gt; +my $toolchain = $ENV{TOOLCHAINS_macosx} || &apos;default&apos;;

Why are we looking at TOOLCHAINS_macosx rather than TOOLCHAINS?

&gt; Tools/DumpRenderTree/copy-asan-dylib:30
&gt; +my $destination = File::Spec-&gt;catdir($DSTROOT, &apos;/&apos;);
&gt; +if ($ENV{RC_BUILDIT} eq &quot;YES&quot;) {
&gt; +    $destination = File::Spec-&gt;catdir($destination, $INSTALL_PATH);
&gt; +}

Checking for RC_BUILDIT doesn&apos;t seem right.

This all looks like it&apos;d result in $destination being under /tmp/ in an engineering build? Is that what we want?

I suspect that we should be using TARGET_BUILD_DIR rather than messing with DSTROOT / INSTALL_PATH ourselves. That should resolve to the appropriate location for both engineering and production builds.

&gt; Tools/DumpRenderTree/copy-asan-dylib:33
&gt; +    my $xcrun_output = `xcrun --toolchain $toolchain clang -fsanitize=address -x c - -### 2&gt;&amp;1`;

I don&apos;t think it&apos;s necessary to specify --toolchain $toolchain. xcrun defaults to the TOOLCHAINS environment variable if it&apos;s set. It will be in this case.

&gt;&gt; Tools/DumpRenderTree/copy-asan-dylib:39
&gt;&gt; +    make_path($destination) unless (-d $destination);
&gt;&gt; +    $result |= system(&quot;ditto $asan_dylib_path $destination/$asan_dylib_name&quot;) &gt;&gt; 8;
&gt; 
&gt; You previously said that we needed copies or symlinks for XPC service binaries, is that the case?
&gt; 
&gt; I&apos;m now thinking that we probably don&apos;t, because WebKit2 uses DYLD_INSERT_LIBRARIES when launching secondary processes.

We should use the multi-argument version of system rather getting the shell involved in argument parsing.

We typically use WEXITSTATUS rather than shifting exit codes.

&gt; Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:1178
&gt; +				DEPLOYMENT_LOCATION = NO;

I&apos;m not clear why you&apos;ve set DEPLOYMENT_LOCATION = NO on all of these configurations. DEPLOYMENT_LOCATION is something that varies based on the type of build being performed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065043</commentid>
    <comment_count>12</comment_count>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-28 15:21:58 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 245568 [details]
&gt; Address concerns raised in review
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=245568&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/copy-asan-dylib:20
&gt; &gt; +my $toolchain = $ENV{TOOLCHAINS_macosx} || &apos;default&apos;;
&gt; 
&gt; Why are we looking at TOOLCHAINS_macosx rather than TOOLCHAINS?

Because that&apos;s what asan.xcconfig sets. But, per your comment below, we can just remove this line of code (by removing the --toolchain argument from the xcrun command).

&gt; 
&gt; &gt; Tools/DumpRenderTree/copy-asan-dylib:30
&gt; &gt; +my $destination = File::Spec-&gt;catdir($DSTROOT, &apos;/&apos;);
&gt; &gt; +if ($ENV{RC_BUILDIT} eq &quot;YES&quot;) {
&gt; &gt; +    $destination = File::Spec-&gt;catdir($destination, $INSTALL_PATH);
&gt; &gt; +}
&gt; 
&gt; Checking for RC_BUILDIT doesn&apos;t seem right.
&gt; 
&gt; This all looks like it&apos;d result in $destination being under /tmp/ in an
&gt; engineering build? Is that what we want?

It would result in $destination being under /tmp/DumpRenderTree.dst in the case of an engineering build.

&gt; 
&gt; I suspect that we should be using TARGET_BUILD_DIR rather than messing with
&gt; DSTROOT / INSTALL_PATH ourselves. That should resolve to the appropriate
&gt; location for both engineering and production builds.
&gt; 

If I use TARGET_BUILD_DIR, than both engineering and buildit builds will end up in the same place. Is that what we want? I was under the impression that we wanted it at the root of the build-dir in an engineering build and in the Resources folder otherwise. If that&apos;s not the case, then TARGET_BUILD_DIR would be the way to go.

&gt; &gt; Tools/DumpRenderTree/copy-asan-dylib:33
&gt; &gt; +    my $xcrun_output = `xcrun --toolchain $toolchain clang -fsanitize=address -x c - -### 2&gt;&amp;1`;
&gt; 
&gt; I don&apos;t think it&apos;s necessary to specify --toolchain $toolchain. xcrun
&gt; defaults to the TOOLCHAINS environment variable if it&apos;s set. It will be in
&gt; this case.
&gt; 

Sweet!

&gt; &gt;&gt; Tools/DumpRenderTree/copy-asan-dylib:39
&gt; &gt;&gt; +    make_path($destination) unless (-d $destination);
&gt; &gt;&gt; +    $result |= system(&quot;ditto $asan_dylib_path $destination/$asan_dylib_name&quot;) &gt;&gt; 8;
&gt; &gt; 
&gt; &gt; You previously said that we needed copies or symlinks for XPC service binaries, is that the case?
&gt; &gt; 
&gt; &gt; I&apos;m now thinking that we probably don&apos;t, because WebKit2 uses DYLD_INSERT_LIBRARIES when launching secondary processes.
&gt; 
&gt; We should use the multi-argument version of system rather getting the shell
&gt; involved in argument parsing.
&gt; 
&gt; We typically use WEXITSTATUS rather than shifting exit codes.
&gt; 

Okay.

&gt; &gt; Tools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:1178
&gt; &gt; +				DEPLOYMENT_LOCATION = NO;
&gt; 
&gt; I&apos;m not clear why you&apos;ve set DEPLOYMENT_LOCATION = NO on all of these
&gt; configurations. DEPLOYMENT_LOCATION is something that varies based on the
&gt; type of build being performed.

That was a mistake (must have hit something in Xcode by accident).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065047</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2015-01-28 15:30:18 -0800</bug_when>
    <thetext>&gt; &gt; This all looks like it&apos;d result in $destination being under /tmp/ in an
&gt; &gt; engineering build? Is that what we want?
&gt; 
&gt; It would result in $destination being under /tmp/DumpRenderTree.dst in the
&gt; case of an engineering build.
&gt; 
&gt; &gt; 
&gt; &gt; I suspect that we should be using TARGET_BUILD_DIR rather than messing with
&gt; &gt; DSTROOT / INSTALL_PATH ourselves. That should resolve to the appropriate
&gt; &gt; location for both engineering and production builds.
&gt; &gt; 
&gt; 
&gt; If I use TARGET_BUILD_DIR, than both engineering and buildit builds will end
&gt; up in the same place. Is that what we want? I was under the impression that
&gt; we wanted it at the root of the build-dir in an engineering build and in the
&gt; Resources folder otherwise. If that&apos;s not the case, then TARGET_BUILD_DIR
&gt; would be the way to go.

TARGET_BUILD_DIR expands to CONFIGURATION_BUILD_DIR when DEPLOYMENT_LOCATION == NO. That&apos;s the case for engineering builds, and results in TARGET_BUILD_DIR being WebKitBuild/Debug. It expands to $DSTROOT/$INSTALL_PATH when DEPLOYMENT_LOCATION == YES, which is the case for production builds. I think that maps to our desired behavior in both cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065051</commentid>
    <comment_count>14</comment_count>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-28 15:38:37 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; &gt; This all looks like it&apos;d result in $destination being under /tmp/ in an
&gt; &gt; &gt; engineering build? Is that what we want?
&gt; &gt; 
&gt; &gt; It would result in $destination being under /tmp/DumpRenderTree.dst in the
&gt; &gt; case of an engineering build.
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; I suspect that we should be using TARGET_BUILD_DIR rather than messing with
&gt; &gt; &gt; DSTROOT / INSTALL_PATH ourselves. That should resolve to the appropriate
&gt; &gt; &gt; location for both engineering and production builds.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; If I use TARGET_BUILD_DIR, than both engineering and buildit builds will end
&gt; &gt; up in the same place. Is that what we want? I was under the impression that
&gt; &gt; we wanted it at the root of the build-dir in an engineering build and in the
&gt; &gt; Resources folder otherwise. If that&apos;s not the case, then TARGET_BUILD_DIR
&gt; &gt; would be the way to go.
&gt; 
&gt; TARGET_BUILD_DIR expands to CONFIGURATION_BUILD_DIR when DEPLOYMENT_LOCATION
&gt; == NO. That&apos;s the case for engineering builds, and results in
&gt; TARGET_BUILD_DIR being WebKitBuild/Debug. It expands to
&gt; $DSTROOT/$INSTALL_PATH when DEPLOYMENT_LOCATION == YES, which is the case
&gt; for production builds. I think that maps to our desired behavior in both
&gt; cases?

Okay, that makes way more sense. I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065385</commentid>
    <comment_count>15</comment_count>
      <attachid>245664</attachid>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-01-29 15:40:24 -0800</bug_when>
    <thetext>Created attachment 245664
Fix issues raised by review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066506</commentid>
    <comment_count>16</comment_count>
    <who name="Dana Burkart">dburkart</who>
    <bug_when>2015-02-03 11:15:26 -0800</bug_when>
    <thetext>So, it turns out, if building with CLANG_ADDRESS_SANITIZER=YES instead of -fsanitize=address, this work will no longer be needed, as xcodebuild will do the copying for you. Closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068278</commentid>
    <comment_count>17</comment_count>
      <attachid>245664</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-02-10 23:53:08 -0800</bug_when>
    <thetext>Comment on attachment 245664
Fix issues raised by review

Clearing r? to get this out of the review queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244793</attachid>
            <date>2015-01-16 12:57:09 -0800</date>
            <delta_ts>2015-01-28 13:19:11 -0800</delta_ts>
            <desc>New target for DumpRenderTree which copies the dylib</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>8717</size>
            <attacher name="Dana Burkart">dburkart</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3ODU5MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE1LTAxLTE2ICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+
CisKKyAgICAgICAgSWYgYnVpbGRpbmcgd2l0aCBBU2FuLCBjb3B5IGxpYmNsYW5nX3J0LmFzYW5f
b3N4X2R5bmFtaWMuZHlsaWIgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMzA3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgdGFyZ2V0IHdoaWNo
IHJ1bnMgY29weS1hc2FuLWR5bGliLgorICAgICAgICAqIFNjcmlwdHMvY29weS1hc2FuLWR5bGli
OiBBZGRlZC4gVGhpcyBzY3JpcHQgY2hlY2tzIHRvIHNlZSBpZiB3ZSBhcmUgYnVpbGRpbmcgd2l0
aCBhc2FuLCBhbmQKKyAgICAgICAgaWYgc28sIGNvcGllcyBsaWJjbGFuZ19ydC5hc2FuX29zeF9k
eW5hbWljLmR5bGliIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkuCisKIDIwMTUtMDEtMTYgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJraXQtcGF0Y2ggc2hvdWxk
IGF1dG8taW5zdGFsbCB0aGUga2V5cmluZyBweXRob24gbW9kdWxlCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE3Nzk4MikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTcyNyw2ICs3MjcsMjMgQEAKIAkJfTsKIC8qIEVuZCBQQlhIZWFkZXJzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCiAKKy8qIEJlZ2luIFBCWExlZ2FjeVRhcmdldCBzZWN0aW9uICovCisJCTg3QkY5
ODEzMUE2OTlFQzkwMEYxMkJBMiAvKiBBc2FuRHlsaWIgKi8gPSB7CisJCQlpc2EgPSBQQlhMZWdh
Y3lUYXJnZXQ7CisJCQlidWlsZEFyZ3VtZW50c1N0cmluZyA9ICJjb3B5LWFzYW4tZHlsaWIiOwor
CQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDg3QkY5ODE3MUE2OTlFQzkwMEYxMkJBMiAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWExlZ2FjeVRhcmdldCAiQXNhbkR5bGliIiAq
LzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJKTsKKwkJCWJ1aWxkVG9vbFBhdGggPSAvdXNyL2Jp
bi9wZXJsOworCQkJYnVpbGRXb3JraW5nRGlyZWN0b3J5ID0gLi4vU2NyaXB0czsKKwkJCWRlcGVu
ZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gQXNhbkR5bGliOworCQkJcGFzc0J1aWxkU2V0
dGluZ3NJbkVudmlyb25tZW50ID0gMTsKKwkJCXByb2R1Y3ROYW1lID0gQXNhbkR5bGliOworCQl9
OworLyogRW5kIFBCWExlZ2FjeVRhcmdldCBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWE5hdGl2
ZVRhcmdldCBzZWN0aW9uICovCiAJCTE0MUJGMjFFMDk2QTQ0MUQwMEUwNzUzQyAvKiBUZXN0TmV0
c2NhcGVQbHVnSW4gKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CkBAIC04MzksNiAr
ODU2LDExIEBACiAJCTA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAq
LyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlhdHRyaWJ1dGVzID0geworCQkJCVRhcmdl
dEF0dHJpYnV0ZXMgPSB7CisJCQkJCTg3QkY5ODEzMUE2OTlFQzkwMEYxMkJBMiA9IHsKKwkJCQkJ
CUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDYuMzsKKwkJCQkJfTsKKwkJCQl9OwogCQkJfTsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjlDMzA4OTAyQzZEMDA4QTlFRkMgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJEdW1wUmVuZGVyVHJlZSIgKi87
CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAzLjIiOwpAQCAtODY0LDYgKzg4Niw3
IEBACiAJCQkJQjVBNzUyNUEwOEFGNEE0QTAwMTM4RTQ1IC8qIEltYWdlRGlmZiAqLywKIAkJCQkx
NDFCRjIxRTA5NkE0NDFEMDBFMDc1M0MgLyogVGVzdE5ldHNjYXBlUGx1Z0luICovLAogCQkJCTJE
NDAzRUIyMTUwODcxRjkwMDUzNThEMiAvKiBMYXlvdXRUZXN0SGVscGVyICovLAorCQkJCTg3QkY5
ODEzMUE2OTlFQzkwMEYxMkJBMiAvKiBBc2FuRHlsaWIgKi8sCiAJCQkpOwogCQl9OwogLyogRW5k
IFBCWFByb2plY3Qgc2VjdGlvbiAqLwpAQCAtMTEyMCw2ICsxMTQzLDEyNSBAQAogCQkJfTsKIAkJ
CW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQk4N0JGOTgxNDFBNjk5RUM5MDBGMTJCQTIgLyog
RGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0
dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdf
Q1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZ
ID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdf
RU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0g
WUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJO
X0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7
CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09C
SkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NP
REUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsK
KwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdHSU5HX1NZTUJPTFMgPSBZRVM7
CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJR0NDX0NfTEFOR1VB
R0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlHQ0NfRFlOQU1JQ19OT19QSUMgPSBOTzsKKwkJCQlH
Q0NfR0VORVJBVEVfREVCVUdHSU5HX1NZTUJPTFMgPSBZRVM7CisJCQkJR0NDX09QVElNSVpBVElP
Tl9MRVZFTCA9IDA7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJ
IkRFQlVHPTEiLAorCQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkpOworCQkJCUdDQ19TWU1CT0xT
X1BSSVZBVEVfRVhURVJOID0gTk87CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJ
T04gPSBZRVM7CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7CisJ
CQkJR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTklO
SVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JFU1NJVkU7CisJCQkJR0NDX1dBUk5fVU5VU0VEX0ZV
TkNUSU9OID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMDsKKwkJCQlNVExfRU5BQkxFX0RFQlVHX0lO
Rk8gPSBZRVM7CisJCQkJT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKKwkJCQlPVEhFUl9DRkxBR1Mg
PSAiIjsKKwkJCQlPVEhFUl9MREZMQUdTID0gIiI7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCQlTREtST09UID0gbWFjb3N4OworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1
ZzsKKwkJfTsKKwkJODdCRjk4MTUxQTY5OUVDOTAwRjEyQkEyIC8qIFJlbGVhc2UgKi8gPSB7CisJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
QUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdFX1NU
QU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisJ
CQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJD
ID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5H
X1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJUkVDVF9P
QkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JPRFkgPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FS
Tl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9
IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT1BZX1BIQVNF
X1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gImR3YXJmLXdpdGgt
ZHN5bSI7CisJCQkJRU5BQkxFX05TX0FTU0VSVElPTlMgPSBOTzsKKwkJCQlFTkFCTEVfU1RSSUNU
X09CSkNfTVNHU0VORCA9IFlFUzsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5
OworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUdDQ19X
QVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19XQVJOX1VOREVDTEFS
RURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlF
U19BR0dSRVNTSVZFOworCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlH
Q0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gMTAuMTA7CisJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJT1RIRVJf
Q0ZMQUdTID0gIiI7CisJCQkJT1RIRVJfTERGTEFHUyA9ICIiOworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU0RLUk9PVCA9IG1hY29zeDsKKwkJCX07CisJCQluYW1l
ID0gUmVsZWFzZTsKKwkJfTsKKwkJODdCRjk4MTYxQTY5OUVDOTAwRjEyQkEyIC8qIFByb2R1Y3Rp
b24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQ1hY
X0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZID0g
ImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5B
QkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19X
QVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX0VN
UFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNf
Uk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NPREUg
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJ
CQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0g
ImR3YXJmLXdpdGgtZHN5bSI7CisJCQkJRU5BQkxFX05TX0FTU0VSVElPTlMgPSBOTzsKKwkJCQlF
TkFCTEVfU1RSSUNUX09CSkNfTVNHU0VORCA9IFlFUzsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFO
REFSRCA9IGdudTk5OworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVT
OworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19X
QVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpF
RF9BVVRPUyA9IFlFU19BR0dSRVNTSVZFOworCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9
IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUID0gMTAuMTA7CisJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87
CisJCQkJT1RIRVJfQ0ZMQUdTID0gIiI7CisJCQkJT1RIRVJfTERGTEFHUyA9ICIiOworCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU0RLUk9PVCA9IG1hY29zeDsKKwkJ
CX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJOTBDQkMzNTAwRjc0OEIxMzAwQTcx
MkI3IC8qIFByb2R1Y3Rpb24gKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
IAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkNCMjgxRUUwQ0ZBNzEzRDAwN0U1MzNF
IC8qIEJhc2UueGNjb25maWcgKi87CkBAIC0xMzAyLDYgKzE0NDQsMTUgQEAKIAkJCWRlZmF1bHRD
b25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9
IFByb2R1Y3Rpb247CiAJCX07CisJCTg3QkY5ODE3MUE2OTlFQzkwMEYxMkJBMiAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWExlZ2FjeVRhcmdldCAiQXNhbkR5bGliIiAqLyA9IHsK
KwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0g
KAorCQkJCTg3QkY5ODE0MUE2OTlFQzkwMEYxMkJBMiAvKiBEZWJ1ZyAqLywKKwkJCQk4N0JGOTgx
NTFBNjk5RUM5MDBGMTJCQTIgLyogUmVsZWFzZSAqLywKKwkJCQk4N0JGOTgxNjFBNjk5RUM5MDBG
MTJCQTIgLyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7CisJCX07CiAJCUExMTU4REFCMTg5MjdFN0IwMDg4QzE3QiAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiRHVtcFJlbmRlclRyZWUuYXBw
IiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3Vy
YXRpb25zID0gKApJbmRleDogVG9vbHMvU2NyaXB0cy9jb3B5LWFzYW4tZHlsaWIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy9jb3B5LWFzYW4tZHlsaWIJKHJldmlzaW9uIDApCisrKyBUb29s
cy9TY3JpcHRzL2NvcHktYXNhbi1keWxpYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBA
CisjIS91c3IvYmluL3BlcmwKKworIyAgY29weS1hc2FuLWR5bGliCisjICBhc2FuCisjCisjICBD
cmVhdGVkIGJ5IERhbmEgQnVya2FydCBvbiAxLzE1LzE1LgorIworCit1c2Ugd2FybmluZ3M7Cit1
c2Ugc3RyaWN0OworCit1c2UgRmlsZTo6U2x1cnA7Cit1c2UgRmlsZTo6U3BlYzsKKworbXkgJERT
VFJPT1QgPSAkRU5We0RTVFJPT1R9OworbXkgJE9CSlJPT1QgPSAkRU5We09CSlJPT1R9OworbXkg
JHJlc3VsdCA9IDA7CisKK215ICRhc2FuX2VuYWJsZWRfZmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZp
bGUoJE9CSlJPT1QsICdBU2FuJyk7CitteSAkc2hvdWxkX2NvcHlfZHlsaWIgPSAkRU5We0FTQU59
IHx8ICgtZiAkYXNhbl9lbmFibGVkX2ZpbGUgJiYgcmVhZF9maWxlKCRhc2FuX2VuYWJsZWRfZmls
ZSkpIHx8IDA7CitjaG9tcCAkc2hvdWxkX2NvcHlfZHlsaWI7CisKK2lmICgkc2hvdWxkX2NvcHlf
ZHlsaWIpIHsKKyAgICBteSAkeGNydW5fb3V0cHV0ID0gYHhjcnVuIC0tdG9vbGNoYWluIERlZmF1
bHQgY2xhbmcgLWZzYW5pdGl6ZT1hZGRyZXNzIC14IGMgLSAtIyMjIDI+JjFgOworICAgICR4Y3J1
bl9vdXRwdXQgPX4gbXwoWy9cd1wuXStsaWJjbGFuZ19ydC5hc2FuX29zeF9keW5hbWljLmR5bGli
KXw7CisgICAgbXkgJGFzYW5fZHlsaWIgPSAkMTsKKworICAgICRyZXN1bHQgfD0gc3lzdGVtKCJt
a2RpciAtcCAkRFNUUk9PVC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1dlYktpdC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMiKTsKKyAgICAkcmVzdWx0IHw9IHN5c3RlbSgiZGl0dG8g
JDEgJERTVFJPT1QvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9XZWJLaXQuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvUmVzb3VyY2VzL2xpYmNsYW5nX3J0LmFzYW5fb3N4X2R5bmFtaWMuZHlsaWIiKSA+
PiA4OworfQorCitleGl0ICRyZXN1bHQ7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="269719"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245568</attachid>
            <date>2015-01-28 13:19:11 -0800</date>
            <delta_ts>2015-01-29 15:40:24 -0800</delta_ts>
            <desc>Address concerns raised in review</desc>
            <filename>Bug_140307.patch</filename>
            <type>text/plain</type>
            <size>8082</size>
            <attacher name="Dana Burkart">dburkart</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3OTI4MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE1LTAxLTI4ICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+
CisKKyAgICAgICAgSWYgYnVpbGRpbmcgd2l0aCBBU2FuLCBjb3B5IGxpYmNsYW5nX3J0LmFzYW5f
b3N4X2R5bmFtaWMuZHlsaWIgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeShPT1BTISkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAzMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyB0YXJn
ZXQgd2hpY2ggcnVucyBjb3B5LWFzYW4tZHlsaWIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y29weS1hc2FuLWR5bGliOiBBZGRlZC4gVGhpcyBzY3JpcHQgY2hlY2tzIHRvIHNlZSBpZiB3ZSBh
cmUgYnVpbGRpbmcgd2l0aCBhc2FuLCBhbmQKKyAgICAgICAgaWYgc28sIGNvcGllcyBsaWJjbGFu
Z19ydC5hc2FuX29zeF9keW5hbWljLmR5bGliIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkuCisKIDIw
MTUtMDEtMjggIERhbmEgQnVya2FydCAgPGRidXJrYXJ0QGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlIEFTYW4gZmxhZyBzZXR0aW5ncyBmcm9tIERlYnVnUmVsZWFzZS54Y2NvbmZpZyB0byBCYXNl
LnhjY29uZmlnCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jb3B5LWFzYW4tZHlsaWIKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY29weS1hc2FuLWR5bGliCShyZXZpc2lv
biAwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY29weS1hc2FuLWR5bGliCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDIgQEAKKyMhL3Vzci9iaW4vcGVybAorCisjICBjb3B5LWFzYW4tZHls
aWIKKyMgIGFzYW4KKyMKKyMgIENyZWF0ZWQgYnkgRGFuYSBCdXJrYXJ0IG9uIDEvMTUvMTUuCisj
CisKK3VzZSB3YXJuaW5nczsKK3VzZSBzdHJpY3Q7CisKK3VzZSBGaWxlOjpCYXNlbmFtZTsKK3Vz
ZSBGaWxlOjpQYXRoIHF3KG1ha2VfcGF0aCk7Cit1c2UgRmlsZTo6U2x1cnA7Cit1c2UgRmlsZTo6
U3BlYzsKKworbXkgJERTVFJPT1QgPSAkRU5We0RTVFJPT1R9OworbXkgJE9CSlJPT1QgPSAkRU5W
e09CSlJPT1R9OworbXkgJElOU1RBTExfUEFUSCA9ICRFTlZ7SU5TVEFMTF9QQVRIfTsKK215ICR0
b29sY2hhaW4gPSAkRU5We1RPT0xDSEFJTlNfbWFjb3N4fSB8fCAnZGVmYXVsdCc7CitteSAkcmVz
dWx0ID0gMDsKKworbXkgJGFzYW5fZW5hYmxlZF9maWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
T0JKUk9PVCwgJ0FTYW4nKTsKK215ICRzaG91bGRfY29weV9keWxpYiA9ICRFTlZ7QVNBTn0gfHwg
KC1mICRhc2FuX2VuYWJsZWRfZmlsZSAmJiByZWFkX2ZpbGUoJGFzYW5fZW5hYmxlZF9maWxlKSkg
fHwgMDsKK2Nob21wICRzaG91bGRfY29weV9keWxpYjsKKworbXkgJGRlc3RpbmF0aW9uID0gRmls
ZTo6U3BlYy0+Y2F0ZGlyKCREU1RST09ULCAnLycpOworaWYgKCRFTlZ7UkNfQlVJTERJVH0gZXEg
IllFUyIpIHsKKyAgICAkZGVzdGluYXRpb24gPSBGaWxlOjpTcGVjLT5jYXRkaXIoJGRlc3RpbmF0
aW9uLCAkSU5TVEFMTF9QQVRIKTsKK30KKworaWYgKCRzaG91bGRfY29weV9keWxpYiBlcSAiWUVT
IikgeworICAgIG15ICR4Y3J1bl9vdXRwdXQgPSBgeGNydW4gLS10b29sY2hhaW4gJHRvb2xjaGFp
biBjbGFuZyAtZnNhbml0aXplPWFkZHJlc3MgLXggYyAtIC0jIyMgMj4mMWA7CisgICAgJHhjcnVu
X291dHB1dCA9fiBtfChbL1x3XC5dK2FzYW5bXHdcLl0rZHlsaWIpfDsKKyAgICBteSAkYXNhbl9k
eWxpYl9wYXRoID0gJDE7CisgICAgbXkgJGFzYW5fZHlsaWJfbmFtZSA9IGJhc2VuYW1lKCRhc2Fu
X2R5bGliX3BhdGgpOworCisgICAgbWFrZV9wYXRoKCRkZXN0aW5hdGlvbikgdW5sZXNzICgtZCAk
ZGVzdGluYXRpb24pOworICAgICRyZXN1bHQgfD0gc3lzdGVtKCJkaXR0byAkYXNhbl9keWxpYl9w
YXRoICRkZXN0aW5hdGlvbi8kYXNhbl9keWxpYl9uYW1lIikgPj4gODsKK30KKworZXhpdCAkcmVz
dWx0OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvRHVtcFJlbmRlclRyZWUvY29weS1hc2Fu
LWR5bGliCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0wLDAgKzEgIyMKKyoK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAxNzkyNjkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03LDYg
KzcsMTcgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2Vj
dGlvbiAqLworCQk4Nzg1Nzg5RDFBNzk2NDc4MDA1Qjg4NkIgLyogQ29weUFTYW5EeWxpYiAqLyA9
IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSA4Nzg1NzhBMTFBNzk2NDc5MDA1Qjg4NkIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHlBU2FuRHlsaWIiICovOworCQkJYnVpbGRQaGFz
ZXMgPSAoCisJCQkJODc4NTc4QTIxQTc5NjRDNTAwNUI4ODZCIC8qIFJ1biBTY3JpcHQgKi8sCisJ
CQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSBDb3B5QVNhbkR5bGli
OworCQkJcHJvZHVjdE5hbWUgPSBDb3B5QXNhbkR5bGliOworCQl9OwogCQlBODRGNjA4RDA4QjEz
NzA2MDBFOTc0NUYgLyogQWxsICovID0gewogCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0Owog
CQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEE4NEY2MDkyMDhCMTM3MTQwMEU5NzQ1RiAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQWxsIiAqLzsK
QEAgLTI2OSw2ICsyODAsNyBAQAogCQk4MDA0NUFFQjE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDsgcGF0aCA9IG1hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MDA0NUFFQzE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQ2
NUUyQzYwRkZBOERGMjAwM0I4MzQyIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBpeGVsRHVtcFN1cHBvcnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4Nzg1NzhBNDFBNzk2NkFEMDA1Qjg4NkIgLyogY29weS1h
c2FuLWR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgcGF0aCA9ICJjb3B5LWFzYW4t
ZHlsaWIiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Q0NEQTgxRjE1MUE1NjU1MDAw
M0Y5MzcgLyogU2FtcGxlRm9udC5zZm9udCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gU2Ft
cGxlRm9udC5zZm9udDsgcGF0aCA9IGZvbnRzL1NhbXBsZUZvbnQuc2ZvbnQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzMzU0MzVGMDNENzU1MDIwMDg2MzVDRSAvKiBXZWJLaXQuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBXZWJLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzQwOTk1NDA4NTQwQ0FGMDA3RjNCQzggLyogRHVt
cFJlbmRlclRyZWUgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IER1bXBSZW5kZXJUcmVlOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpA
QCAtNDE1LDYgKzQyNyw3IEBACiAJCTA4RkI3Nzk0RkU4NDE1NURDMDJBQUMwNyAvKiBEdW1wUmVu
ZGVyVHJlZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
ODc4NTc4QTQxQTc5NjZBRDAwNUI4ODZCIC8qIGNvcHktYXNhbi1keWxpYiAqLywKIAkJCQlBMTE1
OEQ2QTE4OTI3Q0UxMDA4OEMxN0IgLyogaW9zICovLAogCQkJCUExMzRFNTM0MTg5MDVFNkMwMDkw
MUQwNiAvKiBjb25maWcuaCAqLywKIAkJCQkxQTJGQjg0QzE3OEM4MDkyMDA1OUZEOTYgLyogRGVm
YXVsdFBvbGljeURlbGVnYXRlLmggKi8sCkBAIC04MzksNiArODUyLDExIEBACiAJCTA4RkI3Nzkz
RkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFBy
b2plY3Q7CiAJCQlhdHRyaWJ1dGVzID0geworCQkJCVRhcmdldEF0dHJpYnV0ZXMgPSB7CisJCQkJ
CTg3ODU3ODlEMUE3OTY0NzgwMDVCODg2QiA9IHsKKwkJCQkJCUNyZWF0ZWRPblRvb2xzVmVyc2lv
biA9IDYuMzsKKwkJCQkJfTsKKwkJCQl9OwogCQkJfTsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxNDlDMjlDMzA4OTAyQzZEMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhQcm9qZWN0ICJEdW1wUmVuZGVyVHJlZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVy
c2lvbiA9ICJYY29kZSAzLjIiOwpAQCAtODY0LDYgKzg4Miw3IEBACiAJCQkJQjVBNzUyNUEwOEFG
NEE0QTAwMTM4RTQ1IC8qIEltYWdlRGlmZiAqLywKIAkJCQkxNDFCRjIxRTA5NkE0NDFEMDBFMDc1
M0MgLyogVGVzdE5ldHNjYXBlUGx1Z0luICovLAogCQkJCTJENDAzRUIyMTUwODcxRjkwMDUzNThE
MiAvKiBMYXlvdXRUZXN0SGVscGVyICovLAorCQkJCTg3ODU3ODlEMUE3OTY0NzgwMDVCODg2QiAv
KiBDb3B5QVNhbkR5bGliICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rp
b24gKi8KQEAgLTg4NSw2ICs5MDQsMjMgQEAKIAkJfTsKIC8qIEVuZCBQQlhSZXNvdXJjZXNCdWls
ZFBoYXNlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNl
Y3Rpb24gKi8KKwkJODc4NTc4QTIxQTc5NjRDNTAwNUI4ODZCIC8qIFJ1biBTY3JpcHQgKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAxMjsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJ
bmFtZSA9ICJSdW4gU2NyaXB0IjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9z
aDsKKwkJCXNoZWxsU2NyaXB0ID0gIi4vY29weS1hc2FuLWR5bGliIjsKKwkJfTsKKy8qIEVuZCBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCiAvKiBCZWdpbiBQQlhTb3VyY2Vz
QnVpbGRQaGFzZSBzZWN0aW9uICovCiAJCTE0MUJGMjFDMDk2QTQ0MUQwMEUwNzUzQyAvKiBTb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CkBAIC0xMTIwLDYgKzEx
NTYsMzEgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJODc4NTc4OUUx
QTc5NjQ3OTAwNUI4ODZCIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCURFUExPWU1FTlRfTE9DQVRJT04gPSBO
TzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUg
PSBEZWJ1ZzsKKwkJfTsKKwkJODc4NTc4OUYxQTc5NjQ3OTAwNUI4ODZCIC8qIFJlbGVhc2UgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQkJREVQTE9ZTUVOVF9MT0NBVElPTiA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRB
UkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTg3ODU3OEEw
MUE3OTY0NzkwMDVCODg2QiAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENv
bmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCURFUExPWU1FTlRfTE9DQVRJ
T04gPSBOTzsKKwkJCQlJTlNUQUxMX1BBVEggPSAiJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1l
d29ya3MvJChXRUJLSVRfRlJBTUVXT1JLX1JFU09VUkNFU19QQVRIKSI7CisJCQkJUFJPRFVDVF9O
QU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJ
fTsKIAkJOTBDQkMzNTAwRjc0OEIxMzAwQTcxMkI3IC8qIFByb2R1Y3Rpb24gKi8gPSB7CiAJCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNl
ID0gQkNCMjgxRUUwQ0ZBNzEzRDAwN0U1MzNFIC8qIEJhc2UueGNjb25maWcgKi87CkBAIC0xMzAw
LDYgKzEzNjEsMTUgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTg3ODU3OEEx
MUE3OTY0NzkwMDVCODg2QiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3Jl
Z2F0ZVRhcmdldCAiQ29weUFTYW5EeWxpYiIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRp
b25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk4Nzg1Nzg5RTFBNzk2NDc5
MDA1Qjg4NkIgLyogRGVidWcgKi8sCisJCQkJODc4NTc4OUYxQTc5NjQ3OTAwNUI4ODZCIC8qIFJl
bGVhc2UgKi8sCisJCQkJODc4NTc4QTAxQTc5NjQ3OTAwNUI4ODZCIC8qIFByb2R1Y3Rpb24gKi8s
CisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQl9OwogCQlB
MTE1OERBQjE4OTI3RTdCMDA4OEMxN0IgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhOYXRpdmVUYXJnZXQgIkR1bXBSZW5kZXJUcmVlLmFwcCIgKi8gPSB7CiAJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
</data>
<flag name="review"
          id="270520"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245664</attachid>
            <date>2015-01-29 15:40:24 -0800</date>
            <delta_ts>2015-02-10 23:53:08 -0800</delta_ts>
            <desc>Fix issues raised by review</desc>
            <filename>Bug_140307.patch</filename>
            <type>text/plain</type>
            <size>10284</size>
            <attacher name="Dana Burkart">dburkart</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3OTMxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDE1LTAxLTI4ICBEYW5hIEJ1cmthcnQgIDxkYnVya2FydEBhcHBsZS5jb20+
CisKKyAgICAgICAgSWYgYnVpbGRpbmcgd2l0aCBBU2FuLCBjb3B5IGxpYmNsYW5nX3J0LmFzYW5f
b3N4X2R5bmFtaWMuZHlsaWIgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeShPT1BTISkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAzMDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyB0YXJn
ZXQgd2hpY2ggcnVucyBjb3B5LWFzYW4tZHlsaWIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y29weS1hc2FuLWR5bGliOiBBZGRlZC4gVGhpcyBzY3JpcHQgY2hlY2tzIHRvIHNlZSBpZiB3ZSBh
cmUgYnVpbGRpbmcgd2l0aCBhc2FuLCBhbmQKKyAgICAgICAgaWYgc28sIGNvcGllcyBsaWJjbGFu
Z19ydC5hc2FuX29zeF9keW5hbWljLmR5bGliIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkuCisKIDIw
MTUtMDEtMjggIERhbmEgQnVya2FydCAgPGRidXJrYXJ0QGFwcGxlLmNvbT4KIAogICAgICAgICBh
c2FuLnhjY29uZmlnIHNob3VsZCB1c2UgQ0xBTkdfQUREUkVTU19TQU5JVElaRVI9WUVTIGluc3Rl
YWQgb2YgLWZzYW5pdGl6ZT1hZGRyZXNzCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jb3B5
LWFzYW4tZHlsaWIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY29weS1hc2Fu
LWR5bGliCShyZXZpc2lvbiAwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY29weS1hc2FuLWR5
bGliCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKyMhL3Vzci9iaW4vcGVybAorCisj
IENvcHlyaWdodCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK3VzZSB3YXJuaW5nczsKK3VzZSBzdHJpY3Q7CisKK3VzZSBGaWxlOjpCYXNlbmFt
ZTsKK3VzZSBGaWxlOjpQYXRoIHF3KG1ha2VfcGF0aCk7Cit1c2UgRmlsZTo6U2x1cnA7Cit1c2Ug
RmlsZTo6U3BlYzsKK3VzZSBQT1NJWDsKKworbXkgJGJ1aWxkX3dpdGhfYXNhbiA9ICRFTlZ7Q0xB
TkdfQUREUkVTU19TQU5JVElaRVJ9IHx8IDA7CitteSAkZGVzdGluYXRpb24gPSAkRU5We1RBUkdF
VF9CVUlMRF9ESVJ9OworbXkgJHJlc3VsdCA9IDA7CisKK2lmICgkYnVpbGRfd2l0aF9hc2FuIGVx
ICdZRVMnKSB7CisgICAgbXkgJHhjcnVuX291dHB1dCA9IGB4Y3J1biBjbGFuZyAtZnNhbml0aXpl
PWFkZHJlc3MgLXggYyAtIC0jIyMgMj4mMWA7CisgICAgJHhjcnVuX291dHB1dCA9fiBtfChbL1x3
XC5dK2FzYW5bXHdcLl0rZHlsaWIpfDsKKyAgICBteSAkYXNhbl9keWxpYl9wYXRoID0gJDE7Cisg
ICAgbXkgJGFzYW5fZHlsaWJfbmFtZSA9IGJhc2VuYW1lKCRhc2FuX2R5bGliX3BhdGgpOworCisg
ICAgbWFrZV9wYXRoKCRkZXN0aW5hdGlvbikgdW5sZXNzICgtZCAkZGVzdGluYXRpb24pOworICAg
IHN5c3RlbSgnZGl0dG8nLCAkYXNhbl9keWxpYl9wYXRoLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCRk
ZXN0aW5hdGlvbiwgJGFzYW5fZHlsaWJfbmFtZSkpOworICAgICRyZXN1bHQgfD0gV0VYSVRTVEFU
VVMoJD8pOworfQorCitleGl0ICRyZXN1bHQ7CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9E
dW1wUmVuZGVyVHJlZS9jb3B5LWFzYW4tZHlsaWIKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1
dGFibGUKIyMgLTAsMCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE3OTMxMSkKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTcsMTIgKzcsMjQgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdp
biBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQk4Nzg1Nzg5RDFBNzk2NDc4MDA1Qjg4
NkIgLyogQ29weUFTYW5EeWxpYiAqLyA9IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsK
KwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA4Nzg1NzhBMTFBNzk2NDc5MDA1Qjg4NkIgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHlBU2Fu
RHlsaWIiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJODc4NTc4QTIxQTc5NjRDNTAwNUI4
ODZCIC8qIFJ1biBTY3JpcHQgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsK
KwkJCW5hbWUgPSBDb3B5QVNhbkR5bGliOworCQkJcHJvZHVjdE5hbWUgPSBDb3B5QXNhbkR5bGli
OworCQl9OwogCQlBODRGNjA4RDA4QjEzNzA2MDBFOTc0NUYgLyogQWxsICovID0gewogCQkJaXNh
ID0gUEJYQWdncmVnYXRlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEE4NEY2
MDkyMDhCMTM3MTQwMEU5NzQ1RiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFn
Z3JlZ2F0ZVRhcmdldCAiQWxsIiAqLzsKIAkJCWJ1aWxkUGhhc2VzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQk4Nzg1NzhBOTFBN0FEQTc4MDA1Qjg4NkIgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQkyRDQwM0YyMTE1MDg3MzZDMDA1MzU4RDIgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQlBMTM0RTUyRDE4OEZDMDkyMDA5MDFEMDYgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQlBODRGNjA4RjA4QjEzNzBFMDBFOTc0NUYgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKQEAgLTE0NSw2ICsxNTcsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3Ry
aW5nID0gMkQ0MDNFQjIxNTA4NzFGOTAwNTM1OEQyOwogCQkJcmVtb3RlSW5mbyA9IExheW91dFRl
c3RIZWxwZXI7CiAJCX07CisJCTg3ODU3OEE4MUE3QURBNzgwMDVCODg2QiAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQlj
b250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmpl
Y3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4Nzg1
Nzg5RDFBNzk2NDc4MDA1Qjg4NkI7CisJCQlyZW1vdGVJbmZvID0gQ29weUFTYW5EeWxpYjsKKwkJ
fTsKIAkJQTEzMjFDRDcxODhGQUJFMDAwMTI1NDM0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTI2
OSw2ICsyODgsNyBAQAogCQk4MDA0NUFFQjE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDsgcGF0aCA9IG1hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MDA0NUFFQzE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQ2NUUyQzYw
RkZBOERGMjAwM0I4MzQyIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBpeGVsRHVtcFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4Nzg1NzhBNDFBNzk2NkFEMDA1Qjg4NkIgLyogY29weS1hc2FuLWR5
bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgcGF0aCA9ICJjb3B5LWFzYW4tZHlsaWIi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Q0NEQTgxRjE1MUE1NjU1MDAwM0Y5Mzcg
LyogU2FtcGxlRm9udC5zZm9udCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gU2FtcGxlRm9u
dC5zZm9udDsgcGF0aCA9IGZvbnRzL1NhbXBsZUZvbnQuc2ZvbnQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzMzU0MzVGMDNENzU1MDIwMDg2MzVDRSAvKiBXZWJLaXQuZnJhbWV3b3Jr
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBl
ci5mcmFtZXdvcms7IHBhdGggPSBXZWJLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk5MzQwOTk1NDA4NTQwQ0FGMDA3RjNCQzggLyogRHVtcFJlbmRl
clRyZWUgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJj
b21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IER1
bXBSZW5kZXJUcmVlOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDE1
LDYgKzQzNSw3IEBACiAJCTA4RkI3Nzk0RkU4NDE1NURDMDJBQUMwNyAvKiBEdW1wUmVuZGVyVHJl
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJODc4NTc4
QTQxQTc5NjZBRDAwNUI4ODZCIC8qIGNvcHktYXNhbi1keWxpYiAqLywKIAkJCQlBMTE1OEQ2QTE4
OTI3Q0UxMDA4OEMxN0IgLyogaW9zICovLAogCQkJCUExMzRFNTM0MTg5MDVFNkMwMDkwMUQwNiAv
KiBjb25maWcuaCAqLywKIAkJCQkxQTJGQjg0QzE3OEM4MDkyMDA1OUZEOTYgLyogRGVmYXVsdFBv
bGljeURlbGVnYXRlLmggKi8sCkBAIC04MzksNiArODYwLDExIEBACiAJCTA4RkI3NzkzRkU4NDE1
NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7
CiAJCQlhdHRyaWJ1dGVzID0geworCQkJCVRhcmdldEF0dHJpYnV0ZXMgPSB7CisJCQkJCTg3ODU3
ODlEMUE3OTY0NzgwMDVCODg2QiA9IHsKKwkJCQkJCUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDYu
MzsKKwkJCQkJfTsKKwkJCQl9OwogCQkJfTsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAx
NDlDMjlDMzA4OTAyQzZEMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhQcm9qZWN0ICJEdW1wUmVuZGVyVHJlZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9
ICJYY29kZSAzLjIiOwpAQCAtODY0LDYgKzg5MCw3IEBACiAJCQkJQjVBNzUyNUEwOEFGNEE0QTAw
MTM4RTQ1IC8qIEltYWdlRGlmZiAqLywKIAkJCQkxNDFCRjIxRTA5NkE0NDFEMDBFMDc1M0MgLyog
VGVzdE5ldHNjYXBlUGx1Z0luICovLAogCQkJCTJENDAzRUIyMTUwODcxRjkwMDUzNThEMiAvKiBM
YXlvdXRUZXN0SGVscGVyICovLAorCQkJCTg3ODU3ODlEMUE3OTY0NzgwMDVCODg2QiAvKiBDb3B5
QVNhbkR5bGliICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8K
QEAgLTg4NSw2ICs5MTIsMjMgQEAKIAkJfTsKIC8qIEVuZCBQQlhSZXNvdXJjZXNCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24g
Ki8KKwkJODc4NTc4QTIxQTc5NjRDNTAwNUI4ODZCIC8qIFJ1biBTY3JpcHQgKi8gPSB7CisJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAxMjsK
KwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9
ICJSdW4gU2NyaXB0IjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJ
CXNoZWxsU2NyaXB0ID0gIi4vY29weS1hc2FuLWR5bGliIjsKKwkJfTsKKy8qIEVuZCBQQlhTaGVs
bFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCiAvKiBCZWdpbiBQQlhTb3VyY2VzQnVpbGRQ
aGFzZSBzZWN0aW9uICovCiAJCTE0MUJGMjFDMDk2QTQ0MUQwMEUwNzUzQyAvKiBTb3VyY2VzICov
ID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CkBAIC0xMDI1LDYgKzEwNjksMTEg
QEAKIAkJCXRhcmdldCA9IDJENDAzRUIyMTUwODcxRjkwMDUzNThEMiAvKiBMYXlvdXRUZXN0SGVs
cGVyICovOwogCQkJdGFyZ2V0UHJveHkgPSAyRDQwM0YyMDE1MDg3MzZDMDA1MzU4RDIgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQk4Nzg1NzhBOTFBN0FEQTc4MDA1Qjg4NkIg
LyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVu
Y3k7CisJCQl0YXJnZXQgPSA4Nzg1Nzg5RDFBNzk2NDc4MDA1Qjg4NkIgLyogQ29weUFTYW5EeWxp
YiAqLzsKKwkJCXRhcmdldFByb3h5ID0gODc4NTc4QTgxQTdBREE3ODAwNUI4ODZCIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJQTEzMjFDRDgxODhGQUJFMDAwMTI1NDM0IC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OwogCQkJdGFyZ2V0ID0gQTEzMjFDOUQxODhGOUEzNjAwMTI1NDM0IC8qIER1bXBSZW5kZXJUcmVl
IChMaWJyYXJ5KSAqLzsKQEAgLTExMjAsNiArMTE2OSwyOCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQk4Nzg1Nzg5RTFBNzk2NDc5MDA1Qjg4NkIgLyogRGVidWcgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0g
RGVidWc7CisJCX07CisJCTg3ODU3ODlGMUE3OTY0NzkwMDVCODg2QiAvKiBSZWxlYXNlICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJl
bGVhc2U7CisJCX07CisJCTg3ODU3OEEwMUE3OTY0NzkwMDVCODg2QiAvKiBQcm9kdWN0aW9uICov
ID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCUlOU1RBTExfUEFUSCA9ICIkKFNZU1RFTV9MSUJSQVJZX0RJUikvRnJhbWV3b3Jrcy8k
KFdFQktJVF9GUkFNRVdPUktfUkVTT1VSQ0VTX1BBVEgpIjsKKwkJCQlQUk9EVUNUX05BTUUgPSAi
JChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk5
MENCQzM1MDBGNzQ4QjEzMDBBNzEyQjcgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQ0Iy
ODFFRTBDRkE3MTNEMDA3RTUzM0UgLyogQmFzZS54Y2NvbmZpZyAqLzsKQEAgLTEzMDAsNiArMTM3
MSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJODc4NTc4QTExQTc5NjQ3
OTAwNUI4ODZCIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFy
Z2V0ICJDb3B5QVNhbkR5bGliIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTg3ODU3ODlFMUE3OTY0NzkwMDVCODg2
QiAvKiBEZWJ1ZyAqLywKKwkJCQk4Nzg1Nzg5RjFBNzk2NDc5MDA1Qjg4NkIgLyogUmVsZWFzZSAq
LywKKwkJCQk4Nzg1NzhBMDFBNzk2NDc5MDA1Qjg4NkIgLyogUHJvZHVjdGlvbiAqLywKKwkJCSk7
CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmln
dXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlBMTE1OERBQjE4OTI3RTdCMDA4OEMx
N0IgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIkR1bXBS
ZW5kZXJUcmVlLmFwcCIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJ
YnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
</data>

          </attachment>
      

    </bug>

</bugzilla>