Fix one last BEST_EFFORT task blocking extension file loads.
commit 60ea85d4f73dba5765581e6c47093d8d204ebfa1 added a
NoBestEffortTasksTest for extension loading/messaging, and fixed a
couple of cases where BEST_EFFORT tasks were being schedules (and never
run). Unfortunately, I missed one. This change fixes that and updates
the test to exercise the additional code path (the one that runs when
the file is >64 KB in size).
Bug: 926613
Change-Id: I1f824fee774e57a461376ebeb19b78d941dbce87
Reviewed-on: https://chromium-review.googlesource.com/c/1445091
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#628104}(cherry picked from commit bf1a14e8a8caacf1c758cb86eb7e9f2a93116447)
Reviewed-on: https://chromium-review.googlesource.com/c/1450589
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/branch-heads/3683@{#138}
Cr-Branched-From: e51029943e0a38dd794b73caaf6373d5496ae783-refs/heads/master@{#625896}
diff --git a/chrome/browser/no_best_effort_tasks_browsertest.cc b/chrome/browser/no_best_effort_tasks_browsertest.cc
index 3e72c0a2..e934480 100644
--- a/chrome/browser/no_best_effort_tasks_browsertest.cc
+++ b/chrome/browser/no_best_effort_tasks_browsertest.cc
@@ -141,6 +141,9 @@
// Verify that an extension can be loaded and perform basic messaging without
// running BEST_EFFORT tasks. Regression test for http://crbug.com/177163#c112.
+//
+// NOTE: If this test times out, it might help to look at how
+// http://crbug.com/924416 was resolved.
#if BUILDFLAG(ENABLE_EXTENSIONS)
IN_PROC_BROWSER_TEST_F(NoBestEffortTasksTest, LoadExtensionAndSendMessages) {
ASSERT_TRUE(embedded_test_server()->Start());
diff --git a/chrome/test/data/extensions/no_best_effort_tasks_test_extension/background.js b/chrome/test/data/extensions/no_best_effort_tasks_test_extension/background.js
index ee7ee7d..de7e188 100644
--- a/chrome/test/data/extensions/no_best_effort_tasks_test_extension/background.js
+++ b/chrome/test/data/extensions/no_best_effort_tasks_test_extension/background.js
@@ -8,3 +8,1099 @@
sendResponse({pong: true});
}
});
+
+/*
+What follows is garbage to make the total size of this file more than 64
+kilobytes. This is to test the case where the NetworkService has to schedule
+multiple tasks to feed this file through a mojo data pipe (when the extension
+loads this background.js file resource).
+
+See http://crbug.com/924416 for further details.
+
+
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| _ _ |
+|( ) _ ( ) _ |
+|| | ( ) | | __ _ _ _ __ _ ___ ___ (_) ___ __ |
+|| | | | | | /'__`\ ( '_`\ ( '__)/'_`\ /' _ ` _ `\| |/',__) /'__`\ |
+|| (_/ \_) |( ___/ | (_) )| | ( (_) )| ( ) ( ) || |\__, \( ___/ |
+|`\___x___/'`\____) | ,__/'(_) `\___/'(_) (_) (_)(_)(____/`\____) |
+| | | |
+| (_) |
+| _ _ |
+|( )_ ( )_ |
+|| ,_) _ ___ | ,_) _ _ _ |
+|| | /'_`\ /',__)| | /'_`\ ( '_`\ |
+|| |_ ( (_) ) \__, \| |_ ( (_) )| (_) ) |
+|`\__)`\___/' (____/`\__)`\___/'| ,__/' |
+| | | |
+| (_) |
+| _ ___ _ _ |
+| _ ( )_ _ ( _`\ ( ) ( ) |
+| _ _ _ _ __ (_)| ,_)(_) ___ __ | ( (_)__| |__ __| |__ |
+|( ) ( ) ( )( '__)| || | | |/' _ `\ /'_ `\ | | _(__ __)(__ __) |
+|| \_/ \_/ || | | || |_ | || ( ) |( (_) | | (_( ) | | | | |
+|`\___x___/'(_) (_)`\__)(_)(_) (_)`\__ | (____/' (_) (_) |
+| ( )_) | |
+| \___/' |
+| _ _ _____ |
+|(_ ) _ ( ) (___ ) |
+| | | (_)| |/') __ | | _ _ _ _ _ _ |
+| | | | || , < /'__`\ _ | | /'_` )( ) ( ) /'_` ) |
+| | | | || |\`\ ( ___/ ( )_| |( (_| || \_/ |( (_| | _ |
+|(___)(_)(_) (_)`\____) `\___/'`\__,_)`\___/'`\__,_)(_) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+*/
diff --git a/mojo/public/cpp/system/file_data_pipe_producer.cc b/mojo/public/cpp/system/file_data_pipe_producer.cc
index 0fc1f30..f207e0d 100644
--- a/mojo/public/cpp/system/file_data_pipe_producer.cc
+++ b/mojo/public/cpp/system/file_data_pipe_producer.cc
@@ -266,8 +266,11 @@
void FileDataPipeProducer::InitializeNewRequest(CompletionCallback callback) {
DCHECK(!file_sequence_state_);
+ // TODO(crbug.com/924416): Re-evaluate how TaskPriority is set here and in
+ // other file URL-loading-related code. Some callers require USER_VISIBLE
+ // (i.e., BEST_EFFORT is not enough).
auto file_task_runner = base::CreateSequencedTaskRunnerWithTraits(
- {base::MayBlock(), base::TaskPriority::BEST_EFFORT});
+ {base::MayBlock(), base::TaskPriority::USER_VISIBLE});
file_sequence_state_ = new FileSequenceState(
std::move(producer_), file_task_runner,
base::BindOnce(&FileDataPipeProducer::OnWriteComplete,