old_contents: /*
  *********************************************************************************************
  
    System Loader Implementation
  
      - Implemented to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js
  
      - <script type="module"> supported
  
  *********************************************************************************************
  */
  
  var System;
  
  function SystemLoader() {
    Loader.call(this);
    this.paths = {};
  }
  
  // NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25
  function applyPaths(paths, name) {
    // most specific (most number of slashes in path) match wins
    var pathMatch = '', wildcard, maxSlashCount = 0;
  
    // check to see if we have a paths entry
    for (var p in paths) {
      var pathParts = p.split('*');
      if (pathParts.length > 2)
        throw new TypeError('Only one wildcard in a path is permitted');
  
      // exact path match
      if (pathParts.length == 1) {
        if (name == p) {
          pathMatch = p;
          break;
        }
      }
      // wildcard path match
      else {
        var slashCount = p.split('/').length;
        if (slashCount > maxSlashCount &&
            name.substr(0, pathParts[0].length) == pathParts[0] &&
            name.substr(name.length - pathParts[1].length) == pathParts[1]) {
              maxSlashCount = slashCount;
              pathMatch = p;
              wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length);
            }
      }
    }
  
    var outPath = paths[pathMatch] || name;
    if (typeof wildcard == 'string')
      outPath = outPath.replace('*', wildcard);
  
    return outPath;
  }
  
  // inline Object.create-style class extension
  function LoaderProto() {}
  LoaderProto.prototype = Loader.prototype;
  SystemLoader.prototype = new LoaderProto();
  
new_contents: /*
  *********************************************************************************************
  
    System Loader Implementation
  
      - Implemented to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js
  
      - <script type="module"> supported
  
  *********************************************************************************************
  */
  
  var System;
  
  function SystemLoader() {
    Loader.call(this);
    this.paths = {};
  }
  
  // NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25
  function applyPaths(paths, name) {
    // most specific (most number of slashes in path) match wins
    var pathMatch = '', wildcard, maxSlashCount = 0;
  
    // check to see if we have a paths entry
    for (var p in paths) {
      var pathParts = p.split('*');
      if (pathParts.length > 2)
        throw new TypeError('Only one wildcard in a path is permitted');
  
      // exact path match
      if (pathParts.length == 1) {
        if (name == p) {
          pathMatch = p;
          break;
        }
      }
      // wildcard path match
      else {
        var slashCount = p.split('/').length;
        if (slashCount >= maxSlashCount &&
            name.substr(0, pathParts[0].length) == pathParts[0] &&
            name.substr(name.length - pathParts[1].length) == pathParts[1]) {
              maxSlashCount = slashCount;
              pathMatch = p;
              wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length);
            }
      }
    }
  
    var outPath = paths[pathMatch] || name;
    if (typeof wildcard == 'string')
      outPath = outPath.replace('*', wildcard);
  
    return outPath;
  }
  
  // inline Object.create-style class extension
  function LoaderProto() {}
  LoaderProto.prototype = Loader.prototype;
  SystemLoader.prototype = new LoaderProto();
  
subject: Revert "pending exact path preference, let first match win" - when order is from least to most specific (which is a natural ordering), this is needed to make sense