diff --git a/core/lib/Drupal/Core/Command/GenerateTheme.php b/core/lib/Drupal/Core/Command/GenerateTheme.php
new file mode 100644
index 0000000000000000000000000000000000000000..fbfebbf2d17eabf9caf121c40e3ba1119d3d36c3
--- /dev/null
+++ b/core/lib/Drupal/Core/Command/GenerateTheme.php
@@ -0,0 +1,286 @@
+<?php
+
+namespace Drupal\Core\Command;
+
+use Drupal\Component\Serialization\Yaml;
+use Drupal\Core\Extension\Extension;
+use Drupal\Core\Extension\ExtensionDiscovery;
+use Drupal\Core\File\FileSystem;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Twig\Util\TemplateDirIterator;
+
+/**
+ * Generates a new theme based on latest default markup.
+ */
+class GenerateTheme extends Command {
+
+  /**
+   * The path for the Drupal root.
+   *
+   * @var string
+   */
+  private $root;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function __construct(string $name = NULL) {
+    parent::__construct($name);
+
+    $this->root = dirname(__DIR__, 5);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function configure() {
+    $this->setName('generate-theme')
+      ->setDescription('Generates a new theme based on latest default markup.')
+      ->addArgument('machine-name', InputArgument::REQUIRED, 'The machine name of the generated theme')
+      ->addOption('name', NULL, InputOption::VALUE_OPTIONAL, 'A name for the theme.')
+      ->addOption('description', NULL, InputOption::VALUE_OPTIONAL, 'A description of your theme.')
+      ->addOption('path', NULL, InputOption::VALUE_OPTIONAL, 'The path where your theme will be created. Defaults to: themes')
+      ->addUsage('custom_theme --name "Custom Theme" --description "Custom theme generated from a starterkit theme" --path themes');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function execute(InputInterface $input, OutputInterface $output) {
+    $io = new SymfonyStyle($input, $output);
+
+    // Change the directory to the Drupal root.
+    chdir($this->root);
+
+    // Path where the generated theme should be placed.
+    $destination_theme = $input->getArgument('machine-name');
+    $default_destination = 'themes';
+    $destination = trim($input->getOption('path') ?: $default_destination, '/') . '/' . $destination_theme;
+
+    if (is_dir($destination)) {
+      $io->getErrorStyle()->error("Theme could not be generated because the destination directory $destination exists already.");
+      return 1;
+    }
+
+    // Source directory for the theme.
+    $source_theme_name = 'starterkit_theme';
+    if (!$source_theme = $this->getThemeInfo($source_theme_name)) {
+      $io->getErrorStyle()->error("Theme source theme $source_theme_name cannot be found .");
+      return 1;
+    }
+    $source = $source_theme->getPath();
+
+    if (!is_dir($source)) {
+      $io->getErrorStyle()->error("Theme could not be generated because the source directory $source does not exist.");
+      return 1;
+    }
+
+    $tmp_dir = $this->getUniqueTmpDirPath();
+    $this->copyRecursive($source, $tmp_dir);
+
+    // Rename files based on the theme machine name.
+    $file_pattern = "/$source_theme_name\.(theme|[^.]+\.yml)/";
+    if ($files = @scandir($tmp_dir)) {
+      foreach ($files as $file) {
+        $location = $tmp_dir . '/' . $file;
+        if (is_dir($location)) {
+          continue;
+        }
+
+        if (preg_match($file_pattern, $file, $matches)) {
+          if (!rename($location, $tmp_dir . '/' . $destination_theme . '.' . $matches[1])) {
+            $io->getErrorStyle()->error("The file $location could not be moved.");
+            return 1;
+          }
+        }
+      }
+    }
+    else {
+      $io->getErrorStyle()->error("Temporary directory $tmp_dir cannot be opened.");
+      return 1;
+    }
+
+    // Info file.
+    $info_file = "$tmp_dir/$destination_theme.info.yml";
+    if (!file_exists($info_file)) {
+      $io->getErrorStyle()->error("The theme info file $info_file could not be read.");
+      return 1;
+    }
+
+    $info = Yaml::decode(file_get_contents($info_file));
+    $info['name'] = $input->getOption('name') ?: $destination_theme;
+
+    // Unhide hidden themes.
+    unset($info['hidden']);
+
+    $info['core_version_requirement'] = '^' . $this->getVersion();
+
+    if ($description = $input->getOption('description')) {
+      $info['description'] = $description;
+    }
+    else {
+      unset($info['description']);
+    }
+
+    // Replace references to libraries.
+    if (isset($info['libraries'])) {
+      $info['libraries'] = preg_replace("/$source_theme_name(\/.*)/", "$destination_theme$1", $info['libraries']);
+    }
+    if (isset($info['libraries-extend'])) {
+      foreach ($info['libraries-extend'] as $key => $value) {
+        $info['libraries-extend'][$key] = preg_replace("/$source_theme_name(\/.*)/", "$destination_theme$1", $info['libraries-extend'][$key]);
+      }
+    }
+    if (isset($info['libraries-override'])) {
+      foreach ($info['libraries-override'] as $key => $value) {
+        if (isset($info['libraries-override'][$key]['dependencies'])) {
+          $info['libraries-override'][$key]['dependencies'] = preg_replace("/$source_theme_name(\/.*)/", "$destination_theme$1", $info['libraries-override'][$key]['dependencies']);
+        }
+      }
+    }
+
+    if (!file_put_contents($info_file, Yaml::encode($info))) {
+      $io->getErrorStyle()->error("The theme info file $info_file could not be written.");
+      return 1;
+    }
+
+    // Replace references to libraries in libraries.yml file.
+    $libraries_file = "$tmp_dir/$destination_theme.libraries.yml";
+    if (file_exists($libraries_file)) {
+      $libraries = Yaml::decode(file_get_contents($libraries_file));
+      foreach ($libraries as $key => $value) {
+        if (isset($libraries[$key]['dependencies'])) {
+          $libraries[$key]['dependencies'] = preg_replace("/$source_theme_name(\/.*)/", "$destination_theme$1", $libraries[$key]['dependencies']);
+        }
+      }
+
+      if (!file_put_contents($libraries_file, Yaml::encode($libraries))) {
+        $io->getErrorStyle()->error("The libraries file $libraries_file could not be written.");
+        return 1;
+      }
+    }
+
+    // Rename hooks.
+    $theme_file = "$tmp_dir/$destination_theme.theme";
+    if (file_exists($theme_file)) {
+      if (!file_put_contents($theme_file, preg_replace("/(function )($source_theme_name)(_.*)/", "$1$destination_theme$3", file_get_contents($theme_file)))) {
+        $io->getErrorStyle()->error("The theme file $theme_file could not be written.");
+        return 1;
+      }
+    }
+
+    // Rename references to libraries in templates.
+    $iterator = new TemplateDirIterator(new \RegexIterator(
+      new \RecursiveIteratorIterator(
+        new \RecursiveDirectoryIterator($tmp_dir), \RecursiveIteratorIterator::LEAVES_ONLY
+      ), '/' . preg_quote('.html.twig') . '$/'
+    ));
+
+    foreach ($iterator as $template_file => $contents) {
+      $new_template_content = preg_replace("/(attach_library\(['\")])$source_theme_name(\/.*['\"]\))/", "$1$destination_theme$2", $contents);
+      if (!file_put_contents($template_file, $new_template_content)) {
+        $io->getErrorStyle()->error("The template file $template_file could not be written.");
+        return 1;
+      }
+    }
+
+    if (!rename($tmp_dir, $destination)) {
+      $io->getErrorStyle()->error("The theme could not be moved to the destination: $destination.");
+      return 1;
+    }
+
+    $output->writeln(sprintf('Theme generated successfully to %s', $destination));
+
+    return 0;
+  }
+
+  /**
+   * Copies files recursively.
+   *
+   * @param string $src
+   *   A file or directory to be copied.
+   * @param string $dest
+   *   Destination directory where the directory or file should be copied.
+   *
+   * @throws \RuntimeException
+   *   Exception thrown if copying failed.
+   */
+  private function copyRecursive($src, $dest): void {
+    // Copy all subdirectories and files.
+    if (is_dir($src)) {
+      if (!mkdir($dest, FileSystem::CHMOD_DIRECTORY, FALSE)) {
+        throw new \RuntimeException("Directory $dest could not be created");
+      }
+      $handle = opendir($src);
+      while ($file = readdir($handle)) {
+        if ($file != "." && $file != "..") {
+          $this->copyRecursive("$src/$file", "$dest/$file");
+        }
+      }
+      closedir($handle);
+    }
+    elseif (is_link($src)) {
+      symlink(readlink($src), $dest);
+    }
+    elseif (!copy($src, $dest)) {
+      throw new \RuntimeException("File $src could not be copied to $dest");
+    }
+
+    // Set permissions for the directory or file.
+    if (!is_link($dest)) {
+      if (is_dir($dest)) {
+        $mode = FileSystem::CHMOD_DIRECTORY;
+      }
+      else {
+        $mode = FileSystem::CHMOD_FILE;
+      }
+
+      if (!chmod($dest, $mode)) {
+        throw new \RuntimeException("The file permissions could not be set on $src");
+      }
+    }
+  }
+
+  /**
+   * Generates a path to a temporary location.
+   *
+   * @return string
+   */
+  private function getUniqueTmpDirPath(): string {
+    return sys_get_temp_dir() . '/drupal-starterkit-theme-' . uniqid(md5(microtime()), TRUE);
+  }
+
+  /**
+   * Gets theme info using the theme name.
+   *
+   * @param string $theme
+   *   The machine name of the theme.
+   *
+   * @return \Drupal\Core\Extension\Extension|null
+   */
+  private function getThemeInfo(string $theme): ? Extension {
+    $extension_discovery = new ExtensionDiscovery($this->root, FALSE, []);
+    $themes = $extension_discovery->scan('theme');
+
+    if (!isset($themes[$theme])) {
+      return NULL;
+    }
+
+    return $themes[$theme];
+  }
+
+  /**
+   * Gets the current Drupal major version.
+   *
+   * @return string
+   */
+  private function getVersion(): string {
+    return explode('.', \Drupal::VERSION)[0];
+  }
+
+}
diff --git a/core/misc/cspell/dictionary.txt b/core/misc/cspell/dictionary.txt
index a922e5b6e8edba7b8ed506035b01d895aa620ff2..ff46ad2b2cce085d21c5d8ed7a43dcb4feedf53b 100644
--- a/core/misc/cspell/dictionary.txt
+++ b/core/misc/cspell/dictionary.txt
@@ -1482,6 +1482,7 @@ ssess
 ssid
 stardivision
 starrrrr
+starterkit
 startpunt
 starzzzz
 statuscode
diff --git a/core/scripts/drupal b/core/scripts/drupal
index 7f71228b03bdab2f1d48e623bdc8a42bb590cf44..891d5b8117800cfbe424864f7488f9c829b174ce 100644
--- a/core/scripts/drupal
+++ b/core/scripts/drupal
@@ -6,6 +6,7 @@
  * Provides CLI commands for Drupal.
  */
 
+use Drupal\Core\Command\GenerateTheme;
 use Drupal\Core\Command\QuickStartCommand;
 use Drupal\Core\Command\InstallCommand;
 use Drupal\Core\Command\ServerCommand;
@@ -22,5 +23,6 @@ $application = new Application('drupal', \Drupal::VERSION);
 $application->add(new QuickStartCommand());
 $application->add(new InstallCommand($classloader));
 $application->add(new ServerCommand($classloader));
+$application->add(new GenerateTheme());
 
 $application->run();
diff --git a/core/tests/Drupal/Tests/Core/Command/GenerateThemeTest.php b/core/tests/Drupal/Tests/Core/Command/GenerateThemeTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..cf2194566667066f49c4632e564d9d9eec91bafa
--- /dev/null
+++ b/core/tests/Drupal/Tests/Core/Command/GenerateThemeTest.php
@@ -0,0 +1,84 @@
+<?php
+
+namespace Drupal\Tests\Core\Command;
+
+use Drupal\BuildTests\QuickStart\QuickStartTestBase;
+use Drupal\Core\Database\Driver\sqlite\Install\Tasks;
+use Symfony\Component\Process\PhpExecutableFinder;
+use Symfony\Component\Process\Process;
+
+/**
+ * Tests the generate-theme commands.
+ *
+ * @requires extension pdo_sqlite
+ *
+ * @group Command
+ */
+class GenerateThemeTest extends QuickStartTestBase {
+
+  /**
+   * The PHP executable path.
+   *
+   * @var string
+   */
+  protected $php;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp(): void {
+    parent::setUp();
+    $php_executable_finder = new PhpExecutableFinder();
+    $this->php = $php_executable_finder->find();
+    $this->copyCodebase();
+    $this->executeCommand('COMPOSER_DISCARD_CHANGES=true composer install --no-dev --no-interaction');
+    chdir($this->getWorkingPath());
+  }
+
+  /**
+   * Tests the generate-theme command.
+   */
+  public function test() {
+    if (version_compare(\SQLite3::version()['versionString'], Tasks::SQLITE_MINIMUM_VERSION) < 0) {
+      $this->markTestSkipped();
+    }
+
+    $install_command = [
+      $this->php,
+      'core/scripts/drupal',
+      'generate-theme',
+      'test_custom_theme',
+      '--name="Test custom starterkit theme"',
+      '--description="Custom theme generated from a starterkit theme"',
+    ];
+    $process = new Process($install_command, NULL);
+    $process->setTimeout(60);
+    $result = $process->run();
+    $this->assertEquals('Theme generated successfully to themes/test_custom_theme', trim($process->getOutput()));
+    $this->assertSame(0, $result);
+
+    $theme_path_relative = 'themes/test_custom_theme';
+    $theme_path_absolute = $this->getWorkspaceDirectory() . "/$theme_path_relative";
+    $this->assertFileExists($theme_path_absolute . '/test_custom_theme.info.yml');
+
+    // Ensure that the generated theme can be installed.
+    $this->installQuickStart('minimal');
+    $this->formLogin($this->adminUsername, $this->adminPassword);
+    $this->visit('/admin/appearance');
+    $this->getMink()->assertSession()->pageTextContains('Test custom starterkit');
+    $this->getMink()->assertSession()->pageTextContains('Custom theme generated from a starterkit theme');
+    $this->getMink()->getSession()->getPage()->clickLink('Install "Test custom starterkit theme" theme');
+    $this->getMink()->assertSession()->pageTextContains('The "Test custom starterkit theme" theme has been installed.');
+
+    $this->assertFileExists($theme_path_absolute . '/test_custom_theme.theme');
+    unlink($theme_path_absolute . '/test_custom_theme.theme');
+    $process = new Process($install_command, NULL);
+    $process->setTimeout(60);
+    $result = $process->run();
+    $this->assertStringContainsString('Theme could not be generated because the destination directory', $process->getErrorOutput());
+    $this->assertStringContainsString($theme_path_relative, $process->getErrorOutput());
+    $this->assertSame(1, $result);
+    $this->assertFileNotExists($theme_path_absolute . '/test_custom_theme.theme');
+  }
+
+}
diff --git a/core/themes/starterkit_theme/css/components/action-links.css b/core/themes/starterkit_theme/css/components/action-links.css
new file mode 100644
index 0000000000000000000000000000000000000000..274d798e18e7ea39766ef871dd511b22c3a3803c
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/action-links.css
@@ -0,0 +1,43 @@
+/**
+ * @file
+ * Styles for link buttons and action links.
+ */
+
+.action-links {
+  margin: 1em 0;
+  padding: 0;
+  list-style: none;
+}
+[dir="rtl"] .action-links {
+  /* This is required to win over specificity of [dir="rtl"] ul */
+  margin-right: 0;
+}
+.action-links li {
+  display: inline-block;
+  margin: 0 0.3em;
+}
+.action-links li:first-child {
+  margin-left: 0; /* LTR */
+}
+[dir="rtl"] .action-links li:first-child {
+  margin-right: 0;
+  margin-left: 0.3em;
+}
+.button-action {
+  display: inline-block;
+  padding: 0.2em 0.5em 0.3em;
+  text-decoration: none;
+  line-height: 160%;
+}
+.button-action:before {
+  margin-left: -0.1em; /* LTR */
+  padding-right: 0.2em; /* LTR */
+  content: "+";
+  font-weight: 900;
+}
+[dir="rtl"] .button-action:before {
+  margin-right: -0.1em;
+  margin-left: 0;
+  padding-right: 0;
+  padding-left: 0.2em;
+}
diff --git a/core/themes/starterkit_theme/css/components/book-navigation.css b/core/themes/starterkit_theme/css/components/book-navigation.css
new file mode 100644
index 0000000000000000000000000000000000000000..08728e27b531cf85c374cc542b2aad34643b967f
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/book-navigation.css
@@ -0,0 +1,40 @@
+/**
+ * @file
+ * Styling for the Book module.
+ */
+
+.book-navigation .menu {
+  padding-top: 1em;
+  padding-bottom: 0;
+}
+.book-navigation .book-pager {
+  overflow: auto;
+  margin: 0;
+  padding: 0.5em 0;
+}
+.book-pager__item {
+  display: inline-block;
+  list-style-type: none;
+  vertical-align: top;
+}
+.book-pager__item--previous {
+  width: 45%;
+  text-align: left; /* LTR */
+}
+[dir="rtl"] .book-pager__item--previous {
+  float: right;
+  text-align: right;
+}
+.book-pager__item--center {
+  width: 8%;
+  text-align: center;
+}
+.book-pager__item--next {
+  float: right; /* LTR */
+  width: 45%;
+  text-align: right; /* LTR */
+}
+[dir="rtl"] .book-pager__item--next {
+  float: left;
+  text-align: left;
+}
diff --git a/core/themes/starterkit_theme/css/components/breadcrumb.css b/core/themes/starterkit_theme/css/components/breadcrumb.css
new file mode 100644
index 0000000000000000000000000000000000000000..1e6a7fac71a177eefc9da2312f8739e84ef16b89
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/breadcrumb.css
@@ -0,0 +1,29 @@
+/**
+ * @file
+ * Styles for breadcrumbs.
+ */
+
+.breadcrumb {
+  padding-bottom: 0.5em;
+}
+.breadcrumb ol {
+  margin: 0;
+  padding: 0;
+}
+[dir="rtl"] .breadcrumb ol {
+  /* This is required to win over specificity of [dir="rtl"] ol */
+  margin-right: 0;
+}
+.breadcrumb li {
+  display: inline;
+  margin: 0;
+  padding: 0;
+  list-style-type: none;
+}
+/* IE8 does not support :not() and :last-child. */
+.breadcrumb li:before {
+  content: " \BB ";
+}
+.breadcrumb li:first-child:before {
+  content: none;
+}
diff --git a/core/themes/starterkit_theme/css/components/button.css b/core/themes/starterkit_theme/css/components/button.css
new file mode 100644
index 0000000000000000000000000000000000000000..5eb4f1ac13ca0b853aca842ff796b636f7edfdc6
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/button.css
@@ -0,0 +1,15 @@
+/**
+ * @file
+ * Visual styles for buttons.
+ */
+
+.button,
+.image-button {
+  margin-right: 1em;
+  margin-left: 1em;
+}
+.button:first-child,
+.image-button:first-child {
+  margin-right: 0;
+  margin-left: 0;
+}
diff --git a/core/themes/starterkit_theme/css/components/collapse-processed.css b/core/themes/starterkit_theme/css/components/collapse-processed.css
new file mode 100644
index 0000000000000000000000000000000000000000..12737ef3ca75be57a206782e5465d98a6e63fa9d
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/collapse-processed.css
@@ -0,0 +1,32 @@
+/**
+ * @file
+ * Visual styles for collapsible fieldsets.
+ */
+
+.collapse-processed > summary {
+  padding-right: 0.5em;
+  padding-left: 0.5em;
+}
+.collapse-processed > summary:before {
+  float: left; /* LTR */
+  width: 1em;
+  height: 1em;
+  content: "";
+  background: url(../../images/icons/menu-expanded.png) 0 100% no-repeat; /* LTR */
+}
+[dir="rtl"] .collapse-processed > summary:before {
+  float: right;
+  background-position: 100% 100%;
+}
+.collapse-processed:not([open]) > summary:before {
+  -ms-transform: rotate(-90deg);
+  -webkit-transform: rotate(-90deg);
+  transform: rotate(-90deg);
+  background-position: 25% 35%; /* LTR */
+}
+[dir="rtl"] .collapse-processed:not([open]) > summary:before {
+  -ms-transform: rotate(90deg);
+  -webkit-transform: rotate(90deg);
+  transform: rotate(90deg);
+  background-position: 75% 35%;
+}
diff --git a/core/themes/starterkit_theme/css/components/container-inline.css b/core/themes/starterkit_theme/css/components/container-inline.css
new file mode 100644
index 0000000000000000000000000000000000000000..64b78f683bf159533eb9d5661a209767782e7cc3
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/container-inline.css
@@ -0,0 +1,22 @@
+/**
+ * @file
+ * Inline items.
+ */
+
+.container-inline label:after,
+.container-inline .label:after {
+  content: ":";
+}
+.form-type-radios .container-inline label:after,
+.form-type-checkboxes .container-inline label:after {
+  content: "";
+}
+.form-type-radios .container-inline .form-type-radio,
+.form-type-checkboxes .container-inline .form-type-checkbox {
+  margin: 0 1em;
+}
+.container-inline .form-actions,
+.container-inline.form-actions {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/core/themes/starterkit_theme/css/components/details.css b/core/themes/starterkit_theme/css/components/details.css
new file mode 100644
index 0000000000000000000000000000000000000000..a546363a295cb566d0e02bea0d446f1bb2b5d576
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/details.css
@@ -0,0 +1,23 @@
+/**
+ * @file
+ * Collapsible details.
+ *
+ * @see collapse.js
+ * @see http://nicolasgallagher.com/css-background-image-hacks/
+ */
+
+details {
+  margin-top: 1em;
+  margin-bottom: 1em;
+  border: 1px solid #ccc;
+}
+details > .details-wrapper {
+  padding: 0.5em 1.5em;
+}
+/* @todo Regression: The summary of uncollapsible details are no longer
+     vertically aligned with the .details-wrapper in browsers without native
+     details support. */
+summary {
+  padding: 0.2em 0.5em;
+  cursor: pointer;
+}
diff --git a/core/themes/starterkit_theme/css/components/dialog.css b/core/themes/starterkit_theme/css/components/dialog.css
new file mode 100644
index 0000000000000000000000000000000000000000..16e17706030d92a4384127b75aa31ff27b205b67
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/dialog.css
@@ -0,0 +1,72 @@
+/**
+ * @file
+ * Presentational styles for Drupal dialogs.
+ */
+
+.ui-dialog {
+  position: absolute;
+  z-index: 1260;
+  overflow: visible;
+  padding: 0;
+  color: #000;
+  border: solid 1px #ccc;
+  background: #fff;
+}
+
+@media all and (max-width: 48em) { /* 768px */
+  .ui-dialog {
+    width: 92% !important;
+  }
+}
+.ui-dialog .ui-dialog-titlebar {
+  border-width: 0 0 1px 0;
+  border-style: solid;
+  border-color: #ccc;
+  border-radius: 0;
+  background: #f3f4ee;
+  font-weight: bold;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+  border: 0;
+  background: none;
+}
+.ui-dialog .ui-dialog-buttonpane {
+  margin-top: 0;
+  padding: 0.3em 1em;
+  border-width: 1px 0 0 0;
+  border-color: #ccc;
+  background: #f3f4ee;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+  margin: 0;
+  padding: 0;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-button-text-only .ui-button-text {
+  padding: 0;
+}
+
+/* Form action buttons are moved in dialogs. Remove empty space. */
+.ui-dialog .ui-dialog-content .form-actions {
+  margin: 0;
+  padding: 0;
+}
+.ui-dialog .ajax-progress-throbber {
+  position: fixed;
+  z-index: 1000;
+  top: 48.5%;
+  /* Can't do center:50% middle: 50%, so approximate it for a typical window size. */
+  left: 49%;
+  width: 24px;
+  height: 24px;
+  padding: 4px;
+  opacity: 0.9;
+  border-radius: 7px;
+  background-color: #232323;
+  background-image: url(../../images/icons/loading-small.gif);
+  background-repeat: no-repeat;
+  background-position: center center;
+}
+.ui-dialog .ajax-progress-throbber .throbber,
+.ui-dialog .ajax-progress-throbber .message {
+  display: none;
+}
diff --git a/core/themes/starterkit_theme/css/components/dropbutton.css b/core/themes/starterkit_theme/css/components/dropbutton.css
new file mode 100644
index 0000000000000000000000000000000000000000..5e971ba622dc2e4734d2a6c4beeef7029e9d790f
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/dropbutton.css
@@ -0,0 +1,33 @@
+/**
+ * @file
+ * General styles for dropbuttons.
+ */
+
+.js .dropbutton-widget {
+  border: 1px solid #ccc;
+  background-color: white;
+}
+.js .dropbutton-widget:hover {
+  border-color: #b8b8b8;
+}
+.dropbutton .dropbutton-action > * {
+  padding: 0.1em 0.5em;
+  white-space: nowrap;
+}
+.dropbutton .secondary-action {
+  border-top: 1px solid #e8e8e8;
+}
+.dropbutton-multiple .dropbutton {
+  border-right: 1px solid #e8e8e8; /* LTR */
+}
+[dir="rtl"] .dropbutton-multiple .dropbutton {
+  border-right: 0 none;
+  border-left: 1px solid #e8e8e8;
+}
+.dropbutton-multiple .dropbutton .dropbutton-action > * {
+  margin-right: 0.25em; /* LTR */
+}
+[dir="rtl"] .dropbutton-multiple .dropbutton .dropbutton-action > * {
+  margin-right: 0;
+  margin-left: 0.25em;
+}
diff --git a/core/themes/starterkit_theme/css/components/exposed-filters.css b/core/themes/starterkit_theme/css/components/exposed-filters.css
new file mode 100644
index 0000000000000000000000000000000000000000..b686902ef111f07def492f6e39636f4449fdf130
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/exposed-filters.css
@@ -0,0 +1,46 @@
+/**
+ * @file
+ * Visual styles for exposed filters.
+ */
+
+.exposed-filters .filters {
+  float: left; /* LTR */
+  margin-right: 1em; /* LTR */
+}
+[dir="rtl"] .exposed-filters .filters {
+  float: right;
+  margin-right: 0;
+  margin-left: 1em;
+}
+.exposed-filters .form-item {
+  margin: 0 0 0.1em 0;
+  padding: 0;
+}
+.exposed-filters .form-item label {
+  float: left; /* LTR */
+  width: 10em;
+  font-weight: normal;
+}
+[dir="rtl"] .exposed-filters .form-item label {
+  float: right;
+}
+.exposed-filters .form-select {
+  width: 14em;
+}
+/* Current filters */
+.exposed-filters .current-filters {
+  margin-bottom: 1em;
+}
+.exposed-filters .current-filters .placeholder {
+  font-weight: bold;
+  font-style: normal;
+}
+.exposed-filters .additional-filters {
+  float: left; /* LTR */
+  margin-right: 1em; /* LTR */
+}
+[dir="rtl"] .exposed-filters .additional-filters {
+  float: right;
+  margin-right: 0;
+  margin-left: 1em;
+}
diff --git a/core/themes/starterkit_theme/css/components/field.css b/core/themes/starterkit_theme/css/components/field.css
new file mode 100644
index 0000000000000000000000000000000000000000..ff7e9ab1fc765b99f3ca09d6e8b9a6db7867229c
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/field.css
@@ -0,0 +1,25 @@
+/**
+ * @file
+ * Visual styles for fields.
+ */
+
+.field__label {
+  font-weight: bold;
+}
+.field--label-inline .field__label,
+.field--label-inline .field__items {
+  float: left; /* LTR */
+}
+.field--label-inline .field__label,
+.field--label-inline > .field__item,
+.field--label-inline .field__items {
+  padding-right: 0.5em;
+}
+[dir="rtl"] .field--label-inline .field__label,
+[dir="rtl"] .field--label-inline .field__items {
+  padding-right: 0;
+  padding-left: 0.5em;
+}
+.field--label-inline .field__label::after {
+  content: ":";
+}
diff --git a/core/themes/starterkit_theme/css/components/file.css b/core/themes/starterkit_theme/css/components/file.css
new file mode 100644
index 0000000000000000000000000000000000000000..9aa90ebebd12edc16ef212e0852cbe032b63dec9
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/file.css
@@ -0,0 +1,62 @@
+/**
+ * @file
+ * Default style for file module.
+ */
+
+/* File icons. */
+
+.file {
+  display: inline-block;
+  min-height: 16px;
+  padding-left: 20px; /* LTR */
+  background-repeat: no-repeat;
+  background-position: left center; /* LTR */
+}
+[dir="rtl"] .file {
+  padding-right: 20px;
+  padding-left: inherit;
+  background-position: right center;
+}
+.file--general,
+.file--application-octet-stream {
+  background-image: url(../../images/icons/application-octet-stream.png);
+}
+.file--package-x-generic {
+  background-image: url(../../images/icons/package-x-generic.png);
+}
+.file--x-office-spreadsheet {
+  background-image: url(../../images/icons/x-office-spreadsheet.png);
+}
+.file--x-office-document {
+  background-image: url(../../images/icons/x-office-document.png);
+}
+.file--x-office-presentation {
+  background-image: url(../../images/icons/x-office-presentation.png);
+}
+.file--text-x-script {
+  background-image: url(../../images/icons/text-x-script.png);
+}
+.file--text-html {
+  background-image: url(../../images/icons/text-html.png);
+}
+.file--text-plain {
+  background-image: url(../../images/icons/text-plain.png);
+}
+.file--application-pdf {
+  background-image: url(../../images/icons/application-pdf.png);
+}
+.file--application-x-executable {
+  background-image: url(../../images/icons/application-x-executable.png);
+}
+.file--audio {
+  background-image: url(../../images/icons/audio-x-generic.png);
+}
+.file--video {
+  background-image: url(../../images/icons/video-x-generic.png);
+}
+.file--text {
+  background-image: url(../../images/icons/text-x-generic.png);
+}
+.file--image {
+  background-image: url(../../images/icons/image-x-generic.png);
+}
diff --git a/core/themes/starterkit_theme/css/components/form.css b/core/themes/starterkit_theme/css/components/form.css
new file mode 100644
index 0000000000000000000000000000000000000000..b840022397d39fcf17b7c3ed92da2ddad75a37e9
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/form.css
@@ -0,0 +1,104 @@
+/**
+ * @file
+ * Visual styles for form components.
+ */
+
+form .field-multiple-table {
+  margin: 0;
+}
+form .field-multiple-table .field-multiple-drag {
+  width: 30px;
+  padding-right: 0; /* LTR */
+}
+[dir="rtl"] form .field-multiple-table .field-multiple-drag {
+  padding-left: 0;
+}
+form .field-multiple-table .field-multiple-drag .tabledrag-handle {
+  padding-right: 0.5em; /* LTR */
+}
+[dir="rtl"] form .field-multiple-table .field-multiple-drag .tabledrag-handle {
+  padding-right: 0;
+  padding-left: 0.5em;
+}
+form .field-add-more-submit {
+  margin: 0.5em 0 0;
+}
+
+/**
+ * Markup generated by Form API.
+ */
+.form-item,
+.form-actions {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+tr.odd .form-item,
+tr.even .form-item {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.form-composite > .fieldset-wrapper > .description,
+.form-item .description {
+  font-size: 0.85em;
+}
+label.option {
+  display: inline;
+  font-weight: normal;
+}
+.form-composite > legend,
+.label {
+  display: inline;
+  margin: 0;
+  padding: 0;
+  font-size: inherit;
+  font-weight: bold;
+}
+.form-checkboxes .form-item,
+.form-radios .form-item {
+  margin-top: 0.4em;
+  margin-bottom: 0.4em;
+}
+.form-type-radio .description,
+.form-type-checkbox .description {
+  margin-left: 2.4em; /* LTR */
+}
+[dir="rtl"] .form-type-radio .description,
+[dir="rtl"] .form-type-checkbox .description {
+  margin-right: 2.4em;
+  margin-left: 0;
+}
+.marker {
+  color: #e00;
+}
+.form-required:after {
+  display: inline-block;
+  width: 6px;
+  height: 6px;
+  margin: 0 0.3em;
+  content: "";
+  vertical-align: super;
+  /* Use a background image to prevent screen readers from announcing the text. */
+  background-image: url(../../images/icons/required.svg);
+  background-repeat: no-repeat;
+  background-size: 6px 6px;
+}
+abbr.tabledrag-changed,
+abbr.ajax-changed {
+  border-bottom: none;
+}
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error {
+  border: 2px solid red;
+}
+
+/* Inline error messages. */
+.form-item--error-message:before {
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  content: "";
+  vertical-align: sub;
+  background: url(../../images/icons/error.svg) no-repeat;
+  background-size: contain;
+}
diff --git a/core/themes/starterkit_theme/css/components/forum.css b/core/themes/starterkit_theme/css/components/forum.css
new file mode 100644
index 0000000000000000000000000000000000000000..8e8596e21f73c214fba4249ecb99f957032af33f
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/forum.css
@@ -0,0 +1,46 @@
+/**
+ * @file
+ * Styling for the Forum module.
+ */
+
+.forum__description {
+  margin: 0.5em;
+  font-size: 0.9em;
+}
+.forum__icon {
+  float: left; /* LTR */
+  width: 24px;
+  height: 24px;
+  margin: 0 9px 0 0; /* LTR */
+  background-image: url(../../images/icons/forum-icons.png);
+  background-repeat: no-repeat;
+}
+[dir="rtl"] .forum__icon {
+  float: right;
+  margin: 0 0 0 9px;
+}
+.forum__title {
+  overflow: hidden;
+}
+.forum .indented {
+  margin-left: 20px; /* LTR */
+}
+[dir="rtl"] .forum .indented {
+  margin-right: 20px;
+  margin-left: 0;
+}
+.forum__topic-status--new {
+  background-position: -24px 0;
+}
+.forum__topic-status--hot {
+  background-position: -48px 0;
+}
+.forum__topic-status--hot-new {
+  background-position: -72px 0;
+}
+.forum__topic-status--sticky {
+  background-position: -96px 0;
+}
+.forum__topic-status--closed {
+  background-position: -120px 0;
+}
diff --git a/core/themes/starterkit_theme/css/components/icons.css b/core/themes/starterkit_theme/css/components/icons.css
new file mode 100644
index 0000000000000000000000000000000000000000..27337581c18367032730f09b11bc6a064ad89710
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/icons.css
@@ -0,0 +1,21 @@
+/**
+ * @file
+ * Visual styles for icons.
+ */
+
+.icon-help {
+  padding: 1px 0 1px 20px; /* LTR */
+  background: url(../../images/icons/help.png) 0 50% no-repeat; /* LTR */
+}
+[dir="rtl"] .icon-help {
+  padding: 1px 20px 1px 0;
+  background-position: 100% 50%;
+}
+.feed-icon {
+  display: block;
+  overflow: hidden;
+  width: 16px;
+  height: 16px;
+  text-indent: -9999px;
+  background: url(../../images/icons/feed.svg) no-repeat;
+}
diff --git a/core/themes/starterkit_theme/css/components/image-widget.css b/core/themes/starterkit_theme/css/components/image-widget.css
new file mode 100644
index 0000000000000000000000000000000000000000..56777c41ea43d0fdd279c1ce5f1f024b949a3e58
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/image-widget.css
@@ -0,0 +1,33 @@
+/**
+ * @file
+ * Image upload widget.
+ *
+ * This CSS file is not used in this theme (Classy). It was intended to be used,
+ * but due to a bug, Drupal 8 shipped with it not being used. To not break
+ * backwards compatibility, we continue to not load it in Classy. Every
+ * subtheme of Classy is encouraged to use it, by attaching the
+ * classy/image-widget asset library in their image-widget.html.twig file.
+ *
+ * @see core/themes/seven/templates/content-edit/image-widget.html.twig.
+ *
+ * @todo In Drupal 9, let core/themes/classy/templates/content-edit/image-widget.html.twig
+ * attach the classy/image-widget asset library.
+ */
+
+.image-preview {
+  float: left; /* LTR */
+  padding: 0 10px 10px 0; /* LTR */
+}
+[dir="rtl"] .image-preview {
+  float: right;
+  padding: 0 0 10px 10px;
+}
+.image-widget-data {
+  float: left; /* LTR */
+}
+[dir="rtl"] .image-widget-data {
+  float: right;
+}
+.image-widget-data .text-field {
+  width: auto;
+}
diff --git a/core/themes/starterkit_theme/css/components/indented.css b/core/themes/starterkit_theme/css/components/indented.css
new file mode 100644
index 0000000000000000000000000000000000000000..6925a06363656bf1711354630f3d60ecec90ffe6
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/indented.css
@@ -0,0 +1,16 @@
+
+/**
+ * @file
+ * Basic styling for comment module.
+ */
+
+/**
+ * Indent threaded comments.
+ */
+.indented {
+  margin-left: 25px; /* LTR */
+}
+[dir="rtl"] .indented {
+  margin-right: 25px;
+  margin-left: 0;
+}
diff --git a/core/themes/starterkit_theme/css/components/inline-form.css b/core/themes/starterkit_theme/css/components/inline-form.css
new file mode 100644
index 0000000000000000000000000000000000000000..b5201a78c9db0c2a8f09c700f3374badbca79d31
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/inline-form.css
@@ -0,0 +1,33 @@
+/**
+ * @file
+ * Visual styles for inline forms.
+ */
+
+.form--inline .form-item {
+  float: left; /* LTR */
+  margin-right: 0.5em; /* LTR */
+}
+[dir="rtl"] .form--inline .form-item {
+  float: right;
+  margin-right: 0;
+  margin-left: 0.5em;
+}
+/* This is required to win over specificity of [dir="rtl"] .form--inline .form-item */
+[dir="rtl"] .views-filterable-options-controls .form-item {
+  margin-right: 2%;
+}
+.form--inline .form-item-separator {
+  margin-top: 2.3em;
+  margin-right: 1em; /* LTR */
+  margin-left: 0.5em; /* LTR */
+}
+[dir="rtl"] .form--inline .form-item-separator {
+  margin-right: 0.5em;
+  margin-left: 1em;
+}
+.form--inline .form-actions {
+  clear: left; /* LTR */
+}
+[dir="rtl"] .form--inline .form-actions {
+  clear: right;
+}
diff --git a/core/themes/starterkit_theme/css/components/item-list.css b/core/themes/starterkit_theme/css/components/item-list.css
new file mode 100644
index 0000000000000000000000000000000000000000..a8ce5d28a53ddd7de538b7f83983dcbaa359b817
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/item-list.css
@@ -0,0 +1,32 @@
+/**
+ * @file
+ * Visual styles for item list.
+ */
+
+.item-list .title {
+  font-weight: bold;
+}
+.item-list ul {
+  margin: 0 0 0.75em 0;
+  padding: 0;
+}
+.item-list li {
+  margin: 0 0 0.25em 1.5em; /* LTR */
+  padding: 0;
+}
+[dir="rtl"] .item-list li {
+  margin: 0 1.5em 0.25em 0;
+}
+
+/**
+ * Comma separated lists.
+ */
+.item-list--comma-list {
+  display: inline;
+}
+.item-list--comma-list .item-list__comma-list,
+.item-list__comma-list li,
+[dir="rtl"] .item-list--comma-list .item-list__comma-list,
+[dir="rtl"] .item-list__comma-list li {
+  margin: 0;
+}
diff --git a/core/themes/starterkit_theme/css/components/link.css b/core/themes/starterkit_theme/css/components/link.css
new file mode 100644
index 0000000000000000000000000000000000000000..fa83f2bb2c371b95ff87270ef93e4c72b86815ac
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/link.css
@@ -0,0 +1,16 @@
+/**
+ * @file
+ * Style another element as a link.
+ */
+
+button.link {
+  margin: 0;
+  padding: 0;
+  cursor: pointer;
+  border: 0;
+  background: transparent;
+  font-size: 1em;
+}
+label button.link {
+  font-weight: bold;
+}
diff --git a/core/themes/starterkit_theme/css/components/links.css b/core/themes/starterkit_theme/css/components/links.css
new file mode 100644
index 0000000000000000000000000000000000000000..e4832539337a9b555f293e47ca2f0d8dc1358d5d
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/links.css
@@ -0,0 +1,23 @@
+/**
+ * @file
+ * Visual styles for links.
+ */
+
+ul.inline,
+ul.links.inline {
+  display: inline;
+  padding-left: 0; /* LTR */
+}
+[dir="rtl"] ul.inline,
+[dir="rtl"] ul.links.inline {
+  padding-right: 0;
+  padding-left: 15px;
+}
+ul.inline li {
+  display: inline;
+  padding: 0 0.5em;
+  list-style-type: none;
+}
+ul.links a.is-active {
+  color: #000;
+}
diff --git a/core/themes/starterkit_theme/css/components/media-embed-error.css b/core/themes/starterkit_theme/css/components/media-embed-error.css
new file mode 100644
index 0000000000000000000000000000000000000000..259e5cb5f75eeea41a26f394e90e7b238e6959cd
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/media-embed-error.css
@@ -0,0 +1,20 @@
+/**
+ * @file
+ * Media Embed filter: default styling for media embed errors.
+ */
+
+/**
+ * The caption filter's styling overrides ours, so add a more specific selector
+ * to account for that.
+ */
+.media-embed-error,
+.caption > .media-embed-error {
+  max-width: 200px;
+  padding: 100px 20px 20px;
+  text-align: center;
+  background-color: #ebebeb;
+  background-image: url(../../images/icons/no-thumbnail.png);
+  background-repeat: no-repeat;
+  background-position: center top;
+  background-size: 100px 100px;
+}
diff --git a/core/themes/starterkit_theme/css/components/menu.css b/core/themes/starterkit_theme/css/components/menu.css
new file mode 100644
index 0000000000000000000000000000000000000000..df733240d5ae1f99746a106e67e8830ce0298f7f
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/menu.css
@@ -0,0 +1,34 @@
+/**
+ * @file
+ * Visual styles for menu.
+ */
+
+ul.menu {
+  margin-left: 1em; /* LTR */
+  padding: 0;
+  list-style: none outside;
+  text-align: left; /* LTR */
+}
+[dir="rtl"] ul.menu {
+  margin-right: 1em;
+  margin-left: 0;
+  text-align: right;
+}
+.menu-item--expanded {
+  list-style-type: circle;
+  list-style-image: url(../../images/icons/menu-expanded.png);
+}
+.menu-item--collapsed {
+  list-style-type: disc;
+  list-style-image: url(../../images/icons/menu-collapsed.png); /* LTR */
+}
+[dir="rtl"] .menu-item--collapsed {
+  list-style-image: url(../../images/icons/menu-collapsed-rtl.png);
+}
+.menu-item {
+  margin: 0;
+  padding-top: 0.2em;
+}
+ul.menu a.is-active {
+  color: #000;
+}
diff --git a/core/themes/starterkit_theme/css/components/messages.css b/core/themes/starterkit_theme/css/components/messages.css
new file mode 100644
index 0000000000000000000000000000000000000000..53a8958a32b8eb5a2ffe56d80b7185ed5682f5ae
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/messages.css
@@ -0,0 +1,72 @@
+/**
+ * @file
+ * Styles for system messages.
+ */
+
+.messages {
+  padding: 15px 20px 15px 35px; /* LTR */
+  word-wrap: break-word;
+  border: 1px solid;
+  border-width: 1px 1px 1px 0;  /* LTR */
+  border-radius: 2px;
+  background: no-repeat 10px 17px;  /* LTR */
+  overflow-wrap: break-word;
+}
+[dir="rtl"] .messages {
+  padding-right: 35px;
+  padding-left: 20px;
+  text-align: right;
+  border-width: 1px 0 1px 1px;
+  background-position: right 10px top 17px;
+}
+.messages + .messages {
+  margin-top: 1.538em;
+}
+.messages__list {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.messages__item + .messages__item {
+  margin-top: 0.769em;
+}
+/* See .color-success in Seven's colors.css */
+.messages--status {
+  color: #325e1c;
+  border-color: #c9e1bd #c9e1bd #c9e1bd transparent;  /* LTR */
+  background-color: #f3faef;
+  background-image: url(../../images/icons/check.svg);
+  box-shadow: -8px 0 0 #77b259; /* LTR */
+}
+[dir="rtl"] .messages--status {
+  margin-left: 0;
+  border-color: #c9e1bd transparent #c9e1bd #c9e1bd;
+  box-shadow: 8px 0 0 #77b259;
+}
+/* See .color-warning in Seven's colors.css */
+.messages--warning {
+  color: #734c00;
+  border-color: #f4daa6 #f4daa6 #f4daa6 transparent;  /* LTR */
+  background-color: #fdf8ed;
+  background-image: url(../../images/icons/warning.svg);
+  box-shadow: -8px 0 0 #e09600; /* LTR */
+}
+[dir="rtl"] .messages--warning {
+  border-color: #f4daa6 transparent #f4daa6 #f4daa6;
+  box-shadow: 8px 0 0 #e09600;
+}
+/* See .color-error in Seven's colors.css */
+.messages--error {
+  color: #a51b00;
+  border-color: #f9c9bf #f9c9bf #f9c9bf transparent;  /* LTR */
+  background-color: #fcf4f2;
+  background-image: url(../../images/icons/error.svg);
+  box-shadow: -8px 0 0 #e62600; /* LTR */
+}
+[dir="rtl"] .messages--error {
+  border-color: #f9c9bf transparent #f9c9bf #f9c9bf;
+  box-shadow: 8px 0 0 #e62600;
+}
+.messages--error p.error {
+  color: #a51b00;
+}
diff --git a/core/themes/starterkit_theme/css/components/more-link.css b/core/themes/starterkit_theme/css/components/more-link.css
new file mode 100644
index 0000000000000000000000000000000000000000..c604061317d013d634660816cca3fd606091ed40
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/more-link.css
@@ -0,0 +1,12 @@
+/**
+ * @file
+ * Markup generated by #type 'more_link'.
+ */
+
+.more-link {
+  display: block;
+  text-align: right; /* LTR */
+}
+[dir="rtl"] .more-link {
+  text-align: left;
+}
diff --git a/core/themes/starterkit_theme/css/components/node.css b/core/themes/starterkit_theme/css/components/node.css
new file mode 100644
index 0000000000000000000000000000000000000000..6b7cd5257d6d167426d11e2b6adb5eda3fecbfdf
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/node.css
@@ -0,0 +1,8 @@
+/**
+ * @file
+ * Visual styles for nodes.
+ */
+
+.node--unpublished {
+  background-color: #fff4f4;
+}
diff --git a/core/themes/starterkit_theme/css/components/pager.css b/core/themes/starterkit_theme/css/components/pager.css
new file mode 100644
index 0000000000000000000000000000000000000000..a9471fc037cab28544a3c89cf7040f26434cf1a5
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/pager.css
@@ -0,0 +1,16 @@
+/**
+ * @file
+ * Visual styles for pager.
+ */
+
+.pager__items {
+  clear: both;
+  text-align: center;
+}
+.pager__item {
+  display: inline;
+  padding: 0.5em;
+}
+.pager__item.is-active {
+  font-weight: bold;
+}
diff --git a/core/themes/starterkit_theme/css/components/progress.css b/core/themes/starterkit_theme/css/components/progress.css
new file mode 100644
index 0000000000000000000000000000000000000000..47da889350040c07f3137184192d19a66d0c6334
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/progress.css
@@ -0,0 +1,69 @@
+/**
+ * @file
+ * Visual styles for progress bar.
+ *
+ * @see progress.js
+ */
+
+.progress__track {
+  border-color: #b3b3b3;
+  border-radius: 10em;
+  background-color: #f2f1eb;
+  background-image: -webkit-linear-gradient(#e7e7df, #f0f0f0);
+  background-image: linear-gradient(#e7e7df, #f0f0f0);
+  box-shadow: inset 0 1px 3px hsla(0, 0%, 0%, 0.16);
+}
+.progress__bar {
+  height: 16px;
+  margin-top: -1px;
+  margin-left: -1px; /* LTR */
+  padding: 0 1px;
+  -webkit-transition: width 0.5s ease-out;
+  transition: width 0.5s ease-out;
+  -webkit-animation: animate-stripes 3s linear infinite;
+  -moz-animation: animate-stripes 3s linear infinite;
+  border: 1px #07629a solid;
+  border-radius: 10em;
+  background: #057ec9;
+  background-image:
+    -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)),
+    -webkit-linear-gradient(left top, #0094f0 0%, #0094f0 25%, #007ecc 25%, #007ecc 50%, #0094f0 50%, #0094f0 75%, #0094f0 100%);
+  background-image:
+    linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)),
+    linear-gradient(to right bottom, #0094f0 0%, #0094f0 25%, #007ecc 25%, #007ecc 50%, #0094f0 50%, #0094f0 75%, #0094f0 100%);
+  background-size: 40px 40px;
+}
+[dir="rtl"] .progress__bar {
+  margin-right: -1px;
+  margin-left: 0;
+  -webkit-animation-direction: reverse;
+  -moz-animation-direction: reverse;
+  animation-direction: reverse;
+}
+
+@media screen and (prefers-reduced-motion: reduce) {
+  .progress__bar {
+    -webkit-transition: none;
+    transition: none;
+    -webkit-animation: none;
+    -moz-animation: none;
+  }
+}
+
+/**
+ * Progress bar animations.
+ */
+@-webkit-keyframes animate-stripes {
+  0% { background-position: 0 0, 0 0; }
+  100% { background-position: 0 0, -80px 0; }
+}
+
+@-ms-keyframes animate-stripes {
+  0% { background-position: 0 0, 0 0; }
+  100% { background-position: 0 0, -80px 0; }
+}
+
+@keyframes animate-stripes {
+  0% { background-position: 0 0, 0 0; }
+  100% { background-position: 0 0, -80px 0; }
+}
diff --git a/core/themes/starterkit_theme/css/components/search-results.css b/core/themes/starterkit_theme/css/components/search-results.css
new file mode 100644
index 0000000000000000000000000000000000000000..343ea8b5fb1b22d6e3684832eeded759ab058ca1
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/search-results.css
@@ -0,0 +1,8 @@
+/**
+ * @file
+ * Stylesheet for results generated by the Search module.
+ */
+
+.search-results {
+  list-style: none;
+}
diff --git a/core/themes/starterkit_theme/css/components/tabledrag.css b/core/themes/starterkit_theme/css/components/tabledrag.css
new file mode 100644
index 0000000000000000000000000000000000000000..a197b24979cff8f741691b1d25e2d2ca6063174a
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/tabledrag.css
@@ -0,0 +1,14 @@
+/**
+ * @file
+ * Visual styles for table drag.
+ */
+
+tr.drag {
+  background-color: #fffff0;
+}
+tr.drag-previous {
+  background-color: #ffd;
+}
+body div.tabledrag-changed-warning {
+  margin-bottom: 0.5em;
+}
diff --git a/core/themes/starterkit_theme/css/components/tableselect.css b/core/themes/starterkit_theme/css/components/tableselect.css
new file mode 100644
index 0000000000000000000000000000000000000000..fcfb2a5aa4aec34886cfe3c193e1cbcb20cb08fb
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/tableselect.css
@@ -0,0 +1,19 @@
+/**
+ * @file
+ * Table select behavior.
+ *
+ * @see tableselect.js
+ */
+
+tr.selected td {
+  background: #ffc;
+}
+td.checkbox,
+th.checkbox {
+  text-align: center;
+}
+[dir="rtl"] td.checkbox,
+[dir="rtl"] th.checkbox {
+  /* This is required to win over specificity of [dir="rtl"] td */
+  text-align: center;
+}
diff --git a/core/themes/starterkit_theme/css/components/tablesort.css b/core/themes/starterkit_theme/css/components/tablesort.css
new file mode 100644
index 0000000000000000000000000000000000000000..44e5349404d0356ab1b601951ff0d141b85ac4a4
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/tablesort.css
@@ -0,0 +1,11 @@
+/**
+ * @file
+ * Table sort indicator.
+ */
+
+th.is-active img {
+  display: inline;
+}
+td.is-active {
+  background-color: #ddd;
+}
diff --git a/core/themes/starterkit_theme/css/components/tabs.css b/core/themes/starterkit_theme/css/components/tabs.css
new file mode 100644
index 0000000000000000000000000000000000000000..16fb1223f08abe7f7366148eb089531b917b1996
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/tabs.css
@@ -0,0 +1,33 @@
+/**
+ * @file
+ * Visual styles for tabs.
+ */
+
+div.tabs {
+  margin: 1em 0;
+}
+ul.tabs {
+  margin: 0 0 0.5em;
+  padding: 0;
+  list-style: none;
+}
+.tabs > li {
+  display: inline-block;
+  margin-right: 0.3em; /* LTR */
+}
+[dir="rtl"] .tabs > li {
+  margin-right: 0;
+  margin-left: 0.3em;
+}
+.tabs a {
+  display: block;
+  padding: 0.2em 1em;
+  text-decoration: none;
+}
+.tabs a.is-active {
+  background-color: #eee;
+}
+.tabs a:focus,
+.tabs a:hover {
+  background-color: #f5f5f5;
+}
diff --git a/core/themes/starterkit_theme/css/components/textarea.css b/core/themes/starterkit_theme/css/components/textarea.css
new file mode 100644
index 0000000000000000000000000000000000000000..2661bae9c4a3f2f9ea0aff1df132962ae656241b
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/textarea.css
@@ -0,0 +1,11 @@
+/**
+ * @file
+ * Visual styles for a resizable textarea.
+ */
+
+.form-textarea-wrapper textarea {
+  display: block;
+  box-sizing: border-box;
+  width: 100%;
+  margin: 0;
+}
diff --git a/core/themes/starterkit_theme/css/components/ui-dialog.css b/core/themes/starterkit_theme/css/components/ui-dialog.css
new file mode 100644
index 0000000000000000000000000000000000000000..164ca86b8f41e239823e6505496a4f3d065281f4
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/ui-dialog.css
@@ -0,0 +1,15 @@
+/**
+ * @file
+ * Styles for modal windows.
+ */
+
+.ui-dialog--narrow {
+  max-width: 500px;
+}
+
+@media screen and (max-width: 600px) {
+  .ui-dialog--narrow {
+    min-width: 95%;
+    max-width: 95%;
+  }
+}
diff --git a/core/themes/starterkit_theme/css/components/user.css b/core/themes/starterkit_theme/css/components/user.css
new file mode 100644
index 0000000000000000000000000000000000000000..7892fd6b2746c1dfcb1ca94a0ceba36a29708c36
--- /dev/null
+++ b/core/themes/starterkit_theme/css/components/user.css
@@ -0,0 +1,67 @@
+/**
+ * @file
+ * Theme styling for user module.
+ */
+
+/* Visual styling for the Password strength indicator */
+.password-strength__meter {
+  margin-top: 0.5em;
+  background-color: #ebeae4;
+}
+.password-strength__indicator {
+  -webkit-transition: width 0.5s ease-out;
+  transition: width 0.5s ease-out;
+  background-color: #77b259;
+}
+.password-strength__indicator.is-weak {
+  background-color: #e62600;
+}
+.password-strength__indicator.is-fair {
+  background-color: #e09600;
+}
+.password-strength__indicator.is-good {
+  background-color: #0074bd;
+}
+.password-strength__indicator.is-strong {
+  background-color: #77b259;
+}
+
+.password-confirm,
+.password-field,
+.password-strength,
+.password-confirm-match,
+.password-confirm-message {
+  width: 55%;
+}
+
+.password-suggestions {
+  max-width: 34.7em;
+  margin: 0.7em 0;
+  padding: 0.2em 0.5em;
+  border: 1px solid #b4b4b4;
+}
+.password-suggestions ul {
+  margin-bottom: 0;
+}
+
+.confirm-parent,
+.password-parent {
+  clear: left; /* LTR */
+  overflow: hidden;
+  max-width: 33em;
+  margin: 0;
+}
+[dir="rtl"] .confirm-parent,
+[dir="rtl"] .password-parent {
+  clear: right;
+}
+
+/* Styling for the status indicator of the passwords match test.  */
+.password-confirm .ok {
+  color: #325e1c;
+  font-weight: bold;
+}
+.password-confirm .error {
+  color: #a51b00;
+  font-weight: bold;
+}
diff --git a/core/themes/starterkit_theme/css/layout/media-library.css b/core/themes/starterkit_theme/css/layout/media-library.css
new file mode 100644
index 0000000000000000000000000000000000000000..84dee10daa5407063fa77cae7cdbae9ca37ea2e5
--- /dev/null
+++ b/core/themes/starterkit_theme/css/layout/media-library.css
@@ -0,0 +1,28 @@
+/**
+ * @file
+ * Contains minimal layout styling for the media library.
+ */
+
+.media-library-wrapper {
+  display: flex;
+}
+
+.media-library-menu {
+  flex-basis: 20%;
+  flex-shrink: 0;
+}
+
+.media-library-content {
+  flex-grow: 1;
+}
+
+.media-library-views-form {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.media-library-views-form .media-library-item {
+  justify-content: space-between;
+  max-width: 23%;
+  margin: 1%;
+}
diff --git a/core/themes/starterkit_theme/images/icons/application-octet-stream.png b/core/themes/starterkit_theme/images/icons/application-octet-stream.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5453217dc5cc30e805d3d0da8fa91e5a0684b86
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/application-octet-stream.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR�����������7����tEXtSoftware�Adobe ImageReadyq�e<���_IDAT(S�ͱ	�@Dѩ�,�`�42���@����Z���#���d2!�4J�>dt��`�
,=ޛ���{g8���C	�PG(�<�h\���w�)E�o}�^�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/application-pdf.png b/core/themes/starterkit_theme/images/icons/application-pdf.png
new file mode 100644
index 0000000000000000000000000000000000000000..36107d6e804015e13d122c53cb035d33632678d2
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/application-pdf.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR�����������a��!IDATxڍӱ��0��{Aqs�]��M9p�I��#��� nN.
+..š�"����ic~�渢�\��/%�|�)����,���{�sO�c��RI�<"_Z ۶K���=�O-�8�k����z�h���Ff3����q\*:�@
���7���#��A�M���p΋2y8�N��z=p���[� Av8 A����Ѩ�%�Z
A��h<F��(���Ձl�W������n��v�r�����'@��2�W�_�F�:��_.
+�[-U����gB��ܣ*���()5h�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/application-x-executable.png b/core/themes/starterkit_theme/images/icons/application-x-executable.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5453217dc5cc30e805d3d0da8fa91e5a0684b86
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/application-x-executable.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR�����������7����tEXtSoftware�Adobe ImageReadyq�e<���_IDAT(S�ͱ	�@Dѩ�,�`�42���@����Z���#���d2!�4J�>dt��`�
,=ޛ���{g8���C	�PG(�<�h\���w�)E�o}�^�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/audio-x-generic.png b/core/themes/starterkit_theme/images/icons/audio-x-generic.png
new file mode 100644
index 0000000000000000000000000000000000000000..28d7f50862b5dbb153c0809e9119fd879d499788
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/audio-x-generic.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR�����������a��IDAT8Oc���?����'W1H-L�?�����w���dC�q��n��� ����8	�<��0��w��~���Z��{���=�������ל��?y_�������W6��ׯ`>_��,6L��P��0Hq�����N7�?ps����og��?���F#h��c��a���^$I������V�#���v8���sy�g�����)�������������o�(3���/��i�)�����ۉ����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/check.svg b/core/themes/starterkit_theme/images/icons/check.svg
new file mode 100644
index 0000000000000000000000000000000000000000..566cbc4c8e861890f47ea648f843511c68e38305
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#73b355"><path d="M6.464 13.676c-.194.194-.513.194-.707 0l-4.96-4.955c-.194-.193-.194-.513 0-.707l1.405-1.407c.194-.195.512-.195.707 0l2.849 2.848c.194.193.513.193.707 0l6.629-6.626c.195-.194.514-.194.707 0l1.404 1.404c.193.194.193.513 0 .707l-8.741 8.736z"/></svg>
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/error.svg b/core/themes/starterkit_theme/images/icons/error.svg
new file mode 100644
index 0000000000000000000000000000000000000000..151a1e67c929d1d8b01950224811c0a658e1aea9
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/error.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#e32700"><path d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm4.025 9.284c.062.063.1.149.1.239 0 .091-.037.177-.1.24l-1.262 1.262c-.064.062-.15.1-.24.1s-.176-.036-.24-.1l-2.283-2.283-2.286 2.283c-.064.062-.15.1-.24.1s-.176-.036-.24-.1l-1.261-1.262c-.063-.062-.1-.148-.1-.24 0-.088.036-.176.1-.238l2.283-2.285-2.283-2.284c-.063-.064-.1-.15-.1-.24s.036-.176.1-.24l1.262-1.262c.063-.063.149-.1.24-.1.089 0 .176.036.24.1l2.285 2.284 2.283-2.284c.064-.063.15-.1.24-.1s.176.036.24.1l1.262 1.262c.062.063.1.149.1.24 0 .089-.037.176-.1.24l-2.283 2.284 2.283 2.284z"/></svg>
diff --git a/core/themes/starterkit_theme/images/icons/feed.svg b/core/themes/starterkit_theme/images/icons/feed.svg
new file mode 100644
index 0000000000000000000000000000000000000000..595a9d9ab0d19202db8788f4de2e5858ed2b2404
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/feed.svg
@@ -0,0 +1,8 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+  <rect fill="#ff9900" width="16" height="16" x="0" y="0" rx="3" ry="3"/>
+  <g fill="#ffffff">
+    <circle cx="4.25" cy="11.812" r="1.5"/>
+    <path d="M10,13.312H7.875c0-2.83-2.295-5.125-5.125-5.125l0,0V6.062C6.754,6.062,10,9.308,10,13.312z"/>
+    <path d="M11.5,13.312c0-4.833-3.917-8.75-8.75-8.75V2.375c6.041,0,10.937,4.896,10.937,10.937H11.5z"/>
+  </g>
+</svg>
diff --git a/core/themes/starterkit_theme/images/icons/forum-icons.png b/core/themes/starterkit_theme/images/icons/forum-icons.png
new file mode 100644
index 0000000000000000000000000000000000000000..e291de672522d40458ed4b6fc15f58372c778afa
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/forum-icons.png
@@ -0,0 +1,10 @@
+�PNG
+
+���
IHDR����������"{�?��PLTE������������www�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������߯����������������������������������������������������������������������������������ۯ�������������������������������������������ד��������������������������������������tP[�����tRNS�	
+
+    %***+,..001479=HKMX\ddhiimsvxxxxxxyy{}������������������������������������������������������������������������甐��IDATx^����E�JiS
+-�����/R܊hq�W�P|d�]b������&�����圼���o��*
�mۨt���w?8����e��O�ձ����]���e���y���E�Y�?�s��8~@������t�8�A~������?s�$�$����s�c�=z�9s�v+O��mKP�l&��w{���O�<�3I�}tj���̠"�p훼��gM>��0��y�F�?����{�;~��mnxcKۏ
+��f9�w�=�uy޶�y&(�aa ��g�e��f3���)`0h^v���Z��䙠�r�5H�$?.`�q�c�W^(g�!�>3��D�4�����;x��bIv��� ���<�x��Tܻ�Ш=K��M�k�,�q��F������!�#��90&�V��$��ӀP�=�y$hO��>|~Q�qDn�Qd&��cV�W��-�����¥�z�U�q��-�E!�(�Vl�|0b�v�=�8��x0�}�@�x$>�G/L���"��W�Ϋ~�aE���(���4�E|s��<~rC�&�=7ݧl�s@!)<ɿ-�ԓ|=�Ŋ�8��sn���a�u�r��Ql�	Ls��� A�$��ʅ��7�h���t{4�0O���]��j\��E9���մ���0�;�
��߭9y����a0OH���x��Y������4����қ�g��g�懕g��x�#(�9yƣH�sA���9��Ȍ�΍q
+�Þ�B��ѫ�/��U����k�������p(�)C��H.}
+�P-XUO[��O�,f���@x5�LU�H@)��{�nz��/TU��"��Kf��'��Bc�<
+�q������~Z��˟ߠɷ9遟u]�<��%�>m�En�i�/�{TI?�<'*��K�ޣ�Y�{��ԏT�\�D�:�ˮ��-�U� �}"�u��߄�{��ӿb�4(Hd2�f���I�Kua�*�[�Aɫu����\�k���}�d��/ݲį���	W����=8�V��w�R����q�
>��{���I�F�E�2gz��L����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/help.png b/core/themes/starterkit_theme/images/icons/help.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcc5cac7956f6e1d0733695af8db4cffcef90d84
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/help.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR�����������a����IDATxڥ�=
+�@�s��#HN�#��"mnb�2G����-��,�B���^�B2���}��ܝ������VY�iP4��+(�k���b*��1;�d�&�Z�E��RY��-�aԸ=��
+���- ��-5�}/���-���a!�q�	�b������c��m5�3:9�NP�q@����:@b�d{���A�����D�3�Ag$�u;ٜ�Q�y#m��rl�t쫛O��B䃪	t�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/image-x-generic.png b/core/themes/starterkit_theme/images/icons/image-x-generic.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1b814f7cb6f4a21e165e88db557ffe4692babad
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/image-x-generic.png
@@ -0,0 +1,6 @@
+�PNG
+
+���
IHDR�����������a��HIDATxڕ�=K�P���'�.��Z*����q�N��!�JDGE�YA��IT��`S�4I�QLnm�{��Z�聇��&��K"� $I����D��1۶�p�^2*�S>�o���HϹ���|�/�e:����!�W��b�
+��
+�`�ȏ�א$\P#A���c��j֚ЄQR0�i�܌����ܒx�-p�I���F��r!#Юk)��-��T�W��iT�i0cvq��:��x�~�+7�we��r1��I/��W���$����(�u�񠛺��e� '��v#���mW��fnV�����\fۢ�0��;G@�
+�A �|	�@F����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/loading-small.gif b/core/themes/starterkit_theme/images/icons/loading-small.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5cbf6e7b75523144e46e36aba2d58263b767b93b
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/loading-small.gif
@@ -0,0 +1,25 @@
+GIF89a���������������������������������������������������{{{ssskkkcccZZZRRRJJJBBB:::111)))!!!������!�NETSCAPE2.0���!�
+��,���������&��6Me��K,k��G8@q�h/MG�H:��%#��Gc�4�D2a�8��@@�p2�Hfz�H,%���x"
+WrIix%pqX1*�=##���+�����������=���"���I�#3g�~��"	�"�>�w�
��	kX
(_�S(�As}RTx �(�oBB4��x�Z	%�q���!�
+��,��������'��GQe���04k<��\�nU����6�d�	'U!�`D �%�Xe�U(2�H�	`�%)2(*
��P���Eš	b%K`1K:$2$��P�{�(�������������{"��#�)1��%�%�%	
+#��k
+�{���"�	�?&�*E
���vl�� ��[8�w+��!��!�
+��,�������Ԡ'��WUe���a<k,VDQ��JG�7�G�`P6���YQ4 �Z�Cb4���A����Q���a^iU��M!��Q�C�X�#V
+
+n2��Q�
+91�����+������1��q~�=��wx:{e+�"
��%
��"]�)�<�H�*9�H~�1x��%��"�t���!�
+��,��������'��gYe���@k���ah<Z%V����D�e�HDf��!j�d)�X,�"�ϓ1
+�Fj�`:f�QE��dI�:{*+:k$

u�"��91>�
�����>���	��"��:�)E*��	)�%���#����
+�"�cI	���(�E�+{�����`��.�"��W��!�
+��,�������۠'��w]e��ҲH뺉��*��S%Z���"�<b
c"z$G��`8�6F����*>Q�0DG���ѨU,5q@0�E��sJ:}aL�G�9}����+��������#��}�%��W1*:"R)�L")�D��n�˺�9��R�;��ȶ#���Ϊ!��!�
+��,������ߠ'�$�8����6p����Q�x��%N��
+y<R���l"	��BQHddz��b��`�*�!MLj�����옵�F=�{2~5^|t
��"������9���5��"��"�*�~��$	�*	2���5	d#
+���"d����	��
+
+�oI
�5����Uc��pK ��!�
+��,��������'���ae��Uk,bP
�ަ��u�G큫L.��D"��&��D4a0ȒE2�.ȍ��h0&b҅+��v9ȕQI�,JfEsHR2$bv�#>#��{�
+
+���2
+�������H������#���"�#��$�"0*	*�+%{\"	�%����*��NUȷ�����LQ����!�	
+��,��������'���ee���4Yk��b&��ܴ8�
��x,�lh&8��DRQ���Q4g��5�A)q_�&��d�TBP�@UF2A1�*;$F$
s�

m1�"������J������$��,+:+��%
	y%
*	+
+	m��#�
+�%�
"��	��"
U����^�å�A!��;
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/menu-collapsed-rtl.png b/core/themes/starterkit_theme/images/icons/menu-collapsed-rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc8d0b8823a90704b3743f980108b8a7d914193c
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/menu-collapsed-rtl.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR��������������PLTE������U��~���tRNS�@��f���IDATc�``R`r`���
B|�O�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/menu-collapsed.png b/core/themes/starterkit_theme/images/icons/menu-collapsed.png
new file mode 100644
index 0000000000000000000000000000000000000000..91f3fd40ede024798b6de5ea2675bb692a3cfa95
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/menu-collapsed.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR�����������Ő���PLTE������U��~���tRNS�@��f���IDATcV`�@)ff�|�̷������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/menu-expanded.png b/core/themes/starterkit_theme/images/icons/menu-expanded.png
new file mode 100644
index 0000000000000000000000000000000000000000..46f39ecb351cff65243fa9a614a69d039e1302a5
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/menu-expanded.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR��������������PLTE������U��~���tRNS�@��f���IDATx�c��P�`� �������������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/no-thumbnail.png b/core/themes/starterkit_theme/images/icons/no-thumbnail.png
new file mode 100644
index 0000000000000000000000000000000000000000..926c5314eccfeb16e76a3594b927cb5e6af3be4f
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/no-thumbnail.png
@@ -0,0 +1,26 @@
+�PNG
+
+���
IHDR����������J�6����sRGB������PIDATx��Eu��&�����G��	�q8TBB`	�ZEz|�R[Km߈�(J������5$�65��=�P�lР��ӐI?��Ο���og�7���?�{Ξ��s��;߹3;;3;;l�{��r3cƌQ���;�|Ç_s�=��8O��[
+?��w�#޼z��/�	Mܽ����(Kl�E�O��(Z%B�f;�Vdd��)\0(lF�9s��0֚��/��,���8Mx��K��!x���\�`��:�o�K��$����)\*�h�>�&�e��&���e"��p�Jx�8c����V���2i��(MA�rU/��-��#/��Agqc\(9�la��===��J�E
��B�N�"�¢e˖m�'��,~M��T�S�0���J B���n�����.&���YPذ��kA���
B��[[�]	F衤*T�{o�нۂ�|�W<�y�}�R:�#��$LGr�)(��C�(��a����Q_d1�c��F��ZajY�����}��jr2ŦiXP�F"P���XM�x1�i6���:�Hm�k�C,9r�ܾ���Bx�<�����Ι��Wf���B�=��e��L����d^���Ӄ��O?��L\���F�
+c�Q��0���$n&��%.Tn���`����!���q��j��fZ�V8((�Z��*��$4crvGc�y'O�|��ݻ�`譌5<��P�7 ��2�,��[�����2�v|�{`@�Id�!
t�-�a1gB>�]�
+m��&�e�@M����K��];���\O�صkW��ƼKD-�1|;��6G,���"#6}���P��q���Ph	��5.`DDkV6�0W�u�q����AW�"�(��"�(�@J����(zz빸^�.�w��Iq�m4o/����Pc�� ��P~_e��L�2�"{��%�K�}[�U27�~���M��d+�jx���7�XŤ߆�s۱�%�AC�{������ă��<��[��F���l��\p�*짌-2�j±�m�5X�[�v����!�e�Xƶ
ͬa4����F[Bα�AA_���x��S�� �sJ��	s���̳O���q���� ��OX�� ���1��"��^����x�}���ba��%Th���2�R��d�E_`���(��RrӦM;�����J�5i]�Z�޾}�������F����m��uQHc�w��6X��P�7���2��1fQBK�}[��а�ea2�[�#�F�'�����k�c��.!#��d4��;���(�5ؤ�+.�ƾo2:���9	��b���\<i����F#tp��H�
+nj�|��N/�(||.z�o.�4(��%�G�
�ǻJח>�h�S<KE��$��6��[U2�exf�e!�=�\e`E��w�u�l�h�}���a���-�-�� ��O��ͽ�ڮ�>�JWE@PE@PE@PE@P�^�᥂����"kp��M��2��Mɒw��Ur��O�ei:4^++�@�0P�|��,L'�� W��?�9�1��ǢU�z�dD;4@<�߼s�5jy�_�31�,LF��tjF�v��laU��,묦�lip���S^i�~���Y%2��/K��k�	�L@ﱈ�h�M�:���;w>`t�\��'�L~�~� ;^r.�Ń;�4S.�y ~V��)��6KX���yz����������ݫh&
+���ip=;d�L�z���H��=���W\7��<E�s�<v���p�h�m��K�������Av�������%'����5�ڋ��L�9hIH��qyaT�������{�u����'��
H[ʒ̣���z3g������&L�t��m6-&\g�ytL���
+�\H��/��� ��ׁY��'��!�܎��%5h���ƒoqA2iҤQ.؍��4Z#��{5�.;����L܄'7
˖���G_��D��E�Q��V@�'���t��|\�{�����-2��:D�<��j����g���x�l�	��.�6��^i�
+�&�L)�ve����.������H�Wu~�N!��B�w#��+�:�RS�,v�l:p���܎�F�����Eax� g6�����Ƀ#[��mT{<[2�?'����}M�I�l���𔹷�u�
h1�C��d��W��wڙNn0�j�ުh�ϻ��~��9����4<h�_����v^:�Q��i-��K1��������Q����vhc1@x��O]W
+rMԢ����vh��jd�����`�MO���f���'��IR��th_hf.&�C�G�xr�
��:����z�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"��D��k�Xw�B'^���7�f���k�M�I���}ꩧ�f&�����菌5꜕+W��]Y��w�l��Trȹ�	+L�4�V���:�n\e��~I�����c�:�
+�x����Nf4ӵ	�>�z�~9[���N;�m۶�/����g��3�ҝ��T�x���^"{����]�bņ�T<�h������K�9{ �~�]w���y��O�޳u�֟�p��������o��I��i*>����]��d���Y�|s|��(6�'��LQ��q^��^�b��E�y���+3�,R=�Z=�:�r�7���I�d����Wȿ��e&���N[j�h���-@�^� h! ��)�J���6�1X��u7rP���8�Fm����������by{�k���Z��YN?�m���B�r���}9 ?M!?��������GJ�?�A�y�Ì�|������M������R��wif�+y[��@/Z��!�Edn?=%
�O��E����}B�ض�g�����HBR�3o���@�}O���^���䟺��e|�d>�cWo^��{����\�'��<`rO�����:���+�/��fƵ=�OL)=�G��:%�����R�S��m{��߭@;\���Ѯ��<�aϗ3�Yت�no��I ��{��^ �jêg1��抄d
�78l(Dr$	'��= ˞uA g�
+vz�n\�3��=*'{�����Ӗ�ㅧ���=�,�ﱳ�;Ml8%��um��)�e���1�A��x�1-u�i�L4��[h������$�����U�VU��`�'_��h����ou��&�.�p	����9_V\�Z�^O�I�II�F�K�xj�������a�.��b�ȧ�ʳ�=��e��	��0����$@�^͋\h�{\�H��^W�"�>Þh��`иq�6V�ȑ��bdߨ�G�h��^W��g	��M[Vx�ݱcG���3�8� 2�ؓ�c�fg�����]����P�ht<�׃��iU�lٲɕ�����_���<��UE��I���8��Q&��.�]�`��or!�|�ו�`�6c*���B%�+��˗g���o�,4?T�?���xV��ػ���B�$@ӆ�6U}UA[ ��
럻��ƽ�EO@sٛ���h<�>GF+B�"d]��7l�ܹ#]�D����s"���$@�ˏ|q.:��Bj��]qЎ`���f{���c���'WJ�s��(��=����
��Sk�ĵM��Y�O;���+�_;y���$1)��3bذ����rO�hr�NO~�������r��^\�%�O[��B��{���;t�/ OtГ��=���DoRl�y�
+����Lؙ�p�Ȼ�Y�p��ʇms�pR��̙���=^�	a��b�L�လ�6��]�|�d�ҒVQ�����+a��WE�^L��)x&,_��1;}aWS���ё��%���ι625������t�L���!���A��o�T	':��~�a���qF���yp.��%#gv�q�\]}��M�1���˅K�k�G�����'��Ǯ/"����M�xF�kZ�ĵ{�E�.�-�Ls�O�d~ߥ��[9%��v�V�x��t�(���y�v�y�d�S�mWG��Qc���6nܸv�ĉO��s]���G}�0�߂?*�5 9�Y��<WB&�EA���V�G#��W��ͽ��K��~�m��e
�#-���k��&���J#9'�L��9Lj���D�V���">Q��_b�^���
�]�}����h`�	0Ð���N\E���.�����.�Bc`��=��/�]:�ϛh~�+���]�d@��1Ht�J��m^�A�T�"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�h̦`�2�I93g�<����ݗ��N�=����a�����
+m����ߜ]����S~X�F�<��;����Qu��ɿ��,Y2��/�	ς���uE=D%��m�5k֬eum�_�񝖫�!.λx����Wpvt��*�����n����Q'�}֡Ł��ٛ��j��g!���X~-���i_v�}ʡg̘�g����R�o���6����!���BOO��˖-{�
+��c�wh6C�����1��YG~ϣ�tS^��c}
��r�?z�����?�ö�Sy1��O�/���?�^&�?���/��Z���M�S�W��W�v
M���NaW�2����8ɷ���M��-��������p�…���F���˟�ׯ_6/�o�땜R!�=���\ȟ|~خ�������0�'��+�B�#���la���r�U�T���o.��&<�
;vS9/��ߓڰ3:i�B��Ts�Eŕ�l�q?<~����s�(���x'�y���q�����̧+rUŴ�K6�:����@66/�q����/�+���E�^�S�O�c7X�,�QU@S��:AS���.��G^���������yYFlRO����\�bņT;-gH:4݋���"��qҤIo��]�]�����őo��8,�'�\��,�!���8��M��G���<��W�
�LE~��Ñ��?|�p:i������%nO�c�ړl�8��)S&3n�
+�&D(�u��d��˳��3/�r��#��hi?c����}b��S����12�~�#�m��
+&-һ��!)���〷��ಢ2���|�o�&ڌy~��P���R������n5jԱ�V��M��M��|�2T�^*G~��ɩw�}����L�:u�Ν;	��2�,���+��]ck�CS���e�پ҃�|�V�$_�T*�A���đ/�4)��Ʊ���Ct�仐'߷Cx���X�������!���}��N
�m2�B*�7#m\�
+�y�����8v��#O��V�\)-{#�F:�,������>n�3��S7f�:��q��ɫt/�H��1�))ƌ�;���O,�Ώ̙3���
+T������vTI�3˄AH�q�رcO��,���ŭ���83��7П=8�3K�~�#�-e�%�"�S�׭�Ƶ��cC �y��~��4�)Cpb���n!��U�yR�K�Zh�T��y;�ָ�º&0��Egf<�H��1� 0�¶q̘1�Z��.g%�2DXzD�S����j�y��%�5t�A�|�@)cCd}�u�d����d��kq��D�i��V�xZ��C�0��è�|�И�Q-4��d�o�A!�x(93-��׮]�3ҙ��#}D'�Y�\��B�!��Bd���JP"9�B�����6݋���_�1+7d���e�������Q
�/
+�q���B���C�<ݷ��/��A�M�Ϻ��"���*�2�X*;��J%dh�C���B��C����3�Ǹ����#�Kt-���N�|�ʫN[�Շ�`'�
tݳ��k�c�=Bcb��?�q�h�_�$g����Z^"�SG�Zha�#㥵�,q�G;R+=�w�~�=�؝�>���#��|��ȯ��r�`�^_8+/_tW�rh'-uh�x��u��E�jӦM�Ɣ�����4���qh�ή�A��F94�� ��休�{����<�S���_����:.B�,虆3�1"MWX3|KuKy�2u��QM�e8�2�R��b��e"��M��?+��#OJ��&�^��n��n���X_�"_ʫQG�^
+�yQ:�}��h���A�5۷o�=������#c��3��on��"+O�Z6��	n�ӳ	�k��/;N�����!��2-L��=i����S7go�Z)Q���Xm��+��N�4
+y+�p/�0�r����K]j�$Ǹ!D.��-ӧO�	��R}"[$����0-��CՙG�3')�&.���0`�Eĥ����oq�u�֟��K򤡅:gގ�+Z��#
+;�ai�8
+�{D��Op���Q))��f/�#ԑ�N~S�?�<��ylD^��3p��"�4��w���%C�Y�W��gi�����b�b~L�&��W�](���}9p����9x,��튃:��K�.��(���}9��'�.�[I���T8�张9wb���-łц<���4d�jC�����"_ac�����6���e���(�)ȷ�e��oU9Z�kb]�KZ��kJ�H�0���(�߄#�ǟ1�:�	�9���hJ��ڑ}�x�!Cw���-V� U�����#���H�ބf���#����K�-��$9x�2FpݼC�ˑ������K)Hq�!}dO2Y8tFdFt�H����/��G��\�r�O����ꛢ3"$��8X��Z��	X��tC��`��C��͗��+�H��VJ���i��H��)lR��R���w�M&N����1{b��in������Z�6�MX����YG~���f��e���.>Ň��3���J}�*����R�k�м�����k�
g̘tZCꗶ�Fe�jo�iR(d��C۠Ȧ�/~�WA��hx=v_�n�75u3�N��:t���_CW�
+�S��M��۲��ٳgg_v�|��C����ɗ,Y2�V�B��,��4Yb�
>���ɒ�o͚5k�:ok8ա[��2�>��g}4w��߱�?�<L��C{�p?�~�W��)kS�@[C�������mz(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(��"�(�0����>K�9����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/package-x-generic.png b/core/themes/starterkit_theme/images/icons/package-x-generic.png
new file mode 100644
index 0000000000000000000000000000000000000000..21fc382cba23efb9d7cfaefb6a98b86324d531e3
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/package-x-generic.png
@@ -0,0 +1,4 @@
+�PNG
+
+���
IHDR�����������7����tEXtSoftware�Adobe ImageReadyq�e<����IDAT(S��1�0�|�P�P�D�4��T�H�qPȲ>��c��h��<Y��(
+6**qO�0�'�_���u&�
Q�g�CW�p&[\���3�B{�;-N�BK*6T6���Ł�B��K�Q#Q�ј	����_s=oH�>-�".�;�C����0`"�a2�\�N�{ӆ�i��������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/required.svg b/core/themes/starterkit_theme/images/icons/required.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f7882d6df9b941fe722f3e6921f122e39b11f20d
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/required.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#EE0000"  d="M0,7.562l1.114-3.438c2.565,0.906,4.43,1.688,5.59,2.35C6.398,3.553,6.237,1.544,6.22,0.447h3.511 c-0.05,1.597-0.234,3.6-0.558,6.003c1.664-0.838,3.566-1.613,5.714-2.325L16,7.562c-2.05,0.678-4.06,1.131-6.028,1.356 c0.984,0.856,2.372,2.381,4.166,4.575l-2.906,2.059c-0.935-1.274-2.041-3.009-3.316-5.206c-1.194,2.275-2.244,4.013-3.147,5.206 l-2.856-2.059c1.872-2.307,3.211-3.832,4.017-4.575C3.849,8.516,1.872,8.062,0,7.562"/></svg>
diff --git a/core/themes/starterkit_theme/images/icons/text-html.png b/core/themes/starterkit_theme/images/icons/text-html.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c7c7932c25ad93adc9c9e6962d984d1703cd17f
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/text-html.png
@@ -0,0 +1,7 @@
+�PNG
+
+���
IHDR�����������a����IDATxڍ��
+�@�}�ަS��=@��7:G��� ��	�w�۲
+��o@��vǁ�f��)�1q���s?����Z;��*W��
+PY�I0F�??3� �sIt�^AQD��+(�2�.0�0���_���ۄ��9�/O�3��dwD�Ϧi�;^�7/�W��~�t�"�\ÙW xB]�BP��@)]���m�����
+�c�0��������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/text-plain.png b/core/themes/starterkit_theme/images/icons/text-plain.png
new file mode 100644
index 0000000000000000000000000000000000000000..06804849b8331ed8be3d1ae089311ae58ea79c83
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/text-plain.png
@@ -0,0 +1,4 @@
+�PNG
+
+���
IHDR�����������7����tEXtSoftware�Adobe ImageReadyq�e<���~IDAT(S���	�0E3�8��l���ɋ 
+���km���<hh��)�@E���f�#�^)h����"jq�I�Q�u���&0���A��	��d�J�6t%�����1r*A�?��?�T��f;�����������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/text-x-generic.png b/core/themes/starterkit_theme/images/icons/text-x-generic.png
new file mode 100644
index 0000000000000000000000000000000000000000..06804849b8331ed8be3d1ae089311ae58ea79c83
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/text-x-generic.png
@@ -0,0 +1,4 @@
+�PNG
+
+���
IHDR�����������7����tEXtSoftware�Adobe ImageReadyq�e<���~IDAT(S���	�0E3�8��l���ɋ 
+���km���<hh��)�@E���f�#�^)h����"jq�I�Q�u���&0���A��	��d�J�6t%�����1r*A�?��?�T��f;�����������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/text-x-script.png b/core/themes/starterkit_theme/images/icons/text-x-script.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9ecca813882ad9d8f3509464e2d8ac017910b81
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/text-x-script.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR�����������a����IDATxڝ��
+�@E����U��}@?���E!D �� YRM�̗w���
�zpxsa�a��q��E�p�MP�5�e9��*S2�
+0Q
�E�ώ�U�$I.��V�R�B?қ1�eV���d<��ʣ<��Ȃ�(h�����&��_��d`#>˂�i�޴��fƖ<륫K*{ �|���p	"΢�_�F���ڶ��Eaw�_���>2���Z����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/video-x-generic.png b/core/themes/starterkit_theme/images/icons/video-x-generic.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2b71f95d9e1a5bf86d90a1272bf4f9ae44fcb71
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/video-x-generic.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR�����������7����tEXtSoftware�Adobe ImageReadyq�e<���xIDAT(ϕ�11�V>�(v�IEO��
+`��Av�2]4��	�F��BA10[���c�	�K��pK�<�}c�=7S�b��Q0����,<�B=S�����\�
+�� �y�g7aA�πǴ"�j����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/warning.svg b/core/themes/starterkit_theme/images/icons/warning.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1498a41f4d7ec3466a0409f225eb5e9097ef9fd8
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/warning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#e29700"><path d="M14.66 12.316l-5.316-10.633c-.738-1.476-1.946-1.476-2.685 0l-5.317 10.633c-.738 1.477.008 2.684 1.658 2.684h10.002c1.65 0 2.396-1.207 1.658-2.684zm-7.66-8.316h2.002v5h-2.002v-5zm2.252 8.615c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.239c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.239z"/></svg>
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/x-office-document.png b/core/themes/starterkit_theme/images/icons/x-office-document.png
new file mode 100644
index 0000000000000000000000000000000000000000..40db538fcb71e1f46147a717cdf7134c4e74a239
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/x-office-document.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR�����������a����IDATx�ՓA
+!E=k/��,��:��܉��TR�c3���l���� ⎵��ա�q�#�9cJI��\�
+(f{z��;k�qF�IS��^�2dS�snB���	b�����5(�T�Z���:�����3�֎���@�|���~-�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/x-office-presentation.png b/core/themes/starterkit_theme/images/icons/x-office-presentation.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb119e5ba91dd5141e07aad5229754cd06401c99
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/x-office-presentation.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR�����������a���|IDATx���
+� �}�^�st��o1=�r�`1�������
"�����	�=�V�E)EJVS@9���F^���F S�RRȰ���&����+�F~ �~�z��}�GB�3��F�[�E
+. 4��;�����IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/images/icons/x-office-spreadsheet.png b/core/themes/starterkit_theme/images/icons/x-office-spreadsheet.png
new file mode 100644
index 0000000000000000000000000000000000000000..9af7b61ea11fb8bd71c0b5c6506a2101d5c1f714
--- /dev/null
+++ b/core/themes/starterkit_theme/images/icons/x-office-spreadsheet.png
@@ -0,0 +1,4 @@
+�PNG
+
+���
IHDR�����������a���~IDATx���	� E=u��:@��eȳ�`M�B E"�C{臇��_4�pa��6��w�!�ؐR��UP�}j��"��<H�*��7ȰL8�z�	B4�]�/5(�|������j�=�.E
+N� �8������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/js/media_embed_ckeditor.theme.es6.js b/core/themes/starterkit_theme/js/media_embed_ckeditor.theme.es6.js
new file mode 100644
index 0000000000000000000000000000000000000000..f66b96c810b0a860727887e132173e8c6352a2c0
--- /dev/null
+++ b/core/themes/starterkit_theme/js/media_embed_ckeditor.theme.es6.js
@@ -0,0 +1,22 @@
+/**
+ * @file
+ * Theme overrides for the Media Embed CKEditor plugin.
+ */
+
+((Drupal) => {
+  /**
+   * Themes the error displayed when the media embed preview fails.
+   *
+   * @param {string} error
+   *   The error message to display
+   *
+   * @return {string}
+   *   A string representing a DOM fragment.
+   *
+   * @see media-embed-error.html.twig
+   */
+  Drupal.theme.mediaEmbedPreviewError = () =>
+    `<div class="media-embed-error media-embed-error--preview-error">${Drupal.t(
+      'An error occurred while trying to preview the media. Please save your work and reload this page.',
+    )}</div>`;
+})(Drupal);
diff --git a/core/themes/starterkit_theme/js/media_embed_ckeditor.theme.js b/core/themes/starterkit_theme/js/media_embed_ckeditor.theme.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b9d95999e8e2bd85013524aa5443c9832cf7c4c
--- /dev/null
+++ b/core/themes/starterkit_theme/js/media_embed_ckeditor.theme.js
@@ -0,0 +1,12 @@
+/**
+* DO NOT EDIT THIS FILE.
+* See the following change record for more information,
+* https://www.drupal.org/node/2815083
+* @preserve
+**/
+
+(function (Drupal) {
+  Drupal.theme.mediaEmbedPreviewError = function () {
+    return "<div class=\"media-embed-error media-embed-error--preview-error\">".concat(Drupal.t('An error occurred while trying to preview the media. Please save your work and reload this page.'), "</div>");
+  };
+})(Drupal);
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/logo.svg b/core/themes/starterkit_theme/logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7d7cf7c6b1f1653979084fbcb2c57f4d71fa4596
--- /dev/null
+++ b/core/themes/starterkit_theme/logo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="57" height="66" viewBox="471.5 467 57 66" enable-background="new 471.5 467 57 66"><path opacity=".2" fill="#303030" d="M528.5 504.965c0 16.634-13.123 27.615-28.24 27.615-10.29 0-19.894-5.523-24.978-14.167l.605-.027c1.313 1.192 3.39 2.58 7.404 2.515 4.77-.064 5.645-.875 9.855-2.756 22.716-10.17 26.925-19.457 27.736-21.59s2.013-5.587.756-9.415c-.242-.737-.42-1.333-.54-1.808-3.018-3.372-6.017-5.225-6.92-5.784-.14-.093-.29-.177-.43-.26l.44.26c2.01 1.247 14.314 8.782 14.314 25.417z"/><path fill="#fff" d="M509.09 518.507c1.006 0 2.077.065 2.83.568.756.503 1.193 1.63 1.445 2.263.25.634 0 1.006-.503 1.258-.438.25-.503.12-.94-.69-.44-.81-.82-1.63-3.01-1.63s-2.887.755-3.948 1.63c-1.062.876-1.443 1.193-1.825.69s-.253-1.006.437-1.63 1.825-1.63 2.888-2.077c1.06-.45 1.62-.383 2.625-.383zm-10.413 7.152c1.257 1.005 3.14 1.825 7.153 1.825 4.015 0 6.836-1.137 8.094-2.077.568-.438.82-.065.875.187.056.25.186.624-.252 1.07-.316.317-3.194 2.33-6.594 2.636-3.4.31-7.964.504-10.73-2.01-.438-.44-.316-1.07 0-1.323.317-.25.568-.438.94-.438.374.008.317.008.513.13z"/><path opacity=".2" fill="#aaa" d="M520.89 496.545c-.81 2.133-5.02 11.42-27.735 21.59-4.21 1.88-5.085 2.69-9.854 2.756-4.013.066-6.09-1.32-7.403-2.514l-.605.028h-.01c-2.393-4.042-3.78-8.783-3.78-13.952 0-7.852 2.97-13.654 6.287-17.687.11-.13.213-.26.325-.382 2.683-3.148 5.55-5.17 7.218-6.203.038-.028.075-.047.112-.065.42-.25.754-.447.987-.568 2.757-1.51 4.77-2.263 7.963-4.77.12-.092.242-.186.354-.288l.008-.01c.875-.754 1.64-1.76 2.18-3.4v-.008c.325-.97.567-2.16.716-3.65l.02.018c2.253 2.69 4.954 5.886 6.89 7.144.69.447 1.38.848 2.068 1.202l.3.15c2.243 1.126 4.507 1.945 6.807 3.333l.428.26c.903.56 3.902 2.412 6.92 5.784.12.475.298 1.07.54 1.807 1.274 3.837.073 7.292-.737 9.425z"/><path opacity=".5" fill="#333" d="M514.176 479.538c-3.26-2.077-6.464-2.887-9.603-4.955-1.938-1.267-4.64-4.47-6.893-7.162-.438 4.332-1.686 6.148-3.26 7.35-3.195 2.515-5.207 3.26-7.963 4.77-2.338 1.256-14.958 8.726-14.958 24.913 0 5.17 1.387 9.91 3.77 13.96 5.077 8.635 14.68 14.158 24.97 14.158 15.126 0 28.24-10.98 28.24-27.614 0-9.127-3.707-15.526-7.386-19.633-3.016-3.382-6.015-5.217-6.918-5.785zm7.627 7.34c4.117 5.15 6.213 11.23 6.213 18.077 0 3.968-.755 7.712-2.245 11.148-1.414 3.25-3.444 6.13-6.053 8.56-5.15 4.806-12.062 7.45-19.475 7.45-3.67 0-7.265-.698-10.692-2.086-3.372-1.36-6.398-3.297-9.016-5.774-5.532-5.225-8.57-12.257-8.57-19.8 0-6.716 2.18-12.695 6.483-17.753 3.288-3.865 6.836-6.007 8.196-6.743.67-.363 1.285-.69 1.89-.997 1.892-.97 3.68-1.89 6.14-3.818 1.312-.997 2.71-2.58 3.305-6.585 2.077 2.468 4.48 5.234 6.314 6.426 1.63 1.08 3.307 1.835 4.918 2.562 1.527.69 3.11 1.406 4.676 2.403l.056.037c4.62 2.84 7.06 5.896 7.86 6.892z"/><path opacity=".5" fill="#fff" d="M497.98 468.678c.874 2.58.753 3.893.753 4.452 0 .56-.307 2.077-1.313 2.832-.438.317-.568.568-.568.624 0 .25.568.438.568 1.006 0 .69-.317 2.077-3.642 5.393-3.325 3.316-8.103 6.278-11.8 8.103-3.698 1.826-5.468 1.686-5.97.81s.185-2.83 2.514-5.392l9.667-6.278 9.164-6.398.503-2.44"/><path fill="#fff" d="M497.98 468.613c-.57 4.145-1.826 5.393-3.512 6.715-2.83 2.133-5.588 3.446-6.212 3.763-1.63.82-7.535 4.08-10.608 8.784-.94 1.444 0 2.012.186 2.133.187.12 2.33.372 6.9-2.385 4.574-2.757 6.595-4.387 9.175-7.078 1.377-1.444 1.573-2.263 1.573-2.636 0-.438-.316-.624-.82-.754-.25-.065-.316-.187 0-.373.317-.186 1.622-.82 1.938-1.07.318-.25 1.827-1.257 1.882-2.887.065-1.63-.056-2.766-.503-4.21zm-14.112 45.628c.065-4.898 4.648-9.472 10.422-9.536 7.348-.065 12.424 7.283 16.13 7.208 3.14-.064 9.166-6.212 12.118-6.212 3.14 0 4.014 3.26 4.014 5.206 0 1.938-.623 5.458-2.133 7.656-1.51 2.198-2.44 3.008-4.2 2.888-2.264-.187-6.78-7.21-9.67-7.35-3.64-.12-11.547 7.6-17.75 7.6-3.763 0-4.9-.567-6.147-1.378-1.92-1.312-2.85-3.315-2.785-6.08z"/></svg>
diff --git a/core/themes/starterkit_theme/screenshot.png b/core/themes/starterkit_theme/screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d8e3956f94422f938f035186192273883fc3b0a
--- /dev/null
+++ b/core/themes/starterkit_theme/screenshot.png
@@ -0,0 +1,159 @@
+�PNG
+
+���
IHDR��L�������[)���PLTE���jmc���������������>>>WWW;;;QQQBBB�����������®��������TTT������~~~������yyy888����DDD*)*���333lll&&&���^^^���������������HHH000���LLLFFFNNNccc---pqp���"!"���������������YYY��󑑒���JJJ�����ʌ��vvu{|{[[\������eef��ߚ�����������������555���ssthgh���nnn```������������������iij������u�����-*#9C<T60FwvxOKY/%I���keY���VRa>8HB<3
!���rrre_T3,$��<6.1,>�&EHB9"/���HDS$*������SMC<J�;������NH=dao���nkv#:81).'qm_���IB]5*T2{w�^[g=0bNFfZSm���FR�'5�<4R���( Zf�!���bZL4?�Ƚ����}w������ԝ����{hbyE6mvvi���T_𠍚[VM������"������ȧ��pi�M[𮟟ó����
+�qkv�cn򠜱���}p�uk�^Vz���XH������������TIr���j\�-W���J9{�zs���������gZ��}�uq�^N�ZSHǽ������㘉���ק���������������v~������zkfomG��ϯ�Ņz���ꗋ�yyUrd��nstcmr]`ľ۔�zcP���;A���tRNS������� IDATx���1��0��0�Uj/`p7Yܥ�aH�K�	la7a���'�m�!9�������06Ҏ~r_{x��&	��ޱ{��8Qw%�?�Ɋ�][�/c���d���*��`��cM�L'x?����^�U
+״��ފI�� ���3�b�[!��1��sk�NC9�֘�ѣ��r<���Ƒf�����[�&�S�$c
+��?I�p��TKJQT����� ?&Ӊ)�����@nLuGQxR~A��;@fL]-��/���
��45I�W�!�ؚ 3����Jl����b�j^�뾩�*Ȋ�^#R��+qXrc*x�?��iBi`cL�fz�Ch%6pȋ���Sb�g7�B�/���te"�-1���f&�cV�O!�֧C��d�̘/t�'c��<�뱟hfq�2cj�.�C��P��[^�OȊ����ݳ:�a���c::�E-�[��B�(��-]J����(-�C�v~�Ap�1��a��)��a�J�e�`l��Yǹ*�?�'-�Ƙ\ϏQna�
+oY����������Z�
+�k�m�IDi�l�K��6ƿkR���6DŽ\K��Kq��(H�/���1�>^�Q
N2\S]Ϩ�B��H��IL�#&��N�GO��gc�ku����:�]1��EED9gʓ'���Iщ/`;c���h�g���&��<���1A�}\s�@:a��m���	�wm���t	 �����.&�隲l�Ǯm�]L�ۘV�=;6��8��5R��!K���j��\��c���CX��['$8�W����}|�o�?��C/�SL"�I^�b��i0���y2�F��3=D��ie�����v�t�G���4B�lLtoyi\�<��{��숑+D��t#�%>V�hF.�^+��w��9��;�r��L�.{�����&L[= r:��:敝ų��m4#+,���W�\�j��󶔀�E�y�70B�|Ln��ι`�KG�K����s����/��e7�(��p�t��\�ށ�֖K�@�j�BE�h�M�؍�;�r���ĕ/��g�1|$�ht�Q�t1_�a&39g�o&���ۘ޿����l�������q�7��:�}��݇�h4��v�'4��)� 9�w,A� y�X��V����?�ۻ*s67?`.ޜ������LZ|g��7%�R��^>CsE�1��`I�/m7	7��a��ȩ�����5���6��ⷜ����&��������Q@��3
+3�82���@��w;��1�i������	'`g���&�K�K�j�T�G�|���}��C�7?������j�'��5���4�J��o3<|xΦ���ͽ�^�\���c����z�j~�ci�&g���t��Pt!�=@g�h����J��n�E�D�a��p-��$�k�[�[��O����c�a$�r64WcS��XE�1�N�+��
��y�9�;tP-o=aŁq��<���i]�Z�c�A�2�>
+س�G˥r4����>�֋�^>'EVl�;G�۽�h���m�+��"�Q����g��la�N_a�`�*-���ɩ������!ND���'�N+k����0`2�Ec�VG3w���F�;g�{⤼�*��H�:��Su�h�����c
+v�����2p�U6Wn�-Cn�"�!�f��o��a:��Z�q�a``AXΖđ=��G�؏@']aWn�J��A8l�yh��>?��۴���Ľma�=�k~]��:Cy[^�	?s:G�\�0��g] &x/"m�>�$��nI,
V��u N
���$��9�q�)G�;l��AG��ʼn�J�cJޔC�T����yn��^������i�/iDMOϵ�w��dq�o�MB0�׼[{x-m��>�֧�ǁ����=R��޸�f�����1�w�7Ŧ�S�v�)^��sn�˃�~|�\�j�ቸs�|Pl@=�Z�gCX�"M��<�)��٧س�B6�)8�J�J*��I��M�A͕�ǔ�@W$�H&/6�����#2r�K�.��T��q�7a���#G1.-�X����@�ekWOQ�s�{���H�L4M+,�O/�"���ۙ	�0 �8������.S�� ׺\b�9z"�m�x����G��@ux<ǽ��aI�=�k
+�������ot�xpC��h�k��B�K7�+0�)�	DV �����{jH[��_YF�Gkxz���>Q���_�\����1��'l� ���T�PF�?fٳaH�WǑ�H���
e���
+���ӂ1]܌�.\����E������t!F��%�@i〾�S
�R��l����<�9�\<P�sX0�����T�?�i-�tRS7{�? y�h���b��XJ��#g��@z�ӡ��I�:�I���U������i~�h+9�RA�P�s
	�ARa�J���X(_h9-�w�œo>�B����}@���YG����1#��
+�7PU�E�O{�@�w��4ח�F�Is�h1i��4׏�F�Is�h1i��4׏�F�Is�h1i��4���1m>���n�ih���|a�^R��8��b_�Q�Z#������-�R;Ђd������#��F��v,�+܂���[�7�p���U��9�ΐB�[Z�,�1픁f��}(��#���<z�4�����+�[Y#������"��tS�=���ز(lꮪ�����S-���(���d�I�c�ލ�3�fG-����f��\(&1��V�ap��lw3�IR{��2�\cj.Ǚ4����O݅?r����n��QLv��4}��o��_�I�$�<^?(�o�>�u>E�ٻC�a ����>j`l �%PX۔����r�.�u�:UgNdՊ���_͈��{`��d�P��]@���r�4��4���v8
+J}S�~�m�-W��p�R�Z�GJ�qk?J
��:�l5�����J
�t:s.r��)�n��{�35SMї��l�"����#{_V��i�)%YV#ƈ]#�1�L&��
���Ƥ��Ƥ4&�}��d-�8������_��5r��0�b�27��
+TZ��JBKàƝ]z:_g3����;Yp���?	�Y
+�)%�k���.�
+tzv�ϙ�М�e��ŭl-�~rё�7A��Ew�
+O�5z���������4�
+%2���ɂh_L�-�
+��[E�6��f� ���&k'i��^g�Y��2gӁh��kJ	�8%���9!�•��^�p�c��bLĘ�|��)F�]yx�m�:6�F���%�S�x�n,�T�������^�UH���U3�����ϡ�k�z�ѡ���P�ȍ�3�ޘ��k�i�+���NG`x�)s���1�4&`�Z!�"1���F}0_���p�E)��3�����~}� �B�Ƙ����j
^��˽���������~�˒Ǵ�����r�
+�í�x6��rus��SF�Z�|k��v@*���|Լ���t��$+�t��D/펩Id�,���x<�w
+펩�d_`��� ����u�e��S���R)�襽1
�_�k����s
+}�1�y1&bLt>���c"�D�Ø�1��0&�Ƙ�`��	}CL��7�����@�7&c$���#�dŜVkỏ����V{�:цv�z��K�y��I�j�c�z?�ѯ�J��4�����Ɍ��֡�ϘJ����{wȂ0`���&��?a�mA����k��p`�nCDV�c�6���<PX�d����X�;�ClL�	������!M)}���+?g��{{�m]v��M�M��v��
s�1��\a��1�p�tĭ�'"���GR�v
+~CLЋ�@LЇ�@LЇ�@LЇ�@LЇ�@LЇ�@LЇ�@LЇ�@LЇ�@LЇ�0eL�<
���o��e2J6�^$�o2�7�v��T�q|���o�$O	���ښ��(bn%��f������ov�w���|��^�fv�نij�~�(g��(~9�
+�ŗ������Z���
y~ �F���wjwaO7�%V�e�@d -Wb���=e����fK���tI߸�Ox��.E)��O��+#�63�wX�F`L���������|��ڬn�"�w�4h����6s2m�5Υ;�%Ϗ���TO:>I�Ӂ@mK=�ğ�COZ�j'���P�h^�B�J�qOڍ?z5�~L�t�l�[ZZN�_=��g�9�S*~Oj�=��6���p/�09��dȽ��f,}��q�'%�D��/CA��{���¦���~�;����Ll*��˶�_m�'�H+=�,� b��
i#�°�Pݐf^`[Y��f��9�Lh��-؏���'�i���
��*ï��gUlՆ�8Ƙn��	T��c����%���(����;�����<�%���4�8�T���꾑g`1�aK#@m?'&��+p_Z��YƥI ^��l�Z�����,MV�H21�AZs88�BT�<dϺ�.'��*0�`*3����1`G�d�Q����ωi8�W����fV�R�����,,.���K5�Rڇ�I�LTX��XL5��1�J�0o�IiXQ�d�XTw��BC�5&��H*��;1=���BDj��N�h@M����=��L�)�)5&6uKV���ŸNL�F�$<����#�؛|�Suc�M����T�ιt%SF:�%y�$}�UϾ=X������r;�\�g����`�/9�X���4m���[1% �}�O�1x��>ASy*��^8�l��@%06����N�D��.�Ɗ-®,��-x�0|�4ySN���>��(��i��,�i��XL�p^v��:iV��+&�K�Ï0��f�e���k܊�\�v�+�	}S�SRO��3��ju���t[�%5��);&ŲG�`��}G�hrQ�&�C{�k��m�m���
e��I,�3���s�/��z�c�%�\3�#����e&��|��c��^^N>O}��KL����k���K���K}��<k��i]R�f��1���ԆWNL#�^$���{miʼn������Yj�1E ��8�)���T�bPLm��!�U(�7Ҫ��d�&�K��/ޕ�Ĵ�r��1���|���e����!W��_�$%E�F�
%��H�d�.�`J��P*i��v���W1���ULiw�c({1��)����Ϥa�������1���g�V*X����]��'�$,Zj^Q�SSE8��e��Ҏv�r��c���w��V������N��@5]>���"U�ʺ����)a/^�pS��d܎i���� ˋi�1M��T�йJ!�P����9������R�ɐ"�\~3p	IE���L�1��
+J%�~�d�+ +�������x	P������x ��$�B]�cw#ڀq��.��+K���!p�6�>�:��<���7z;ㇲ�K��	IA�d�")u�J=&���r������NJ�Iؔ�:��'��t�ʙ�5�ML���.$}��wO��O�>�!��^Iy(��P��!.�s	b�'ӂ44l�1�T�K-'��5@)-��d�^�
"�ϖ1$��]�'g�S��Y�߲ިg�~`ɰ�[o��[g�Z[���/�-˼JK���y�(��7ά���S�e�F{�I��fY6��|�؎z�-k[�fdSjY�K�U�����vdT���,k�,}w�'c�j��Yw|h4Qo�̎f����_�ʇ�b4�����1�x*�/�獩�L�_��������b��|��<^L����Nj�������yQ"�8^���-M���|I_��-u�խU��-ws�u]�5((��Ct
+"�EЭCP�BD�!:�v�{t�NA�A��CoT��|pfxn_�y��1Q4&��Cc�hLԿ��Dј�����1y=���ӄ�*-�G��g��Xi+��#�(�N�o(��m��M�� ;�v9���4<�b��Ч$-�Hi��e@%h�`���:|�4X�@7�.βH��xA-!��~��Տ������D-v3��O��m`�=/�
+��WOo��Iwr����Zى/3k"b/�੻�N1�"�-����Z�BA��/���i��%I���-j|��8�A C�X����"�8/�P���u��1���յ�K�th�%�rX]q�&�-��YT���.��.�sFo����WG�烮����cr��&_�&��:סK���熤[�F]z���I6n\����\�
@�g%
+�b`#�i�+��
����O��tV����f�v�CB�Z BLSl�Z@��q�r֦��H>@�+�1i��Ĭk*�9�i�i�ډ�Y���v��P�]i#+FHsxv�S̪���Y�&"`
	,!����(EW�ꁖq�K��2t12@�^mF��r@ӂz[�BS.*d�Q@5C�7!�~%�oo����շܱ~G�~`��w��6�Z �
����:#���끱��ƀf*�|&��ld%�1��jdx��p�؊Ge�ӷ9&��Bɍk
+H��Y�P��sL
���R	��N?m|��j��3@h��Io��f�w}�v/�%�lfhI��r��<�RO����\��i!	1�"��j9ߐo�.�f*c���l������4�X��v[gq��&ȥ3C��+�	
�(�\%�9g���b�!z1�Z�����
+]������v��i�bZ��n�4,�i�l�9!&��I�*f�R��2�pζ��" (�7��@�������y��I)H�ʈkɤ�/�
���G�����s�����t��
̐!Ƥ�m�b�B�am��Վ�Y�7
�R4$��"6;�
�6Ɠ���-���-l��F-�g�x�ۖ��Fd[4}R���x�`]��*İ�P�Ğ"c�b+18YPF��U��SH��}��PX-+���]&��oGJ��D��X;���H��@�nl���h
+�<K�P-�z2���”R`�F��j��T��m6l@i5V��*���X����xT^��j=�Ҥ�*�F�����"e(�8|�&�
+�:���r������ԟX�'�nj���eѢf���b��� �I&EG�<��bIF�3J��۷C�;t��6HG���z�7|��5�#l�C�p�ba��o�׮-kϝ<7�ڹ��-&�M	�,�-����E�d�k������l�oj�����s'OW���{���]����آE�#�26�ɮU.S.��'�_?~��B���ý	bJ����KA��-Ko�#��T�\����Np��=X��޺���{_��D��hL�/�L�C��1ƴ�\^��sn�����{/o�\����Gg�Bc�~!�#�.>�0�n�Lv��Ϸvk�]�<}6�ݔ2�]9�����hL�Oc:q�؞���u�i�����O�'�?~}m^�yxy�����w&>��L4&�1]�z�����.޺��
+��l��˷�Ϟ=��^ߺ�o��煚�w7N4&��1�c�n^����#|C|C"�'��ă�� ��L<x��$�����J�����&9��:\�"j�A��!��ˬL]�á�t�;�ԗ���?�|�K�~ϯO��ݙ\��ݡkC/�;�}�˯���\֛/w�;}���7����#���L�b,7�t��}}�}�,�@h����$O?{V��v��rٙH���%=�����˭:s�:M[��(Z�Xw_=dz<�k��Z�u�� 8�����1
�����UUZ�5FQJj)-E0<��V*��2#d2��3�΅��BWίY�U4B*UL!F��2jz��W�J�v
H0���3ݿz~h����{�<�PQ�f1�Di���e[G�-cL�es�\�sw΁�{N��ҽ�Uͪ��⠴��T���T��
+�Mޘ&��v�pb��������}Y6:8��%�H�kC���J�\��^�\vL��M�9z�|�r���7z�(�P�^��r'c’�?�M�4&Ҭ�=���PP��Y
+P�TPQ�˂(8vY�G��l�U��+)d2��aZ�lY������ưl0JcS�)IM.8�A���M�xs���oj8�ooZ��P�x	HАDQC�T����t��%�e����m�5C&���%�xEӂ�Ƥ�8���(�	�@v,���JMƣ�U�,��\7L�n�Q�?�H �$A�iH
��Y*i�*9	xi�
9�k�5׌�c��
�q*��j
+�x��)�X�B:5���eE�T�����‡��0<�f��d"uô��/S��KkvĠ�@�P�(ࠥ(��0&�G�g��W�	&RL���$������:k�`Yx}B"�t��}פ�����,����4�S�؍��6�SP;	H�����2O���q�M��&�����L�Y���q ��o�G�,C�P�����QYD���P1�_���1y5�U���"7�Y�֯g���x��\��Z���R�wBSd���h0�z�����J�q��F�<N!��t����/]|s��ڳ���P(|�D��!�$Q�mdҟ��}�0YTϭ�
%@�9��nݼ�y^�R"<5�&45��d�1`��	z432�G�
+�Oϟ�=oM-Ô~=�%�H?1]�r����"<%�����C�i5���M?3�O�MO>.<�f��q�୺�~X"�H�0QT$1��"�
kAlO����e��ׇ���?:��ݴ߮�*LW�NTKɒ��n�i��wLq�����xZL�~U��1�}��ƞ����<�d؟
+
ͼ	&><�f'
+����F�Y�'�H�a⸎$�ԯ��"�\����/���
+���=jr�ѝ�h�01Q-�^Ө�+d'}c��ڨ���s�
E���&nl�;�^ty�T�Ee"3�^ze��9���i�MH�G�C"-x]�T
=rG��8tjK-[k��
+cL]�[u�?|?פ�>y�O���<�?�x3}30@߀��k������W���>���Xx})��K�P2���E��u�\����	��B� �d*~���OL�v�Y�Z⭻v���(����"!%z*XO&bQ���s�'�.\���#�ss��i1��IO[�z}�[�G7U<���vvb�/�,-��p��!E����8M����3B� ��N�-�e��L��:D�e��MM5�9��k��&�I)r&�t-���S¡DB9�׻�3}go���n��^ ���zt��t��N[�J����Y�#���TJ-r��q9�M��W�Ah�����L���|&i�|zuf=�PSoܟӺ�l�p�qtڙN(݁���A��e�;�
+��qP
+����|��ȔSx��i�֣fڅ��
��S;PV�}����i�3���b�ص�z�7�ʔ���{�L�[2i��ȅ"��@x�M���AF�Ʊ�S�v/�)�E�r*L�rJN,&����ؔ{~~e�Ѝ�%�	r�m���A��&���Z1`2N3����_��,G"�|rLQB�x�{-�:�~g�������0g���dX��8`*�z���� �e<�������''���5�2��������;�I;����(�V�%ʐ"I1(a��ݭ�$�X��&Ӝ�yr(z��L%�\�/�E�Nl�p��c'>s:��|�e�ܼNaY�H�Gq����$�2��=�4Nnj����T��Wc�Y�9�\��><|�%���K�~_��Sad�d/zY�fY5�i�
+��ϑ�4�H₇��@Ҵ��&�d`֛�
J���_r�ƍ%%��:2v����Ȅ�@%�6�t�`U����YT�kr,M�h8�Մ*�^�����ȹ���p
+P&ȭ�8>�gCrA�(�����"��n��l,��J2���N5W��>ظ��c1.�U����G&:�xE6�ܫ�AL�Ό8&-;��-]�4���B��3��Rɪ��ڡ�ei���o�	8�L8��4ϡ.�^Og�f0�s��9f&-d^LQ�X4�N�J(�LxeU����U����Cad��;�ɺ��(i�ՃG��ӁO�Łwa%j��!%��	�R҉ �Z�%?�)���w��2A���u�xa%��J:C��`.90�8p
+#8Rl�*���fC�tZQ��S5p?�)����($+ϐIR'�2��aiE,f>a�a���i,���5�+AoP���}
+8�v���"�	rS&oA�ceX�ڬ&�nB��U�Y���,���T4"%�`0^J%eY��������<����y�e8�aRl)�yDS���D��0�Qi'j�/��N%�cK�2�U��O��%�c��,�	�=��A$�g	�T|�]���U+��s��)�/U6�.�R�>��z�SJ:R}�_U��~aߗ�<�e�d�0ay��P�ŹmGks���(
+�X�>���@0}�9��%i1J�����;WW�'�L��Lz�Gx�8���Yc�
+��1��i{�m
Z��	_�Q0�*>PhR� _t�|c�2A���5cv��Ƿl+�y���H���$�8Z�ZW�����4�����@r�_U���泧S�_�P&H62�b�heh�x�ɖ�z+�2�h�
+$��h�qm���N�ܵ@�2�T��$�RB-�_��C� ً^(�㴋%1�C�&�VE&� �}���ҭ;��T�i5����N���dL~�`�oqt��>}��y7��(�"B#f��b�F$E� ����Lű���{s{]UgN�����嵵Sg��_JȻ��1E��x��!KS���13(E1w?M�GT�:Aձ�������i�k/}l�;�gά��-�wG%gf�.W�����	r���B\.�v��EQ��q�����������=�m
u��}��X��ևFv��.��ԭ��ᰜH�Jb�⅓P&�
�h��;�Oa8�R,�أ6��TW֝~���r{ݞ�j�:[�9�I$�v�/��GB)��zS���իP&H62ш�b0��|��X��gZ**NkN7���Ҭ�.7g{}���w��=v�ld�?��`*H�__�e�d��f38�p����E��XY��kڶ��hm^UeU^gme�p���#�'k"��s���O��lH
zÁ�����!��gJM4Ͽ��m�{�`���Um.�\ب-���h*��TU
��o���U#}r��!�lHQ�!e���q($+0I@Xj˖���G6�Ӵ��	�����Ƃ�����̭yxyy��W�d(����~�>~������]<B�� l֞nl˯�/���lz��Fli�7Wu6T>�w��y�o�y�0�4��%�������_�0>�L�l�	e�Ay�B�oٴ)�djh�<ݢ���7555WU�UT6�������O�32�[��$�F�i���"��C��N$IpCp{���6 (J�P����������vzOy�F�i��ߚ�ط@��݇7l�'������ti�:A�+u��'�}�� J�
+���V���O��(V������AS��N15�5��S7�YT��G�.����^�M�>������-F
+),�3� 
+&�#L�6��\kʫ��h�F�`��Y[>��=�6�y�=�u�����	�͙X�Eg�(�!D�@u�Gp�"��8��+��4;��&�UMƭ��g�\r����tj����+�	���?�cF�b8�e1��a�8�:Y����k~���w��C;Nl��Ky�.�\q@� �:�bei�AQ3�2�pG-CDS[[�(�b���;]R���_���]_��L�ld�p���f�S(�����̺s�(7:��Ή�H�YM�,����R��E�ޟ_@�L��L{q�G�]�7z����1�f���c��G��)��Y
+�����3�Y_$"Eu�>t����֙x���6�Ff̆#������Ng%��.�$lC�ϻ���8����I��W&>�2A��+��nvt�:|�*����>�Ĵ�6�X�&a�����"mCا�μnZ�E��Ȭg����6�	��L,E�,�a�N��q�#Nt�
:��8@���Mf�������>����ܦw�"����9�0�����L<��,Ǡϣ;�3�&'u����n��o�7�@Z@>�744j��>��D�=%>��'�G=�+�9���E�.
+���8�e6���X�e'D��w��$����yL7D}>�j��
�Kj���ɞ��	�9r�mׅ�Q�b'�Rf�-���q6�nC��9��0��c��OLL�t=���;J^����m�Y�XXuA��f��c��8��l�P������)���?�_�w�`�Q�N��)y0�Ѽ�;�� �ù�+(4؈�Xq�A5�����E�ֺf��z>��׭��?��������=��y?����:0-a�噹�gN�>�ʹs�̝�����ݣ�d�2>�8���z��Kn=��I��t�H}�
��/?c�Gn�%���+K�^?=�z��K��ri�̙�3`P~��_�����M��|t=nh�����_~�ӏ?��{�I��+tϽp��L/�������sϝ��]�t)��[
+d��.�s&����Bѩ�]���������F��\�WU~kz걺���[~�����j�>�t=T��9�Z�x<�V|b|�/�?^t���4�������PHKLݽ�\$~����ᒩ@Ω:�}�����P�m'��t�.a�0��@�[��t��N��'�����777��m�䉆&oH$='�|�uw�����6�{�?�u��j�e��L&�#�D�����g$Lׁ�J�������=�|'�o�������d������2������F�O�|�}Ó�0O��ǓA6�y�1��tqy~yx�;L6�=b6�N����L�_8��Q�gk���{�#:1��b���?�I�g`�6�SSӎ������ŝ~�]��僯_
�ō�-&��a��������f@&bmA9?��m9���{��%�
+�F����m���"���&��T���'���w�p�~r"����l.^|-��!�Y,.��d��#v�� 5�0\,y}z��C����J�0LU(XW��sU�L
+��~�k��<Y��3��ꉻ�3x~w��ˏ]U/K&��5B49"+++�Bh"a"�0�ĴS?>=ZwcO����jÔ4MPI�S��n�j�7��x�������w�y�A�̖�Z{��sWťL���$!��&����A4����°Vt����7��:jyJ�V����|>����ww%�x.�j*S����u�ί��S6��%v���=��&oUK�E����QT���09�ƕ�v�f��'�0��y�d]�M���g
Q-��V��*U��h�>My"�G��^S?1��Ϩ���M�7��IĒ��������E��B�!�\V��@E�� a"�0�㝏����1SH�
+��4-�P�X4*�A��e��G�d
���{��ћ�>K���X��ٵ�LD!�Nm,[]�H��j�o�M���S$L���[z�C<��C�
+�ڴ"MO��4�@ާ�R�j��Z$
7���ӝ}5�Qߛ����'��;I�P}_D0��ZZF9΅Xچ�d���������°�x��T*9<�V�h�a���*��Š�EjQw�p���,�<*�K_�"'{�أ?8\~WA�]8�J&+���&Hq6�0���/�0Z��n*�p�Qi�"dh��H{5T6[<@�*X\
+��A]�<,���M�O�Q���gA�L��{;5VUu��F���YZ
+���-�i�drٿ��0ZVR4�c��wH��!w���kx�#��
+6����髟R���}�K5�����mWWw,��?���,Ah�\�d7�ñ)�9�c�d	��a�E���`���LCS"n��J{Ft�
+C�NJ����
"�zx/�8�p��O�؏	�S��"�T�K'.^��uS,��EP��>��f5E��A�Dda�`�J
�R"�JU�����1peP��ш��`M�=���pk=����Ͻv9��M�~80]��Q�K��Lv��qF������m��d����)�
+�B�u��cPU(�R6W���*��'V���V�ˆ���MN�c��<ɗ?^�����D�U0-/�d�Y��F�^��a�b�;�r��ˏ�"�0��C*�I�T��%F�L݄�������)TMusC�p�3Ozf<��t���[x0u9��
B`�3NM����bB0��_��쑈ͱb��_%�}GHV�Ӻ���d3%����������FJ�FX��C����g��������D"�/xK��.,C�C0!o�ٕ�
�Hw+f�َ���&`
+�F��w�S(\��#v�_��RzJ;YC�h����yX���onͽ��Z~w'��#���jB�Th�Y 4YQ�3��\�x�hGFA��#�+T3���t�ڸm�:���Q}o[�-=��4VC��U_�.;�ifu	(q�ҫ�dru���������ci��i���1,����D`aXG�MG;TJ���Ka׍�]r������zX]}���i�i����,F6�x)���f��n:�L�,#�M��s9�&�Jļi�h�����,SkIgg-��jō'�p�4v�(�!��Nono�*k�W���X6p�����|
+��i9���4N�u�pV�vPZ0C�l��GHV�a�n�\J���`�KU:����1�m�_BS��E�մ�Q_u.X|��n>��.n�ּ��x"4zQ��M����Lf��l#�"�x�gO�*z��5�԰Jr��{���ҊށF�R��.�L^��K�������-��Pd*�1Amdr-��02�M�HҜq!d�^0��eGHVЛ�<�z�#w�v����>V[���M���3��TM�����jY0�^
+��;��vUTm�h,٬�e����
+*����+W`�J�DdA;�hi�ћnn��)�i�@��?[���/QU�)���r{�T���\�_Z
+�������.�
��<���Z�C�b��d4�C��}�B�S�,�[�C�R�L T�A���'���W�z��ج�Y�K+��N�]�������Z0�lXL(�Y�A.0�8��0�<�b_Y� �D�TN��PA�{����/���r�itz�~���l0��f2<n�����Tq��yJ��auR�W��Ҝ���aܮ"a"���,
+���af���!d��ڎh:���ʬ~�=��`ѽ����@����d�7�
+��5��2�(>��oڅ���xe�l���q���C?e5��ۄ|��O�P����J��]������ż�M�	��v�W��ڡ	��n*ߎ�L�шNs��	�0�ց$-W; �j��r��-T��j���\�u�����������s�;'��0�ۗ�ZB�v�o��W��)󪍼P@lL�
+.���0�"I�	�l�@�HW�5�wֿ��n�Z2������=��B�$�a��@�D�j"a"��&�qᯣ��X"�Ӹ�4]��S�L�gv������X6��f����N(��ϣkM ��B!�!g�b?T�D�Dha��)j`���tX��s�4C(��wz�����,��K(���Z��\a.����dD?����*&bNs�P�ybe��+0D�k���pX���qZwz���L �M��-K����
+���`B,!��M���V��E<N�J<��pJ�2�B��:�6D�,I�BF��ٽ�7�����l�;�+��f�X�[�A$L�4z����*��ɔ6�h�t*���a�a=�����RR�Gc�ԋ)T{�)��
MMh7���dF/�k}a�7�.h��
J&3Z���|�F(
�|:��+��
�Dj/Q4 �7�qK�
��@�7:���|��iIxa�ɢ�A�D�P{���ɧk)
+��Jg�����:��@�?���Խ��6�o�iZ0߆�J.H%�0�h����Z�L��I������u׋��S���l� ���5����-��"����'
+������C,iJGBs5�m�@V^]��J��f�hZ�,�������
�q׏�&`)���s�Q��Zv[����˺�K��2�V��;�¦'~�N	�u!�V��WׇZ�8�^������4Zw��]T�
�Z
+8�{���\��0;(b,��{�I��I(�|��K��u��D����P��p"���֦aî��t�ʻ��ۛ���jjj�kb#7�����9B���0�)R$L��_"a���;�m���^|�Ùᾓ��;)�;ŝIQ"�}����@!r�!�9�jA��c�#ߚcr˿ӡ,�qwo�� ��o�{���1M�O>���>���ɧ0}���S�>��O��|
+�'�����Oa��S�>���&!>�w���0���@�-ǝ�@��:v�6��/U|ԕ���{;��������`���W�I��G�#����NX&����n���i�7���h���1�&��lH� .�c9��dꀖ�-{br�<�/�V;rO�Gq��}��m�5���
+:��*�C}�%��O�ka�P\�\��S@_)�J���;E���
��)�ct4��V�.��/����x�7[�bm���B�"��n:	o�b�Q��%�[-O�7�pK������X$@1o	߽X���7|��������<�co�v͸�U��_�q衰�`̷���v���W:���r���ş��C�S���a��S��ɩ�����/}n�+��E���ڀ����-�=es����O����� [K �~}lp�C�]�}�����0)� "b���C,���M+B ,�3�r)�$�P0�K��0An���6�<q7H2�:�Fd�E�5ƽ�����
�=G���t�إ�&–��7G���5c]9M�C��73>l'��dv7������~����̈́yhrdcj���uR	��#�����a�M!,��9l01B�K�:�Fk�B��}A�p|>�<4��m՘ �$="c	���fl>��W��
�jt�	�5���Yb�$�Q�l6�zd�94NƦ�uF�ᾧ��}7kۄ��z�\bCZ��X��7Kt
+YL:l���ڢ��B	���^6Z5�1��gch���^�A{�ˈ�݁�s>�6�&���F�@�F��K'��h��-�%�8Tsı��Ԉ��qvD�u�-O��z#�4WG!Hǽ�1)\�i��6�`MR VIY՘c�l�) C�HAC���z��T�!a;��w����k�<�Gi��\�	�����÷��v��ͷ�$)G�9u>���Fo��]��x��� ���$�Q�H(`���$��tJ^�C*��@9��J�@_�3�����̩�y�'���(]Í������옦ZY�!�&�o��J>&~;i�"Wd�$�RFb	`��(w
+���
�����>� ��{zɹ��2m�$LN�s�K
+�fˠ&�\�!2���]	��/�����t&��mL����D��|WFCyj9��f"�	X���~"�l�]��
%�%��Ɠ�!�d8&e(w�O��,>�7���d�Ȃ��?ְz.o\x'e�a���]8tB���³!c���7ҷ���>`-��2��fGL,E�#r��0m=�מgrůH�D�O�v�Q�� =)֘8��8A�##��%2g��Z�Ig؜(O��0D]D�55
+�,��[�H���eZ�2���`b�'��	7�SeqP��߉A�t�Rn	�N��}i9h%̃�!��L�
+y��n��ju<
+B��6`��������^��F��,@H
+(�Vn����p��+��jp�l(�c�J""g���v{@tǴ���=~.�6��:������pc���p1��QR�@�PL
+nq�/Sk��l�ж�#�휧�\�ҩ��W'�I@����Q�$cw���ΎUZ�56sm��w[Tch�@��U�Ll�J���cX�1���޹�yX�&-u-`A#��|���-Z��@ޮU]���`�a���a>�ܾ���Dڞ�a2���$�V�VZ�I�@�#���<D�-'�A"C��
@`�̠X�����E܄i7es�*=;�Ҵ���OȢ�0�7�@��X�w��L�o�W���?�j7�X{Hc-�-5��\q>Iu�:����c*)��Qi�ƙ�(Uܩ��8q�O�G��̓��#�@�B�e!9�2��x/,�l��؀���6LR&���m�
GL*p�ϱFM���$�39�@��H 3jT�K��R6<�a�^l��<z���n-6:K�a����y����Rk����u���9���ۮčIZC�
U3`=9Jm�:Yf@���Adə*�KE���}��:Lt�y.��K�0�F��7��Ik��ٱE�fb��v�N]-
�y��f?�9�{���+i�uq#�mÈx�(��Z�CU��
Hɶ��NB�r�VCQ�������'�,`huF�]�:06D��B���-v��#�Fw�d���8�.��D��wZ�)(m�D�#J���NAD>Ҝ��Dw~~G1�[k���W������t���>B:���C��M��LO�1Z���sY̼���ё����Mr�ML�ż>FL@�l�}�r5Ӹv���\�R�J�,&�)`�س�qA�
+;w�|iB"T$b*���'V_n5�
+m(����.�4Q�L�!�/�>ކ8~Wfl"։�"~@"��ΉE���$U��2�6��hV���}I��sGg�Sф��v�i��]qb�n$L�'������ڞ�86R���w�Q�+t?+�+�Ĕq�8��p�Q':���>��H��K+��/����9`�2"Ŏ�8��fU2a��ҵo]'�]"@�DS���90�����s�E����֡�a+�p�^��9��'9��^[�+�t���=u�`��
�23��%��@��*;��˥S��b���>!r�f�nq�ޅ����	yʈ��=u�٢����V�g��*�0@�څЩ��(D�.�r�҇*�*y�Z�o���Q��@�C��qJ�S�d��lG"VoOT�aS5�� -���u���ҙ-X��h�ʅb�rf�Y�!�:�Ҍ`�U�"J�Ȗ�Pn�M��}�шаl�1����c[8vb�6�����LҙՇ�4�i�3�V)���"�+Xk��%	`<Z�Ia/��ȓ���ع���F2�^)��`xy��!P��>�
+�w%��[�\X6�7����4��d���x/��W,�Jl@X	��z��9���@�qL'�P>	�V�9��[�'�SP�G�*�b
+x{���
+{���$����OIX���z>�չJ��3 %�~,Y gw)�•��又�B���ę�
+x��fEC��Y8���"������;I
+���Q�C�;�����5!��R��(/��(��}
+�'��0Y�{��_6
C]���h��d��2����SGR�e�=��&R�J>»O�/+~d7��ҕ����9V���")=��΢�?Պb���o��Q_�����#>{��˯���縻�k?}8�����?	S���	
�­����Ż���E���b�ޓ�#p���޷�g��xxt�:.�Jf���pw����A��݈��]�u�a�t�Fc�+����˵���ՕRw�:c��ӑ:����%JB�r�B���?��;ܽ_�+�w�5x'{7�=ϟ��l���G�B�J�|P�w@�7�����(�r���N�������m�]���6��w���1n|��ݍW�7�?�f�7�>{��k~��a:�F�}��2Z8��'G���
�6
+��^��a�%�V��T|���Aڍ�9�ܖط���͜��%��(�X?r���qb�1G�[���-D��>���-y��k'��0.�kc$���lB����9k'���7Уi)����DH�mքS����<I���cN������cfR�!��4�ݳ}ǝ�Fuņ��3�Uw�t��Jek�j��0�=K�ĕ��1$��f��YT��@U�V<�0��͍����U�	:�(@�8S@bVx����m
+z����,@�+�D9�p�
���2咙�
V����^�@d6�c��_�~֕�'~�R����]t��.��M�x[XQ�������g/��W��������Wo_��_>{���W/~z��nx_�|���o��/~���/ֱ�Z����7o^��;�y����?���7߿|�-��|��]��,�d�D4Z� a�L�z�5L��M!�'����ݑ�IN���S���qS�}+M'���{Ubߎ.���2���P8�tv��KÝ8��S�N��WS�*D��tW��kJ����C
����2E�{���i�oq�v�di)@w㞤��<����|��2��}��>��i���$��_F��!��H�5��h
9�,����Hr������ �Ր*}�q�G�y��d�'�D)�s�z��N�_B�ih6:y��pE���G�{ݙ�C�ѽ}w4K��$� ã��—?�4\-���~J���Q?�݁�dB4�c)Qd9$:����n�r7)`CSKz\���R�~c�����S`��ۃ8sx�DO*���M���'bW�,�i��?��������߼���/���
�Ͼ|����������/>�������m���x��Տx�탧����/����/^�����_|��7Ͼx�͏�?x�����?}���6L���0��x	2��8� �� �!�\��" l�a��k��jdu�#����=��#I��:��	?�7P�U6�
�����L�R#���}�j�nvB�D$a���#R`wQq�u�a�����8�)�c1Nw���l�X�zt-�x�7��XU�(��J����@y��e����2�)�
�P���Y��Y�Զ$'�ke
�ͤ��Z�1L̛�%`񉬻v�^���2�r���.�#��g6�#�J,�@2�P�[�Y/�i��&9����1��e]0�8��E�X
$����í���*{՘�hM���P͉qѫ���]�u��!7?y��)qdg��t�����J�J��g�w�_~��~�ݻ��?x�Ëo���=���w?|���N���O�^<�o�}����/�C��3�O�7���a����|ܾz	��򧷿����/p&vfj�� �:�AƲ���ƾ
�m��\v)#/=5Զ������[�]���$��G[�"���H'ӕP��,�S��s���ػ0%���A�ue�{]�R��ɤ��c5��E;�階�l���k���R3
+-U�d*T��}���d�F��]9�4e��YS��
+���2V��.R�W��(����A}��[�����ݑ�;λ0q���"DN|)�}�=��	���N�?Hҿ{�f�	h���AIB���0	m>ze5˵�F�)��d�����"iGm�B��ic��	�AHʁ;9:V:X�&f6�9�I�GG���&scۀ�Gn��	$���E"�B0GM��1'mk�Ŏ����x��ك_}��˷?߆�%���=����>����7o��}��w���_>}��_���]���3�%�釷/����_������_|���on�d3n�.�v�j"u�t{��7�v`a�@%�w�Ԑ]=��.J ��6�u-�.%�P�HL��Z��V�4��\�\>c�UH�C��Í���c����ڊ
+D�0�q���)�H�7����+> W4��&BQbA&{y��")-H�b�+��X�c��ش�k6�[D��pM�I�&ԹKL�Β�t�DxΫp���L���o�\G�pb��ްM�M�i&�N5ri���E{.`���D�����
+���� ��:-V�+ם����.	�՘��ab1LCx���i���Sh���1	�N&���!�5Q���P����Kx���F�6�������>A�j��<�XK�ҍO{2i�2�T�Ž��%L�l ��7����Zv�F��uG|��wx����/^>x���������wo>��{�?{^<{��~����?��O
+��g���|�����ӧ�~|�ӫ������g���������W�?�b�o�����/�z�淅�0�D"��0�"�ۂl�Tr7d{��ص��I�����6��Hl�Q�P������i��
p�7��*�x�x2��T���b�d$T��Z��@`%cJ���!{��
+Dn��?�`r
�b��s�΀z��E%�^��G!�@"CG�3�h�0���[�d+[�r�Q�a�Q_?���L`Ξ=�l����	�v�����b��=�vl�(�ĂYERP�׻�A�e��
���s�����ه=����j�[*[(D"U�#����K��a�
+x������)J]��8V��aa<�K�'_�����U�.�na;����2b((LH��nى��*W�@V-�8���Lp��.����o>��w߼~���z��ś7o���޾��w?�}���/>{��_?~���gϞ��R����|��W_����w?�[������~^��w|�7�ㇽy����?����•���|�+���gL��5R��$��f�5�>�p��;}�����<~ο<������Ϟ?x������������x�_�����|��u���?��L�����v��������]�RE!���r�3Τ�5�b�Zx�������Մ^�
��ǚ?������O���0�7&c�5s��Nz�����7~�U���۟�=]@7�H��d��>:�o�WƇ
+��f*�����[N��L��}�>����()�?@�Rպ�Kt�j�m���)@��&�Ÿ��b��(�C��O;���������
p�&�4�UJH���{�A�M��ꇃq��'mǝ���\�@��~�n^F��R�4�+��dz����w����1߳�W/��������߉�">���
����W}�[SI�����G��7�[��:�i�m�W��8�ϐbl%�<��
+D\0����kB��3W��pmJ9ѶI�)���(�G(�C�EW�8s��7�)[��C��̀f�vޜ�S{�9�4�J�p�(jކ��[�*�(��xu�uX��W��"~�@4�`��.�l�ŵt�r�G�	�"��L����VҖ���(��h&yr9E�F����+
+k�]�m�,���L!>3��	�����ib���¹��ku�����mB%=0���2-�I���&�kOE�b��?	,���棉�kk��,\����6�	�-R�B8.�ѧ�4�SC̘u�,_�	�5�Gٹ�9��Dc��/v�Q���ķ�
+F�} S�ڛL�j}��Y�'0�#Ft4���l���@93V�,��{��qd����UiSw"��J�R�d�U������4{���
+H�K���u���\#�T�J����:�-�{N�9��(��b)���6�Ow��YĴ�W%�m�Ӊ��ѦˡG� ��}���(#���
+L,������]�����w&���*�[�@A
+:�1wh����C[�E@TC�DzJ�RvM
+�5�&V�r8m�O����]�*ܓF�=���7(.�,o�m�l��5
9����O6��H��ln4����_�Ri�����.����o�tK�v�T'۩���*8'����e@OƛD�27N����
ʰ�_
	U��O!8X��K��z�Bx��1�{��Ɉf�SN��S����Tp�'a]B@o;�YNv�}�7IFrz,�|b����s	�ۈ�!$ۧ��ˢ�\v�������[�Q\�A��VNw������C�K���xnCj��1��F��T���j"�E��>��7�E�>L-����
+CL
+�>l����
+�%@d��@6�K�;Vy���"���L@e���G�ٓG�m�����Z�@��V�]�]
6U8���Dr5�p�uC�p��@��z8����v��q"B�@��!�D2�c��������^�ۧp��B�j&Q�nHĩP�&�5�[�s�VZoC�>�7�C��Z�XFn����2�ߪ��4��7$4::�NN�DdPN8���t���z>6x�bEnVN�[$�4,p��Ai���C�}�#d����G� ���,ۜtf80�"zn;@	��ެ�_�"�J�\�U7?t�p�in?=��P�
��DR0��v�:�S�AR���`�8�C
�����}}�n%
�5�kt(�����׽
b8O���eb���bfx-����B�
+աsm��?���@hwR�ނ��B2ਯEDn�3�Ωr�M_<�0w��1n��'|I��،@bx��2����-�Q3�R��9H�Fp�l-L=�u�D��/�<���h���N����֊]����TJ�.L�44�;U�+��J�n�h߅)�j1�x!8	��W�%t�k]?����Q<ڄDf��}H#�p�/)��Ñx(��v��&	����y8��'�:��PS��``1t�[*lC�$�9���"
44�"�hϢ��S��i8�B>��4��m�u�tm���3����$�R���
ڨ�$�A	���4���m��NZv�,��u�sH���M��%,�����AH1�#Y‰
+@I��	T⊥�(~8}s�J?U��ۯ�c��փ���U���9:�J�E!gDf�V2L�\~�%'h�`g�&ώQ,"�CR��A��{C��E>�Lk�`���Έ��+
��q��Ҁ�k]>�VF����8 -)QI�Y�\b����}/�?L��3�z��z�mnDuF�R�
w���`����x�3
�$i��H ᮓ�ڌn�Jo������Nf9[:ޱ�
������e=�qP;9*�X���+@7��eI�����>�C���Y��,����o��ϋ%���i�w���;���xo��v�|*��^]A���p~ގ���(�;G�T��E���:�ӊ�Dm�h\v|�
+p� 9E1�'��r|'@q	l���i	et�m����oJ(�T>�b`�ގ�����f��|��k��{x?_6Dg�j�̏	o��y]"5m� 2"2������[Zd�{�trB�U(��4!��
+�E��9q�b���|W�0��H���	��Jq~@��|��V��Di���Wm�›��8`qu�V0&�"�\�H0Hi�������"��ٳy�$�"4��*�=,j	�^��ss"7M��ap���f���RC�����65X#>��U
+���g�T�,���l��w
+�rj
+�$A���I�j���c�I�:"�]V<9FJ�5=
����ѴB��+�%!]?�8ȉ��hM��(��@�	J�-�ZN]�qg�(���="�V�������\��(�B�/����C%�59���싑	�Ŕ4�A<`UЎ����2y��*�|dE��L<قGѭw�jB\Ӫ+T|�X��:�㮝A1$��d���ډ�Ȥ�&��R�Jف�?S��\mSt4ȉ1�,tr���*�s�����	y-z�����-������<��QdW}��+(!���E�i|�R�?�lw
+��r.��*�?&���'���_���/
SW�M�3��_|�
+�k�g�>E#���O�S>�ׇɳUN��k5��E�R�+)Δw|�6�����=��5[�:�|�l�_�,R�]ܐk��^��{���z�>tzo��� z����O�+�ʺ�n�(��%��pR�>�m�ʿ��T
+w*�AAؿ��{p��/n�]}�^��w4D�3�������nƈ;�S|�m��,���"�_���-	�b�p����Ȫ�
<[7Jt@��$y�����̯�~�{�B��Z0�4��s"ܸ���ߵj�����qj­��ষ(�a�2)5UD�S�P��{!%��n	w����ȇI,�i�Yn�j2j��fn�����IB���M۵�6��V�8�!�4�4��1v���Pgfz4�\����M��f�+
rq,h:q�8��)�P�����������M�R�"��L5�6�.�=نbfV�3��Ǣ�C�*
N9[،}�'[H�N�}.(��@�=
+6�i{fN
+@��2�mk�5ꐜEh+�d��CF�,W48T�B��fn��"f�~
+�"���/9��f	�A����e��Z��ܸ��fJ��]\����u�h¦1yh�
�r&�'Q�>�hƇ��dQcM�?�2Tj��8�2"!4w��%�E%v���#{,��ݬZ?���Y�qc�l���1u�D�'tcM�N�Sd���S����Hѳ���ȿ�*������f�a��Ϊ��攬FO�;d�mL/�����QQ5�����Fёe�􉟔�醙�m��ぴX����;�Ґ������*�KH`� 5��y/��.��H���6.\i=�N��t8_ѓ*`�@�i���Đ4������*��Tgj�U��%��X���/5�y�p:��n�s���ga[�D�,�.���-�r�$=<Պ-0M�����Z��6�a�E1�۩���juΑ����j��oJ D��d#��Wד��To1H&}��(�䘞#�Z�T�c%C����@|쬚��'ˮe�1�! @�r�;�2A���>�$D�$9�۴s�M�Fi���g�� Q�:�V���\,?�]���T�f�*�w��S�t����;�l�ӣ̈́��
+�j�\r0�QD��f���G�`-yOù��b9
r��x�]z�y�>�����H�DoI�\�A�e�	��}���qb��iڱjN����=P��=��,R�1�٨66�W���ò��J�����M�
MP`�I�J�8���E�mJ�2e�f	�N����M�;k��)k"��@�eӿ��uo!g܇]�ݦ�2=@ȝ$�n�e��2Z)�Y����VO�����ڀY����";�Ƅ�4��$�ä
��	6��+���L��,���N�-Q�VS?�
��lUDa�n��aJ�$�o�-*Iv}_�3�)ވ�k�b��=��ƀ�����=�а<bMC�$�Bc�a���Cmi����٘0<�L
�I�֌�Y
��Q��9�Q҄݁4 g�f�d��ӫJ�'�x(�q�v�J���M5�j��U�Ʀ��	A+4q��p��*TbP��vo���Pki%���ŕ-~�(YއIv��$��܄buv^iZv
+��&���k{w�zp=�ք_���5�L(�Q�a7h�æ�A@oZY�wV#�<l��"q�m�J�^�%�%���S_���*�l�O��8���R�;�p��X����ܩx�!�Μ����ۚ�6Ȏ���殦��o;�P9o���C�4��	 �?�#8G��.Lr���6�+p�fi/	��c��)�:�i��؄��J�n02�CT��ؚ/���'*'�=�Tl�ٔM�/~eb���
�fd=u�	�{/�p5�ۇ�Ц9
+��:WL4U��ㄈ��aH-��:�X[Ām�Xe
����і�.�I˃�[��e���Z���%eu��Y�R���(�-��O@+�=���*�th�7ar��Kk�"�T-P-�sQp�K]�~����0g�	$�[���,�b�
+<�v���W���	��_E�brG�th\���rg��Ú��.��c�o>��a�ôI�y�A���C�b�͊D�jW��P�6��u
�8V�M-�sk%�u��������27�N� 
+��AB���l��w���+Y@wi�u/�����*E������l�e�3���G	���E�����E��a�_D�
�8ߔ<=p��K[�D]%b�Kѥ����y����J(�¥)�P�gR���6�h���h��s�( �3r���r�>N��Z�d�$�+K�T%D1����X#	M�.�\�f>�K|@cJ�\>?ոV�)���i��Ӑ?v�r�����I�/Vܿg�q�{E���t�
^�&�tà$�}7x����b�N�0>Db���z���aZT��gf'�H�-�9�ԮG$#"�
+�;'�q^�!{�������b��b�����ǖ-��.8�4S$����O��S'���}y�sv슋���}L�,�9�d7�W��sh6:c���Y
���7��z����ä�	Q��D�
+<lm�����p�P�B����gˀ:Z��=;�;�L�:���hО�Qs�=(���a2�;�e�`+�b�~��e��ˏJtҚH[���!goz�z��p����	��F���!U���P��sh6��DY;`�3T�
+�(��]�+E����>\7P/�j+��hRLePh�R�t�9B����jsr��V��)1:I��Qf�M_`�oC��hN����6��a]�JQ6�jI��ڋ��A7M`�ɣ4�Cۊ��u�]�E�	%
U�Ш�WvE���*|t{3eڡ��9����C��I-��"u�*����N��`ۉ�x]J�������dmW�O�@�D=�ckE7x�XP�(�h�|j�flp��#��6����Yw`�F吨0�^;��՜���|㞨�.5�ِ��}��i\����։�$8N�c�{�	�NB
+!�R��A�o���������߫��e�%�:[�d���nZ���]��	Vgm5��f��:��"�&�?�_
�/���/}�;�����?!���?��/b<>S/�%�a~�%��O}�az���0Q�Pe�����%Y~����o�{�~�z�3�1,��j�OU
+�/�Ƿ��-�
+6���K<��
+��Č_Ԩ�O��
E���S��	�h���4�x�i^��5��V��ψC|N�jn9T�&�o��x��"����{�%~`�v�$���/�4{���K|�Ed�[������_�vf��_m�����J��7�"~�-���!�����k��)��;�
+�~�����c?g��a:qŧ5���,k�=Gk��^�
+3�����sͨ��;<�����b�YsT�p1|��D����M�G��� LtĂ�L��\�T
+c]��ơ��Na$|��I1�W8�=\�\j
w!�cB��~�m+�0q�GF8,h0���:-��Q�c�0�)�ߠ��6�Mf�W�+qqF���E�h��O��'�P/m�5��2­�3�>�%1;�N
+�>�>W�S���iR�S�M�yJ$V���Gd�1,}�d�l���9>��Z2�O}hW�"���4�	�@�!+L6�$�� �\����CMz��0�k3(�Hr5�>ÕP�'�d��a{��+��4�N_:DhS�E���غuZC�
���1ms`W����c��Ů��j笩�]約6'!��| ��8����f��5�u���-����tR�a��������>LeRl�c���,�ԛX]鬳�����?#Rh��<���Aw�$a�kAgj$ϒ<��k�kٍN����DL���R�]z��V������i�o�1�i�&^y�Ĉ7nvtC���p�������
Ӻvb�~�&u�f�@��C������,�]��dwy��\x+ĈȺ[5"�$�!�G��	n����U�'d�P
2!���n
&���h/ĚL�ɛy����a_kL��U�ن�'�
+s�'��ޮ�[
^]E7bA?����M
+�y���
+�O�AM�r,-(�V���?*#��; �'��x�D뛮�G&A�D?��b�<"]�k����4��y]/��r�,��$�}���Q��xe��D0o;�334��v�D��?,���B��O�&��}�x̓*�[S����F�#2�τB���A
sy�Z�7��D,�M;�q[b�$->x/��ԚB�ߐd<{���8b4@{nv�2
��rp6�؁�͸�7,�)>Eq#�8���J4JQ�ёe�`4�3n>=�M��?[8N[͉U��[��u���ν,b~�k�S�qG�6-�s��(J7��ѽܥ�FC�h��k�
+�����)�VKs�(%a�+@[o�"�ժ���>����%a��&:L~���2H-��h�������/�.`ZM�p���Q��t�0���8-hAV�!�J�	XY�U�����e|r^T����?�Ou������zv&y�	
�V��.�s�8�+��=��p�v��GF��@�d�n��@u�W��H�\x���o.�=�������Yl�PnB��+5b�ν]S�(`_˦'(WM(0k�Oy���{!$��Qv_@1a��w-S�?�]�8k���H��8��Ոƾ��� ْ�я�l���v �<j�EF�1��!�~����g�)x���ndON6g�C4[�ӢP=�6��P�.���
�Ń���d�링�7�^+^\�1,�x��FU{�����5�Y����4���G`�k�WF��*��3(��ۢ`��՚) ��?�/S[����m—�F���
t'��Ư;��h�p��>�Z�	]�ǀ����`z��&��C)��X��=�qY�F�Uj
+,��\R4vܧU@s"�ӄ��e�
����l�i
+S{�ZS�T�k���4� ��N{��9�{跺n����=���9?yy�P&�]�R�]���N��V��w��A0pe֤_IN �`��vl�`��6�e5
+\Ζ�B/��1�m����V��D,�cA+�5P�N�����,�����@T�]���W��A�!�i�h�gߑΎ'م$���W[�D��lIf�X#M��Q�ģs;1 Kf�e�Qʹ��
+�f�8�D:�1#�;���0��T'����"_wX�2$�h�"q�+�9$ҡ͟
+�Tġx�����{�!���HmF�)����Hb�}�;��]�Q�.�{�Lڽ���
+g��5�h@۠dRӫ(����oZFN0ma��\8�j�x;)B�K<X��%���qk������;\�T�x����@M�yҷ'�X�=8
+���ޠ�˲��wX�$���!>@���'Wm�P��"�I���s���ċ��Ƙ�O��F���1�q_����������^�k����l|��]���2����F�~م�EzNP@e�)k��6����X��"%���9�a4T��-dz�;�r�m��@�C����$B	�1��O��K=�������
�����_��SC� �	�)���yU6��dh{x���-����d���aBc��<��a�A$|t�`�8F+�=TtUۼn�hW��<����t���&���&�G�X��D�悃>��2D.�C:\j|�E�����y݌L⼇�Rr�Ў<��Ӊ;���۸>�Ed*q�Jr]��%-zE<i�n�,5?�Ϯ�ס�ۀE�a� F!jq�8)>)I%q6���=�2p�:�΅ᥩ��d|�>�RR6�`��'=��I���&Ba-���G���ǐ����R�C@E���KZ��c`���t�\F�ґ'��i�������q"j��y@k�;��!F�Ӑ׭0��Y��#�P���K"C�)7������qx�LK�"6B�您��%���E��/l̄O��U2��!��F�l��p����Ւ? ��w����7[3��b��0�hx3��?~�OS�O�櫜�P�x�)㋰�#����`8�߭�t�9��=�����Y�/4���4c���xc�B�g��S��3aR��R@���+��;*a�L��â~-;���!���Q�Z,~��B����)�|�W���=ɀw�O;;�T$y���D��@2��גD�q"9rQ(q6+>*�.9�r��]A�%x�����q���Y?�4cߵ��xbl���:JN'֏�ù���@Q����\�M&��R�1`_4��ж׉�M:����6�ݗng�g���aE7N��M�x����N�T*�)h���^N7q���\��rr�i�QX�5�h8 S�f���ټ8x��I�D�L����� �������d��~b�>��¢%�v#'E�y�����b`-��dx�����*�j�����|��A�������4�D���Q5Nm��^�����@�
+�;wUʠh��h~:s���p�%��	D���c��|(�C�#�=���A�\81����%M��ؼ�ְ��U(xz�y��
�����%�ux����Y:��>���|ij�x3==�v?��f����P+E��h�_��#VG��4p_U����F׈�ay֌{>ą�J�C��`�����1`��&��1芙�$�en�L�SМCc�wo�m,$�����/��N��p���B�
����.���)����`���H���(ѧ���*7��]�4��&��=7������݈�A ��m�]���r)q/�ޝdD���-�ܧ{w�[��A�������jlg��k�f�0���x�vsB��"�}�vvb\|��y*��W~.��G�0>E*�6ch[�]�ژX.�c�PZ!(��f�h���\
�͟`�Ŋ���?���
+���B��a��L�X���h�!�t# a���j6q#��jH���M�p,#ж���lE	x�E{ߴ|��w_������p�P������IEND�B`�
\ No newline at end of file
diff --git a/core/themes/starterkit_theme/starterkit_theme.info.yml b/core/themes/starterkit_theme/starterkit_theme.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..844e1b7ac45eeb7da3020ce1ec87c163f27895bc
--- /dev/null
+++ b/core/themes/starterkit_theme/starterkit_theme.info.yml
@@ -0,0 +1,27 @@
+name: starterkit_theme
+type: theme
+'base theme': stable9
+hidden: true
+libraries:
+  - starterkit_theme/base
+  - starterkit_theme/messages
+  - core/normalize
+libraries-extend:
+  user/drupal.user:
+    - starterkit_theme/user
+  core/drupal.dropbutton:
+    - starterkit_theme/dropbutton
+  core/drupal.dialog:
+    - starterkit_theme/dialog
+  file/drupal.file:
+    - starterkit_theme/file
+  core/drupal.progress:
+    - starterkit_theme/progress
+  media/media_embed_ckeditor_theme:
+    - starterkit_theme/media_embed_ckeditor_theme
+  media_library/view:
+    - starterkit_theme/media_library
+  media_library/widget:
+    - starterkit_theme/media_library
+ckeditor_stylesheets:
+  - css/components/media-embed-error.css
diff --git a/core/themes/starterkit_theme/starterkit_theme.libraries.yml b/core/themes/starterkit_theme/starterkit_theme.libraries.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e8655f29959d067da878c1937e7306d0e33b9f79
--- /dev/null
+++ b/core/themes/starterkit_theme/starterkit_theme.libraries.yml
@@ -0,0 +1,132 @@
+base:
+  version: VERSION
+  css:
+    component:
+      css/components/action-links.css:
+        weight: -10
+      css/components/breadcrumb.css:
+        weight: -10
+      css/components/button.css:
+        weight: -10
+      css/components/collapse-processed.css:
+        weight: -10
+      css/components/container-inline.css:
+        weight: -10
+      css/components/details.css:
+        weight: -10
+      css/components/exposed-filters.css:
+        weight: -10
+      css/components/field.css:
+        weight: -10
+      css/components/form.css:
+        weight: -10
+      css/components/icons.css:
+        weight: -10
+      css/components/inline-form.css:
+        weight: -10
+      css/components/item-list.css:
+        weight: -10
+      css/components/link.css:
+        weight: -10
+      css/components/links.css:
+        weight: -10
+      css/components/menu.css:
+        weight: -10
+      css/components/more-link.css:
+        weight: -10
+      css/components/pager.css:
+        weight: -10
+      css/components/tabledrag.css:
+        weight: -10
+      css/components/tableselect.css:
+        weight: -10
+      css/components/tablesort.css:
+        weight: -10
+      css/components/tabs.css:
+        weight: -10
+      css/components/textarea.css:
+        weight: -10
+      css/components/ui-dialog.css:
+        weight: -10
+book-navigation:
+  version: VERSION
+  css:
+    component:
+      css/components/book-navigation.css: {  }
+dialog:
+  version: VERSION
+  css:
+    component:
+      css/components/dialog.css:
+        weight: -10
+dropbutton:
+  version: VERSION
+  css:
+    component:
+      css/components/dropbutton.css:
+        weight: -10
+file:
+  version: VERSION
+  css:
+    component:
+      css/components/file.css:
+        weight: -10
+forum:
+  version: VERSION
+  css:
+    component:
+      css/components/forum.css:
+        weight: -10
+image-widget:
+  version: VERSION
+  css:
+    component:
+      css/components/image-widget.css: {  }
+indented:
+  version: VERSION
+  css:
+    component:
+      css/components/indented.css: {  }
+media_library:
+  version: VERSION
+  css:
+    layout:
+      css/layout/media-library.css: {  }
+messages:
+  version: VERSION
+  css:
+    component:
+      css/components/messages.css:
+        weight: -10
+node:
+  version: VERSION
+  css:
+    component:
+      css/components/node.css:
+        weight: -10
+progress:
+  version: VERSION
+  css:
+    component:
+      css/components/progress.css:
+        weight: -10
+search-results:
+  version: VERSION
+  css:
+    component:
+      css/components/search-results.css: {  }
+user:
+  version: VERSION
+  css:
+    component:
+      css/components/user.css:
+        weight: -10
+media_embed_error:
+  version: VERSION
+  css:
+    component:
+      css/components/media-embed-error.css: {  }
+media_embed_ckeditor_theme:
+  version: VERSION
+  js:
+    js/media_embed_ckeditor.theme.js: {  }
diff --git a/core/themes/starterkit_theme/starterkit_theme.theme b/core/themes/starterkit_theme/starterkit_theme.theme
new file mode 100644
index 0000000000000000000000000000000000000000..a095c0fc88ab8586979f8d03e83c767cf33b8978
--- /dev/null
+++ b/core/themes/starterkit_theme/starterkit_theme.theme
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * @file
+ * Functions to support theming.
+ */
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\views\Form\ViewsForm;
+
+/**
+ * Implements hook_preprocess_links__media_library_menu().
+ *
+ * This targets the menu of available media types in the media library's modal
+ * dialog.
+ *
+ * @todo Do this in the relevant template once
+ *   https://www.drupal.org/project/drupal/issues/3088856 is resolved.
+ */
+function starterkit_theme_preprocess_links__media_library_menu(array &$variables) {
+  foreach ($variables['links'] as &$link) {
+    $link['link']['#options']['attributes']['class'][] = 'media-library-menu__link';
+  }
+}
+
+/**
+ * Implements hook_form_alter().
+ */
+function starterkit_theme_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
+  $form_object = $form_state->getFormObject();
+  if ($form_object instanceof ViewsForm && strpos($form_object->getBaseFormId(), 'views_form_media_library') === 0) {
+    $form['#attributes']['class'][] = 'media-library-views-form';
+  }
+}
+
+/**
+ * Implements hook_preprocess_image_widget().
+ */
+function starterkit_theme_preprocess_image_widget(array &$variables) {
+  $data = &$variables['data'];
+
+  // This prevents image widget templates from rendering preview container HTML
+  // to users that do not have permission to access these previews.
+  // @todo revisit in https://drupal.org/node/953034
+  // @todo revisit in https://drupal.org/node/3114318
+  if (isset($data['preview']['#access']) && $data['preview']['#access'] === FALSE) {
+    unset($data['preview']);
+  }
+}
diff --git a/core/themes/starterkit_theme/templates/block/block--local-actions-block.html.twig b/core/themes/starterkit_theme/templates/block/block--local-actions-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..97df94b66670796b1186a3349fb949ed7124e832
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/block/block--local-actions-block.html.twig
@@ -0,0 +1,12 @@
+{% extends "block.html.twig" %}
+{#
+/**
+ * @file
+ * Theme override for local actions (primary admin actions.)
+ */
+#}
+{% block content %}
+  {% if content %}
+    <nav class="action-links">{{ content }}</nav>
+  {% endif %}
+{% endblock %}
diff --git a/core/themes/starterkit_theme/templates/block/block--local-tasks-block.html.twig b/core/themes/starterkit_theme/templates/block/block--local-tasks-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..0f25f59d83131f120371ed25943903c48c3abe63
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/block/block--local-tasks-block.html.twig
@@ -0,0 +1,14 @@
+{% extends "block.html.twig" %}
+{#
+/**
+ * @file
+ * Theme override for tabs.
+ */
+#}
+{% block content %}
+  {% if content %}
+    <nav class="tabs" role="navigation" aria-label="{{ 'Tabs'|t }}">
+      {{ content }}
+    </nav>
+  {% endif %}
+{% endblock %}
diff --git a/core/themes/starterkit_theme/templates/block/block--search-form-block.html.twig b/core/themes/starterkit_theme/templates/block/block--search-form-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..667202fb6b658bf3b0aae080d6687913074ef6d1
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/block/block--search-form-block.html.twig
@@ -0,0 +1,45 @@
+{#
+/**
+ * @file
+ * Theme override for the search form block.
+ *
+ * Available variables:
+ * - plugin_id: The ID of the block implementation.
+ * - label: The configured label of the block if visible.
+ * - configuration: A list of the block's configuration values, including:
+ *   - label: The configured label for the block.
+ *   - label_display: The display settings for the label.
+ *   - provider: The module or other provider that provided this block plugin.
+ *   - Block plugin specific settings will also be stored here.
+ * - content: The content of this block.
+ * - attributes: A list HTML attributes populated by modules, intended to
+ *   be added to the main container tag of this template. Includes:
+ *   - id: A valid HTML ID and guaranteed unique.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   tag that appears in the template.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ *
+ * @see template_preprocess_block()
+ * @see search_preprocess_block()
+ */
+#}
+{%
+  set classes = [
+    'block',
+    'block-search',
+    'container-inline',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {{ title_prefix }}
+  {% if label %}
+    <h2{{ title_attributes }}>{{ label }}</h2>
+  {% endif %}
+  {{ title_suffix }}
+  {% block content %}
+    {{ content }}
+  {% endblock %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/block/block--system-branding-block.html.twig b/core/themes/starterkit_theme/templates/block/block--system-branding-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..baa015b17729687d9d9d078d573e8212ae7dd409
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/block/block--system-branding-block.html.twig
@@ -0,0 +1,30 @@
+{% extends "block.html.twig" %}
+{#
+/**
+ * @file
+ * Theme override for a branding block.
+ *
+ * Each branding element variable (logo, name, slogan) is only available if
+ * enabled in the block configuration.
+ *
+ * Available variables:
+ * - site_logo: Logo for site as defined in Appearance or theme settings.
+ * - site_name: Name for site as defined in Site information settings.
+ * - site_slogan: Slogan for site as defined in Site information settings.
+ */
+#}
+{% block content %}
+  {% if site_logo %}
+    <a href="{{ path('<front>') }}" rel="home" class="site-logo">
+      <img src="{{ site_logo }}" alt="{{ 'Home'|t }}" />
+    </a>
+  {% endif %}
+  {% if site_name %}
+    <div class="site-name">
+      <a href="{{ path('<front>') }}" rel="home">{{ site_name }}</a>
+    </div>
+  {% endif %}
+  {% if site_slogan %}
+    <div class="site-slogan">{{ site_slogan }}</div>
+  {% endif %}
+{% endblock %}
diff --git a/core/themes/starterkit_theme/templates/block/block--system-menu-block.html.twig b/core/themes/starterkit_theme/templates/block/block--system-menu-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..407f8403fd28c7db920f68ccbd4927bc2bbccb21
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/block/block--system-menu-block.html.twig
@@ -0,0 +1,56 @@
+{#
+/**
+ * @file
+ * Theme override for a menu block.
+ *
+ * Available variables:
+ * - plugin_id: The ID of the block implementation.
+ * - label: The configured label of the block if visible.
+ * - configuration: A list of the block's configuration values.
+ *   - label: The configured label for the block.
+ *   - label_display: The display settings for the label.
+ *   - provider: The module or other provider that provided this block plugin.
+ *   - Block plugin specific settings will also be stored here.
+ * - content: The content of this block.
+ * - attributes: HTML attributes for the containing element.
+ *   - id: A valid HTML ID and guaranteed unique.
+ * - title_attributes: HTML attributes for the title element.
+ * - content_attributes: HTML attributes for the content element.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ *
+ * Headings should be used on navigation menus that consistently appear on
+ * multiple pages. When this menu block's label is configured to not be
+ * displayed, it is automatically made invisible using the 'visually-hidden' CSS
+ * class, which still keeps it visible for screen-readers and assistive
+ * technology. Headings allow screen-reader and keyboard only users to navigate
+ * to or skip the links.
+ * See http://juicystudio.com/article/screen-readers-display-none.php and
+ * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
+ */
+#}
+{%
+  set classes = [
+    'block',
+    'block-menu',
+    'navigation',
+    'menu--' ~ derivative_plugin_id|clean_class,
+  ]
+%}
+{% set heading_id = attributes.id ~ '-menu'|clean_id %}
+<nav role="navigation" aria-labelledby="{{ heading_id }}"{{ attributes.addClass(classes)|without('role', 'aria-labelledby') }}>
+  {# Label. If not displayed, we still provide it for screen readers. #}
+  {% if not configuration.label_display %}
+    {% set title_attributes = title_attributes.addClass('visually-hidden') %}
+  {% endif %}
+  {{ title_prefix }}
+  <h2{{ title_attributes.setAttribute('id', heading_id) }}>{{ configuration.label }}</h2>
+  {{ title_suffix }}
+
+  {# Menu. #}
+  {% block content %}
+    {{ content }}
+  {% endblock %}
+</nav>
diff --git a/core/themes/starterkit_theme/templates/block/block.html.twig b/core/themes/starterkit_theme/templates/block/block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..fd3311be958b9de2fcd17108309c854fdc807217
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/block/block.html.twig
@@ -0,0 +1,44 @@
+{#
+/**
+ * @file
+ * Theme override to display a block.
+ *
+ * Available variables:
+ * - plugin_id: The ID of the block implementation.
+ * - label: The configured label of the block if visible.
+ * - configuration: A list of the block's configuration values.
+ *   - label: The configured label for the block.
+ *   - label_display: The display settings for the label.
+ *   - provider: The module or other provider that provided this block plugin.
+ *   - Block plugin specific settings will also be stored here.
+ * - content: The content of this block.
+ * - attributes: array of HTML attributes populated by modules, intended to
+ *   be added to the main container tag of this template.
+ *   - id: A valid HTML ID and guaranteed unique.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   tag that appears in the template.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ *
+ * @see template_preprocess_block()
+ */
+#}
+{%
+  set classes = [
+    'block',
+    'block-' ~ configuration.provider|clean_class,
+    'block-' ~ plugin_id|clean_class,
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {{ title_prefix }}
+  {% if label %}
+    <h2{{ title_attributes }}>{{ label }}</h2>
+  {% endif %}
+  {{ title_suffix }}
+  {% block content %}
+    {{ content }}
+  {% endblock %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/content-edit/file-managed-file.html.twig b/core/themes/starterkit_theme/templates/content-edit/file-managed-file.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..1df95ddf618e3f435d11d540dabce4dd200e32e6
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/file-managed-file.html.twig
@@ -0,0 +1,22 @@
+{#
+/**
+ * @file
+ * Theme override to display a file form widget.
+ *
+ * Available variables:
+ * - element: Form element for the file upload.
+ * - attributes: HTML attributes for the containing element.
+ *
+ * @see template_preprocess_file_managed_file()
+ */
+#}
+{{ attach_library('starterkit_theme/file') }}
+{%
+  set classes = [
+    'js-form-managed-file',
+    'form-managed-file',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {{ element }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/content-edit/file-upload-help.html.twig b/core/themes/starterkit_theme/templates/content-edit/file-upload-help.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..d05822ebcbd49870cfa8e590fd467c04475778d5
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/file-upload-help.html.twig
@@ -0,0 +1,12 @@
+{#
+/**
+ * @file
+ * Theme override to display help text for file fields.
+ *
+ * Available variables:
+ * - descriptions: Lines of help text for uploading a file.
+ *
+ * @see template_preprocess_file_upload_help()
+ */
+#}
+{{ descriptions|safe_join('<br />') }}
diff --git a/core/themes/starterkit_theme/templates/content-edit/file-widget-multiple.html.twig b/core/themes/starterkit_theme/templates/content-edit/file-widget-multiple.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..34646fe7796b1204850362dd07b1970f1c933327
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/file-widget-multiple.html.twig
@@ -0,0 +1,14 @@
+{#
+/**
+ * @file
+ * Theme override to display a multi file form widget.
+ *
+ * Available variables:
+ * - table: Table of previously uploaded files.
+ * - element: The form element for uploading another file.
+ *
+ * @see template_preprocess_file_widget_multiple()
+ */
+#}
+{{ table }}
+{{ element }}
diff --git a/core/themes/starterkit_theme/templates/content-edit/filter-caption.html.twig b/core/themes/starterkit_theme/templates/content-edit/filter-caption.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..1e35795fc153cc516987f5157e7edac1e728437f
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/filter-caption.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Theme override for a filter caption.
+ *
+ * Returns HTML for a captioned image, audio, video or other tag.
+ *
+ * Available variables
+ * - string node: The complete HTML tag whose contents are being captioned.
+ * - string tag: The name of the HTML tag whose contents are being captioned.
+ * - string caption: The caption text.
+ * - string classes: The classes of the captioned HTML tag.
+ */
+#}
+<figure role="group" class="caption caption-{{ tag }}{%- if classes %} {{ classes }}{%- endif %}">
+{{ node }}
+<figcaption>{{ caption }}</figcaption>
+</figure>
diff --git a/core/themes/starterkit_theme/templates/content-edit/filter-guidelines.html.twig b/core/themes/starterkit_theme/templates/content-edit/filter-guidelines.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..afef2d2cfb37a41943a26e9c98cee45d81a36eb7
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/filter-guidelines.html.twig
@@ -0,0 +1,29 @@
+{#
+/**
+ * @file
+ * Theme override for guidelines for a text format.
+ *
+ * Available variables:
+ * - format: Contains information about the current text format, including the
+ *   following:
+ *   - name: The name of the text format, potentially unsafe and needs to be
+ *     escaped.
+ *   - format: The machine name of the text format, e.g. 'basic_html'.
+ * - attributes: HTML attributes for the containing element.
+ * - tips: Descriptions and a CSS ID in the form of 'module-name/filter-id'
+ *   (only used when 'long' is TRUE) for each filter in one or more text
+ *   formats.
+ *
+ * @see template_preprocess_filter_tips()
+ */
+#}
+{%
+  set classes = [
+    'filter-guidelines-item',
+    'filter-guidelines-' ~ format.id,
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  <h4 class="label">{{ format.label }}</h4>
+  {{ tips }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/content-edit/filter-tips.html.twig b/core/themes/starterkit_theme/templates/content-edit/filter-tips.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..25ed49d6ae18a9ef97a71308518f9fb998a5bce3
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/filter-tips.html.twig
@@ -0,0 +1,61 @@
+{#
+/**
+ * @file
+ * Theme override for a set of filter tips.
+ *
+ * Available variables:
+ * - tips: Descriptions and a CSS ID in the form of 'module-name/filter-id'
+ *   (only used when 'long' is TRUE) for each filter in one or more text
+ *   formats.
+ * - long: A flag indicating whether the passed-in filter tips contain extended
+ *   explanations, i.e. intended to be output on the path 'filter/tips'
+ *   (TRUE), or are in a short format, i.e. suitable to be displayed below a
+ *   form element. Defaults to FALSE.
+ * - multiple: A flag indicating there is more than one filter tip.
+ *
+ * @see template_preprocess_filter_tips()
+ */
+#}
+{% if multiple %}
+  <h2>{{ 'Text Formats'|t }}</h2>
+{% endif %}
+
+{% if tips|length %}
+  {% if multiple %}
+    <div class="compose-tips">
+  {% endif %}
+
+  {% for name, tip in tips %}
+    {% if multiple %}
+      {%
+        set tip_classes = [
+          'filter-type',
+          'filter-' ~ name|clean_class,
+        ]
+      %}
+      <div{{ tip.attributes.addClass(tip_classes) }}>
+      <h3>{{ tip.name }}</h3>
+    {% endif %}
+
+    {% if tip.list|length %}
+      <ul class="tips">
+      {% for item in tip.list %}
+        {%
+          set item_classes = [
+            long ? 'filter-' ~ item.id|replace({'/': '-'}),
+          ]
+        %}
+        <li{{ item.attributes.addClass(item_classes) }}>{{ item.tip }}</li>
+      {% endfor %}
+      </ul>
+    {% endif %}
+
+    {% if multiple %}
+      </div>
+    {% endif %}
+  {% endfor %}
+
+  {% if multiple %}
+    </div>
+  {% endif %}
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/content-edit/image-widget.html.twig b/core/themes/starterkit_theme/templates/content-edit/image-widget.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..dac3a227b3d3a5eadd45b2538311a1c894fea040
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/image-widget.html.twig
@@ -0,0 +1,23 @@
+{#
+/**
+ * @file
+ * Theme override for an image field widget.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - data: Render elements of the image widget.
+ *
+ * @see template_preprocess_image_widget()
+ */
+#}
+<div{{ attributes }}>
+  {% if data.preview %}
+    <div class="image-preview">
+      {{ data.preview }}
+    </div>
+  {% endif %}
+  <div class="image-widget-data">
+    {# Render widget data without the image preview that was output already. #}
+    {{ data|without('preview') }}
+  </div>
+</div>
diff --git a/core/themes/starterkit_theme/templates/content-edit/node-add-list.html.twig b/core/themes/starterkit_theme/templates/content-edit/node-add-list.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..f38fe3a5c67d5d97ae6dbdd0e67debfee7c0df99
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/node-add-list.html.twig
@@ -0,0 +1,30 @@
+{#
+/**
+ * @file
+ * Theme override to list node types available for adding content.
+ *
+ * This list is displayed on the Add content admin page.
+ *
+ * Available variables:
+ * - types: A list of content types, each with the following properties:
+ *   - add_link: Link to create a piece of content of this type.
+ *   - description: Description of this type of content.
+ *
+ * @see template_preprocess_node_add_list()
+ */
+#}
+{% if types is not empty %}
+  <dl class="node-type-list">
+    {% for type in types %}
+      <dt>{{ type.add_link }}</dt>
+      <dd>{{ type.description }}</dd>
+    {% endfor %}
+  </dl>
+{% else %}
+  <p>
+    {% set create_content = path('node.type_add') %}
+    {% trans %}
+      You have not created any content types yet. Go to the <a href="{{ create_content }}">content type creation page</a> to add a new content type.
+    {% endtrans %}
+  </p>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/content-edit/node-edit-form.html.twig b/core/themes/starterkit_theme/templates/content-edit/node-edit-form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..18097f37974ce1239e7493cdc1d3a26d54e91fd8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/node-edit-form.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Theme override for a node edit form.
+ *
+ * Two column template for the node add/edit form.
+ *
+ * This template will be used when a node edit form specifies 'node_edit_form'
+ * as its #theme callback.  Otherwise, by default, node add/edit forms will be
+ * themed by form.html.twig.
+ *
+ * Available variables:
+ * - form: The node add/edit form.
+ *
+ * @see seven_form_node_form_alter()
+ */
+#}
+<div class="layout-node-form clearfix">
+  <div class="layout-region layout-region-node-main">
+    {{ form|without('advanced', 'actions') }}
+  </div>
+  <div class="layout-region layout-region-node-secondary">
+    {{ form.advanced }}
+  </div>
+  <div class="layout-region layout-region-node-footer">
+    {{ form.actions }}
+  </div>
+</div>
diff --git a/core/themes/starterkit_theme/templates/content-edit/text-format-wrapper.html.twig b/core/themes/starterkit_theme/templates/content-edit/text-format-wrapper.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..08a88ca1ce1d95fba8fe44a30f3fdaca95210143
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content-edit/text-format-wrapper.html.twig
@@ -0,0 +1,26 @@
+{#
+/**
+ * @file
+ * Theme override for a text format-enabled form element.
+ *
+ * Available variables:
+ * - children: Text format element children.
+ * - description: Text format element description.
+ * - attributes: HTML attributes for the containing element.
+ * - aria_description: Flag for whether or not an ARIA description has been
+ *   added to the description container.
+ *
+ * @see template_preprocess_text_format_wrapper()
+ */
+#}
+<div class="js-text-format-wrapper text-format-wrapper js-form-item form-item">
+  {{ children }}
+  {% if description %}
+    {%
+      set classes = [
+        aria_description ? 'description',
+      ]
+    %}
+    <div{{ attributes.addClass(classes) }}>{{ description }}</div>
+  {% endif %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/content/aggregator-item.html.twig b/core/themes/starterkit_theme/templates/content/aggregator-item.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..16f4428a03d81e039afd2f2129e37bc24709d47d
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/aggregator-item.html.twig
@@ -0,0 +1,31 @@
+{#
+/**
+ * @file
+ * Theme override to present a feed item in an aggregator page.
+ *
+ * Available variables:
+ * - url: URL to the originating feed item.
+ * - title: (optional) Title of the feed item.
+ * - content: All field items. Use {{ content }} to print them all,
+ *   or print a subset such as {{ content.field_example }}. Use
+ *   {{ content|without('field_example') }} to temporarily suppress the printing
+ *   of a given element.
+ * - attributes: HTML attributes for the wrapper.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ *
+ * @see template_preprocess_aggregator_item()
+ */
+#}
+<article{{ attributes.addClass('aggregator-item') }}>
+  {{ title_prefix }}
+  {% if title %}
+    <h3 class="feed-item-title">
+      <a href="{{ url }}">{{ title }}</a>
+    </h3>
+  {% endif %}
+  {{ title_suffix }}
+  {{ content }}
+</article>
diff --git a/core/themes/starterkit_theme/templates/content/book-node-export-html.html.twig b/core/themes/starterkit_theme/templates/content/book-node-export-html.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..94a4c24dc714d510299c202402d6e575b739a126
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/book-node-export-html.html.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Theme override for a single node in a printer-friendly outline.
+ *
+ * Available variables:
+ * - node: Fully loaded node.
+ * - depth: Depth of the current node inside the outline.
+ * - title: Node title.
+ * - content: Node content.
+ * - children: All the child nodes recursively rendered through this file.
+ *
+ * @see template_preprocess_book_node_export_html()
+ */
+#}
+<article id="node-{{ node.id }}" class="section-{{ depth }}">
+  <h1 class="book-heading">{{ title }}</h1>
+  {{ content }}
+  {{ children }}
+</article>
diff --git a/core/themes/starterkit_theme/templates/content/comment.html.twig b/core/themes/starterkit_theme/templates/content/comment.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..ccfcfc84c3e3711cb991d2a6182c3aaba56e9efd
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/comment.html.twig
@@ -0,0 +1,111 @@
+{#
+/**
+ * @file
+ * Theme override for comments.
+ *
+ * Available variables:
+ * - author: Comment author. Can be a link or plain text.
+ * - content: The content-related items for the comment display. Use
+ *   {{ content }} to print them all, or print a subset such as
+ *   {{ content.field_example }}. Use the following code to temporarily suppress
+ *   the printing of a given child element:
+ *   @code
+ *   {{ content|without('field_example') }}
+ *   @endcode
+ * - created: Formatted date and time for when the comment was created.
+ *   Preprocess functions can reformat it by calling DateFormatter::format()
+ *   with the desired parameters on the 'comment.created' variable.
+ * - changed: Formatted date and time for when the comment was last changed.
+ *   Preprocess functions can reformat it by calling DateFormatter::format()
+ *   with the desired parameters on the 'comment.changed' variable.
+ * - permalink: Comment permalink.
+ * - submitted: Submission information created from author and created
+ *   during template_preprocess_comment().
+ * - user_picture: The comment author's profile picture.
+ * - status: Comment status. Possible values are:
+ *   unpublished, published, or preview.
+ * - title: Comment title, linked to the comment.
+ * - attributes: HTML attributes for the containing element.
+ *   The attributes.class may contain one or more of the following classes:
+ *   - comment: The current template type; e.g., 'theming hook'.
+ *   - by-anonymous: Comment by an unregistered user.
+ *   - by-{entity-type}-author: Comment by the author of the parent entity,
+ *     eg. by-node-author.
+ *   - preview: When previewing a new or edited comment.
+ *   The following applies only to viewers who are registered users:
+ *   - unpublished: An unpublished comment visible only to administrators.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ * - content_attributes: List of classes for the styling of the comment content.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   tag that appears in the template.
+ * - threaded: A flag indicating whether the comments are threaded or not.
+ *
+ * These variables are provided to give context about the parent comment (if
+ * any):
+ * - parent_comment: Full parent comment entity (if any).
+ * - parent_author: Equivalent to author for the parent comment.
+ * - parent_created: Equivalent to created for the parent comment.
+ * - parent_changed: Equivalent to changed for the parent comment.
+ * - parent_title: Equivalent to title for the parent comment.
+ * - parent_permalink: Equivalent to permalink for the parent comment.
+ * - parent: A text string of parent comment submission information created from
+ *   'parent_author' and 'parent_created' during template_preprocess_comment().
+ *   This information is presented to help screen readers follow lengthy
+ *   discussion threads. You can hide this from sighted users using the class
+ *   visually-hidden.
+ *
+ * These two variables are provided for context:
+ * - comment: Full comment object.
+ * - entity: Entity the comments are attached to.
+ *
+ * @see template_preprocess_comment()
+ */
+#}
+{% if threaded %}
+  {{ attach_library('starterkit_theme/indented') }}
+{% endif %}
+{%
+  set classes = [
+    'comment',
+    'js-comment',
+    status != 'published' ? status,
+    comment.owner.anonymous ? 'by-anonymous',
+    author_id and author_id == commented_entity.getOwnerId() ? 'by-' ~ commented_entity.getEntityTypeId() ~ '-author',
+  ]
+%}
+<article{{ attributes.addClass(classes) }}>
+  {#
+    Hide the "new" indicator by default, let a piece of JavaScript ask the
+    server which comments are new for the user. Rendering the final "new"
+    indicator here would break the render cache.
+  #}
+  <mark class="hidden" data-comment-timestamp="{{ new_indicator_timestamp }}"></mark>
+
+  <footer class="comment__meta">
+    {{ user_picture }}
+    <p class="comment__submitted">{{ submitted }}</p>
+
+    {#
+      Indicate the semantic relationship between parent and child comments for
+      accessibility. The list is difficult to navigate in a screen reader
+      without this information.
+    #}
+    {% if parent %}
+      <p class="parent visually-hidden">{{ parent }}</p>
+    {% endif %}
+
+    {{ permalink }}
+  </footer>
+
+  <div{{ content_attributes.addClass('content') }}>
+    {% if title %}
+      {{ title_prefix }}
+      <h3{{ title_attributes }}>{{ title }}</h3>
+      {{ title_suffix }}
+    {% endif %}
+    {{ content }}
+  </div>
+</article>
diff --git a/core/themes/starterkit_theme/templates/content/links--node.html.twig b/core/themes/starterkit_theme/templates/content/links--node.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..e6cda0d7bb557e1be0c732d456ffcbb353f81269
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/links--node.html.twig
@@ -0,0 +1,40 @@
+{#
+/**
+ * @file
+ * Theme override to display node links.
+ *
+ * Available variables:
+ * - attributes: Attributes for the UL containing the list of links.
+ * - links: Links to be output.
+ *   Each link will have the following elements:
+ *   - link: (optional) A render array that returns a link. See
+ *     template_preprocess_links() for details how it is generated.
+ *   - text: The link text.
+ *   - attributes: HTML attributes for the list item element.
+ *   - text_attributes: (optional) HTML attributes for the span element if no
+ *     'url' was supplied.
+ * - heading: (optional) A heading to precede the links.
+ *   - text: The heading text.
+ *   - level: The heading level (e.g. 'h2', 'h3').
+ *   - attributes: (optional) A keyed list of attributes for the heading.
+ *   If the heading is a string, it will be used as the text of the heading and
+ *   the level will default to 'h2'.
+ *
+ *   Headings should be used on navigation menus and any list of links that
+ *   consistently appears on multiple pages. To make the heading invisible use
+ *   the 'visually-hidden' CSS class. Do not use 'display:none', which
+ *   removes it from screen readers and assistive technology. Headings allow
+ *   screen reader and keyboard only users to navigate to or skip the links.
+ *   See http://juicystudio.com/article/screen-readers-display-none.php and
+ *   http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
+ *
+ * @see template_preprocess_links()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if links %}
+  <div class="node__links">
+    {% include "links.html.twig" %}
+  </div>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/content/mark.html.twig b/core/themes/starterkit_theme/templates/content/mark.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9219915ce5d567258169d4b58cdf44a32263e0b4
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/mark.html.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Theme override for a marker for new or updated content.
+ *
+ * Available variables:
+ * - status: Number representing the marker status to display. Use the constants
+ *   below for comparison:
+ *   - MARK_NEW
+ *   - MARK_UPDATED
+ *   - MARK_READ
+ */
+#}
+{% if logged_in %}
+  {% if status is constant('MARK_NEW') %}
+    <span class="marker">{{ 'New'|t }}</span>
+  {% elseif status is constant('MARK_UPDATED') %}
+    <span class="marker">{{ 'Updated'|t }}</span>
+  {% endif %}
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/content/media-embed-error.html.twig b/core/themes/starterkit_theme/templates/content/media-embed-error.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..5b8dce4c412fbe008179adb7c20761a78b7f91d8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/media-embed-error.html.twig
@@ -0,0 +1,21 @@
+{#
+/**
+ * @file
+ * Theme override for a missing media error.
+ *
+ * Available variables
+ * - message: The message text.
+ * - attributes: HTML attributes for the containing element.
+ *
+ * When a response from the back end can't be returned, a related error message
+ * is displayed from JavaScript.
+ *
+ * @see Drupal.theme.mediaEmbedPreviewError
+ *
+ * @ingroup themeable
+ */
+#}
+{{ attach_library('starterkit_theme/media_embed_error') }}
+<div{{ attributes.addClass('media-embed-error', 'media-embed-error--missing-source') }}>
+  {{ message }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/content/media.html.twig b/core/themes/starterkit_theme/templates/content/media.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..422030e9d027b79f2b77d252f09bad1fb7821bdd
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/media.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Theme override to display a media item.
+ *
+ * Available variables:
+ * - name: Name of the media.
+ * - content: Media content.
+ *
+ * @see template_preprocess_media()
+ *
+ * @ingroup themeable
+ */
+#}
+{%
+  set classes = [
+    'media',
+    'media--type-' ~ media.bundle()|clean_class,
+    not media.isPublished() ? 'media--unpublished',
+    view_mode ? 'media--view-mode-' ~ view_mode|clean_class,
+  ]
+%}
+<article{{ attributes.addClass(classes) }}>
+  {{ title_suffix.contextual_links }}
+  {% if content %}
+    {{ content }}
+  {% endif %}
+</article>
diff --git a/core/themes/starterkit_theme/templates/content/node.html.twig b/core/themes/starterkit_theme/templates/content/node.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..0dd41d3f4a675321d2781d2e17863b191239bd24
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/node.html.twig
@@ -0,0 +1,108 @@
+{#
+/**
+ * @file
+ * Theme override to display a node.
+ *
+ * Available variables:
+ * - node: The node entity with limited access to object properties and methods.
+ *   Only method names starting with "get", "has", or "is" and a few common
+ *   methods such as "id", "label", and "bundle" are available. For example:
+ *   - node.getCreatedTime() will return the node creation timestamp.
+ *   - node.hasField('field_example') returns TRUE if the node bundle includes
+ *     field_example. (This does not indicate the presence of a value in this
+ *     field.)
+ *   - node.isPublished() will return whether the node is published or not.
+ *   Calling other methods, such as node.delete(), will result in an exception.
+ *   See \Drupal\node\Entity\Node for a full list of public properties and
+ *   methods for the node object.
+ * - label: (optional) The title of the node.
+ * - content: All node items. Use {{ content }} to print them all,
+ *   or print a subset such as {{ content.field_example }}. Use
+ *   {{ content|without('field_example') }} to temporarily suppress the printing
+ *   of a given child element.
+ * - author_picture: The node author user entity, rendered using the "compact"
+ *   view mode.
+ * - metadata: Metadata for this node.
+ * - date: (optional) Themed creation date field.
+ * - author_name: (optional) Themed author name field.
+ * - url: Direct URL of the current node.
+ * - display_submitted: Whether submission information should be displayed.
+ * - attributes: HTML attributes for the containing element.
+ *   The attributes.class element may contain one or more of the following
+ *   classes:
+ *   - node: The current template type (also known as a "theming hook").
+ *   - node--type-[type]: The current node type. For example, if the node is an
+ *     "Article" it would result in "node--type-article". Note that the machine
+ *     name will often be in a short form of the human readable label.
+ *   - node--view-mode-[view_mode]: The View Mode of the node; for example, a
+ *     teaser would result in: "node--view-mode-teaser", and
+ *     full: "node--view-mode-full".
+ *   The following are controlled through the node publishing options.
+ *   - node--promoted: Appears on nodes promoted to the front page.
+ *   - node--sticky: Appears on nodes ordered above other non-sticky nodes in
+ *     teaser listings.
+ *   - node--unpublished: Appears on unpublished nodes visible only to site
+ *     admins.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   tag that appears in the template.
+ * - content_attributes: Same as attributes, except applied to the main
+ *   content tag that appears in the template.
+ * - author_attributes: Same as attributes, except applied to the author of
+ *   the node tag that appears in the template.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ * - view_mode: View mode; for example, "teaser" or "full".
+ * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
+ * - page: Flag for the full page state. Will be true if view_mode is 'full'.
+ * - readmore: Flag for more state. Will be true if the teaser content of the
+ *   node cannot hold the main body content.
+ * - logged_in: Flag for authenticated user status. Will be true when the
+ *   current user is a logged-in member.
+ * - is_admin: Flag for admin user status. Will be true when the current user
+ *   is an administrator.
+ *
+ * @see template_preprocess_node()
+ *
+ * @todo Remove the id attribute (or make it a class), because if that gets
+ *   rendered twice on a page this is invalid CSS for example: two lists
+ *   in different view modes.
+ */
+#}
+{%
+  set classes = [
+    'node',
+    'node--type-' ~ node.bundle|clean_class,
+    node.isPromoted() ? 'node--promoted',
+    node.isSticky() ? 'node--sticky',
+    not node.isPublished() ? 'node--unpublished',
+    view_mode ? 'node--view-mode-' ~ view_mode|clean_class,
+  ]
+%}
+{{ attach_library('starterkit_theme/node') }}
+<article{{ attributes.addClass(classes) }}>
+
+  {{ title_prefix }}
+  {% if label and not page %}
+    <h2{{ title_attributes }}>
+      <a href="{{ url }}" rel="bookmark">{{ label }}</a>
+    </h2>
+  {% endif %}
+  {{ title_suffix }}
+
+  {% if display_submitted %}
+    <footer class="node__meta">
+      {{ author_picture }}
+      <div{{ author_attributes.addClass('node__submitted') }}>
+        {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
+        {{ metadata }}
+      </div>
+    </footer>
+  {% endif %}
+
+  <div{{ content_attributes.addClass('node__content') }}>
+    {{ content }}
+  </div>
+
+</article>
diff --git a/core/themes/starterkit_theme/templates/content/page-title.html.twig b/core/themes/starterkit_theme/templates/content/page-title.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..e1de7266074e092d5d5d99d1c0c12bc36955989b
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/page-title.html.twig
@@ -0,0 +1,19 @@
+{#
+/**
+ * @file
+ * Theme override for page titles.
+ *
+ * Available variables:
+ * - title_attributes: HTML attributes for the page title element.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title: The page title, for use in the actual content.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ */
+#}
+{{ title_prefix }}
+{% if title %}
+  <h1{{ title_attributes.addClass('page-title') }}>{{ title }}</h1>
+{% endif %}
+{{ title_suffix }}
diff --git a/core/themes/starterkit_theme/templates/content/search-result.html.twig b/core/themes/starterkit_theme/templates/content/search-result.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..f879bc58852215aa69928634d97d83c24fc822e7
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/search-result.html.twig
@@ -0,0 +1,72 @@
+{#
+/**
+ * @file
+ * Theme override for displaying a single search result.
+ *
+ * This template renders a single search result. The list of results is
+ * rendered using '#theme' => 'item_list', with suggestions of:
+ * - item_list__search_results__(plugin_id)
+ * - item_list__search_results
+ *
+ * Available variables:
+ * - url: URL of the result.
+ * - title: Title of the result.
+ * - snippet: A small preview of the result. Does not apply to user searches.
+ * - info: String of all the meta information ready for print. Does not apply
+ *   to user searches.
+ * - plugin_id: The machine-readable name of the plugin being executed,such
+ *   as "node_search" or "user_search".
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ * - info_split: Contains same data as info, but split into separate parts.
+ *   - info_split.type: Node type (or item type string supplied by module).
+ *   - info_split.user: Author of the node linked to users profile. Depends
+ *     on permission.
+ *   - info_split.date: Last update of the node. Short formatted.
+ *   - info_split.comment: Number of comments output as "% comments", %
+ *     being the count. (Depends on comment.module).
+ * @todo The info variable needs to be made drillable and each of these sub
+ *   items should instead be within info and renamed info.foo, info.bar, etc.
+ *
+ * Other variables:
+ * - title_attributes: HTML attributes for the title.
+ * - content_attributes: HTML attributes for the content.
+ *
+ * Since info_split is keyed, a direct print of the item is possible.
+ * This array does not apply to user searches so it is recommended to check
+ * for its existence before printing. The default keys of 'type', 'user' and
+ * 'date' always exist for node searches. Modules may provide other data.
+ * @code
+ *   {% if (info_split.comment) %}
+ *     <span class="info-comment">
+ *       {{ info_split.comment }}
+ *     </span>
+ *   {% endif %}
+ * @endcode
+ *
+ * To check for all available data within info_split, use the code below.
+ * @code
+ *   <pre>
+ *     {{ dump(info_split) }}
+ *   </pre>
+ * @endcode
+ *
+ * @see template_preprocess_search_result()
+ */
+#}
+{{ attach_library('starterkit_theme/search-results') }}
+{{ title_prefix }}
+<h3{{ title_attributes.addClass('search-result__title') }}>
+  <a href="{{ url }}">{{ title }}</a>
+</h3>
+{{ title_suffix }}
+<div class="search-result__snippet-info">
+  {% if snippet %}
+    <p{{ content_attributes.addClass('search-result__snippet') }}>{{ snippet }}</p>
+  {% endif %}
+  {% if info %}
+    <p class="search-result__info">{{ info }}</p>
+  {% endif %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/content/taxonomy-term.html.twig b/core/themes/starterkit_theme/templates/content/taxonomy-term.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..6478b507d006fdd2386ab35f7eef09eb89be16b3
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/content/taxonomy-term.html.twig
@@ -0,0 +1,41 @@
+{#
+/**
+ * @file
+ * Theme override to display a taxonomy term.
+ *
+ * Available variables:
+ * - url: URL of the current term.
+ * - name: (optional) Name of the current term.
+ * - content: Items for the content of the term (fields and description).
+ *   Use 'content' to print them all, or print a subset such as
+ *   'content.description'. Use the following code to exclude the
+ *   printing of a given child element:
+ *   @code
+ *   {{ content|without('description') }}
+ *   @endcode
+ * - attributes: HTML attributes for the wrapper.
+ * - page: Flag for the full page state.
+ * - term: The taxonomy term entity, including:
+ *   - id: The ID of the taxonomy term.
+ *   - bundle: Machine name of the current vocabulary.
+ * - view_mode: View mode, e.g. 'full', 'teaser', etc.
+ *
+ * @see template_preprocess_taxonomy_term()
+ */
+#}
+{%
+  set classes = [
+    'taxonomy-term',
+    'vocabulary-' ~ term.bundle|clean_class,
+  ]
+%}
+<div{{ attributes.setAttribute('id', 'taxonomy-term-' ~ term.id).addClass(classes) }}>
+  {{ title_prefix }}
+  {% if name and not page %}
+    <h2><a href="{{ url }}">{{ name }}</a></h2>
+  {% endif %}
+  {{ title_suffix }}
+  <div class="content">
+    {{ content }}
+  </div>
+</div>
diff --git a/core/themes/starterkit_theme/templates/dataset/aggregator-feed.html.twig b/core/themes/starterkit_theme/templates/dataset/aggregator-feed.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9eacccb60481cf07f94c7427af4c4f193f1ca939
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/aggregator-feed.html.twig
@@ -0,0 +1,36 @@
+{#
+/**
+ * @file
+ * Theme override to present an aggregator feed.
+ *
+ * The contents are rendered above feed listings when browsing source feeds.
+ * For example, "example.com/aggregator/sources/1".
+ *
+ * Available variables:
+ * - title: (optional) Title of the feed item.
+ * - content: All field items. Use {{ content }} to print them all,
+ *   or print a subset such as {{ content.field_example }}. Use
+ *   {{ content|without('field_example') }} to temporarily suppress the printing
+ *   of a given element.
+ * - attributes: HTML attributes for the wrapper.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   tag that appears in the template.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ *
+ * @see template_preprocess_aggregator_feed()
+ */
+#}
+<div{{ attributes.addClass('aggregator-feed') }}>
+
+  {{ title_prefix }}
+  {% if title and not full %}
+    <h2{{ title_attributes }}>{{ title }}</h2>
+  {% endif %}
+  {{ title_suffix }}
+
+  {{ content }}
+
+</div>
diff --git a/core/themes/starterkit_theme/templates/dataset/forum-icon.html.twig b/core/themes/starterkit_theme/templates/dataset/forum-icon.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..d6be503bb2af344d3f149ce285f0980c0878fc28
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/forum-icon.html.twig
@@ -0,0 +1,30 @@
+{#
+/**
+ * @file
+ * Theme override to display a status icon for a forum post.
+ *
+ * Available variables:
+ * - attributes: HTML attributes to be applied to the wrapper element.
+ *   - class: HTML classes that determine which icon to display. May be one of
+ *     'hot', 'hot-new', 'new', 'default', 'closed', or 'sticky'.
+ *   - title: Text alternative for the forum icon.
+ * - icon_title: Text alternative for the forum icon, same as above.
+ * - new_posts: '1' when this topic contains new posts, otherwise '0'.
+ * - first_new: '1' when this is the first topic with new posts, otherwise '0'.
+ * - icon_status: Indicates which status icon should be used.
+ *
+ * @see template_preprocess_forum_icon()
+ */
+#}
+{%
+  set classes = [
+    'forum__icon',
+    'forum__topic-status--' ~ icon_status,
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {% if first_new -%}
+    <a id="new"></a>
+  {%- endif %}
+  <span class="visually-hidden">{{ icon_title }}</span>
+</div>
diff --git a/core/themes/starterkit_theme/templates/dataset/forum-list.html.twig b/core/themes/starterkit_theme/templates/dataset/forum-list.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..d8523f1598276ca42a5d759fd45852f871158774
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/forum-list.html.twig
@@ -0,0 +1,79 @@
+{#
+/**
+ * @file
+ * Theme override to display a list of forums and containers.
+ *
+ * Available variables:
+ * - forums: A collection of forums and containers to display. It is keyed to
+ *   the numeric IDs of all child forums and containers. Each forum in forums
+ *   contains:
+ *   - is_container: A flag indicating if the forum can contain other
+ *     forums. Otherwise, the forum can only contain topics.
+ *   - depth: How deep the forum is in the current hierarchy.
+ *   - zebra: 'even' or 'odd', used for row class.
+ *   - icon_class: 'default' or 'new', used for forum icon class.
+ *   - icon_title: Text alternative for the forum icon.
+ *   - name: The name of the forum.
+ *   - link: The URL to link to this forum.
+ *   - description: The description field for the forum, containing:
+ *     - value: The descriptive text for the forum.
+ *   - new_topics: A flag indicating if the forum contains unread posts.
+ *   - new_url: A URL to the forum's unread posts.
+ *   - new_text: Text for the above URL, which tells how many new posts.
+ *   - old_topics: A count of posts that have already been read.
+ *   - num_posts: The total number of posts in the forum.
+ *   - last_reply: Text representing the last time a forum was posted or
+ *     commented in.
+ * - forum_id: Forum ID for the current forum. Parent to all items within the
+ *   forums array.
+ *
+ * @see template_preprocess_forum_list()
+ */
+#}
+<table id="forum-{{ forum_id }}">
+  <thead>
+    <tr>
+      <th>{{ 'Forum'|t }}</th>
+      <th>{{ 'Topics'|t }}</th>
+      <th>{{ 'Posts'|t }}</th>
+      <th>{{ 'Last post'|t }}</th>
+    </tr>
+  </thead>
+  <tbody>
+  {% for child_id, forum in forums %}
+    <tr id="forum-list-{{ child_id }}" class="{{ forum.zebra }}">
+      <td {% if forum.is_container == true -%}
+        colspan="4" class="container"
+      {%- else -%}
+        class="forum-list__forum"
+      {%- endif -%}>
+        {#
+          Enclose the contents of this cell with X divs, where X is the
+          depth this forum resides at. This will allow us to use CSS
+          left-margin for indenting.
+        #}
+        {% if forum.depth > 0 %}{% for i in 1..forum.depth %}<div class="indented">{% endfor %}{% endif %}
+          <div class="forum__icon forum-status-{{ forum.icon_class }}" title="{{ forum.icon_title }}">
+            <span class="visually-hidden">{{ forum.icon_title }}</span>
+          </div>
+          <div class="forum__name"><a href="{{ forum.link }}">{{ forum.label }}</a></div>
+          {% if forum.description.value %}
+            <div class="forum__description">{{ forum.description.value }}</div>
+          {% endif %}
+          {% if forum.depth > 0 %}{% for i in 1..forum.depth %}</div>{% endfor %}{% endif %}
+      </td>
+      {% if forum.is_container == false %}
+        <td class="forum__topics">
+          {{ forum.num_topics }}
+          {% if forum.new_topics == true %}
+            <br />
+            <a href="{{ forum.new_url }}">{{ forum.new_text }}</a>
+          {% endif %}
+        </td>
+        <td class="forum__posts">{{ forum.num_posts }}</td>
+        <td class="forum__last-reply">{{ forum.last_reply }}</td>
+      {% endif %}
+    </tr>
+  {% endfor %}
+  </tbody>
+</table>
diff --git a/core/themes/starterkit_theme/templates/dataset/forums.html.twig b/core/themes/starterkit_theme/templates/dataset/forums.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..15da6020f7a2860998865d69db79050aec6d78c8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/forums.html.twig
@@ -0,0 +1,24 @@
+{#
+/**
+ * @file
+ * Theme override to display a forum.
+ *
+ * May contain forum containers as well as forum topics.
+ *
+ * Available variables:
+ * - forums: The forums to display (as processed by forum-list.html.twig).
+ * - topics: The topics to display.
+ * - topics_pager: The topics pager.
+ * - forums_defined: A flag to indicate that the forums are configured.
+ *
+ * @see template_preprocess_forums()
+ */
+#}
+{{ attach_library('starterkit_theme/forum') }}
+{% if forums_defined %}
+  <div class="forum">
+    {{ forums }}
+    {{ topics }}
+    {{ topics_pager }}
+  </div>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/dataset/item-list--search-results.html.twig b/core/themes/starterkit_theme/templates/dataset/item-list--search-results.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..e9928fd776600c762b9f096370e9978ff1c6495a
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/item-list--search-results.html.twig
@@ -0,0 +1,29 @@
+{% extends "item-list.html.twig" %}
+{#
+/**
+ * @file
+ * Theme override for an item list of search results.
+ *
+ * Available variables:
+ * - items: A list of items. Each item contains:
+ *   - attributes: HTML attributes to be applied to each list item.
+ *   - value: The content of the list element.
+ * - title: The title of the list.
+ * - list_type: The tag for list element ("ul" or "ol").
+ * - attributes: HTML attributes to be applied to the list.
+ * - empty: A message to display when there are no items. Allowed value is a
+ *   string or render array.
+ * - context: An list of contextual data associated with the list. For search
+ *   results, the following data is set:
+ *   - plugin: The search plugin ID, for example "node_search".
+ *
+ * @see template_preprocess_item_list()
+ */
+#}
+{%
+  set classes = [
+    'search-results',
+    context.plugin ~ '-results',
+  ]
+%}
+{% set attributes = attributes.addClass(classes) %}
diff --git a/core/themes/starterkit_theme/templates/dataset/item-list.html.twig b/core/themes/starterkit_theme/templates/dataset/item-list.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..20541b0b7e6652761504f747ad9972a2759fe27b
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/item-list.html.twig
@@ -0,0 +1,41 @@
+{#
+/**
+ * @file
+ * Theme override for an item list.
+ *
+ * Available variables:
+ * - items: A list of items. Each item contains:
+ *   - attributes: HTML attributes to be applied to each list item.
+ *   - value: The content of the list element.
+ * - title: The title of the list.
+ * - list_type: The tag for list element ("ul" or "ol").
+ * - wrapper_attributes: HTML attributes to be applied to the list wrapper.
+ * - attributes: HTML attributes to be applied to the list.
+ * - empty: A message to display when there are no items. Allowed value is a
+ *   string or render array.
+ * - context: A list of contextual data associated with the list. May contain:
+ *   - list_style: The custom list style.
+ *
+ * @see template_preprocess_item_list()
+ */
+#}
+{% if context.list_style %}
+  {%- set wrapper_attributes = wrapper_attributes.addClass('item-list--' ~ context.list_style) %}
+  {%- set attributes = attributes.addClass('item-list__' ~ context.list_style) %}
+{% endif %}
+{% if items or empty -%}
+  <div{{ wrapper_attributes.addClass('item-list') }}>
+    {%- if title is not empty -%}
+      <h3>{{ title }}</h3>
+    {%- endif -%}
+    {%- if items -%}
+      <{{ list_type }}{{ attributes }}>
+        {%- for item in items -%}
+          <li{{ item.attributes }}>{{ item.value }}</li>
+        {%- endfor -%}
+      </{{ list_type }}>
+    {%- else -%}
+      {{- empty -}}
+    {%- endif -%}
+  </div>
+{%- endif %}
diff --git a/core/themes/starterkit_theme/templates/dataset/table.html.twig b/core/themes/starterkit_theme/templates/dataset/table.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..2afa9c155642349eea89066b17ad245044558b80
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/dataset/table.html.twig
@@ -0,0 +1,113 @@
+{#
+/**
+ * @file
+ * Theme override to display a table.
+ *
+ * Available variables:
+ * - attributes: HTML attributes to apply to the <table> tag.
+ * - caption: A localized string for the <caption> tag.
+ * - colgroups: Column groups. Each group contains the following properties:
+ *   - attributes: HTML attributes to apply to the <col> tag.
+ *     Note: Drupal currently supports only one table header row, see
+ *     https://www.drupal.org/node/893530 and
+ *     http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
+ * - header: Table header cells. Each cell contains the following properties:
+ *   - tag: The HTML tag name to use; either 'th' or 'td'.
+ *   - attributes: HTML attributes to apply to the tag.
+ *   - content: A localized string for the title of the column.
+ *   - field: Field name (required for column sorting).
+ *   - sort: Default sort order for this column ("asc" or "desc").
+ * - sticky: A flag indicating whether to use a "sticky" table header.
+ * - rows: Table rows. Each row contains the following properties:
+ *   - attributes: HTML attributes to apply to the <tr> tag.
+ *   - data: Table cells.
+ *   - no_striping: A flag indicating that the row should receive no
+ *     'even / odd' styling. Defaults to FALSE.
+ *   - cells: Table cells of the row. Each cell contains the following keys:
+ *     - tag: The HTML tag name to use; either 'th' or 'td'.
+ *     - attributes: Any HTML attributes, such as "colspan", to apply to the
+ *       table cell.
+ *     - content: The string to display in the table cell.
+ *     - active_table_sort: A boolean indicating whether the cell is the active
+         table sort.
+ * - footer: Table footer rows, in the same format as the rows variable.
+ * - empty: The message to display in an extra row if table does not have
+ *   any rows.
+ * - no_striping: A boolean indicating that the row should receive no striping.
+ * - header_columns: The number of columns in the header.
+ *
+ * @see template_preprocess_table()
+ */
+#}
+<table{{ attributes }}>
+  {% if caption %}
+    <caption>{{ caption }}</caption>
+  {% endif %}
+
+  {% for colgroup in colgroups %}
+    {% if colgroup.cols %}
+      <colgroup{{ colgroup.attributes }}>
+        {% for col in colgroup.cols %}
+          <col{{ col.attributes }} />
+        {% endfor %}
+      </colgroup>
+    {% else %}
+      <colgroup{{ colgroup.attributes }} />
+    {% endif %}
+  {% endfor %}
+
+  {% if header %}
+    <thead>
+      <tr>
+        {% for cell in header %}
+          {%
+            set cell_classes = [
+              cell.active_table_sort ? 'is-active',
+            ]
+          %}
+          <{{ cell.tag }}{{ cell.attributes.addClass(cell_classes) }}>
+            {{- cell.content -}}
+          </{{ cell.tag }}>
+        {% endfor %}
+      </tr>
+    </thead>
+  {% endif %}
+
+  {% if rows %}
+    <tbody>
+      {% for row in rows %}
+        {%
+          set row_classes = [
+            not no_striping ? cycle(['odd', 'even'], loop.index0),
+          ]
+        %}
+        <tr{{ row.attributes.addClass(row_classes) }}>
+          {% for cell in row.cells %}
+            <{{ cell.tag }}{{ cell.attributes }}>
+              {{- cell.content -}}
+            </{{ cell.tag }}>
+          {% endfor %}
+        </tr>
+      {% endfor %}
+    </tbody>
+  {% elseif empty %}
+    <tbody>
+      <tr class="odd">
+        <td colspan="{{ header_columns }}" class="empty message">{{ empty }}</td>
+      </tr>
+    </tbody>
+  {% endif %}
+  {% if footer %}
+    <tfoot>
+      {% for row in footer %}
+        <tr{{ row.attributes }}>
+          {% for cell in row.cells %}
+            <{{ cell.tag }}{{ cell.attributes }}>
+              {{- cell.content -}}
+            </{{ cell.tag }}>
+          {% endfor %}
+        </tr>
+      {% endfor %}
+    </tfoot>
+  {% endif %}
+</table>
diff --git a/core/themes/starterkit_theme/templates/field/field--comment.html.twig b/core/themes/starterkit_theme/templates/field/field--comment.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..1ec3ee64b104b032ae9486871d7565890ff580a0
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--comment.html.twig
@@ -0,0 +1,57 @@
+{#
+/**
+ * @file
+ * Theme override for comment fields.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional title output populated by modules, intended to
+ *   be displayed after the main title tag that appears in the template.
+ * - comments: List of comments rendered through comment.html.twig.
+ * - comment_form: The 'Add new comment' form.
+ * - comment_display_mode: Is the comments are threaded.
+ * - comment_type: The comment type bundle ID for the comment field.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ * @see template_preprocess_field()
+ * @see comment_preprocess_field()
+ */
+#}
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+    'comment-wrapper',
+  ]
+%}
+{%
+  set title_classes = [
+    'title',
+    label_display == 'visually_hidden' ? 'visually-hidden',
+  ]
+%}
+<section{{ attributes.addClass(classes) }}>
+  {% if comments and not label_hidden %}
+    {{ title_prefix }}
+    <h2{{ title_attributes.addClass(title_classes) }}>{{ label }}</h2>
+    {{ title_suffix }}
+  {% endif %}
+
+  {{ comments }}
+
+  {% if comment_form %}
+    <h2 class="title comment-form__title">{{ 'Add new comment'|t }}</h2>
+    {{ comment_form }}
+  {% endif %}
+
+</section>
diff --git a/core/themes/starterkit_theme/templates/field/field--node--created.html.twig b/core/themes/starterkit_theme/templates/field/field--node--created.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..72d5d6737d26898d95e1fd4a76875d107bee9e5d
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--node--created.html.twig
@@ -0,0 +1,34 @@
+{#
+/**
+ * @file
+ * Theme override for the node created field.
+ *
+ * This is an override of field.html.twig for the node created field. See that
+ * template for documentation about its details and overrides.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing span element.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ * @see field.html.twig
+ */
+#}
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+  ]
+%}
+<span{{ attributes.addClass(classes) }}>
+  {%- for item in items -%}
+    {{ item.content }}
+  {%- endfor -%}
+</span>
diff --git a/core/themes/starterkit_theme/templates/field/field--node--title.html.twig b/core/themes/starterkit_theme/templates/field/field--node--title.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..33b105f50b3eb1f767414d69cb22a4ec33418f93
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--node--title.html.twig
@@ -0,0 +1,34 @@
+{#
+/**
+ * @file
+ * Theme override for the node title field.
+ *
+ * This is an override of field.html.twig for the node title field. See that
+ * template for documentation about its details and overrides.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing span element.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ * @see field.html.twig
+ */
+#}
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+  ]
+%}
+<span{{ attributes.addClass(classes) }}>
+  {%- for item in items -%}
+    {{ item.content }}
+  {%- endfor -%}
+</span>
diff --git a/core/themes/starterkit_theme/templates/field/field--node--uid.html.twig b/core/themes/starterkit_theme/templates/field/field--node--uid.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9afc591b7194a73395075161ee016839d8b516f9
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--node--uid.html.twig
@@ -0,0 +1,34 @@
+{#
+/**
+ * @file
+ * Theme override for the node user field.
+ *
+ * This is an override of field.html.twig for the node user field. See that
+ * template for documentation about its details and overrides.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing span element.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ * @see field.html.twig
+ */
+#}
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+  ]
+%}
+<span{{ attributes.addClass(classes) }}>
+  {%- for item in items -%}
+    {{ item.content }}
+  {%- endfor -%}
+</span>
diff --git a/core/themes/starterkit_theme/templates/field/field--text-long.html.twig b/core/themes/starterkit_theme/templates/field/field--text-long.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..07ce721d2d70e767cb74b466243e590f97dfe5ef
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--text-long.html.twig
@@ -0,0 +1 @@
+{% extends "field--text.html.twig" %}
diff --git a/core/themes/starterkit_theme/templates/field/field--text-with-summary.html.twig b/core/themes/starterkit_theme/templates/field/field--text-with-summary.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..07ce721d2d70e767cb74b466243e590f97dfe5ef
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--text-with-summary.html.twig
@@ -0,0 +1 @@
+{% extends "field--text.html.twig" %}
diff --git a/core/themes/starterkit_theme/templates/field/field--text.html.twig b/core/themes/starterkit_theme/templates/field/field--text.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..5d1690c3ec98fe51e2ae2d7c4f5cbb2b72102b3c
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field--text.html.twig
@@ -0,0 +1,28 @@
+{% extends "field.html.twig" %}
+{#
+/**
+ * @file
+ * Default theme implementation for a text field.
+ *
+ * A 'clearfix' class is added, because 'text' fields have a 'format' property
+ * that allows a Text Format to be associated with the entered text, which then
+ * applies filtering on output. A common use case is to align images to the left
+ * or right, and without this 'clearfix' class, such aligned images may be
+ * rendered outside of the 'text' field formatter's boundaries, and hence
+ * overlap with other fields. By setting the 'clearfix' class on all 'text'
+ * fields, we prevent that.
+ *
+ * @see https://www.drupal.org/node/2358529
+ *
+ * A 'text-formatted' class is added to assist with default styling of base
+ * elements such as paragraphs and lists that may not have classes assigned to
+ * them. This allows user entered content to have default styling without
+ * interfering with the styles of other UI components such as system generated
+ * lists or other dynamic content.
+ *
+ * @see https://www.drupal.org/node/2539860
+ *
+ * @ingroup themeable
+ */
+#}
+{% set attributes = attributes.addClass('clearfix', 'text-formatted') %}
diff --git a/core/themes/starterkit_theme/templates/field/field.html.twig b/core/themes/starterkit_theme/templates/field/field.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..1cfbd651ce16042e853f73c243590019058c4573
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/field.html.twig
@@ -0,0 +1,81 @@
+{#
+/**
+ * @file
+ * Theme override for a field.
+ *
+ * To override output, copy the "field.html.twig" from the templates directory
+ * to your theme's directory and customize it, just like customizing other
+ * Drupal templates such as page.html.twig or node.html.twig.
+ *
+ * Instead of overriding the theming for all fields, you can also just override
+ * theming for a subset of fields using
+ * @link themeable Theme hook suggestions. @endlink For example,
+ * here are some theme hook suggestions that can be used for a field_foo field
+ * on an article node type:
+ * - field--node--field-foo--article.html.twig
+ * - field--node--field-foo.html.twig
+ * - field--node--article.html.twig
+ * - field--field-foo.html.twig
+ * - field--text-with-summary.html.twig
+ * - field.html.twig
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - multiple: TRUE if a field can contain multiple items.
+ * - items: List of all the field items. Each item contains:
+ *   - attributes: List of HTML attributes for each item.
+ *   - content: The field item's content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ *
+ * @see template_preprocess_field()
+ */
+#}
+{%
+  set classes = [
+    'field',
+    'field--name-' ~ field_name|clean_class,
+    'field--type-' ~ field_type|clean_class,
+    'field--label-' ~ label_display,
+    label_display == 'inline' ? 'clearfix',
+  ]
+%}
+{%
+  set title_classes = [
+    'field__label',
+    label_display == 'visually_hidden' ? 'visually-hidden',
+  ]
+%}
+
+{% if label_hidden %}
+  {% if multiple %}
+    <div{{ attributes.addClass(classes, 'field__items') }}>
+      {% for item in items %}
+        <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
+      {% endfor %}
+    </div>
+  {% else %}
+    {% for item in items %}
+      <div{{ attributes.addClass(classes, 'field__item') }}>{{ item.content }}</div>
+    {% endfor %}
+  {% endif %}
+{% else %}
+  <div{{ attributes.addClass(classes) }}>
+    <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
+    {% if multiple %}
+      <div class="field__items">
+    {% endif %}
+    {% for item in items %}
+      <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
+    {% endfor %}
+    {% if multiple %}
+      </div>
+    {% endif %}
+  </div>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/field/file-audio.html.twig b/core/themes/starterkit_theme/templates/field/file-audio.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..d95de878c0456669c64e69bf2687abca6affa07d
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/file-audio.html.twig
@@ -0,0 +1,23 @@
+{#
+/**
+* @file
+* Default theme implementation to display the file entity as an audio tag.
+*
+* Available variables:
+* - attributes: An array of HTML attributes, intended to be added to the
+*   audio tag.
+* - files: And array of files to be added as sources for the audio tag. Each
+*   element is an array with the following elements:
+*   - file: The full file object.
+*   - source_attributes: An array of HTML attributes for to be added to the
+*     source tag.
+*
+* @ingroup themeable
+*/
+#}
+{{ attach_library('starterkit_theme/file') }}
+<audio {{ attributes }}>
+  {% for file in files %}
+    <source {{ file.source_attributes }} />
+  {% endfor %}
+</audio>
diff --git a/core/themes/starterkit_theme/templates/field/file-link.html.twig b/core/themes/starterkit_theme/templates/field/file-link.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..8975710a8934da6dff114c787ee4d3ef754bb037
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/file-link.html.twig
@@ -0,0 +1,17 @@
+{#
+/**
+ * @file
+ * Theme override for a link to a file.
+ *
+ * Available variables:
+ * - attributes: The HTML attributes for the containing element.
+ * - link: A link to the file.
+ * - icon: The icon image representing the file type.
+ * - file_size: The size of the file.
+ *
+ * @see template_preprocess_file_link()
+ * @see stable_preprocess_image_widget()
+ */
+#}
+{{ attach_library('starterkit_theme/file') }}
+<span{{ attributes }}>{{ icon }} {{ link }}</span>
diff --git a/core/themes/starterkit_theme/templates/field/file-video.html.twig b/core/themes/starterkit_theme/templates/field/file-video.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..1a08299e63760479ea5a06dfd87c0c14a2c71007
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/file-video.html.twig
@@ -0,0 +1,23 @@
+{#
+/**
+* @file
+* Default theme implementation to display the file entity as a video tag.
+*
+* Available variables:
+* - attributes: An array of HTML attributes, intended to be added to the
+*   video tag.
+* - files: And array of files to be added as sources for the video tag. Each
+*   element is an array with the following elements:
+*   - file: The full file object.
+*   - source_attributes: An array of HTML attributes for to be added to the
+*     source tag.
+*
+* @ingroup themeable
+*/
+#}
+{{ attach_library('starterkit_theme/file') }}
+<video {{ attributes }}>
+  {% for file in files %}
+    <source {{ file.source_attributes }} />
+  {% endfor %}
+</video>
diff --git a/core/themes/starterkit_theme/templates/field/image-formatter.html.twig b/core/themes/starterkit_theme/templates/field/image-formatter.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..512d7588e0fd92bb0539a2aa29c2e5cc5580f45f
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/image-formatter.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Theme override to display a formatted image field.
+ *
+ * Available variables:
+ * - image: A collection of image data.
+ * - image_style: An optional image style.
+ * - url: An optional URL the image can be linked to.
+ *
+ * @see template_preprocess_image_formatter()
+ */
+#}
+{% if url %}
+  {{ link(image, url) }}
+{% else %}
+  {{ image }}
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/field/image-style.html.twig b/core/themes/starterkit_theme/templates/field/image-style.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..039089a3ecb5f1f2bf233fc9261c97d0a9c48093
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/image-style.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Theme override for an image using a specific image style.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the image, including the following:
+ *   - src: Full URL or relative path to the image file.
+ *   - class: One or more classes to be applied to the image.
+ *   - width: The width of the image (if known).
+ *   - height: The height of the image (if known).
+ *   - title: The title of the image.
+ *   - alt: The alternative text for the image.
+ *
+ * @see template_preprocess_image_style()
+ */
+#}
+{{ image }}
diff --git a/core/themes/starterkit_theme/templates/field/image.html.twig b/core/themes/starterkit_theme/templates/field/image.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..31f782bb60a899f1682037f4c3f2b2707c543874
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/image.html.twig
@@ -0,0 +1,18 @@
+{#
+/**
+ * @file
+ * Theme override of an image.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the img tag.
+ * - style_name: (optional) The name of the image style applied.
+ *
+ * @see template_preprocess_image()
+ */
+#}
+{%
+set classes = [
+  style_name ? 'image-style-' ~ style_name|clean_class,
+]
+%}
+<img{{ attributes.addClass(classes) }} />
diff --git a/core/themes/starterkit_theme/templates/field/link-formatter-link-separate.html.twig b/core/themes/starterkit_theme/templates/field/link-formatter-link-separate.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..52c8d29a77fc11c037ee2811e4f2eb30f67368aa
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/link-formatter-link-separate.html.twig
@@ -0,0 +1,22 @@
+{#
+/**
+ * @file
+ * Theme override of a link with separate title and URL elements.
+ *
+ * Available variables:
+ * - link: The link that has already been formatted by l().
+ * - title: (optional) A descriptive or alternate title for the link, which may
+ *   be different than the actual link text.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_link_formatter_link_separate()
+ */
+#}
+{% apply spaceless %}
+  <div class="link-item">
+    {% if title %}
+      <div class="link-title">{{ title }}</div>
+    {% endif %}
+    <div class="link-url">{{ link }}</div>
+  </div>
+{% endapply %}
diff --git a/core/themes/starterkit_theme/templates/field/time.html.twig b/core/themes/starterkit_theme/templates/field/time.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..f2912b7f9872f9d2343b2ebf04064f76c4b85c77
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/field/time.html.twig
@@ -0,0 +1,22 @@
+{#
+/**
+ * @file
+ * Theme override for a date / time element.
+ *
+ * Available variables
+ * - timestamp: (optional) A UNIX timestamp for the datetime attribute. If the
+ *   datetime cannot be represented as a UNIX timestamp, use a valid datetime
+ *   attribute value in attributes.datetime.
+ * - text: (optional) The content to display within the <time> element.
+ *   Defaults to a human-readable representation of the timestamp value or the
+ *   datetime attribute value using DateFormatter::format().
+ * - attributes: (optional) HTML attributes to apply to the <time> element.
+ *   A datetime attribute in 'attributes' overrides the 'timestamp'. To
+ *   create a valid datetime attribute value from a UNIX timestamp, use
+ *   DateFormatter::format() with one of the predefined 'html_*' formats.
+ *
+ * @see template_preprocess_time()
+ * @see http://www.w3.org/TR/html5-author/the-time-element.html#attr-time-datetime
+ */
+#}
+<time{{ attributes.addClass('datetime') }}>{{ text }}</time>
diff --git a/core/themes/starterkit_theme/templates/form/checkboxes.html.twig b/core/themes/starterkit_theme/templates/form/checkboxes.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9199f7e4c4564eab9b0495eaaa43e8240d23bbe1
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/checkboxes.html.twig
@@ -0,0 +1,15 @@
+{#
+/**
+ * @file
+ * Theme override for a 'checkboxes' #type form element.
+ *
+ * Available variables
+ * - attributes: A list of HTML attributes for the wrapper element.
+ * - children: The rendered checkboxes.
+ *
+ * @see template_preprocess_checkboxes()
+ */
+ @todo: remove this file once https://www.drupal.org/node/1819284 is resolved.
+ This is identical to core/modules/system/templates/container.html.twig
+#}
+<div{{ attributes.addClass('form-checkboxes') }}>{{ children }}</div>
diff --git a/core/themes/starterkit_theme/templates/form/confirm-form.html.twig b/core/themes/starterkit_theme/templates/form/confirm-form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..725f7f4df2cd2eab53fdef412d1719d96595cc90
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/confirm-form.html.twig
@@ -0,0 +1,13 @@
+{#
+/**
+ * @file
+ * Theme override for confirm form.
+ *
+ * By default this does not alter the appearance of a form at all,
+ * but is provided as a convenience for themers.
+ *
+ * Available variables:
+ * - form: The confirm form.
+ */
+#}
+{{ form }}
diff --git a/core/themes/starterkit_theme/templates/form/container.html.twig b/core/themes/starterkit_theme/templates/form/container.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..0da6c388d02271e901ef2f452791b6d3264063d6
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/container.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Theme override of a container used to wrap child elements.
+ *
+ * Used for grouped form items. Can also be used as a theme wrapper for any
+ * renderable element, to surround it with a <div> and HTML attributes.
+ * See \Drupal\Core\Render\Element\RenderElement for more
+ * information on the #theme_wrappers render array property, and
+ * \Drupal\Core\Render\Element\container for usage of the container render
+ * element.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - children: The rendered child elements of the container.
+ * - has_parent: A flag to indicate that the container has one or more parent
+     containers.
+ *
+ * @see template_preprocess_container()
+ */
+#}
+{%
+  set classes = [
+    has_parent ? 'js-form-wrapper',
+    has_parent ? 'form-wrapper',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>{{ children }}</div>
diff --git a/core/themes/starterkit_theme/templates/form/datetime-form.html.twig b/core/themes/starterkit_theme/templates/form/datetime-form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..f56182fdf2aa5c031a1966110a974d14a215b356
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/datetime-form.html.twig
@@ -0,0 +1,15 @@
+{#
+/**
+ * @file
+ * Theme override of a datetime form element.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the datetime form element.
+ * - content: The datelist form element to be output.
+ *
+ * @see template_preprocess_datetime_form()
+ */
+#}
+<div{{ attributes.addClass('container-inline') }}>
+  {{ content }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/form/datetime-wrapper.html.twig b/core/themes/starterkit_theme/templates/form/datetime-wrapper.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..5b52f2daa380f2ef7bb1a0cc15f433c47b2713ff
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/datetime-wrapper.html.twig
@@ -0,0 +1,36 @@
+{#
+/**
+ * @file
+ * Theme override of a datetime form wrapper.
+ *
+ * Available variables:
+ * - content: The form element to be output, usually a datelist, or datetime.
+ * - title: The title of the form element.
+ * - title_attributes: HTML attributes for the title wrapper.
+ * - description: Description text for the form element.
+ * - required: An indicator for whether the associated form element is required.
+ *
+ * @see template_preprocess_datetime_wrapper()
+ */
+#}
+{%
+  set title_classes = [
+    'label',
+    required ? 'js-form-required',
+    required ? 'form-required',
+  ]
+%}
+{% if title %}
+  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
+{% endif %}
+{{ content }}
+{% if errors %}
+  <div class="form-item--error-message">
+    <strong>{{ errors }}</strong>
+  </div>
+{% endif %}
+{% if description %}
+  <div{{ description_attributes.addClass('description') }}>
+    {{ description }}
+  </div>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/form/details.html.twig b/core/themes/starterkit_theme/templates/form/details.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..c554096da9d785597c6e1e2c317e940002430981
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/details.html.twig
@@ -0,0 +1,44 @@
+{#
+/**
+ * @file
+ * Theme override for a details element.
+ *
+ * Available variables
+ * - attributes: A list of HTML attributes for the details element.
+ * - errors: (optional) Any errors for this details element, may not be set.
+ * - title: (optional) The title of the element, may not be set.
+ * - summary_attributes: A list of HTML attributes for the summary element.
+ * - description: (optional) The description of the element, may not be set.
+ * - children: (optional) The children of the element, may not be set.
+ * - value: (optional) The value of the element, may not be set.
+ *
+ * @see template_preprocess_details()
+ */
+#}
+<details{{ attributes }}>
+  {%- if title -%}
+    {%
+      set summary_classes = [
+        required ? 'js-form-required',
+        required ? 'form-required',
+      ]
+    %}
+    <summary{{ summary_attributes.addClass(summary_classes) }}>{{ title }}</summary>
+  {%- endif -%}
+  <div class="details-wrapper">
+    {% if errors %}
+      <div class="form-item--error-message">
+        <strong>{{ errors }}</strong>
+      </div>
+    {% endif %}
+    {%- if description -%}
+      <div class="details-description">{{ description }}</div>
+    {%- endif -%}
+    {%- if children -%}
+      {{ children }}
+    {%- endif -%}
+    {%- if value -%}
+      {{ value }}
+    {%- endif -%}
+  </div>
+</details>
diff --git a/core/themes/starterkit_theme/templates/form/dropbutton-wrapper.html.twig b/core/themes/starterkit_theme/templates/form/dropbutton-wrapper.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..a2bdc21d67492b7e772e5a43549a937c6dae40da
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/dropbutton-wrapper.html.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Theme override for a dropbutton wrapper.
+ *
+ * Available variables:
+ * - children: Contains the child elements of the dropbutton menu.
+ *
+ * @see template_preprocess()
+ */
+#}
+{% if children %}
+  {% apply spaceless %}
+    <div class="dropbutton-wrapper">
+      <div class="dropbutton-widget">
+        {{ children }}
+      </div>
+    </div>
+  {% endapply %}
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/form/field-multiple-value-form.html.twig b/core/themes/starterkit_theme/templates/form/field-multiple-value-form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..246ac41bfdca66fe6b4a9f678fb393a0c7265a2a
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/field-multiple-value-form.html.twig
@@ -0,0 +1,42 @@
+{#
+/**
+ * @file
+ * Theme override for an individual form element.
+ *
+ * Available variables for all fields:
+ * - multiple: Whether there are multiple instances of the field.
+ *
+ * Available variables for single cardinality fields:
+ * - elements: Form elements to be rendered.
+ *
+ * Available variables when there are multiple fields.
+ * - table: Table of field items.
+ * - description: The description element containing the following properties:
+ *   - content: The description content of the form element.
+ *   - attributes: HTML attributes to apply to the description container.
+ * - button: "Add another item" button.
+ *
+ * @see template_preprocess_field_multiple_value_form()
+ */
+#}
+{% if multiple %}
+  {%
+    set classes = [
+      'js-form-item',
+      'form-item'
+    ]
+  %}
+  <div{{ attributes.addClass(classes) }}>
+    {{ table }}
+    {% if description.content %}
+      <div{{ description.attributes.addClass('description') }} >{{ description.content }}</div>
+    {% endif %}
+    {% if button %}
+      <div class="clearfix">{{ button }}</div>
+    {% endif %}
+  </div>
+{% else %}
+  {% for element in elements %}
+    {{ element }}
+  {% endfor %}
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/form/fieldset.html.twig b/core/themes/starterkit_theme/templates/form/fieldset.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..db63082e8a8979b3a54b84ec5b071fa424791470
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/fieldset.html.twig
@@ -0,0 +1,60 @@
+{#
+/**
+ * @file
+ * Theme override for a fieldset element and its children.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the fieldset element.
+ * - errors: (optional) Any errors for this fieldset element, may not be set.
+ * - required: Boolean indicating whether the fieldset element is required.
+ * - legend: The legend element containing the following properties:
+ *   - title: Title of the fieldset, intended for use as the text of the legend.
+ *   - attributes: HTML attributes to apply to the legend.
+ * - description: The description element containing the following properties:
+ *   - content: The description content of the fieldset.
+ *   - attributes: HTML attributes to apply to the description container.
+ * - children: The rendered child elements of the fieldset.
+ * - prefix: The content to add before the fieldset children.
+ * - suffix: The content to add after the fieldset children.
+ *
+ * @see template_preprocess_fieldset()
+ */
+#}
+{%
+  set classes = [
+    'js-form-item',
+    'form-item',
+    'js-form-wrapper',
+    'form-wrapper',
+  ]
+%}
+<fieldset{{ attributes.addClass(classes) }}>
+  {%
+    set legend_span_classes = [
+      'fieldset-legend',
+      required ? 'js-form-required',
+      required ? 'form-required',
+    ]
+  %}
+  {#  Always wrap fieldset legends in a <span> for CSS positioning. #}
+  <legend{{ legend.attributes }}>
+    <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
+  </legend>
+  <div class="fieldset-wrapper">
+    {% if errors %}
+      <div class="form-item--error-message">
+        <strong>{{ errors }}</strong>
+      </div>
+    {% endif %}
+    {% if prefix %}
+      <span class="field-prefix">{{ prefix }}</span>
+    {% endif %}
+    {{ children }}
+    {% if suffix %}
+      <span class="field-suffix">{{ suffix }}</span>
+    {% endif %}
+    {% if description.content %}
+      <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div>
+    {% endif %}
+  </div>
+</fieldset>
diff --git a/core/themes/starterkit_theme/templates/form/form-element-label.html.twig b/core/themes/starterkit_theme/templates/form/form-element-label.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7c2f8f222340cda34c7a3f5d66b469730e8cad60
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/form-element-label.html.twig
@@ -0,0 +1,25 @@
+{#
+/**
+ * @file
+ * Theme override for a form element label.
+ *
+ * Available variables:
+ * - title: The label's text.
+ * - title_display: Elements title_display setting.
+ * - required: An indicator for whether the associated form element is required.
+ * - attributes: A list of HTML attributes for the label.
+ *
+ * @see template_preprocess_form_element_label()
+ */
+#}
+{%
+  set classes = [
+    title_display == 'after' ? 'option',
+    title_display == 'invisible' ? 'visually-hidden',
+    required ? 'js-form-required',
+    required ? 'form-required',
+  ]
+%}
+{% if title is not empty or required -%}
+  <label{{ attributes.addClass(classes) }}>{{ title }}</label>
+{%- endif %}
diff --git a/core/themes/starterkit_theme/templates/form/form-element.html.twig b/core/themes/starterkit_theme/templates/form/form-element.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..3bde4f711545eb771de7e4df4815bd726b818153
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/form-element.html.twig
@@ -0,0 +1,95 @@
+{#
+/**
+ * @file
+ * Theme override for a form element.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - errors: (optional) Any errors for this form element, may not be set.
+ * - prefix: (optional) The form element prefix, may not be set.
+ * - suffix: (optional) The form element suffix, may not be set.
+ * - required: The required marker, or empty if the associated form element is
+ *   not required.
+ * - type: The type of the element.
+ * - name: The name of the element.
+ * - label: A rendered label element.
+ * - label_display: Label display setting. It can have these values:
+ *   - before: The label is output before the element. This is the default.
+ *     The label includes the #title and the required marker, if #required.
+ *   - after: The label is output after the element. For example, this is used
+ *     for radio and checkbox #type elements. If the #title is empty but the
+ *     field is #required, the label will contain only the required marker.
+ *   - invisible: Labels are critical for screen readers to enable them to
+ *     properly navigate through forms but can be visually distracting. This
+ *     property hides the label for everyone except screen readers.
+ *   - attribute: Set the title attribute on the element to create a tooltip but
+ *     output no label element. This is supported only for checkboxes and radios
+ *     in \Drupal\Core\Render\Element\CompositeFormElementTrait::preRenderCompositeFormElement().
+ *     It is used where a visual label is not needed, such as a table of
+ *     checkboxes where the row and column provide the context. The tooltip will
+ *     include the title and required marker.
+ * - description: (optional) A list of description properties containing:
+ *    - content: A description of the form element, may not be set.
+ *    - attributes: (optional) A list of HTML attributes to apply to the
+ *      description content wrapper. Will only be set when description is set.
+ * - description_display: Description display setting. It can have these values:
+ *   - before: The description is output before the element.
+ *   - after: The description is output after the element. This is the default
+ *     value.
+ *   - invisible: The description is output after the element, hidden visually
+ *     but available to screen readers.
+ * - disabled: True if the element is disabled.
+ * - title_display: Title display setting.
+ *
+ * @see template_preprocess_form_element()
+ */
+#}
+{%
+  set classes = [
+    'js-form-item',
+    'form-item',
+    'js-form-type-' ~ type|clean_class,
+    'form-type-' ~ type|clean_class,
+    'js-form-item-' ~ name|clean_class,
+    'form-item-' ~ name|clean_class,
+    title_display not in ['after', 'before'] ? 'form-no-label',
+    disabled == 'disabled' ? 'form-disabled',
+    errors ? 'form-item--error',
+  ]
+%}
+{%
+  set description_classes = [
+    'description',
+    description_display == 'invisible' ? 'visually-hidden',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {% if label_display in ['before', 'invisible'] %}
+    {{ label }}
+  {% endif %}
+  {% if prefix is not empty %}
+    <span class="field-prefix">{{ prefix }}</span>
+  {% endif %}
+  {% if description_display == 'before' and description.content %}
+    <div{{ description.attributes }}>
+      {{ description.content }}
+    </div>
+  {% endif %}
+  {{ children }}
+  {% if suffix is not empty %}
+    <span class="field-suffix">{{ suffix }}</span>
+  {% endif %}
+  {% if label_display == 'after' %}
+    {{ label }}
+  {% endif %}
+  {% if errors %}
+    <div class="form-item--error-message">
+      <strong>{{ errors }}</strong>
+    </div>
+  {% endif %}
+  {% if description_display in ['after', 'invisible'] and description.content %}
+    <div{{ description.attributes.addClass(description_classes) }}>
+      {{ description.content }}
+    </div>
+  {% endif %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/form/form.html.twig b/core/themes/starterkit_theme/templates/form/form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..97b4b7a3de207fc82d768ad3ce77da4379d4ff76
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/form.html.twig
@@ -0,0 +1,15 @@
+{#
+/**
+ * @file
+ * Theme override for a 'form' element.
+ *
+ * Available variables
+ * - attributes: A list of HTML attributes for the wrapper element.
+ * - children: The child elements of the form.
+ *
+ * @see template_preprocess_form()
+ */
+#}
+<form{{ attributes }}>
+  {{ children }}
+</form>
diff --git a/core/themes/starterkit_theme/templates/form/input.html.twig b/core/themes/starterkit_theme/templates/form/input.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..d5cac386e006f7b7e4e2dec206efe1fcaed8a413
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/input.html.twig
@@ -0,0 +1,13 @@
+{#
+/**
+ * @file
+ * Theme override for an 'input' #type form element.
+ *
+ * Available variables:
+ * - attributes: A list of HTML attributes for the input element.
+ * - children: Optional additional rendered elements.
+ *
+ * @see template_preprocess_input()
+ */
+#}
+<input{{ attributes }} />{{ children }}
diff --git a/core/themes/starterkit_theme/templates/form/radios.html.twig b/core/themes/starterkit_theme/templates/form/radios.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..2e4bafd41c68f038e322cc643cc3c595dd0b9df6
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/radios.html.twig
@@ -0,0 +1,13 @@
+{#
+/**
+ * @file
+ * Theme override for a 'radios' #type form element.
+ *
+ * Available variables
+ * - attributes: A list of HTML attributes for the wrapper element.
+ * - children: The rendered radios.
+ *
+ * @see template_preprocess_radios()
+ */
+#}
+<div{{ attributes.addClass('form-radios') }}>{{ children }}</div>
diff --git a/core/themes/starterkit_theme/templates/form/select.html.twig b/core/themes/starterkit_theme/templates/form/select.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9c8a97c058977793d4fed3ed5f2ef32b5abe2190
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/select.html.twig
@@ -0,0 +1,27 @@
+{#
+/**
+ * @file
+ * Theme override for a select element.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the <select> tag.
+ * - options: The <option> element children.
+ *
+ * @see template_preprocess_select()
+ */
+#}
+{% apply spaceless %}
+  <select{{ attributes }}>
+    {% for option in options %}
+      {% if option.type == 'optgroup' %}
+        <optgroup label="{{ option.label }}">
+          {% for sub_option in option.options %}
+            <option value="{{ sub_option.value }}"{{ sub_option.selected ? ' selected="selected"' }}>{{ sub_option.label }}</option>
+          {% endfor %}
+        </optgroup>
+      {% elseif option.type == 'option' %}
+        <option value="{{ option.value }}"{{ option.selected ? ' selected="selected"' }}>{{ option.label }}</option>
+      {% endif %}
+    {% endfor %}
+  </select>
+{% endapply %}
diff --git a/core/themes/starterkit_theme/templates/form/textarea.html.twig b/core/themes/starterkit_theme/templates/form/textarea.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..99e1bde09059aa3424260dcc53cefb2113288ecb
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/form/textarea.html.twig
@@ -0,0 +1,25 @@
+{#
+/**
+ * @file
+ * Theme override for a 'textarea' #type form element.
+ *
+ * Available variables
+ * - wrapper_attributes: A list of HTML attributes for the wrapper element.
+ * - attributes: A list of HTML attributes for the <textarea> element.
+ * - resizable: An indicator for whether the textarea is resizable.
+ * - required: An indicator for whether the textarea is required.
+ * - value: The textarea content.
+ *
+ * @see template_preprocess_textarea()
+ */
+#}
+{%
+  set classes = [
+    'form-textarea',
+    resizable ? 'resize-' ~ resizable,
+    required ? 'required',
+  ]
+%}
+<div{{ wrapper_attributes.addClass('form-textarea-wrapper') }}>
+  <textarea{{ attributes.addClass(classes) }}>{{ value }}</textarea>
+</div>
diff --git a/core/themes/starterkit_theme/templates/layout/book-export-html.html.twig b/core/themes/starterkit_theme/templates/layout/book-export-html.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..b7525f7efa88263beed101cbe8e0dcd4377ab5a8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/layout/book-export-html.html.twig
@@ -0,0 +1,45 @@
+{#
+/**
+ * @file
+ * Theme override for printed version of book outline.
+ *
+ * Available variables:
+ * - title: Top level node title.
+ * - head: Header tags.
+ * - language: Language object.
+ * - language_rtl: A flag indicating whether the current display language is a
+ *   right to left language.
+ * - base_url: URL to the home page.
+ * - contents: Nodes within the current outline rendered through
+ *   book-node-export-html.html.twig.
+ *
+ * @see template_preprocess_book_export_html()
+ */
+#}
+<!DOCTYPE html>
+<html{{ html_attributes }}>
+  <head>
+    <title>{{ title }}</title>
+    {{ page.head }}
+    <base href="{{ base_url }}" />
+    <link type="text/css" rel="stylesheet" href="misc/print.css" />
+  </head>
+  <body>
+    {#
+      The given node is embedded to its absolute depth in a top level section.
+      For example, a child node with depth 2 in the hierarchy is contained in
+      (otherwise empty) div elements corresponding to depth 0 and depth 1. This
+      is intended to support WYSIWYG output - e.g., level 3 sections always look
+      like level 3 sections, no matter their depth relative to the node selected
+      to be exported as printer-friendly HTML.
+    #}
+
+  {% if depth > 1 %}{% for i in 1..depth-1 %}
+    <div class="section-{{ i }}">
+  {% endfor %}{% endif %}
+  {{ contents }}
+  {% if depth > 1 %}{% for i in 1..depth-1 %}
+    </div>
+  {% endfor %}{% endif %}
+  </body>
+</html>
diff --git a/core/themes/starterkit_theme/templates/layout/html.html.twig b/core/themes/starterkit_theme/templates/layout/html.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..4fe57a01cfdd5995db836693c453751d8ee11551
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/layout/html.html.twig
@@ -0,0 +1,55 @@
+{#
+/**
+ * @file
+ * Theme override for the basic structure of a single Drupal page.
+ *
+ * Variables:
+ * - logged_in: A flag indicating if user is logged in.
+ * - root_path: The root path of the current page (e.g., node, admin, user).
+ * - node_type: The content type for the current node, if the page is a node.
+ * - head_title: List of text elements that make up the head_title variable.
+ *   May contain one or more of the following:
+ *   - title: The title of the page.
+ *   - name: The name of the site.
+ *   - slogan: The slogan of the site.
+ * - page_top: Initial rendered markup. This should be printed before 'page'.
+ * - page: The rendered page markup.
+ * - page_bottom: Closing rendered markup. This variable should be printed after
+ *   'page'.
+ * - db_offline: A flag indicating if the database is offline.
+ * - placeholder_token: The token for generating head, css, js and js-bottom
+ *   placeholders.
+ *
+ * @see template_preprocess_html()
+ */
+#}
+{%
+  set body_classes = [
+    logged_in ? 'user-logged-in',
+    not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class,
+    node_type ? 'page-node-type-' ~ node_type|clean_class,
+    db_offline ? 'db-offline',
+  ]
+%}
+<!DOCTYPE html>
+<html{{ html_attributes }}>
+  <head>
+    <head-placeholder token="{{ placeholder_token }}">
+    <title>{{ head_title|safe_join(' | ') }}</title>
+    <css-placeholder token="{{ placeholder_token }}">
+    <js-placeholder token="{{ placeholder_token }}">
+  </head>
+  <body{{ attributes.addClass(body_classes) }}>
+    {#
+      Keyboard navigation/accessibility link to main content section in
+      page.html.twig.
+    #}
+    <a href="#main-content" class="visually-hidden focusable skip-link">
+      {{ 'Skip to main content'|t }}
+    </a>
+    {{ page_top }}
+    {{ page }}
+    {{ page_bottom }}
+    <js-bottom-placeholder token="{{ placeholder_token }}">
+  </body>
+</html>
diff --git a/core/themes/starterkit_theme/templates/layout/maintenance-page.html.twig b/core/themes/starterkit_theme/templates/layout/maintenance-page.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7463b0238ca35b8a709b53e0148352b42486d68d
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/layout/maintenance-page.html.twig
@@ -0,0 +1,65 @@
+{#
+/**
+ * @file
+ * Theme override to display a single Drupal page while offline.
+ *
+ * All available variables are mirrored in page.html.twig.
+ * Some may be blank but they are provided for consistency.
+ *
+ * @see template_preprocess_maintenance_page()
+ */
+#}
+<div class="layout-container">
+
+  <header role="banner">
+    {% if logo %}
+      <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home">
+        <img src="{{ logo }}" alt="{{ 'Home'|t }}"/>
+      </a>
+    {% endif %}
+
+    {% if site_name or site_slogan %}
+      <div class="name-and-slogan">
+        {% if site_name %}
+         <h1 class="site-name">
+           <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a>
+         </h1>
+        {% endif %}
+
+        {% if site_slogan %}
+          <div class="site-slogan">{{ site_slogan }}</div>
+        {% endif %}
+      </div>{# /.name-and-slogan #}
+    {% endif %}
+
+  </header>
+
+  <main role="main">
+    {% if title %}
+      <h1>{{ title }}</h1>
+    {% endif %}
+
+    {{ page.highlighted }}
+
+    {{ page.content }}
+  </main>
+
+  {% if page.sidebar_first %}
+    <aside class="layout-sidebar-first" role="complementary">
+      {{ page.sidebar_first }}
+    </aside>{# /.layout-sidebar-first #}
+  {% endif %}
+
+  {% if page.sidebar_second %}
+    <aside class="layout-sidebar-second" role="complementary">
+      {{ page.sidebar_second }}
+    </aside>{# /.layout-sidebar-second #}
+  {% endif %}
+
+  {% if page.footer %}
+    <footer role="contentinfo">
+      {{ page.footer }}
+    </footer>
+  {% endif %}
+
+</div>{# /.layout-container #}
diff --git a/core/themes/starterkit_theme/templates/layout/page.html.twig b/core/themes/starterkit_theme/templates/layout/page.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..0f5ba83f2071e0cb0223c5d0d417e8a45ad07289
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/layout/page.html.twig
@@ -0,0 +1,87 @@
+{#
+/**
+ * @file
+ * Theme override to display a single page.
+ *
+ * The doctype, html, head and body tags are not in this template. Instead they
+ * can be found in the html.html.twig template in this directory.
+ *
+ * Available variables:
+ *
+ * General utility variables:
+ * - base_path: The base URL path of the Drupal installation. Will usually be
+ *   "/" unless you have installed Drupal in a sub-directory.
+ * - is_front: A flag indicating if the current page is the front page.
+ * - logged_in: A flag indicating if the user is registered and signed in.
+ * - is_admin: A flag indicating if the user has permission to access
+ *   administration pages.
+ *
+ * Site identity:
+ * - front_page: The URL of the front page. Use this instead of base_path when
+ *   linking to the front page. This includes the language domain or prefix.
+ *
+ * Page content (in order of occurrence in the default page.html.twig):
+ * - node: Fully loaded node, if there is an automatically-loaded node
+ *   associated with the page and the node ID is the second argument in the
+ *   page's path (e.g. node/12345 and node/12345/revisions, but not
+ *   comment/reply/12345).
+ *
+ * Regions:
+ * - page.header: Items for the header region.
+ * - page.primary_menu: Items for the primary menu region.
+ * - page.secondary_menu: Items for the secondary menu region.
+ * - page.highlighted: Items for the highlighted content region.
+ * - page.help: Dynamic help text, mostly for admin pages.
+ * - page.content: The main content of the current page.
+ * - page.sidebar_first: Items for the first sidebar.
+ * - page.sidebar_second: Items for the second sidebar.
+ * - page.footer: Items for the footer region.
+ * - page.breadcrumb: Items for the breadcrumb region.
+ *
+ * @see template_preprocess_page()
+ * @see html.html.twig
+ */
+#}
+<div class="layout-container">
+
+  <header role="banner">
+    {{ page.header }}
+  </header>
+
+  {{ page.primary_menu }}
+  {{ page.secondary_menu }}
+
+  {{ page.breadcrumb }}
+
+  {{ page.highlighted }}
+
+  {{ page.help }}
+
+  <main role="main">
+    <a id="main-content" tabindex="-1"></a>{# link is in html.html.twig #}
+
+    <div class="layout-content">
+      {{ page.content }}
+    </div>{# /.layout-content #}
+
+    {% if page.sidebar_first %}
+      <aside class="layout-sidebar-first" role="complementary">
+        {{ page.sidebar_first }}
+      </aside>
+    {% endif %}
+
+    {% if page.sidebar_second %}
+      <aside class="layout-sidebar-second" role="complementary">
+        {{ page.sidebar_second }}
+      </aside>
+    {% endif %}
+
+  </main>
+
+  {% if page.footer %}
+    <footer role="contentinfo">
+      {{ page.footer }}
+    </footer>
+  {% endif %}
+
+</div>{# /.layout-container #}
diff --git a/core/themes/starterkit_theme/templates/layout/region.html.twig b/core/themes/starterkit_theme/templates/layout/region.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..95e71cec37e409bdfab1d8d90e0a192bede54e9c
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/layout/region.html.twig
@@ -0,0 +1,25 @@
+{#
+/**
+ * @file
+ * Theme override to display a region.
+ *
+ * Available variables:
+ * - content: The content for this region, typically blocks.
+ * - attributes: HTML attributes for the region <div>.
+ * - region: The name of the region variable as defined in the theme's
+ *   .info.yml file.
+ *
+ * @see template_preprocess_region()
+ */
+#}
+{%
+  set classes = [
+    'region',
+    'region-' ~ region|clean_class,
+  ]
+%}
+{% if content %}
+  <div{{ attributes.addClass(classes) }}>
+    {{ content }}
+  </div>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/media-library/container--media-library-content.html.twig b/core/themes/starterkit_theme/templates/media-library/container--media-library-content.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7c930e2c7b64980f3b1ea8413d143f2791f888b7
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/container--media-library-content.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Theme implementation the content area of the modal media library dialog.
+ *
+ * The content area is everything that is not the menu of available media
+ * types. This includes the form to add new media items, if available, and
+ * the view of available media to select.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - children: The rendered child elements of the container.
+ * - has_parent: A flag to indicate that the container has one or more parent
+     containers.
+ *
+ * @see template_preprocess_container()
+ *
+ * @ingroup themeable
+ */
+#}
+{%
+  set classes = [
+    has_parent ? 'js-form-wrapper',
+    has_parent ? 'form-wrapper',
+    'media-library-content',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>{{ children }}</div>
diff --git a/core/themes/starterkit_theme/templates/media-library/container--media-library-widget-selection.html.twig b/core/themes/starterkit_theme/templates/media-library/container--media-library-widget-selection.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7c0af44307f6ac054143fd886c80bdff1c84fbc1
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/container--media-library-widget-selection.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Theme implementation of a wrapper for selected media items.
+ *
+ * This is used to wrap around the set of media items that are currently
+ * selected in the media library widget (not the modal dialog), which may
+ * be used for entity reference fields that target media.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - children: The rendered child elements of the container.
+ * - has_parent: A flag to indicate that the container has one or more parent
+     containers.
+ *
+ * @see template_preprocess_container()
+ *
+ * @ingroup themeable
+ */
+#}
+{%
+  set classes = [
+    has_parent ? 'js-form-wrapper',
+    has_parent ? 'form-wrapper',
+    'media-library-selection',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>{{ children }}</div>
diff --git a/core/themes/starterkit_theme/templates/media-library/links--media-library-menu.html.twig b/core/themes/starterkit_theme/templates/media-library/links--media-library-menu.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..ef92fbb3c38af80fa32780ecce1f63bbd9fe60e1
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/links--media-library-menu.html.twig
@@ -0,0 +1,35 @@
+{% extends "links.html.twig" %}
+{#
+/**
+ * @file
+ * Theme implementation of the media type menu in the media library dialog.
+ *
+ * Available variables:
+ * - attributes: Attributes for the UL containing the list of links.
+ * - links: Links to be output.
+ *   Each link will have the following elements:
+ *   - link: (optional) A render array that returns a link. See
+ *     template_preprocess_links() for details how it is generated.
+ *   - text: The link text.
+ *   - attributes: HTML attributes for the list item element.
+ *   - text_attributes: (optional) HTML attributes for the span element if no
+ *     'url' was supplied.
+ * - heading: (optional) A heading to precede the links.
+ *   - text: The heading text.
+ *   - level: The heading level (e.g. 'h2', 'h3').
+ *   - attributes: (optional) A keyed list of attributes for the heading.
+ *   If the heading is a string, it will be used as the text of the heading and
+ *   the level will default to 'h2'.
+ *
+ *   Headings should be used on navigation menus and any list of links that
+ *   consistently appears on multiple pages. To make the heading invisible use
+ *   the 'visually-hidden' CSS class. Do not use 'display:none', which
+ *   removes it from screen readers and assistive technology. Headings allow
+ *   screen reader and keyboard only users to navigate to or skip the links.
+ *   See http://juicystudio.com/article/screen-readers-display-none.php and
+ *   http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
+ *
+ * @see template_preprocess_links()
+ */
+#}
+{% set attributes = attributes.addClass('media-library-menu') %}
diff --git a/core/themes/starterkit_theme/templates/media-library/media--media-library.html.twig b/core/themes/starterkit_theme/templates/media-library/media--media-library.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..e88635424fc07f47e181e5e894427f9e931c7bc8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/media--media-library.html.twig
@@ -0,0 +1,55 @@
+{#
+/**
+ * @file
+ * Theme override of a media item in the media library.
+ *
+ * This is used for media that the user can select from the grid of media
+ * items. It is not used for items that have already been selected in the
+ * corresponding field widget, or for items that have been previously selected
+ * before adding new media to the library.
+ *
+ * Available variables:
+ * - media: The entity with limited access to object properties and methods.
+ *   Only method names starting with "get", "has", or "is" and a few common
+ *   methods such as "id", "label", and "bundle" are available. For example:
+ *   - entity.getEntityTypeId() will return the entity type ID.
+ *   - entity.hasField('field_example') returns TRUE if the entity includes
+ *     field_example. (This does not indicate the presence of a value in this
+ *     field.)
+ *   Calling other methods, such as entity.delete(), will result in an exception.
+ *   See \Drupal\Core\Entity\EntityInterface for a full list of methods.
+ * - name: Name of the media.
+ * - content: Media content.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the main title tag that appears in the template.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the main title tag that appears in the template.
+ * - view_mode: View mode; for example, "teaser" or "full".
+ * - attributes: HTML attributes for the containing element.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   tag that appears in the template.
+ * - url: Direct URL of the media.
+ * - preview_attributes: HTML attributes for the preview wrapper.
+ * - metadata_attributes: HTML attributes for the expandable metadata area.
+ * - status: Whether or not the Media is published.
+ *
+ * @see template_preprocess_media()
+ *
+ * @ingroup themeable
+ */
+#}
+<article{{ attributes }}>
+  {% if content %}
+    <div{{ preview_attributes.addClass('media-library-item__preview js-media-library-item-preview') }}>
+      {{ content|without('name') }}
+    </div>
+    {% if not status %}
+      <div class="media-library-item__status">{{ "unpublished" | t }}</div>
+    {% endif %}
+    <div{{ metadata_attributes.addClass('media-library-item__attributes') }}>
+      <div class="media-library-item__name">
+        {{ name }}
+      </div>
+    </div>
+  {% endif %}
+</article>
diff --git a/core/themes/starterkit_theme/templates/media-library/media-library-item--small.html.twig b/core/themes/starterkit_theme/templates/media-library/media-library-item--small.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..ba03858b7f82cd64b985264cc9f120bd80db6038
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/media-library-item--small.html.twig
@@ -0,0 +1,31 @@
+{#
+/**
+ * @file
+ * Default theme implementation of a media library item.
+ *
+ * This is used when displaying selected media items, either in the field
+ * widget or in the "Additional selected media" area when adding new
+ * media items in the media library modal dialog.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - content: The content of the media library item, plus any additional
+ *   fields or elements surrounding it.
+ *
+ * @see seven_preprocess_media_library_item__small()
+ * @see seven_preprocess_media_library_item__widget()
+ * @see template_preprocess_media_library_item()
+ *
+ * @ingroup themeable
+ */
+#}
+{%
+  set classes = [
+    'media-library-item',
+    'media-library-item--grid',
+    'media-library-item--small',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {{ content }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/media-library/media-library-item.html.twig b/core/themes/starterkit_theme/templates/media-library/media-library-item.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..297780e0f736548762e4bef93aa85e98c84b9142
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/media-library-item.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Default theme implementation of a media library item.
+ *
+ * This is used when displaying selected media items, either in the field
+ * widget or in the "Additional selected media" area when adding new
+ * media items in the media library modal dialog.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - content: The content of the media library item, plus any additional
+ *   fields or elements surrounding it.
+ *
+ * @see template_preprocess_media_library_item()
+ *
+ * @ingroup themeable
+ */
+#}
+{%
+  set classes = [
+    'media-library-item',
+    'media-library-item--grid',
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {{ content }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/media-library/media-library-wrapper.html.twig b/core/themes/starterkit_theme/templates/media-library/media-library-wrapper.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..4d5458ac795566fe697dd8031d4f8cb1449054ca
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/media-library-wrapper.html.twig
@@ -0,0 +1,21 @@
+{#
+/**
+ * @file
+ * Theme override of a container used to wrap the media library's modal dialog
+ * interface.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - menu: The menu of available media types to choose from.
+ * - content: The form to add new media items, followed by the grid or table of
+ *   existing media items to choose from.
+ *
+ * @see template_preprocess_media_library_wrapper()
+ *
+ * @ingroup themeable
+ */
+#}
+<div{{ attributes.addClass('media-library-wrapper') }}>
+  {{ menu }}
+  {{ content }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/media-library/views-view-unformatted--media-library.html.twig b/core/themes/starterkit_theme/templates/media-library/views-view-unformatted--media-library.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..a94d4e2b636dd65a0bbf0aa27e8c11eb06935383
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/media-library/views-view-unformatted--media-library.html.twig
@@ -0,0 +1,35 @@
+{#
+/**
+ * @file
+ * Theme override of the media library view.
+ *
+ * This is used to display a grid of media items, in both the administrative
+ * interface and in the modal media library dialog's grid layout.
+ *
+ * Available variables:
+ * - title: The title of this group of rows. May be empty.
+ * - rows: A list of the view's row items.
+ *   - attributes: The row's HTML attributes.
+ *   - content: The row's content.
+ * - view: The view object.
+ * - default_row_class: A flag indicating whether default classes should be
+ *   used on rows.
+ *
+ * @see template_preprocess_views_view_unformatted()
+ */
+#}
+{% if title %}
+  <h3>{{ title }}</h3>
+{% endif %}
+{% for row in rows %}
+  {%
+    set row_classes = [
+      default_row_class ? 'views-row',
+      'media-library-item',
+      'media-library-item--grid',
+    ]
+  %}
+  <div{{ row.attributes.addClass(row_classes) }}>
+    {{- row.content -}}
+  </div>
+{% endfor %}
diff --git a/core/themes/starterkit_theme/templates/misc/help-section.html.twig b/core/themes/starterkit_theme/templates/misc/help-section.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..6cfaa38da26655da2c5e1915b603563fc877accc
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/misc/help-section.html.twig
@@ -0,0 +1,48 @@
+{#
+/**
+ * @file
+ * Theme override for a section of the help page.
+ *
+ * This implementation divides the links into 4 columns.
+ *
+ * Available variables:
+ * - title: The section title.
+ * - description: The description text for the section.
+ * - links: Links to display in the section.
+ * - empty: Text to display if there are no links.
+ */
+#}
+<div class="clearfix">
+  <h2>{{ title }}</h2>
+  <p>{{ description }}</p>
+  {% if links %}
+    {# Calculate the column length, to divide links into 4 columns. #}
+    {% set size = links|length // 4 %}
+    {% if size * 4 < links|length %}
+      {% set size = size + 1 %}
+    {% endif %}
+
+    {# Output the links in 4 columns. #}
+    {% set count = 0 %}
+    {% for link in links %}
+      {% if count == 0 %}
+        {# Start a new column. #}
+        <div class="layout-column layout-column--quarter"><ul>
+      {% endif %}
+      <li>{{ link }}</li>
+      {% set count = count + 1 %}
+      {% if count >= size %}
+        {# End the current column. #}
+        {% set count = 0 %}
+        </ul></div>
+      {% endif %}
+    {% endfor %}
+
+    {# End the last column, if one is open. #}
+    {% if count > 0 %}
+      </ul></div>
+    {% endif %}
+  {% else %}
+    <p>{{ empty }}</p>
+  {% endif %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/misc/progress-bar.html.twig b/core/themes/starterkit_theme/templates/misc/progress-bar.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..0e9c8dc91705dc56cb013e5bc24fc36ffa8a611f
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/misc/progress-bar.html.twig
@@ -0,0 +1,22 @@
+{#
+/**
+ * @file
+ * Theme override for a progress bar.
+ *
+ * Note that the core Batch API uses this only for non-JavaScript batch jobs.
+ *
+ * Available variables:
+ * - label: The label of the working task.
+ * - percent: The percentage of the progress.
+ * - message: A string containing information to be displayed.
+ */
+#}
+{{ attach_library('starterkit_theme/progress') }}
+<div class="progress" data-drupal-progress>
+  {% if label %}
+    <div class="progress__label">{{ label }}</div>
+  {% endif %}
+  <div class="progress__track"><div class="progress__bar" style="width: {{ percent }}%"></div></div>
+  <div class="progress__percentage">{{ percent }}%</div>
+  <div class="progress__description">{{ message }}</div>
+</div>
diff --git a/core/themes/starterkit_theme/templates/misc/rdf-metadata.html.twig b/core/themes/starterkit_theme/templates/misc/rdf-metadata.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..acc62df16d41b5e10442c5ef92e61ae01a511c28
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/misc/rdf-metadata.html.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Theme override for empty spans with RDF attributes.
+ *
+ * The XHTML+RDFa doctype allows either <span></span> or <span /> syntax to
+ * be used, but for maximum browser compatibility, W3C recommends the
+ * former when serving pages using the text/html media type, see
+ * http://www.w3.org/TR/xhtml1/#C_3.
+ *
+ * Available variables:
+ * - metadata: Each item within corresponds to its own set of attributes,
+ *   and therefore, needs its own 'attributes' element.
+ *
+ * @see template_preprocess_rdf_metadata()
+ */
+#}
+{% for attributes in metadata %}
+  <span{{ attributes.addClass('rdf-meta', 'hidden') }}></span>
+{% endfor %}
diff --git a/core/themes/starterkit_theme/templates/misc/status-messages.html.twig b/core/themes/starterkit_theme/templates/misc/status-messages.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7dda6c040c49d7fc9bde68e76182fc5487183c4f
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/misc/status-messages.html.twig
@@ -0,0 +1,55 @@
+{#
+/**
+ * @file
+ * Theme override for status messages.
+ *
+ * Displays status, error, and warning messages, grouped by type.
+ *
+ * An invisible heading identifies the messages for assistive technology.
+ * Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html
+ * for info.
+ *
+ * Add an ARIA label to the contentinfo area so that assistive technology
+ * user agents will better describe this landmark.
+ *
+ * Available variables:
+ * - message_list: List of messages to be displayed, grouped by type.
+ * - status_headings: List of all status types.
+ * - attributes: HTML attributes for the element, including:
+ *   - class: HTML classes.
+ */
+#}
+<div data-drupal-messages>
+{% block messages %}
+{% for type, messages in message_list %}
+  {%
+    set classes = [
+      'messages',
+      'messages--' ~ type,
+    ]
+  %}
+  <div role="contentinfo" aria-label="{{ status_headings[type] }}"{{ attributes.addClass(classes)|without('role', 'aria-label') }}>
+    {% if type == 'error' %}
+      <div role="alert">
+    {% endif %}
+      {% if status_headings[type] %}
+        <h2 class="visually-hidden">{{ status_headings[type] }}</h2>
+      {% endif %}
+      {% if messages|length > 1 %}
+        <ul class="messages__list">
+          {% for message in messages %}
+            <li class="messages__item">{{ message }}</li>
+          {% endfor %}
+        </ul>
+      {% else %}
+        {{ messages|first }}
+      {% endif %}
+    {% if type == 'error' %}
+      </div>
+    {% endif %}
+  </div>
+  {# Remove type specific classes. #}
+  {% set attributes = attributes.removeClass(classes) %}
+{% endfor %}
+{% endblock messages %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/navigation/book-all-books-block.html.twig b/core/themes/starterkit_theme/templates/navigation/book-all-books-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..b4cb64de3d5bfdb2bbbfdf2a32793f53d825a9c6
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/book-all-books-block.html.twig
@@ -0,0 +1,22 @@
+{#
+/**
+ * @file
+ * Theme override for rendering book outlines within a block.
+ *
+ * This template is used only when the block is configured to "show block on all
+ * pages", which presents multiple independent books on all pages.
+ *
+ * Available variables:
+ * - book_menus: Book outlines.
+ *   - id: The parent book ID.
+ *   - title: The parent book title.
+ *   - menu: The top-level book links.
+ *
+ * @see template_preprocess_book_all_books_block()
+ */
+#}
+{% for book in book_menus %}
+  <nav id="book-block-menu-{{ book.id }}" class="book-block-menu" role="navigation" aria-label="{% trans %}Book outline for {{ book.title }}{% endtrans %}">
+    {{ book.menu }}
+  </nav>
+{% endfor %}
diff --git a/core/themes/starterkit_theme/templates/navigation/book-navigation.html.twig b/core/themes/starterkit_theme/templates/navigation/book-navigation.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..48a8638c85f1e0b4801911149bf89eb47296fb42
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/book-navigation.html.twig
@@ -0,0 +1,56 @@
+{#
+/**
+ * @file
+ * Theme override to navigate books.
+ *
+ * Presented under nodes that are a part of book outlines.
+ *
+ * Available variables:
+ * - tree: The immediate children of the current node rendered as an unordered
+ *   list.
+ * - current_depth: Depth of the current node within the book outline. Provided
+ *   for context.
+ * - prev_url: URL to the previous node.
+ * - prev_title: Title of the previous node.
+ * - parent_url: URL to the parent node.
+ * - parent_title: Title of the parent node. Not printed by default. Provided
+ *   as an option.
+ * - next_url: URL to the next node.
+ * - next_title: Title of the next node.
+ * - has_links: Flags TRUE whenever the previous, parent or next data has a
+ *   value.
+ * - book_id: The book ID of the current outline being viewed. Same as the node
+ *   ID containing the entire outline. Provided for context.
+ * - book_url: The book/node URL of the current outline being viewed. Provided
+ *   as an option. Not used by default.
+ * - book_title: The book/node title of the current outline being viewed.
+ *
+ * @see template_preprocess_book_navigation()
+ */
+#}
+{{ attach_library('starterkit_theme/book-navigation') }}
+{% if tree or has_links %}
+  <nav id="book-navigation-{{ book_id }}" class="book-navigation" role="navigation" aria-labelledby="book-label-{{ book_id }}">
+    {{ tree }}
+    {% if has_links %}
+      <h2 class="visually-hidden" id="book-label-{{ book_id }}">{{ 'Book traversal links for'|t }} {{ book_title }}</h2>
+      <ul class="book-pager">
+      {% if prev_url %}
+        <li class="book-pager__item book-pager__item--previous">
+          <a href="{{ prev_url }}" rel="prev" title="{{ 'Go to previous page'|t }}"><b>{{ '‹'|t }}</b> {{ prev_title }}</a>
+        </li>
+      {% endif %}
+      {% if parent_url %}
+        <li class="book-pager__item book-pager__item--center">
+          <a href="{{ parent_url }}" title="{{ 'Go to parent page'|t }}">{{ 'Up'|t }}</a>
+        </li>
+      {% endif %}
+      {% if next_url %}
+        <li class="book-pager__item book-pager__item--next">
+          <a href="{{ next_url }}" rel="next" title="{{ 'Go to next page'|t }}">{{ next_title }} <b>{{ '›'|t }}</b></a>
+        </li>
+      {% endif %}
+    </ul>
+    {% endif %}
+  </nav>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/navigation/book-tree.html.twig b/core/themes/starterkit_theme/templates/navigation/book-tree.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..94fac5598b5780700a112eaf63d9e14859bce1d7
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/book-tree.html.twig
@@ -0,0 +1,55 @@
+{#
+/**
+ * @file
+ * Theme override to display a book tree.
+ *
+ * Returns HTML for a wrapper for a book sub-tree.
+ *
+ * Available variables:
+ * - items: A nested list of book items. Each book item contains:
+ *   - attributes: HTML attributes for the book item.
+ *   - below: The book item child items.
+ *   - title: The book link title.
+ *   - url: The book link URL, instance of \Drupal\Core\Url.
+ *   - is_expanded: TRUE if the link has visible children within the current
+ *     book tree.
+ *   - is_collapsed: TRUE if the link has children within the current book tree
+ *     that are not currently visible.
+ *   - in_active_trail: TRUE if the link is in the active trail.
+ */
+#}
+{% import _self as book_tree %}
+
+{#
+  We call a macro which calls itself to render the full tree.
+  @see https://twig.symfony.com/doc/1.x/tags/macro.html
+#}
+{{ book_tree.book_links(items, attributes, 0) }}
+
+{% macro book_links(items, attributes, menu_level) %}
+  {% import _self as book_tree %}
+  {% if items %}
+    {% if menu_level == 0 %}
+      <ul{{ attributes.addClass('menu') }}>
+    {% else %}
+      <ul class="menu">
+    {% endif %}
+    {% for item in items %}
+      {%
+        set classes = [
+          'menu-item',
+          item.is_expanded ? 'menu-item--expanded',
+          item.is_collapsed ? 'menu-item--collapsed',
+          item.in_active_trail ? 'menu-item--active-trail',
+        ]
+      %}
+      <li{{ item.attributes.addClass(classes) }}>
+        {{ link(item.title, item.url) }}
+        {% if item.below %}
+          {{ book_tree.book_links(item.below, attributes, menu_level + 1) }}
+        {% endif %}
+      </li>
+    {% endfor %}
+    </ul>
+  {% endif %}
+{% endmacro %}
diff --git a/core/themes/starterkit_theme/templates/navigation/breadcrumb.html.twig b/core/themes/starterkit_theme/templates/navigation/breadcrumb.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7dc08c5207eff25b57e6cbdcefbc95db1ef4a951
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/breadcrumb.html.twig
@@ -0,0 +1,25 @@
+{#
+/**
+ * @file
+ * Theme override for a breadcrumb trail.
+ *
+ * Available variables:
+ * - breadcrumb: Breadcrumb trail items.
+ */
+#}
+{% if breadcrumb %}
+  <nav class="breadcrumb" role="navigation" aria-labelledby="system-breadcrumb">
+    <h2 id="system-breadcrumb" class="visually-hidden">{{ 'Breadcrumb'|t }}</h2>
+    <ol>
+    {% for item in breadcrumb %}
+      <li>
+        {% if item.url %}
+          <a href="{{ item.url }}">{{ item.text }}</a>
+        {% else %}
+          {{ item.text }}
+        {% endif %}
+      </li>
+    {% endfor %}
+    </ol>
+  </nav>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/navigation/links.html.twig b/core/themes/starterkit_theme/templates/navigation/links.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..8eb003355eb37a99af14833a25eb8b9b302f19c8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/links.html.twig
@@ -0,0 +1,55 @@
+{#
+/**
+ * @file
+ * Theme override for a set of links.
+ *
+ * Available variables:
+ * - attributes: Attributes for the UL containing the list of links.
+ * - links: Links to be output.
+ *   Each link will have the following elements:
+ *   - link: (optional) A render array that returns a link. See
+ *     template_preprocess_links() for details how it is generated.
+ *   - text: The link text.
+ *   - attributes: HTML attributes for the list item element.
+ *   - text_attributes: (optional) HTML attributes for the span element if no
+ *     'url' was supplied.
+ * - heading: (optional) A heading to precede the links.
+ *   - text: The heading text.
+ *   - level: The heading level (e.g. 'h2', 'h3').
+ *   - attributes: (optional) A keyed list of attributes for the heading.
+ *   If the heading is a string, it will be used as the text of the heading and
+ *   the level will default to 'h2'.
+ *
+ *   Headings should be used on navigation menus and any list of links that
+ *   consistently appears on multiple pages. To make the heading invisible use
+ *   the 'visually-hidden' CSS class. Do not use 'display:none', which
+ *   removes it from screen readers and assistive technology. Headings allow
+ *   screen reader and keyboard only users to navigate to or skip the links.
+ *   See http://juicystudio.com/article/screen-readers-display-none.php and
+ *   http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
+ *
+ * @see template_preprocess_links()
+ */
+#}
+{% if links -%}
+  {%- if heading -%}
+    {%- if heading.level -%}
+      <{{ heading.level }}{{ heading.attributes }}>{{ heading.text }}</{{ heading.level }}>
+    {%- else -%}
+      <h2{{ heading.attributes }}>{{ heading.text }}</h2>
+    {%- endif -%}
+  {%- endif -%}
+  <ul{{ attributes }}>
+    {%- for item in links -%}
+      <li{{ item.attributes }}>
+        {%- if item.link -%}
+          {{ item.link }}
+        {%- elseif item.text_attributes -%}
+          <span{{ item.text_attributes }}>{{ item.text }}</span>
+        {%- else -%}
+          {{ item.text }}
+        {%- endif -%}
+      </li>
+    {%- endfor -%}
+  </ul>
+{%- endif %}
diff --git a/core/themes/starterkit_theme/templates/navigation/menu-local-action.html.twig b/core/themes/starterkit_theme/templates/navigation/menu-local-action.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..27872837abdca839f016b791feb731656f653108
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/menu-local-action.html.twig
@@ -0,0 +1,13 @@
+{#
+/**
+ * @file
+ * Theme override for a single local action link.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the wrapper element.
+ * - link: A rendered link element.
+ *
+ * @see template_preprocess_menu_local_action()
+ */
+#}
+<li{{ attributes }}>{{ link }}</li>
diff --git a/core/themes/starterkit_theme/templates/navigation/menu-local-task.html.twig b/core/themes/starterkit_theme/templates/navigation/menu-local-task.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..b8559815b9e937120f8fd4f87bcfe27e7a30c0b0
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/menu-local-task.html.twig
@@ -0,0 +1,17 @@
+{#
+/**
+ * @file
+ * Theme override for a local task link.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the wrapper element.
+ * - is_active: Whether the task item is an active tab.
+ * - link: A rendered link element.
+ *
+ * Note: This template renders the content for each task item in
+ * menu-local-tasks.html.twig.
+ *
+ * @see template_preprocess_menu_local_task()
+ */
+#}
+<li{{ attributes.addClass(is_active ? 'is-active') }}>{{ link }}</li>
diff --git a/core/themes/starterkit_theme/templates/navigation/menu-local-tasks.html.twig b/core/themes/starterkit_theme/templates/navigation/menu-local-tasks.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..8eb20ab44c24bd4d4bdce372022998885257ae8d
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/menu-local-tasks.html.twig
@@ -0,0 +1,21 @@
+{#
+/**
+ * @file
+ * Theme override to display primary and secondary local tasks.
+ *
+ * Available variables:
+ * - primary: HTML list items representing primary tasks.
+ * - secondary: HTML list items representing secondary tasks.
+ *
+ * Each item in these variables (primary and secondary) can be individually
+ * themed in menu-local-task.html.twig.
+ */
+#}
+{% if primary %}
+  <h2 class="visually-hidden">{{ 'Primary tabs'|t }}</h2>
+  <ul class="tabs primary">{{ primary }}</ul>
+{% endif %}
+{% if secondary %}
+  <h2 class="visually-hidden">{{ 'Secondary tabs'|t }}</h2>
+  <ul class="tabs secondary">{{ secondary }}</ul>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/navigation/menu.html.twig b/core/themes/starterkit_theme/templates/navigation/menu.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..b437f8760e978d34f8ce6945969e17abf29f5e6a
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/menu.html.twig
@@ -0,0 +1,55 @@
+{#
+/**
+ * @file
+ * Theme override to display a menu.
+ *
+ * Available variables:
+ * - menu_name: The machine name of the menu.
+ * - items: A nested list of menu items. Each menu item contains:
+ *   - attributes: HTML attributes for the menu item.
+ *   - below: The menu item child items.
+ *   - title: The menu link title.
+ *   - url: The menu link url, instance of \Drupal\Core\Url
+ *   - localized_options: Menu link localized options.
+ *   - is_expanded: TRUE if the link has visible children within the current
+ *     menu tree.
+ *   - is_collapsed: TRUE if the link has children within the current menu tree
+ *     that are not currently visible.
+ *   - in_active_trail: TRUE if the link is in the active trail.
+ */
+#}
+{% import _self as menus %}
+
+{#
+  We call a macro which calls itself to render the full tree.
+  @see https://twig.symfony.com/doc/1.x/tags/macro.html
+#}
+{{ menus.menu_links(items, attributes, 0) }}
+
+{% macro menu_links(items, attributes, menu_level) %}
+  {% import _self as menus %}
+  {% if items %}
+    {% if menu_level == 0 %}
+      <ul{{ attributes.addClass('menu') }}>
+    {% else %}
+      <ul class="menu">
+    {% endif %}
+    {% for item in items %}
+      {%
+        set classes = [
+          'menu-item',
+          item.is_expanded ? 'menu-item--expanded',
+          item.is_collapsed ? 'menu-item--collapsed',
+          item.in_active_trail ? 'menu-item--active-trail',
+        ]
+      %}
+      <li{{ item.attributes.addClass(classes) }}>
+        {{ link(item.title, item.url) }}
+        {% if item.below %}
+          {{ menus.menu_links(item.below, attributes, menu_level + 1) }}
+        {% endif %}
+      </li>
+    {% endfor %}
+    </ul>
+  {% endif %}
+{% endmacro %}
diff --git a/core/themes/starterkit_theme/templates/navigation/pager.html.twig b/core/themes/starterkit_theme/templates/navigation/pager.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..6f863faaf91206bd7e563c9dde65327b4645ccfa
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/pager.html.twig
@@ -0,0 +1,99 @@
+{#
+/**
+ * @file
+ * Theme override to display a pager.
+ *
+ * Available variables:
+ * - heading_id: Pagination heading ID.
+ * - items: List of pager items.
+ *   The list is keyed by the following elements:
+ *   - first: Item for the first page; not present on the first page of results.
+ *   - previous: Item for the previous page; not present on the first page
+ *     of results.
+ *   - next: Item for the next page; not present on the last page of results.
+ *   - last: Item for the last page; not present on the last page of results.
+ *   - pages: List of pages, keyed by page number.
+ *   Sub-sub elements:
+ *   items.first, items.previous, items.next, items.last, and each item inside
+ *   items.pages contain the following elements:
+ *   - href: URL with appropriate query parameters for the item.
+ *   - attributes: A keyed list of HTML attributes for the item.
+ *   - text: The visible text used for the item link, such as "‹ Previous"
+ *     or "Next ›".
+ * - current: The page number of the current page.
+ * - ellipses: If there are more pages than the quantity allows, then an
+ *   ellipsis before or after the listed pages may be present.
+ *   - previous: Present if the currently visible list of pages does not start
+ *     at the first page.
+ *   - next: Present if the visible list of pages ends before the last page.
+ *
+ * @see template_preprocess_pager()
+ */
+#}
+{% if items %}
+  <nav class="pager" role="navigation" aria-labelledby="{{ heading_id }}">
+    <h4 id="{{ heading_id }}" class="visually-hidden">{{ 'Pagination'|t }}</h4>
+    <ul class="pager__items js-pager__items">
+      {# Print first item if we are not on the first page. #}
+      {% if items.first %}
+        <li class="pager__item pager__item--first">
+          <a href="{{ items.first.href }}" title="{{ 'Go to first page'|t }}"{{ items.first.attributes|without('href', 'title') }}>
+            <span class="visually-hidden">{{ 'First page'|t }}</span>
+            <span aria-hidden="true">{{ items.first.text|default('« First'|t) }}</span>
+          </a>
+        </li>
+      {% endif %}
+      {# Print previous item if we are not on the first page. #}
+      {% if items.previous %}
+        <li class="pager__item pager__item--previous">
+          <a href="{{ items.previous.href }}" title="{{ 'Go to previous page'|t }}" rel="prev"{{ items.previous.attributes|without('href', 'title', 'rel') }}>
+            <span class="visually-hidden">{{ 'Previous page'|t }}</span>
+            <span aria-hidden="true">{{ items.previous.text|default('‹ Previous'|t) }}</span>
+          </a>
+        </li>
+      {% endif %}
+      {# Add an ellipsis if there are further previous pages. #}
+      {% if ellipses.previous %}
+        <li class="pager__item pager__item--ellipsis" role="presentation">&hellip;</li>
+      {% endif %}
+      {# Now generate the actual pager piece. #}
+      {% for key, item in items.pages %}
+        <li class="pager__item{{ current == key ? ' is-active' : '' }}">
+          {% if current == key %}
+            {% set title = 'Current page'|t %}
+          {% else %}
+            {% set title = 'Go to page @key'|t({'@key': key}) %}
+          {% endif %}
+          <a href="{{ item.href }}" title="{{ title }}"{{ item.attributes|without('href', 'title') }}>
+            <span class="visually-hidden">
+              {{ current == key ? 'Current page'|t : 'Page'|t }}
+            </span>
+            {{- key -}}
+          </a>
+        </li>
+      {% endfor %}
+      {# Add an ellipsis if there are further next pages. #}
+      {% if ellipses.next %}
+        <li class="pager__item pager__item--ellipsis" role="presentation">&hellip;</li>
+      {% endif %}
+      {# Print next item if we are not on the last page. #}
+      {% if items.next %}
+        <li class="pager__item pager__item--next">
+          <a href="{{ items.next.href }}" title="{{ 'Go to next page'|t }}" rel="next"{{ items.next.attributes|without('href', 'title', 'rel') }}>
+            <span class="visually-hidden">{{ 'Next page'|t }}</span>
+            <span aria-hidden="true">{{ items.next.text|default('Next ›'|t) }}</span>
+          </a>
+        </li>
+      {% endif %}
+      {# Print last item if we are not on the last page. #}
+      {% if items.last %}
+        <li class="pager__item pager__item--last">
+          <a href="{{ items.last.href }}" title="{{ 'Go to last page'|t }}"{{ items.last.attributes|without('href', 'title') }}>
+            <span class="visually-hidden">{{ 'Last page'|t }}</span>
+            <span aria-hidden="true">{{ items.last.text|default('Last »'|t) }}</span>
+          </a>
+        </li>
+      {% endif %}
+    </ul>
+  </nav>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/navigation/toolbar.html.twig b/core/themes/starterkit_theme/templates/navigation/toolbar.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..5ef3ffad3a3283c4ed4f21b8551271f600cbfe06
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/toolbar.html.twig
@@ -0,0 +1,46 @@
+{#
+/**
+ * @file
+ * Theme override for the administrative toolbar.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the wrapper.
+ * - toolbar_attributes: HTML attributes to apply to the toolbar.
+ * - toolbar_heading: The heading or label for the toolbar.
+ * - tabs: List of tabs for the toolbar.
+ *   - attributes: HTML attributes for the tab container.
+ *   - link: Link or button for the menu tab.
+ * - trays: Toolbar tray list, each associated with a tab. Each tray in trays
+ *   contains:
+ *   - attributes: HTML attributes to apply to the tray.
+ *   - label: The tray's label.
+ *   - links: The tray menu links.
+ * - remainder: Any non-tray, non-tab elements left to be rendered.
+ *
+ * @see template_preprocess_toolbar()
+ */
+#}
+<div{{ attributes.addClass('toolbar') }}>
+  <nav{{ toolbar_attributes.addClass('toolbar-bar', 'clearfix') }}>
+    <h2 class="visually-hidden">{{ toolbar_heading }}</h2>
+    {% for key, tab in tabs %}
+      {% set tray = trays[key] %}
+      <div{{ tab.attributes.addClass('toolbar-tab') }}>
+        {{ tab.link }}
+        {% apply spaceless %}
+          <div{{ tray.attributes }}>
+            {% if tray.label %}
+              <nav class="toolbar-lining clearfix" role="navigation" aria-label="{{ tray.label }}">
+                <h3 class="toolbar-tray-name visually-hidden">{{ tray.label }}</h3>
+            {% else %}
+              <nav class="toolbar-lining clearfix" role="navigation">
+            {% endif %}
+            {{ tray.links }}
+            </nav>
+          </div>
+        {% endapply %}
+      </div>
+    {% endfor %}
+  </nav>
+  {{ remainder }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/navigation/vertical-tabs.html.twig b/core/themes/starterkit_theme/templates/navigation/vertical-tabs.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..5872220b2a751dfeb132901e1b8e0c9c0f09284b
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/navigation/vertical-tabs.html.twig
@@ -0,0 +1,13 @@
+{#
+/**
+ * @file
+ * Theme override for vertical tabs.
+ *
+ * Available variables
+ * - attributes: A list of HTML attributes for the wrapper element.
+ * - children: The rendered tabs.
+ *
+ * @see template_preprocess_vertical_tabs()
+ */
+#}
+<div{{ attributes.setAttribute('data-vertical-tabs-panes', TRUE) }}>{{ children }}</div>
diff --git a/core/themes/starterkit_theme/templates/user/forum-submitted.html.twig b/core/themes/starterkit_theme/templates/user/forum-submitted.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..57311e96b59b19efc03430cb193a4606d9cbe782
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/user/forum-submitted.html.twig
@@ -0,0 +1,21 @@
+{#
+/**
+ * @file
+ * Theme override for a forum post submission string.
+ *
+ * The submission string indicates when and by whom a topic was submitted.
+ *
+ * Available variables:
+ * - author: The author of the post.
+ * - time: How long ago the post was created.
+ * - topic: An object with the raw data of the post. Potentially unsafe. Be
+ *   sure to clean this data before printing.
+ *
+ * @see template_preprocess_forum_submitted()
+ */
+#}
+{% if time %}
+  <span class="submitted">{% trans %}By {{ author }} {{ time }} ago{% endtrans %}</span>
+{% else %}
+  {{ 'n/a'|t }}
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/user/user.html.twig b/core/themes/starterkit_theme/templates/user/user.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9a824effd35f59462e2bc14b740fde5f437f50a3
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/user/user.html.twig
@@ -0,0 +1,23 @@
+{#
+/**
+ * @file
+ * Theme override to present all user data.
+ *
+ * This template is used when viewing a registered user's page,
+ * e.g., example.com/user/123. 123 being the user's ID.
+ *
+ * Available variables:
+ * - content: A list of content items. Use 'content' to print all content, or
+ *   print a subset such as 'content.field_example'. Fields attached to a user
+ *   such as 'user_picture' are available as 'content.user_picture'.
+ * - attributes: HTML attributes for the container element.
+ * - user: A Drupal User entity.
+ *
+ * @see template_preprocess_user()
+ */
+#}
+<article{{ attributes.addClass('profile') }}>
+  {% if content %}
+    {{- content -}}
+  {% endif %}
+</article>
diff --git a/core/themes/starterkit_theme/templates/user/username.html.twig b/core/themes/starterkit_theme/templates/user/username.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..df694dff698073f72e1addd165d4891db8aa67a6
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/user/username.html.twig
@@ -0,0 +1,29 @@
+{#
+/**
+ * @file
+ * Theme override for displaying a username.
+ *
+ * Available variables:
+ * - account: The full account information for the user.
+ * - uid: The user ID, or zero if not a user. As used in anonymous comments.
+ * - name: The user's name, sanitized, and optionally truncated.
+ * - name_raw: The user's name, un-truncated.
+ * - truncated: Whether the user's name was truncated.
+ * - extra: Additional text to append to the user's name, sanitized.
+ * - profile_access: Whether the current user has permission to access this
+     users profile page.
+ * - link_path: The path or URL of the user's profile page, home page,
+ *   or other desired page to link to for more information about the user.
+ * - homepage: (optional) The home page of the account, only set for non users.
+ * - link_options: Options to set on the \Drupal\Core\Url object if linking the
+ *   user's name to the user's page.
+ * - attributes: HTML attributes for the containing element.
+ *
+ * @see template_preprocess_username()
+ */
+#}
+{% if link_path -%}
+  <a{{ attributes.addClass('username') }}>{{ name }}{{ extra }}</a>
+{%- else -%}
+  <span{{ attributes }}>{{ name }}{{ extra }}</span>
+{%- endif -%}
diff --git a/core/themes/starterkit_theme/templates/views/views-exposed-form.html.twig b/core/themes/starterkit_theme/templates/views/views-exposed-form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..3c679ae58326b5df55b78698003767192e72d4dc
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-exposed-form.html.twig
@@ -0,0 +1,21 @@
+{#
+/**
+ * @file
+ * Theme override for a views exposed form.
+ *
+ * Available variables:
+ * - form: A render element representing the form.
+ *
+ * @see template_preprocess_views_exposed_form()
+ */
+#}
+{% if q is not empty %}
+  {#
+    This ensures that, if clean URLs are off, the 'q' is added first,
+    as a hidden form element, so that it shows up first in the POST URL.
+  #}
+{{ q }}
+{% endif %}
+<div class="form--inline clearfix">
+  {{ form }}
+</div>
diff --git a/core/themes/starterkit_theme/templates/views/views-mini-pager.html.twig b/core/themes/starterkit_theme/templates/views/views-mini-pager.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..4b46f2bb1f698633968b8e0290d2730cd1ef52aa
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-mini-pager.html.twig
@@ -0,0 +1,42 @@
+{#
+/**
+ * @file
+ * Theme override for a views mini-pager.
+ *
+ * Available variables:
+ * - heading_id: Pagination heading ID.
+ * - items: List of pager items.
+ *
+ * @see template_preprocess_views_mini_pager()
+ */
+#}
+{% if items.previous or items.next %}
+  <nav class="pager" role="navigation" aria-labelledby="{{ heading_id }}">
+    <h4 id="{{ heading_id }}" class="pager__heading visually-hidden">{{ 'Pagination'|t }}</h4>
+    <ul class="pager__items js-pager__items">
+      {% if items.previous %}
+        <li class="pager__item pager__item--previous">
+          <a href="{{ items.previous.href }}" title="{{ 'Go to previous page'|t }}" rel="prev"{{ items.previous.attributes|without('href', 'title', 'rel') }}>
+            <span class="visually-hidden">{{ 'Previous page'|t }}</span>
+            <span aria-hidden="true">{{ items.previous.text|default('‹‹'|t) }}</span>
+          </a>
+        </li>
+      {% endif %}
+      {% if items.current %}
+        <li class="pager__item is-active">
+          {% trans %}
+            Page {{ items.current }}
+          {% endtrans %}
+        </li>
+      {% endif %}
+      {% if items.next %}
+        <li class="pager__item pager__item--next">
+          <a href="{{ items.next.href }}" title="{{ 'Go to next page'|t }}" rel="next"{{ items.next.attributes|without('href', 'title', 'rel') }}>
+            <span class="visually-hidden">{{ 'Next page'|t }}</span>
+            <span aria-hidden="true">{{ items.next.text|default('››'|t) }}</span>
+          </a>
+        </li>
+      {% endif %}
+    </ul>
+  </nav>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/views/views-view-grid.html.twig b/core/themes/starterkit_theme/templates/views/views-view-grid.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..8a3a20bbfbcb33eeee42a8d220e12435574df08f
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-grid.html.twig
@@ -0,0 +1,76 @@
+{#
+/**
+ * @file
+ * Theme override for views to display rows in a grid.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the wrapping element.
+ * - title: The title of this group of rows.
+ * - view: The view object.
+ * - rows: The rendered view results.
+ * - options: The view plugin style options.
+ *   - row_class_default: A flag indicating whether default classes should be
+ *     used on rows.
+ *   - col_class_default: A flag indicating whether default classes should be
+ *     used on columns.
+ * - items: A list of grid items. Each item contains a list of rows or columns.
+ *   The order in what comes first (row or column) depends on which alignment
+ *   type is chosen (horizontal or vertical).
+ *   - attributes: HTML attributes for each row or column.
+ *   - content: A list of columns or rows. Each row or column contains:
+ *     - attributes: HTML attributes for each row or column.
+ *     - content: The row or column contents.
+ *
+ * @see template_preprocess_views_view_grid()
+ */
+#}
+{%
+  set classes = [
+    'views-view-grid',
+    options.alignment,
+    'cols-' ~ options.columns,
+    'clearfix',
+  ]
+%}
+{% if options.row_class_default %}
+  {%
+    set row_classes = [
+      'views-row',
+      options.alignment == 'horizontal' ? 'clearfix',
+    ]
+  %}
+{% endif %}
+{% if options.col_class_default %}
+  {%
+    set col_classes = [
+      'views-col',
+      options.alignment == 'vertical' ? 'clearfix',
+    ]
+  %}
+{% endif %}
+{% if title %}
+  <h3>{{ title }}</h3>
+{% endif %}
+<div{{ attributes.addClass(classes) }}>
+  {% if options.alignment == 'horizontal' %}
+    {% for row in items %}
+      <div{{ row.attributes.addClass(row_classes, options.row_class_default ? 'row-' ~ loop.index) }}>
+        {% for column in row.content %}
+          <div{{ column.attributes.addClass(col_classes, options.col_class_default ? 'col-' ~ loop.index) }}>
+            {{- column.content -}}
+          </div>
+        {% endfor %}
+      </div>
+    {% endfor %}
+  {% else %}
+    {% for column in items %}
+      <div{{ column.attributes.addClass(col_classes, options.col_class_default ? 'col-' ~ loop.index) }}>
+        {% for row in column.content %}
+          <div{{ row.attributes.addClass(row_classes, options.row_class_default ? 'row-' ~ loop.index) }}>
+            {{- row.content -}}
+          </div>
+        {% endfor %}
+      </div>
+    {% endfor %}
+  {% endif %}
+</div>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-grouping.html.twig b/core/themes/starterkit_theme/templates/views/views-view-grouping.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..44905e56b7942e64446eba7fef095974f48ec64b
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-grouping.html.twig
@@ -0,0 +1,20 @@
+{#
+/**
+ * @file
+ * Theme override to display a single views grouping.
+ *
+ * Available variables:
+ * - view: The view object.
+ * - grouping: The grouping instruction.
+ * - grouping_level: A number indicating the hierarchical level of the grouping.
+ * - title: The group heading.
+ * - content: The content to be grouped.
+ * - rows: The rows returned from the view.
+ *
+ * @see template_preprocess_views_view_grouping()
+ */
+#}
+<div class="view-grouping">
+  <div class="view-grouping-header">{{ title }}</div>
+  <div class="view-grouping-content">{{ content }}</div>
+</div>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-list.html.twig b/core/themes/starterkit_theme/templates/views/views-view-list.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..50cc74ba13fb0a8f922c2471cdce7c98246c9c01
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-list.html.twig
@@ -0,0 +1,38 @@
+{#
+/**
+ * @file
+ * Theme override for a view template to display a list of rows.
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the container.
+ * - rows: A list of rows for this list.
+ *   - attributes: The row's HTML attributes.
+ *   - content: The row's contents.
+ * - title: The title of this group of rows. May be empty.
+ * - list: @todo.
+ *   - type: Starting tag will be either a ul or ol.
+ *   - attributes: HTML attributes for the list element.
+ *
+ * @see template_preprocess_views_view_list()
+ */
+#}
+{% if attributes -%}
+  <div{{ attributes }}>
+{% endif %}
+  {% if title %}
+    <h3>{{ title }}</h3>
+  {% endif %}
+
+  <{{ list.type }}{{ list.attributes }}>
+
+    {% for row in rows %}
+      <li{{ row.attributes }}>
+        {{- row.content -}}
+      </li>
+    {% endfor %}
+
+  </{{ list.type }}>
+
+{% if attributes -%}
+  </div>
+{% endif %}
diff --git a/core/themes/starterkit_theme/templates/views/views-view-mapping-test.html.twig b/core/themes/starterkit_theme/templates/views/views-view-mapping-test.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..26d06692967bbab306b00f42cd88b1f862d2e82e
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-mapping-test.html.twig
@@ -0,0 +1,12 @@
+{#
+/**
+ * @file
+ * Theme override for testing the mapping row style.
+ *
+ * Available variables:
+ * - element: The view content.
+ *
+ * @see template_preprocess_views_view_mapping_test()
+ */
+#}
+{{ element }}
diff --git a/core/themes/starterkit_theme/templates/views/views-view-opml.html.twig b/core/themes/starterkit_theme/templates/views/views-view-opml.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..4165ccf4dfbd3f6c7b4a8cb4c5d845daa6a661df
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-opml.html.twig
@@ -0,0 +1,23 @@
+{#
+/**
+ * @file
+ * Theme override for feed displays that use the OPML style.
+ *
+ * Available variables:
+ * - title: The title of the feed (as set in the view).
+ * - updated: The modified date of the feed.
+ * - items: The feed items themselves.
+ *
+ * @see template_preprocess_views_view_opml()
+ */
+#}
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="2.0">
+  <head>
+    <title>{{ title }}</title>
+    <dateModified>{{ updated }}</dateModified>
+  </head>
+  <body>
+    {{ items }}
+  </body>
+</opml>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-row-opml.html.twig b/core/themes/starterkit_theme/templates/views/views-view-row-opml.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..3316b1a3d7e9daa5e8fc80055028a7c511d21ef0
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-row-opml.html.twig
@@ -0,0 +1,12 @@
+{#
+/**
+ * @file
+ * Theme override to display an item in a views OPML feed.
+ *
+ * Available variables:
+ * - attributes: Attributes for outline element.
+ *
+ * @see template_preprocess_views_view_row_opml()
+ */
+#}
+    <outline{{ attributes }}/>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-row-rss.html.twig b/core/themes/starterkit_theme/templates/views/views-view-row-rss.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..aee08aee6e27407c9187efe69ec02b92ee8a3b05
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-row-rss.html.twig
@@ -0,0 +1,30 @@
+{#
+/**
+ * @file
+ * Theme override to display an item in a views RSS feed.
+ *
+ * Available variables:
+ * - title: RSS item title.
+ * - link: RSS item link.
+ * - description: RSS body text.
+ * - item_elements: RSS item elements to be rendered as XML (pubDate, creator,
+ *   guid).
+ *
+ * @see template_preprocess_views_view_row_rss()
+ *
+ * @ingroup themeable
+ */
+#}
+<item>
+  <title>{{ title }}</title>
+  <link>{{ link }}</link>
+  <description>{{ description }}</description>
+  {% for item in item_elements -%}
+  <{{ item.key }}{{ item.attributes -}}
+  {% if item.value -%}
+  >{{ item.value }}</{{ item.key }}>
+    {% else -%}
+  {{ ' />' }}
+    {% endif %}
+  {%- endfor %}
+</item>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-rss.html.twig b/core/themes/starterkit_theme/templates/views/views-view-rss.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..0800237e39dc95490900eae930e12be3c4dfe11f
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-rss.html.twig
@@ -0,0 +1,28 @@
+{#
+/**
+ * @file
+ * Theme override for feed displays that use the RSS style.
+ *
+ * Available variables:
+ * - link: The link to the feed (the view path).
+ * - namespaces: The XML namespaces (added automatically).
+ * - title: The title of the feed (as set in the view).
+ * - description: The feed description (from feed settings).
+ * - langcode: The language encoding.
+ * - channel_elements: The formatted channel elements.
+ * - items: The feed items themselves.
+ *
+ * @see template_preprocess_views_view_rss()
+ */
+#}
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0" xml:base="{{ link }}"{{ namespaces }}>
+  <channel>
+    <title>{{ title }}</title>
+    <link>{{ link }}</link>
+    <description>{{ description }}</description>
+    <language>{{ langcode }}</language>
+    {{ channel_elements }}
+    {{ items }}
+  </channel>
+</rss>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-summary-unformatted.html.twig b/core/themes/starterkit_theme/templates/views/views-view-summary-unformatted.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..151734e948eea2fbb1c29261a0c169c1cd49581e
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-summary-unformatted.html.twig
@@ -0,0 +1,31 @@
+{#
+/**
+ * @file
+ * Theme override for unformatted summary links.
+ *
+ * Available variables:
+ * - rows: The rows contained in this view.
+ *   - url: The URL to this row's content.
+ *   - count: The number of items this summary item represents.
+ *   - separator: A separator between each row.
+ *   - attributes: HTML attributes for a row.
+ *   - active: A flag indicating whether the row is active.
+ * - options: Flags indicating how each row should be displayed. This contains:
+ *   - count: A flag indicating whether the row's 'count' should be displayed.
+ *   - inline: A flag indicating whether the item should be wrapped in an inline
+ *     or block level HTML element.
+ *
+ * @see template_preprocess_views_view_summary_unformatted()
+ */
+#}
+{% for row in rows  %}
+  {{ options.inline ? '<span' : '<div' }} class="views-summary views-summary-unformatted">
+  {% if row.separator -%}
+    {{ row.separator }}
+  {%- endif %}
+  <a href="{{ row.url }}"{{ row.attributes.addClass(row.active ? 'is-active')|without('href') }}>{{ row.link }}</a>
+  {% if options.count %}
+    ({{ row.count }})
+  {% endif %}
+  {{ options.inline ? '</span>' : '</div>' }}
+{% endfor %}
diff --git a/core/themes/starterkit_theme/templates/views/views-view-summary.html.twig b/core/themes/starterkit_theme/templates/views/views-view-summary.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..3190a45ada4fb066a2fbae94e0b39ae8f326e186
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-summary.html.twig
@@ -0,0 +1,31 @@
+{#
+/**
+ * @file
+ * Theme override to display a list of summary lines.
+ *
+ * Available variables:
+ * - rows: The rows contained in this view.
+ *   Each row contains:
+ *   - url: The summary link URL.
+ *   - link: The summary link text.
+ *   - count: The number of items under this grouping.
+ *   - attributes: HTML attributes to apply to each row.
+ *   - active: A flag indicating whether the row is active.
+ * - options: Flags indicating how the summary should be displayed.
+ *   This contains:
+ *   - count: A flag indicating whether the count should be displayed.
+ *
+ * @see template_preprocess_views_view_summary()
+ */
+#}
+<div class="item-list">
+  <ul class="views-summary">
+  {% for row in rows %}
+    <li><a href="{{ row.url }}"{{ row.attributes.addClass(row.active ? 'is-active')|without('href') }}>{{ row.link }}</a>
+      {% if options.count %}
+        ({{ row.count }})
+      {% endif %}
+    </li>
+  {% endfor %}
+  </ul>
+</div>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-table.html.twig b/core/themes/starterkit_theme/templates/views/views-view-table.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..edc14983da77f19519d5e5fcba6230c281cc634a
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-table.html.twig
@@ -0,0 +1,120 @@
+{#
+/**
+ * @file
+ * Theme override for displaying a view as a table.
+ *
+ * Available variables:
+ * - attributes: Remaining HTML attributes for the element.
+ *   - class: HTML classes that can be used to style contextually through CSS.
+ * - title : The title of this group of rows.
+ * - header: The table header columns.
+ *   - attributes: Remaining HTML attributes for the element.
+ *   - content: HTML classes to apply to each header cell, indexed by
+ *   the header's key.
+ *   - default_classes: A flag indicating whether default classes should be
+ *     used.
+ * - caption_needed: Is the caption tag needed.
+ * - caption: The caption for this table.
+ * - accessibility_description: Extended description for the table details.
+ * - accessibility_summary: Summary for the table details.
+ * - rows: Table row items. Rows are keyed by row number.
+ *   - attributes: HTML classes to apply to each row.
+ *   - columns: Row column items. Columns are keyed by column number.
+ *     - attributes: HTML classes to apply to each column.
+ *     - content: The column content.
+ *   - default_classes: A flag indicating whether default classes should be
+ *     used.
+ * - responsive: A flag indicating whether table is responsive.
+ * - sticky: A flag indicating whether table header is sticky.
+ * - summary_element: A render array with table summary information (if any).
+ *
+ * @see template_preprocess_views_view_table()
+ */
+#}
+{%
+  set classes = [
+    'views-table',
+    'views-view-table',
+    'cols-' ~ header|length,
+    responsive ? 'responsive-enabled',
+    sticky ? 'sticky-enabled',
+  ]
+%}
+<table{{ attributes.addClass(classes) }}>
+  {% if caption_needed %}
+    <caption>
+    {% if caption %}
+      {{ caption }}
+    {% else %}
+      {{ title }}
+    {% endif %}
+    {% if (summary_element is not empty) %}
+      {{ summary_element }}
+    {% endif %}
+    </caption>
+  {% endif %}
+  {% if header %}
+    <thead>
+      <tr>
+        {% for key, column in header %}
+          {% if column.default_classes %}
+            {%
+              set column_classes = [
+                'views-field',
+                'views-field-' ~ fields[key],
+              ]
+            %}
+          {% endif %}
+          <th{{ column.attributes.addClass(column_classes).setAttribute('scope', 'col') }}>
+            {%- if column.wrapper_element -%}
+              <{{ column.wrapper_element }}>
+                {%- if column.url -%}
+                  <a href="{{ column.url }}" title="{{ column.title }}" rel="nofollow">{{ column.content }}{{ column.sort_indicator }}</a>
+                {%- else -%}
+                  {{ column.content }}{{ column.sort_indicator }}
+                {%- endif -%}
+              </{{ column.wrapper_element }}>
+            {%- else -%}
+              {%- if column.url -%}
+                <a href="{{ column.url }}" title="{{ column.title }}" rel="nofollow">{{ column.content }}{{ column.sort_indicator }}</a>
+              {%- else -%}
+                {{- column.content }}{{ column.sort_indicator }}
+              {%- endif -%}
+            {%- endif -%}
+          </th>
+        {% endfor %}
+      </tr>
+    </thead>
+  {% endif %}
+  <tbody>
+    {% for row in rows %}
+      <tr{{ row.attributes }}>
+        {% for key, column in row.columns %}
+          {% if column.default_classes %}
+            {%
+              set column_classes = [
+                'views-field'
+              ]
+            %}
+            {% for field in column.fields %}
+              {% set column_classes = column_classes|merge(['views-field-' ~ field]) %}
+            {% endfor %}
+          {% endif %}
+          <td{{ column.attributes.addClass(column_classes) }}>
+            {%- if column.wrapper_element -%}
+              <{{ column.wrapper_element }}>
+              {% for content in column.content %}
+                {{ content.separator }}{{ content.field_output }}
+              {% endfor %}
+              </{{ column.wrapper_element }}>
+            {%- else -%}
+              {% for content in column.content %}
+                {{- content.separator }}{{ content.field_output -}}
+              {% endfor %}
+            {%- endif %}
+          </td>
+        {% endfor %}
+      </tr>
+    {% endfor %}
+  </tbody>
+</table>
diff --git a/core/themes/starterkit_theme/templates/views/views-view-unformatted.html.twig b/core/themes/starterkit_theme/templates/views/views-view-unformatted.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..534ac9a95520d850af5b49adbc8c53124ffa11a5
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view-unformatted.html.twig
@@ -0,0 +1,30 @@
+{#
+/**
+ * @file
+ * Theme override to display a view of unformatted rows.
+ *
+ * Available variables:
+ * - title: The title of this group of rows. May be empty.
+ * - rows: A list of the view's row items.
+ *   - attributes: The row's HTML attributes.
+ *   - content: The row's content.
+ * - view: The view object.
+ * - default_row_class: A flag indicating whether default classes should be
+ *   used on rows.
+ *
+ * @see template_preprocess_views_view_unformatted()
+ */
+#}
+{% if title %}
+  <h3>{{ title }}</h3>
+{% endif %}
+{% for row in rows %}
+  {%
+    set row_classes = [
+      default_row_class ? 'views-row',
+    ]
+  %}
+  <div{{ row.attributes.addClass(row_classes) }}>
+    {{- row.content -}}
+  </div>
+{% endfor %}
diff --git a/core/themes/starterkit_theme/templates/views/views-view.html.twig b/core/themes/starterkit_theme/templates/views/views-view.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..251b0611dda6860b969faadcdbc08c9a84dfe8d8
--- /dev/null
+++ b/core/themes/starterkit_theme/templates/views/views-view.html.twig
@@ -0,0 +1,95 @@
+{#
+/**
+ * @file
+ * Theme override for a main view template.
+ *
+ * Available variables:
+ * - attributes: Remaining HTML attributes for the element.
+ * - css_name: A CSS-safe version of the view name.
+ * - css_class: The user-specified classes names, if any.
+ * - header: The optional header.
+ * - footer: The optional footer.
+ * - rows: The results of the view query, if any.
+ * - empty: The content to display if there are no rows.
+ * - pager: The optional pager next/prev links to display.
+ * - exposed: Exposed widget form/info to display.
+ * - feed_icons: Optional feed icons to display.
+ * - more: An optional link to the next page of results.
+ * - title: Title of the view, only used when displaying in the admin preview.
+ * - title_prefix: Additional output populated by modules, intended to be
+ *   displayed in front of the view title.
+ * - title_suffix: Additional output populated by modules, intended to be
+ *   displayed after the view title.
+ * - attachment_before: An optional attachment view to be displayed before the
+ *   view content.
+ * - attachment_after: An optional attachment view to be displayed after the
+ *   view content.
+ * - dom_id: Unique id for every view being printed to give unique class for
+ *   JavaScript.
+ *
+ * @see template_preprocess_views_view()
+ */
+#}
+{%
+  set classes = [
+    'view',
+    'view-' ~ id|clean_class,
+    'view-id-' ~ id,
+    'view-display-id-' ~ display_id,
+    dom_id ? 'js-view-dom-id-' ~ dom_id,
+  ]
+%}
+<div{{ attributes.addClass(classes) }}>
+  {{ title_prefix }}
+  {% if title %}
+    {{ title }}
+  {% endif %}
+  {{ title_suffix }}
+  {% if header %}
+    <div class="view-header">
+      {{ header }}
+    </div>
+  {% endif %}
+  {% if exposed %}
+    <div class="view-filters">
+      {{ exposed }}
+    </div>
+  {% endif %}
+  {% if attachment_before %}
+    <div class="attachment attachment-before">
+      {{ attachment_before }}
+    </div>
+  {% endif %}
+
+  {% if rows %}
+    <div class="view-content">
+      {{ rows }}
+    </div>
+  {% elseif empty %}
+    <div class="view-empty">
+      {{ empty }}
+    </div>
+  {% endif %}
+
+  {% if pager %}
+    {{ pager }}
+  {% endif %}
+  {% if attachment_after %}
+    <div class="attachment attachment-after">
+      {{ attachment_after }}
+    </div>
+  {% endif %}
+  {% if more %}
+    {{ more }}
+  {% endif %}
+  {% if footer %}
+    <div class="view-footer">
+      {{ footer }}
+    </div>
+  {% endif %}
+  {% if feed_icons %}
+    <div class="feed-icons">
+      {{ feed_icons }}
+    </div>
+  {% endif %}
+</div>