none
Cycling through and HTML file and Editing Attributes....

    Question

  • Hi there,

    Long story short, I've been told I need to modify an index.html file to tag a version to certain attribute values to force a cache refresh when we ship an upgrade.

    The content of the file looks something like this...

    <!DOCTYPE html>
    <html ng-app="app" ng-controller="index as vm" class="ng-cloak">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
        <meta name="viewport" content="initial-scale=1, maximum-scale=1">
        <title>MyCo MyApp</title>
        
        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    
        <link href="lib/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />  
        <link href="lib/font-awesome/css/font-awesome.css" rel="stylesheet" />    
        <link href="dist/css/ionicons.min.css" rel="stylesheet" />    
        <link href="lib/iCheck/skins/square/blue.css" rel="stylesheet" />   
        <link href="lib/jquery.splitter/css/jquery.splitter.css" rel="stylesheet" />    
        <link href="lib/selectize/dist/css/selectize.default.css" rel="stylesheet" />    
        <link href="lib/angular-loading-bar/src/loading-bar.css" rel="stylesheet" />   
        <link href="lib/ag-grid/dist/angular-grid.min.css" rel="stylesheet" />   
        <link href="lib/perfect-scrollbar/min/perfect-scrollbar.min.css" rel="stylesheet" />    
        <link href="dist/css/animate.css" rel="stylesheet" />   
        <link href="lib/angular-material/angular-material.min.css" rel="stylesheet" /   
        <link href="lib/froala_editor_2.3.3/css/froala_editor.min.css" rel="stylesheet" />
        <link href="lib/codemirror/lib/codemirror.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/froala_style.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/char_counter.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/code_view.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/colors.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/file.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/fullscreen.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/image.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/image_manager.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/line_breaker.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/quick_insert.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/table.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/video.min.css" rel="stylesheet" />
    
        <link rel="apple-touch-icon" href="apple-touch-icon.png" /> 
       
        <link href="dist/css/grid.min.css" rel="stylesheet" />
        <link href="lib/jstree/dist/themes/default/style.min.css?v=11.0.0.2540" rel="stylesheet" />
    
        <link rel="shortcut icon" href="favicon.ico?v=2">
    
        <link href='https://fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Work+Sans' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Anonymous+Pro' rel='stylesheet' type='text/css'>
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
              rel="stylesheet">
       
         <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
         <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        
        
        <link href="dist/css/site.min.css" rel="stylesheet" />
    </head>
    <body style="overflow: hidden" class="hold-transition skin-blue-light sidebar-mini login-page" ng-class="{
          'sidebar-collapse': vm.sidebarservice.leftSideBarCollapse,
          'sidebar-open': vm.sidebarservice.leftSideBarOpen,
          }">
        <folder-browser></folder-browser>
        <div style="height: 100%" id="ui-view" class="main-view" ui-view>
        </div>
    
        
        <script src="lib/jquery/dist/jquery.min.js"></script>    
        <script src="lib/jquery-ui/jquery-ui.min.js"></script>    
        <script src="lib/jquery-ui-touch-punch-improved/jquery.ui.touch-punch-improved.js"></script>    
        <script src="lib/bootstrap/dist/js/bootstrap.min.js"></script>    
        <script src="lib/selectize/dist/js/standalone/selectize.min.js"></script>   
        <script src="lib/slimScroll/jquery.slimscroll.min.js"></script>   
        <script src="lib/fastclick/lib/fastclick.js"></script>    
        <script src="dist/js/app.js"></script>        
        <script src="dist/js/demo.js"></script>
        <script src="lib/angular/angular.js"></script>
        <script src="lib/jstree/dist/jstree.js"></script>   
        <script src="lib/angular-ui-router/release/angular-ui-router.js"></script>
        <script src="lib/ui-router-extras/release/ct-ui-router-extras.min.js"></script>
        <script src="lib/ag-grid/dist/angular-grid.js"></script>
        <script src="lib/ngstorage/ngStorage.min.js"></script>
        <script src="lib/angular-loading-bar/src/loading-bar.js"></script>
        <script src="lib/angular-animate/angular-animate.js"></script>
        <script src="lib/angular-aria/angular-aria.min.js"></script>
        <script src="lib/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
        <script src="lib/angular-sanitize/angular-sanitize.min.js"></script>
        <script src="lib/angular-ui-grid/ui-grid.js"></script>
        <script src="lib/perfect-scrollbar/min/perfect-scrollbar.min.js"></script>
        <script src="lib/angular-perfect-scrollbar/src/angular-perfect-scrollbar.js"></script>
        <script src="lib/angular-base64/angular-base64.min.js"></script>
        <script src="lib/angular-cookies/angular-cookies.min.js"></script>   
        <script src="lib/froala_editor_2.3.3/js/froala_editor.min.js"></script   
        <script src="lib/codemirror/lib/codemirror.js"></script>   
        <script src="lib/froala_editor_2.3.3/js/plugins/align.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/char_counter.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/code_beautifier.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/code_view.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/colors.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/entities.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/file.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/font_family.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/font_size.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/fullscreen.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/image.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/image_manager.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/inline_style.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/line_breaker.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/lists.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/paragraph_format.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/save.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/table.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/url.min.js"></script>
        <script src="lib/angular-file-upload/dist/angular-file-upload.js"></script>
        <script src="lib/bowser/src/bowser.js"></script>
        <script src="lib/signalr/jquery.signalR.min.js"></script>
        <script src="lib/angular-signalr-hub/signalr-hub.min.js"></script>
        <script src="/MyCo.WebApi/signalr/hubs"></script>    
        <script src="lib/angular-ui-sortable/sortable.min.js"></script>   
        <script src="lib/angular-dynamic-locale/tmhDynamicLocale.min.js"></script>    
        <script src="lib/angular-material/angular-material.min.js"></script>
        <script src="lib/angular-vs-repeat/src/angular-vs-repeat.js"></script>  
        <script src="lib/file-saver/FileSaver.min.js"></script>   
        <script src="lib/custom-protocol-detection/protocolcheck.js"></script>
        <script src="dist/js/launch_uri.js"></script>    
        <script src="dist/js/angularapp.min.js?v=11.0.0.2540"></script>
        <script src="lib/angular-bootstrap-toggle-switch/angular-toggle-switch.min.js"></script>   
        <script src="app/ngClipboard/directives/ngClipboard.js"></script>
       
        
    </body>
    </html>
    
    
    

    I'm told I need to cycle through the file and change all link href attributes to its current value with ?v=#.#.# appended to it.  I also have to so the same for script src attributes.  I've been trying for days and can't get anything to work.  If the value already has a version appended to it, it is to be ignored.  I think there is only one instance of that in the file I am to edit.

    I was able to get the edit of two particular element attributes accomplished as I was searching for and replacing hard text + the version appendage.  I can't find a way to cycle through the elements/attributes and make the edits.

    Any help Greatly Appreciated!!

    Thursday, July 12, 2018 4:14 PM

All replies

  • Load the file as XML and retrieve all "link" elements and change them then save back to a file.


    \_(ツ)_/

    Thursday, July 12, 2018 4:20 PM
    Moderator
  • Thanks jrv!!

    I've been trying several things, but can't get anything to either work or run without error.

    I thought I could load the file and cycle through each element and if llink or script, change href, src respectively or accordingly.

    Here is the cheesy solution I currently have for specific items...

    function HTML-Edit
    {
        param ([string] $file, [string] $version, [string] $replacement)
    
       $addition = "?v=$version"
    
        try
        {        
            sp $file IsReadOnly $false
            $indexxml= (Get-Content $file)
    
            ForEach-Object{$indexxml -replace $replacement, "$replacement$addition"} | Set-Content $file
    
            sp  $file IsReadOnly $true
        } 
        catch
        {
            Write-Host "HTML Editt Error!... " + $_.Exception.Message
        }
        
    }
    
    HTML-Edit -file $pathToIndex -version $env:TF_BUILD_BUILDNUMBER -replacement "dist/js/angularapp.min.js"
    HTML-Edit -file $pathToIndex -version $env:TF_BUILD_BUILDNUMBER -replacement "lib/jstree/dist/themes/default/style.min.css"

    I've been trying ForEach, etc, but nothing works.  When I search online for possible solutions, I see piping, etc, which I guess I don't fully understand.

    If you couldn't already tell, this isn't my full time job!!

    Would you know where I could find a code snippet to dissect?

    Thanks Again!!

    Thursday, July 12, 2018 5:09 PM
  • https://ss64.com/ps/select-xml.html

    Edit: you can also use a little Regex razzle dazzle jazz hands.

    • Edited by The Grim Thursday, July 12, 2018 5:30 PM
    Thursday, July 12, 2018 5:29 PM
  • https://ss64.com/ps/select-xml.html

    Edit: you can also use a little Regex razzle dazzle jazz hands.

    Yeah, I saw that post and didn't want to play with the Regex patterns, but I'll give it a try.  I thought this would only be a few lines of code and I would be done, but again, no PowerShell expert here.

    I'll give this another go!

    Thursday, July 12, 2018 5:31 PM
  •    -Xml XmlNode[]
           One or more XML nodes.
           A Path or XML parameter is required in every command.
            
           An XML document will be processed as a collection of XML nodes.
           If an XML document is passed to Select-XML, each
           document node will be searched separately as it comes through the pipeline.
            
       -Xpath string
           An XPath search query.
           The query language is case-sensitive. This parameter is required.

    Thursday, July 12, 2018 5:38 PM
  • Thanks Again!

    I guess I'm thrown by the actually finding and replacing the attributes.  Is this information more suited for text search and replace.  All the hrefs will be different unless you can use Regex in some form or fashion to replace different values...

    <script src="lib/angular-signalr-hub/signalr-hub.min.js"></script>
    <script src="/MyCo.WebApi/signalr/hubs"></script>

    Is there a way to search the file for like 'src="*" and replace with 'src="*?v=#.#.#.#"

    Sorry for being lost!!

    Thursday, July 12, 2018 5:42 PM
  • The doc is declared as HTML 5 but the HTML is very badly broken.  Any HTML validator will generate over 100 errors.

    You will have to use Regex to select the text to replace.  This can be hard as the broken issues cause an inconsistency in the stream.


    \_(ツ)_/

    Thursday, July 12, 2018 5:47 PM
    Moderator
  • I had altered the file for simplicity so I think I hacked a few things.  Here is the original file.  Does this still appear badly broken or should treating as an XML document work...

    <!DOCTYPE html>
    <html ng-app="app" ng-controller="index as vm" class="ng-cloak">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
        <meta name="viewport" content="initial-scale=1, maximum-scale=1">
        <title>MyCo MyApp</title>
        <!-- Tell the browser to be responsive to screen width -->
        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
        <!-- Bootstrap 3.3.5 -->
        <link href="lib/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />
        <!-- Font Awesome -->
        <link href="lib/font-awesome/css/font-awesome.css" rel="stylesheet" />
        <!-- Ionicons -->
        <link href="dist/css/ionicons.min.css" rel="stylesheet" />
        <!--iCheck-->
        <link href="lib/iCheck/skins/square/blue.css" rel="stylesheet" />
        <!--Jquery Splitter-->
        <link href="lib/jquery.splitter/css/jquery.splitter.css" rel="stylesheet" />
        <!--Selectize-->
        <link href="lib/selectize/dist/css/selectize.default.css" rel="stylesheet" />
        <!--Angular loading bar-->
        <link href="lib/angular-loading-bar/src/loading-bar.css" rel="stylesheet" />
        <!--Angular Grid-->
        <link href="lib/ag-grid/dist/angular-grid.min.css" rel="stylesheet" />
        <!-- Theme style -->
        <link href="lib/perfect-scrollbar/min/perfect-scrollbar.min.css" rel="stylesheet" />
        <!-- Animations-->
        <link href="dist/css/animate.css" rel="stylesheet" />
        <!--Angular Material-->
        <link href="lib/angular-material/angular-material.min.css" rel="stylesheet" />
    
        <!-- Include Editor style. -->
        <link href="lib/froala_editor_2.3.3/css/froala_editor.min.css" rel="stylesheet" />
    
        <link href="lib/codemirror/lib/codemirror.css" rel="stylesheet" />
    
        <link href="lib/froala_editor_2.3.3/css/froala_style.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/char_counter.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/code_view.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/colors.min.css" rel="stylesheet" />
    
        <link href="lib/froala_editor_2.3.3/css/plugins/file.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/fullscreen.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/image.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/image_manager.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/line_breaker.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/quick_insert.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/table.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/video.min.css" rel="stylesheet" />
        <link rel="apple-touch-icon" href="apple-touch-icon.png" />
        <!--Grid css-->
        <link href="dist/css/grid.min.css" rel="stylesheet" />
        <link href="lib/jstree/dist/themes/default/style.min.css?v=11.0.0.2542" rel="stylesheet" />
    
        <link rel="shortcut icon" href="favicon.ico?v=2">
        <link href='https://fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Work+Sans' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Anonymous+Pro' rel='stylesheet' type='text/css'>
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
              rel="stylesheet">
        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
            <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
        <!--Custom css for the site-->
        <link href="dist/css/site.min.css" rel="stylesheet" />
    </head>
    <body style="overflow: hidden" class="hold-transition skin-blue-light sidebar-mini login-page" ng-class="{
          'sidebar-collapse': vm.sidebarservice.leftSideBarCollapse,
          'sidebar-open': vm.sidebarservice.leftSideBarOpen,
          }">
        <folder-browser></folder-browser>
        <div style="height: 100%" id="ui-view" class="main-view" ui-view>
        </div>
    
        <!--Third Party Libraries-->
        <!-- jQuery 2.1.4 -->
        <script src="lib/jquery/dist/jquery.min.js"></script>
        <!-- jQuery UI -->
        <script src="lib/jquery-ui/jquery-ui.min.js"></script>
        <!-- jQuery UI touch-punch-->
        <script src="lib/jquery-ui-touch-punch-improved/jquery.ui.touch-punch-improved.js"></script>
        <!-- Bootstrap 3.3.5 -->
        <script src="lib/bootstrap/dist/js/bootstrap.min.js"></script>
        <!--Selectize-->
        <script src="lib/selectize/dist/js/standalone/selectize.min.js"></script>
        <!-- SlimScroll -->
        <script src="lib/slimScroll/jquery.slimscroll.min.js"></script>
        <!-- FastClick -->
        <script src="lib/fastclick/lib/fastclick.js"></script>
        <!-- AdminLTE App -->
        <script src="dist/js/app.js"></script>
        
        <!-- AdminLTE for demo purposes -->
        <script src="dist/js/demo.js"></script>
        <script src="lib/angular/angular.js"></script>
        <script src="lib/jstree/dist/jstree.js"></script>
        <!--<script src="lib/angular/angular-locale_fr-ca.js"></script>-->
    
        <script src="lib/angular-ui-router/release/angular-ui-router.js"></script>
        <script src="lib/ui-router-extras/release/ct-ui-router-extras.min.js"></script>
        <script src="lib/ag-grid/dist/angular-grid.js"></script>
        <script src="lib/ngstorage/ngStorage.min.js"></script>
        <script src="lib/angular-loading-bar/src/loading-bar.js"></script>
        <script src="lib/angular-animate/angular-animate.js"></script>
        <script src="lib/angular-aria/angular-aria.min.js"></script>
        <script src="lib/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
        <script src="lib/angular-sanitize/angular-sanitize.min.js"></script>
        <script src="lib/angular-ui-grid/ui-grid.js"></script>
        <script src="lib/perfect-scrollbar/min/perfect-scrollbar.min.js"></script>
        <script src="lib/angular-perfect-scrollbar/src/angular-perfect-scrollbar.js"></script>
        <script src="lib/angular-base64/angular-base64.min.js"></script>
        <script src="lib/angular-cookies/angular-cookies.min.js"></script>
        <!--Froala-->
        <script src="lib/froala_editor_2.3.3/js/froala_editor.min.js"></script>
    
        <!--CodeMirror-->
        <script src="lib/codemirror/lib/codemirror.js"></script>
    
        <!--Froala Plugins-->
        <script src="lib/froala_editor_2.3.3/js/plugins/align.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/char_counter.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/code_beautifier.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/code_view.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/colors.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/entities.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/file.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/font_family.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/font_size.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/fullscreen.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/image.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/image_manager.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/inline_style.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/line_breaker.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/lists.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/paragraph_format.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/save.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/table.min.js"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/url.min.js"></script>
        
        <!-- Upload -->
        <script src="lib/angular-file-upload/dist/angular-file-upload.js"></script>
        <!-- End Upload -->
        <!-- Browser Detection -->
        <script src="lib/bowser/src/bowser.js"></script>
    
        <!--SignalR-->
        <script src="lib/signalr/jquery.signalR.min.js"></script>
        <script src="lib/angular-signalr-hub/signalr-hub.min.js"></script>
        <script src="/MyCo.WebApi/signalr/hubs"></script>
        <!-- ui-sortable -->
        <script src="lib/angular-ui-sortable/sortable.min.js"></script>
        <!-- Angular Dynamic Locale -->
        <script src="lib/angular-dynamic-locale/tmhDynamicLocale.min.js"></script>
        <!--Angular Material-->
        <script src="lib/angular-material/angular-material.min.js"></script>
    
        <!--Angular VS-Repeat-->
        <script src="lib/angular-vs-repeat/src/angular-vs-repeat.js"></script>
    
        <!-- pdfmake -->
        <!--<script src="lib/pdfmake/build/pdfmake.min.js"></script>
        <script src="lib/pdfmake/build/vfs_fonts.js"></script>-->
        <!--File Saver-->
        <script src="lib/file-saver/FileSaver.min.js"></script>
    
        <!-- custom protocol detection -->
        <script src="lib/custom-protocol-detection/protocolcheck.js"></script>
        <script src="dist/js/launch_uri.js"></script>
        <!--Angular application scripts-->
        <script src="dist/js/angularapp.min.js?v=11.0.0.2542"></script>
    
        <script src="lib/angular-bootstrap-toggle-switch/angular-toggle-switch.min.js"></script>
        <!-- ngClipboard -->
        <script src="app/ngClipboard/directives/ngClipboard.js"></script>
        <!--<script src="../MyCo.webapi/viewer/deployjava.js"></script>-->
        <!--<script src="dist/js/autovue.js"></script>-->
        
    </body>
    </html>
    
    
    

    Thursday, July 12, 2018 5:54 PM
  • Still horribly broken.  Use RegEx.


    \_(ツ)_/

    Thursday, July 12, 2018 5:57 PM
    Moderator
  • Can you point out some problems with it so I can forward to Dev for correction?

    I'll explore Regex :(

    Thursday, July 12, 2018 6:00 PM
  • Can you point out some problems with it so I can forward to Dev for correction?

    I'll explore Regex :(


    Make the doctype "HTML strict" and run through a validator.  This will show all non-compliant use.


    \_(ツ)_/

    Thursday, July 12, 2018 6:03 PM
    Moderator
  • Here is a regex:

    Get-Content test.html | ?{$_ -match '\s<script src="(.*)"'}  | %{$matches[1]}


    \_(ツ)_/

    Thursday, July 12, 2018 6:04 PM
    Moderator
  • Ohhh, that looks nice!  It would have taken me forever to come up with that.

    Now, if I can just replace.  Something like...

    Get-Content $file | ?{$_ -replace '\s<script src="(.*)"', '\s<script src="(.*)?v=#.#.#.#"'}   | %{$matches[1]}

    Thursday, July 12, 2018 6:13 PM
  • OK, I'm hacking through and I might be getting close.  I see the version appended to the value in my output, but its not getting written to the file...

    AAny pointers, corrections would be more than appreciated.  Thanks for the help so far!!!

    Thursday, July 12, 2018 7:13 PM
  • your set-content is out of your loop; and not feeding the correct value into it.

    Edit: you may also want to script a check if it already has the addition in the line as if you run it on the same file twice it will append another "$addition"

    • Edited by The Grim Thursday, July 12, 2018 7:30 PM
    Thursday, July 12, 2018 7:28 PM
  • It really is not all that hard.  Here is the solution pattern.

    (Get-Content $file) | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $_ -replace $pattern, ($matches[1] + $addition)
            }else{
                $_
            }
        } |
        Out-File $file
    

    Replace when the pattern is true.  Use $matches[1] to replace the current pattern with the modified pattern.  One step and one line.  If the pattern is  not found then output the line unchanged.

    Two more lines can let you run the code against the same file repeatedly.

    I suggest running modified files to a new folder which will avoid any changes to the code.


    \_(ツ)_/



    Thursday, July 12, 2018 7:45 PM
    Moderator
  • Sorry.  I forgot one very important piece that is required to make this work:

    (Get-Content $file) | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $_ -replace $pattern, ($matches[1] + $addition)
            }else{
                $_
            }
        } |
        Out-File $file
    
    I also fixed the original post.


    \_(ツ)_/

    Thursday, July 12, 2018 7:54 PM
    Moderator
  • isn't (.*) verbatim for everything/anything/all?

    Edit: So; after initial run (.*) will = ($matches[1] + $addition) but wont be able to differentiate if the line already contains ?v=#.#.#.#

    • Edited by The Grim Thursday, July 12, 2018 8:04 PM
    Thursday, July 12, 2018 7:55 PM
  • Here is a complete working solution.

    $file = 'test.xml'
    $sourcePath = 'd:\scripts\'
    $destinationPath = 'd:\Test\'
    $addition = '?v=#.#.#.#'
    (Get-Content "$sourcePath$file") | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $line = $_ -replace $pattern, ($matches[1] + $addition)
                Write-Host $line -fore green
    $line }else{ $_ Write-Host $_ -fore Yellow } } | Out-File "$destinationPath$file"


    \_(ツ)_/


    Thursday, July 12, 2018 8:04 PM
    Moderator
  • isn't (.*) verbatim for everything/anything/all?

    The pattern takes everything between the two quotes denoted by '\ssrc=" and the next quote.  Since  a URL cannot have quotes this will work.  In just any string it could fail.  Her eit is not going to fail.  We can also assume the pattern will not exist more than once per line.  Using the "\s| skips all commented lines.

    If the files are very inconsistent then the pattern may have to be modified. HTML is very unpredictable when generated by hand or by badly designed tools.   Some html optimizers remove all line breaks and redundant spaces which can make the pattern grepping very unpredictable.


    \_(ツ)_/

    Thursday, July 12, 2018 8:09 PM
    Moderator
  • Here is a complete working solution.

    $file = 'test.xml'
    $sourcePath = 'd:\scripts\'
    $destinationPath = 'd:\Test\'
    $addition = '?v=#.#.#.#'
    (Get-Content "$sourcePath$file") | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $line = $_ -replace $pattern, ($matches[1] + $addition)
                Write-Host $line -fore green
            }else{
                $_
                Write-Host $_ -fore Yellow
            }
        } |
        Out-File "$destinationPath$file"


    \_(ツ)_/

    When I run this with a few alterations...

    The actual changes are not written to the output file...

    <!DOCTYPE html>
    <html ng-app="app" ng-controller="index as vm" class="ng-cloak">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
        <meta name="viewport" content="initial-scale=1, maximum-scale=1">
        <title>MyCo MyApp</title>
        <!-- Tell the browser to be responsive to screen width -->
        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
        <!-- Bootstrap 3.3.5 -->
        <link href="lib/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />
        <!-- Font Awesome -->
        <link href="lib/font-awesome/css/font-awesome.css" rel="stylesheet" />
        <!-- Ionicons -->
        <link href="dist/css/ionicons.min.css" rel="stylesheet" />
        <!--iCheck-->
        <link href="lib/iCheck/skins/square/blue.css" rel="stylesheet" />
        <!--Jquery Splitter-->
        <link href="lib/jquery.splitter/css/jquery.splitter.css" rel="stylesheet" />
        <!--Selectize-->
        <link href="lib/selectize/dist/css/selectize.default.css" rel="stylesheet" />
        <!--Angular loading bar-->
        <link href="lib/angular-loading-bar/src/loading-bar.css" rel="stylesheet" />
        <!--Angular Grid-->
        <link href="lib/ag-grid/dist/angular-grid.min.css" rel="stylesheet" />
        <!-- Theme style -->
        <link href="lib/perfect-scrollbar/min/perfect-scrollbar.min.css" rel="stylesheet" />
        <!-- Animations-->
        <link href="dist/css/animate.css" rel="stylesheet" />
        <!--Angular Material-->
        <link href="lib/angular-material/angular-material.min.css" rel="stylesheet" />
    
        <!-- Include Editor style. -->
        <link href="lib/froala_editor_2.3.3/css/froala_editor.min.css" rel="stylesheet" />
    
        <link href="lib/codemirror/lib/codemirror.css" rel="stylesheet" />
    
        <link href="lib/froala_editor_2.3.3/css/froala_style.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/char_counter.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/code_view.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/colors.min.css" rel="stylesheet" />
    
        <link href="lib/froala_editor_2.3.3/css/plugins/file.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/fullscreen.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/image.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/image_manager.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/line_breaker.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/quick_insert.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/table.min.css" rel="stylesheet" />
        <link href="lib/froala_editor_2.3.3/css/plugins/video.min.css" rel="stylesheet" />
        <link rel="apple-touch-icon" href="apple-touch-icon.png" />
        <!--Grid css-->
        <link href="dist/css/grid.min.css" rel="stylesheet" />
        <link href="lib/jstree/dist/themes/default/style.min.css?v=11.0.0.2542" rel="stylesheet" />
    
        <link rel="shortcut icon" href="favicon.ico?v=2">
        <link href='https://fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Work+Sans' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Anonymous+Pro' rel='stylesheet' type='text/css'>
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
              rel="stylesheet">
        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
        <![endif]-->
        <!--Custom css for the site-->
        <link href="dist/css/site.min.css" rel="stylesheet" />
    </head>
    <body style="overflow: hidden" class="hold-transition skin-blue-light sidebar-mini login-page" ng-class="{
          'sidebar-collapse': vm.sidebarservice.leftSideBarCollapse,
          'sidebar-open': vm.sidebarservice.leftSideBarOpen,
          }">
        <folder-browser></folder-browser>
        <div style="height: 100%" id="ui-view" class="main-view" ui-view>
        </div>
    
        <!--Third Party Libraries-->
        <!-- jQuery 2.1.4 -->
        <!-- jQuery UI -->
        <!-- jQuery UI touch-punch-->
        <!-- Bootstrap 3.3.5 -->
        <!--Selectize-->
        <!-- SlimScroll -->
        <!-- FastClick -->
        <!-- AdminLTE App -->
        
        <!-- AdminLTE for demo purposes -->
        <!--<script src="lib/angular/angular-locale_fr-ca.js"></script>-->
    
        <!--Froala-->
    
        <!--CodeMirror-->
    
        <!--Froala Plugins-->
        
        <!-- Upload -->
        <!-- End Upload -->
        <!-- Browser Detection -->
    
        <!--SignalR-->
        <!-- ui-sortable -->
        <!-- Angular Dynamic Locale -->
        <!--Angular Material-->
    
        <!--Angular VS-Repeat-->
    
        <!-- pdfmake -->
        <!--<script src="lib/pdfmake/build/pdfmake.min.js"></script>
        <!--File Saver-->
    
        <!-- custom protocol detection -->
        <!--Angular application scripts-->
    
        <!-- ngClipboard -->
        <!--<script src="../MyCo.webapi/viewer/deployjava.js"></script>-->
        <!--<script src="dist/js/autovue.js"></script>-->
        
    </body>
    </html>
    
    
    

    The console output looked good and I even added an elseif to check for href and that console output looked good as well, but the actual changes are blank or entire line missing in output file.

    I'm getting super close thanks SO much to your help!!!

    Thursday, July 12, 2018 8:28 PM
  • That is because you broke my example.  Please look at how it works.  You must set source path and destination path and only set $file to the base file name.

    Please refrain from posting pictures of code.


    \_(ツ)_/

    Thursday, July 12, 2018 8:33 PM
    Moderator
  • This may make the code easier to understand and change:

    $sourceFile = 'd:\scripts\test.html'
    $file = Get-Item $sourceFile
    $destinationFile = Join-Path 'd:\Test' $file.Name
    $addition = '?v=#.#.#.#'
    (Get-Content $sourceFile) | ForEach-Object{ if($_ -match '\s<script src="(.*)"'){ $pattern = [regex]::Escape($matches[1]) $line = $_ -replace $pattern, ($matches[1] + $addition) Write-Host $line -fore green
    $line }else{ $_ Write-Host $_ -fore Yellow } } | Out-File $destinationFile


    \_(ツ)_/




    Thursday, July 12, 2018 8:37 PM
    Moderator
  • Sorry about the pics.

    Here is the latest code, which is still not working.  The only thing I changed was the file name and paths used, which shouldn't matter...

    $file = 'index.html'
    $sourcePath = 'c:\users\my.user\desktop\'
    $destinationPath = 'c:\temp\'
    $addition = '?v=#.#.#.#'
    (Get-Content "$sourcePath$file") | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $line = $_ -replace $pattern, ($matches[1] + $addition)
                Write-Host $line -fore green
            }else{
                $_
                Write-Host $_ -fore Yellow
            }
        } |
        Out-File "$destinationPath$file"

    Thursday, July 12, 2018 8:38 PM
  • The only thing I really changed is the file and paths and the host output looks correct so it's getting the right information.  The write to the file is bad, even to the alternate destination location.

    When in production, I'll just overwrite the original file and not use a new copy.

    Thursday, July 12, 2018 8:40 PM
  • This will gobble up a whole folder full of files.

    $sourcePath = 'd:\scripts\*.html'
    $addition = '?v=#.#.#.#'
    
    Get-ChildItem $sourcePath -File |
        ForEach-Object{
            $destinationFile = Join-Path 'd:\Test' $_.Name
            (Get-Content $_) | 
                ForEach-Object{
                    if($_ -match '\s<script src="(.*)"'){
                        $pattern = [regex]::Escape($matches[1])
                        $line = $_ -replace $pattern, ($matches[1] + $addition)
    $line Write-Host $line -fore green }else{ $_ Write-Host $_ -fore Yellow } } | Out-File $destinationFile }



    \_(ツ)_/



    • Edited by jrvModerator Thursday, July 12, 2018 8:56 PM
    • Proposed as answer by The Grim Thursday, July 12, 2018 9:26 PM
    Thursday, July 12, 2018 8:41 PM
    Moderator
  • Here's the try with more recent code, just path and file alterations, which I don't see how it would break the guts of the code...

    $sourceFile = 'c:\users\my.user\desktop\index.html'
    $file = Get-Item $sourceFile
    $destinationFile = Join-Path 'c:\temp' $file.Name
    $addition = '?v=#.#.#.#'
    
    (Get-Content $sourceFile) | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $line = $_ -replace $pattern, ($matches[1] + $addition)
                Write-Host $line -fore green
            }else{
                $_
                Write-Host $_ -fore Yellow
            }
        } |
        Out-File $destinationFile

    Something is missing and I can't for the life of me see what is preventing the write of the line(s) to be changed.  After running, they are just no there in the destination file.

    Thursday, July 12, 2018 8:51 PM
  • Simple:  Just add $line to the first clause. See fixed examples above.


    \_(ツ)_/

    Thursday, July 12, 2018 8:56 PM
    Moderator
  •     <!--Angular VS-Repeat-->
        <script src="lib/angular-vs-repeat/src/angular-vs-repeat.js?v=#.#.#.#?v=#.#.#.#"></script>
    
        <!-- pdfmake -->
        <!--<script src="lib/pdfmake/build/pdfmake.min.js"></script>
        <script src="lib/pdfmake/build/vfs_fonts.js?v=#.#.#.#?v=#.#.#.#"></script>-->
        <!--File Saver-->
        <script src="lib/file-saver/FileSaver.min.js?v=#.#.#.#?v=#.#.#.#"></script>
    
        <!-- custom protocol detection -->
        <script src="lib/custom-protocol-detection/protocolcheck.js?v=#.#.#.#?v=#.#.#.#"></script>
        <script src="dist/js/launch_uri.js?v=#.#.#.#?v=#.#.#.#"></script>
        <!--Angular application scripts-->
        <script src="dist/js/angularapp.min.js?v=11.0.0.2542?v=#.#.#.#?v=#.#.#.#"></script>
    
        <script src="lib/angular-bootstrap-toggle-switch/angular-toggle-switch.min.js?v=#.#.#.#?v=#.#.#.#"></script>
        <!-- ngClipboard -->
        <script src="app/ngClipboard/directives/ngClipboard.js?v=#.#.#.#?v=#.#.#.#"></script>
        <!--<script src="../MyCo.webapi/viewer/deployjava.js"></script>-->
        <!--<script src="dist/js/autovue.js"></script>-->
        
    Woops ran it twice :P
    Thursday, July 12, 2018 9:11 PM
  • Is that the console output or file contents?

    Once I get things working, I have to add a check for ?v, I guess as an existing version is not to be tampered with?

    Thursday, July 12, 2018 9:15 PM
  • Beautiful!!!  Where do I send the check jrv?

    Thank you so much for the quick responses and code!!!

    Thursday, July 12, 2018 9:17 PM
  • Now I just have to figure out the pattern for the href's.  I tried elseif($_ -match 'href="(.*)"'), which I thought worked before, at least for the console output, but not now.

    The version is placed at the end of the rel attribute on those lines...

    Here's what I tried...

    $sourceFile = 'c:\users\my.user\desktop\index.html'
    $file = Get-Item $sourceFile
    $destinationFile = Join-Path 'c:\temp' $file.Name
    $addition = '?v=1.2.3.4'
    
    (Get-Content $sourceFile) | 
        ForEach-Object{
            if($_ -match '\s<script src="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $line = $_ -replace $pattern, ($matches[1] + $addition)
                Write-Host $line -fore green
                $line
            }elseif($_ -match 'href="(.*)"'){
                $pattern = [regex]::Escape($matches[1])
                $line = $_ -replace $pattern, ($matches[1] + $addition)
                Write-Host $line -fore red
                $line
            }else{
                $_
                Write-Host $_ -fore Yellow
            }
        } |
        Out-File $destinationFile

    I guess the link elements are a bit different as they have an additional attribute.

    It actually does work if the href is the second attribute on the line...

    <link rel="apple-touch-icon" href="apple-touch-icon.png?v=1.2.3.4" />


    • Edited by NitLions Thursday, July 12, 2018 9:29 PM additional info
    Thursday, July 12, 2018 9:27 PM
  • You can OR patterns in the match:

     if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)'''){


    \_(ツ)_/


    Thursday, July 12, 2018 9:58 PM
    Moderator
  • As you can see I'm still having trouble with one more case (I guess with line feed?)...

      <link rel="apple-touch-icon" href="apple-touch-icon.png?v=1.2.3.4" />
        <!--Grid css-->
    
        <link href='https://fonts.googleapis.com/css?family=Roboto+Mono?v=1.2.3.4' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Work+Sans?v=1.2.3.4' rel='stylesheet' type='text/css'>
        <link href='https://fonts.googleapis.com/css?family=Anonymous+Pro?v=1.2.3.4' rel='stylesheet' type='text/css'>
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
              rel="stylesheet">

    I guess the OR is a better approach with what I currently have to battle through this with repetitive code...

    $sourceFile = 'c:\users\matt.walker\desktop\index.html'
    $file = Get-Item $sourceFile
    $destinationFile = Join-Path 'c:\temp' $file.Name
    $addition = '?v=1.2.3.4'
    
    (Get-Content $sourceFile) | 
        ForEach-Object{
            if($_ -notlike "*?v=*"){  # Leave existing version alone.
                if($_ -match '\s<script src="(.*)"'){
                    $pattern = [regex]::Escape($matches[1])
                    $line = $_ -replace $pattern, ($matches[1] + $addition)
                    Write-Host $line -fore green
                    $line
                }elseif($_ -match 'href="(.*)" rel="'){
                    $pattern = [regex]::Escape($matches[1])
                    $line = $_ -replace $pattern, ($matches[1] + $addition)
                    Write-Host $line -fore Gray
                    $line
                }elseif($_ -match '" href="(.*)"'){ #for href as second attribute
                    $pattern = [regex]::Escape($matches[1])
                    $line = $_ -replace $pattern, ($matches[1] + $addition)
                    Write-Host $line -fore red
                    $line
                }elseif($_ -match 'href=''https(.*)'' rel='){ # href with surrounding 's
                    $pattern = [regex]::Escape($matches[1])
                    $line = $_ -replace $pattern, ($matches[1] + $addition)
                    Write-Host $line -fore White
                    $line
                            
                }else{
                    $_
                    Write-Host $_ -fore Yellow
                }
    
            }
            
        } |
        Out-File $destinationFile
    I guess I can just OR all of these clauses.  Not sure about the remaining problematic one though.

    Thursday, July 12, 2018 10:04 PM
  • You only need to change one line:

     if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)'''){

    Notice we use two ve5rsions to match either a single quote or a double quote.


    \_(ツ)_/


    Thursday, July 12, 2018 10:05 PM
    Moderator
  • To exclude a pattern use  "-and $_ -nomatch (somepattern)"

    \_(ツ)_/

    Thursday, July 12, 2018 10:08 PM
    Moderator
  • You only need to change one line:

     if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)'''){

    Notice we use two ve5rsions to match either a single quote or a double quote.


    \_(ツ)_/



    Yes, but there are some where href is the second attribute and they won't be found or hit with those patterns.  I think I can use what I have in that case for the OR clause.
    Thursday, July 12, 2018 10:10 PM
  • To exclude a pattern use  "-and $_ -nomatch (somepattern)"

    \_(ツ)_/

    Do you mean to use this instead of the surrounding if which checks for "?v="?
    Thursday, July 12, 2018 10:11 PM
  • To exclude a pattern use  "-and $_ -nomatch (somepattern)"


    \_(ツ)_/

    Do you mean to use this instead of the surrounding if which checks for "?v="?

    Simple:

    Just add it to the if as a new clause..

    if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)''' -and $_ -notmatch <pattern>){


    \_(ツ)_/

    Thursday, July 12, 2018 10:12 PM
    Moderator
  • You only need to change one line:

     if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)'''){

    Notice we use two ve5rsions to match either a single quote or a double quote.


    \_(ツ)_/



    Yes, but there are some where href is the second attribute and they won't be found or hit with those patterns.  I think I can use what I have in that case for the OR clause.

    You can skip forwards in a pattern:

    \s<link.*href="(.*)"

    That skips all characters before the href.


    \_(ツ)_/

    Thursday, July 12, 2018 10:13 PM
    Moderator
  • I hoped I was in the home stretch.  Switching to your OR syntax...

    $sourceFile = 'c:\users\matt.walker\desktop\index.html'
    $file = Get-Item $sourceFile
    $destinationFile = Join-Path 'c:\temp' $file.Name
    $addition = '?v=1.2.3.4'
    
    (Get-Content $sourceFile) | 
        ForEach-Object{
            
            if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)'''){
                    $pattern = [regex]::Escape($matches[1])
                    $line = $_ -replace $pattern, ($matches[1] + $addition)
                    Write-Host $line -fore green
                    $line
             }else{
                    $_
                    Write-Host $_ -fore Yellow
             }
    
            
            
        } |
        Out-File $destinationFile

    I get...

    <!DOCTYPE html>
    <html ng-app="app" ng-controller="index as vm" class="ng-cloak">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
        <meta name="viewport" content="initial-scale=1, maximum-scale=1">
        <title>MyCo MyApp</title>
        <!-- Tell the browser to be responsive to screen width -->
        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
        <!-- Bootstrap 3.3.5 -->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4b?v=1.2.3.4o?v=1.2.3.4o?v=1.2.3.4t?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4r?v=1.2.3.4a?v=1.2.3.4p?v=1.2.3.4/?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4b?v=1.2.3.4o?v=1.2.3.4o?v=1.2.3.4t?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4r?v=1.2.3.4a?v=1.2.3.4p?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!-- Font Awesome -->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4-?v=1.2.3.4a?v=1.2.3.4w?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4o?v=1.2.3.4m?v=1.2.3.4e?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4-?v=1.2.3.4a?v=1.2.3.4w?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4o?v=1.2.3.4m?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!-- Ionicons -->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4i?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4i?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!--iCheck-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4i?v=1.2.3.4C?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4c?v=1.2.3.4k?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4k?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4q?v=1.2.3.4u?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4/?v=1.2.3.4b?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!--Jquery Splitter-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4j?v=1.2.3.4q?v=1.2.3.4u?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4y?v=1.2.3.4.?v=1.2.3.4s?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4j?v=1.2.3.4q?v=1.2.3.4u?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4y?v=1.2.3.4.?v=1.2.3.4s?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!--Selectize-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4c?v=1.2.3.4t?v=1.2.3.4i?v=1.2.3.4z?v=1.2.3.4e?v=1.2.3.4/?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4c?v=1.2.3.4t?v=1.2.3.4i?v=1.2.3.4z?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4d?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4a?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4t?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!--Angular loading bar-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4g?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4-?v=1.2.3.4l?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4g?v=1.2.3.4-?v=1.2.3.4b?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4r?v=1.2.3.4c?v=1.2.3.4/?v=1.2.3.4l?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4g?v=1.2.3.4-?v=1.2.3.4b?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!--Angular Grid-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4a?v=1.2.3.4g?v=1.2.3.4-?v=1.2.3.4g?v=1.2.3.4r?v=1.2.3.4i?v=1.2.3.4d?v=1.2.3.4/?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4g?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4-?v=1.2.3.4g?v=1.2.3.4r?v=1.2.3.4i?v=1.2.3.4d?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!-- Theme style -->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4f?v=1.2.3.4e?v=1.2.3.4c?v=1.2.3.4t?v=1.2.3.4-?v=1.2.3.4s?v=1.2.3.4c?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4l?v=1.2.3.4l?v=1.2.3.4b?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4/?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4f?v=1.2.3.4e?v=1.2.3.4c?v=1.2.3.4t?v=1.2.3.4-?v=1.2.3.4s?v=1.2.3.4c?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4l?v=1.2.3.4l?v=1.2.3.4b?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!-- Animations-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4i?v=1.2.3.4m?v=1.2.3.4a?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <!--Angular Material-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4g?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4-?v=1.2.3.4m?v=1.2.3.4a?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4i?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4/?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4g?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4-?v=1.2.3.4m?v=1.2.3.4a?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4i?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    
        <!-- Include Editor style. -->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4d?v=1.2.3.4e?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4r?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4/?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4d?v=1.2.3.4e?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4r?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4h?v=1.2.3.4a?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4u?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4d?v=1.2.3.4e?v=1.2.3.4_?v=1.2.3.4v?v=1.2.3.4i?v=1.2.3.4e?v=1.2.3.4w?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4l?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4i?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4l?v=1.2.3.4s?v=1.2.3.4c?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4i?v=1.2.3.4m?v=1.2.3.4a?v=1.2.3.4g?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4i?v=1.2.3.4m?v=1.2.3.4a?v=1.2.3.4g?v=1.2.3.4e?v=1.2.3.4_?v=1.2.3.4m?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4a?v=1.2.3.4g?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4e?v=1.2.3.4_?v=1.2.3.4b?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4a?v=1.2.3.4k?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4q?v=1.2.3.4u?v=1.2.3.4i?v=1.2.3.4c?v=1.2.3.4k?v=1.2.3.4_?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4t?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4t?v=1.2.3.4a?v=1.2.3.4b?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4a?v=1.2.3.4_?v=1.2.3.4e?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4_?v=1.2.3.42?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4.?v=1.2.3.43?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4p?v=1.2.3.4l?v=1.2.3.4u?v=1.2.3.4g?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4v?v=1.2.3.4i?v=1.2.3.4d?v=1.2.3.4e?v=1.2.3.4o?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
        <link rel="apple-touch-icon" href="apple-touch-icon.png" />
        <!--Grid css-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4g?v=1.2.3.4r?v=1.2.3.4i?v=1.2.3.4d?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4b?v=1.2.3.4/?v=1.2.3.4j?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4/?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4t?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4m?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4d?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4a?v=1.2.3.4u?v=1.2.3.4l?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4??v=1.2.3.4v?v=1.2.3.4=?v=1.2.3.41?v=1.2.3.41?v=1.2.3.4.?v=1.2.3.40?v=1.2.3.4.?v=1.2.3.40?v=1.2.3.4.?v=1.2.3.42?v=1.2.3.45?v=1.2.3.44?v=1.2.3.42?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    
        <link rel="shortcut icon" href="favicon.ico?v=2">
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4h?v=1.2.3.4t?v=1.2.3.4t?v=1.2.3.4p?v=1.2.3.4s?v=1.2.3.4:?v=1.2.3.4/?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4g?v=1.2.3.4o?v=1.2.3.4o?v=1.2.3.4g?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4a?v=1.2.3.4p?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4m?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4??v=1.2.3.4f?v=1.2.3.4a?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4l?v=1.2.3.4y?v=1.2.3.4=?v=1.2.3.4R?v=1.2.3.4o?v=1.2.3.4b?v=1.2.3.4o?v=1.2.3.4t?v=1.2.3.4o?v=1.2.3.4+?v=1.2.3.4M?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4o?v=1.2.3.4'?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4'?v=1.2.3.4 ?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4p?v=1.2.3.4e?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4x?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4'?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4h?v=1.2.3.4t?v=1.2.3.4t?v=1.2.3.4p?v=1.2.3.4s?v=1.2.3.4:?v=1.2.3.4/?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4g?v=1.2.3.4o?v=1.2.3.4o?v=1.2.3.4g?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4a?v=1.2.3.4p?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4m?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4??v=1.2.3.4f?v=1.2.3.4a?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4l?v=1.2.3.4y?v=1.2.3.4=?v=1.2.3.4W?v=1.2.3.4o?v=1.2.3.4r?v=1.2.3.4k?v=1.2.3.4+?v=1.2.3.4S?v=1.2.3.4a?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4'?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4'?v=1.2.3.4 ?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4p?v=1.2.3.4e?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4x?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4'?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4h?v=1.2.3.4t?v=1.2.3.4t?v=1.2.3.4p?v=1.2.3.4s?v=1.2.3.4:?v=1.2.3.4/?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4g?v=1.2.3.4o?v=1.2.3.4o?v=1.2.3.4g?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4a?v=1.2.3.4p?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4m?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4??v=1.2.3.4f?v=1.2.3.4a?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4l?v=1.2.3.4y?v=1.2.3.4=?v=1.2.3.4A?v=1.2.3.4n?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4y?v=1.2.3.4m?v=1.2.3.4o?v=1.2.3.4u?v=1.2.3.4s?v=1.2.3.4+?v=1.2.3.4P?v=1.2.3.4r?v=1.2.3.4o?v=1.2.3.4'?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4'?v=1.2.3.4 ?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4p?v=1.2.3.4e?v=1.2.3.4=?v=1.2.3.4'?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4x?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4'?v=1.2.3.4>?v=1.2.3.4
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4h?v=1.2.3.4t?v=1.2.3.4t?v=1.2.3.4p?v=1.2.3.4s?v=1.2.3.4:?v=1.2.3.4/?v=1.2.3.4/?v=1.2.3.4f?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4t?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4g?v=1.2.3.4o?v=1.2.3.4o?v=1.2.3.4g?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4a?v=1.2.3.4p?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4m?v=1.2.3.4/?v=1.2.3.4i?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4??v=1.2.3.4f?v=1.2.3.4a?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4l?v=1.2.3.4y?v=1.2.3.4=?v=1.2.3.4M?v=1.2.3.4a?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4r?v=1.2.3.4i?v=1.2.3.4a?v=1.2.3.4l?v=1.2.3.4+?v=1.2.3.4I?v=1.2.3.4c?v=1.2.3.4o?v=1.2.3.4n?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4
              rel="stylesheet">
        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js?v=1.2.3.4"></script>
            <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js?v=1.2.3.4"></script>
        <![endif]-->
        <!--Custom css for the site-->
    ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4 ?v=1.2.3.4<?v=1.2.3.4l?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4k?v=1.2.3.4 ?v=1.2.3.4h?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4f?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4d?v=1.2.3.4i?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4/?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4/?v=1.2.3.4s?v=1.2.3.4i?v=1.2.3.4t?v=1.2.3.4e?v=1.2.3.4.?v=1.2.3.4m?v=1.2.3.4i?v=1.2.3.4n?v=1.2.3.4.?v=1.2.3.4c?v=1.2.3.4s?v=1.2.3.4s?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4r?v=1.2.3.4e?v=1.2.3.4l?v=1.2.3.4=?v=1.2.3.4"?v=1.2.3.4s?v=1.2.3.4t?v=1.2.3.4y?v=1.2.3.4l?v=1.2.3.4e?v=1.2.3.4s?v=1.2.3.4h?v=1.2.3.4e?v=1.2.3.4e?v=1.2.3.4t?v=1.2.3.4"?v=1.2.3.4 ?v=1.2.3.4/?v=1.2.3.4>?v=1.2.3.4
    </head>
    <body style=" class="hold-transition skin-blue-light sidebar-mini login-page" ng-class="{
          'sidebar-collapse': vm.sidebarservice.leftSideBarCollapse,
          'sidebar-open': vm.sidebarservice.leftSideBarOpen,
          }">
        <folder-browser></folder-browser>
        <div style="height: 100%" id="ui-view" class="main-view" ui-view>
        </div>
    
        <!--Third Party Libraries-->
        <!-- jQuery 2.1.4 -->
        <script src="lib/jquery/dist/jquery.min.js?v=1.2.3.4"></script>
        <!-- jQuery UI -->
        <script src="lib/jquery-ui/jquery-ui.min.js?v=1.2.3.4"></script>
        <!-- jQuery UI touch-punch-->
        <script src="lib/jquery-ui-touch-punch-improved/jquery.ui.touch-punch-improved.js?v=1.2.3.4"></script>
        <!-- Bootstrap 3.3.5 -->
        <script src="lib/bootstrap/dist/js/bootstrap.min.js?v=1.2.3.4"></script>
        <!--Selectize-->
        <script src="lib/selectize/dist/js/standalone/selectize.min.js?v=1.2.3.4"></script>
        <!-- SlimScroll -->
        <script src="lib/slimScroll/jquery.slimscroll.min.js?v=1.2.3.4"></script>
        <!-- FastClick -->
        <script src="lib/fastclick/lib/fastclick.js?v=1.2.3.4"></script>
        <!-- AdminLTE App -->
        <script src="dist/js/app.js?v=1.2.3.4"></script>
        
        <!-- AdminLTE for demo purposes -->
        <script src="dist/js/demo.js?v=1.2.3.4"></script>
        <script src="lib/angular/angular.js?v=1.2.3.4"></script>
        <script src="lib/jstree/dist/jstree.js?v=1.2.3.4"></script>
        <!--<script src="lib/angular/angular-locale_fr-ca.js"></script>-->
    
        <script src="lib/angular-ui-router/release/angular-ui-router.js?v=1.2.3.4"></script>
        <script src="lib/ui-router-extras/release/ct-ui-router-extras.min.js?v=1.2.3.4"></script>
        <script src="lib/ag-grid/dist/angular-grid.js?v=1.2.3.4"></script>
        <script src="lib/ngstorage/ngStorage.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-loading-bar/src/loading-bar.js?v=1.2.3.4"></script>
        <script src="lib/angular-animate/angular-animate.js?v=1.2.3.4"></script>
        <script src="lib/angular-aria/angular-aria.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-bootstrap/ui-bootstrap-tpls.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-sanitize/angular-sanitize.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-ui-grid/ui-grid.js?v=1.2.3.4"></script>
        <script src="lib/perfect-scrollbar/min/perfect-scrollbar.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-perfect-scrollbar/src/angular-perfect-scrollbar.js?v=1.2.3.4"></script>
        <script src="lib/angular-base64/angular-base64.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-cookies/angular-cookies.min.js?v=1.2.3.4"></script>
        <!--Froala-->
        <script src="lib/froala_editor_2.3.3/js/froala_editor.min.js?v=1.2.3.4"></script>
    
        <!--CodeMirror-->
        <script src="lib/codemirror/lib/codemirror.js?v=1.2.3.4"></script>
    
        <!--Froala Plugins-->
        <script src="lib/froala_editor_2.3.3/js/plugins/align.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/char_counter.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/code_beautifier.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/code_view.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/colors.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/entities.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/file.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/font_family.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/font_size.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/fullscreen.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/image.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/image_manager.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/inline_style.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/line_breaker.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/lists.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/paragraph_format.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/save.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/table.min.js?v=1.2.3.4"></script>
        <script src="lib/froala_editor_2.3.3/js/plugins/url.min.js?v=1.2.3.4"></script>
        
        <!-- Upload -->
        <script src="lib/angular-file-upload/dist/angular-file-upload.js?v=1.2.3.4"></script>
        <!-- End Upload -->
        <!-- Browser Detection -->
        <script src="lib/bowser/src/bowser.js?v=1.2.3.4"></script>
    
        <!--SignalR-->
        <script src="lib/signalr/jquery.signalR.min.js?v=1.2.3.4"></script>
        <script src="lib/angular-signalr-hub/signalr-hub.min.js?v=1.2.3.4"></script>
        <script src="/MyCo.WebApi/signalr/hubs?v=1.2.3.4"></script>
        <!-- ui-sortable -->
        <script src="lib/angular-ui-sortable/sortable.min.js?v=1.2.3.4"></script>
        <!-- Angular Dynamic Locale -->
        <script src="lib/angular-dynamic-locale/tmhDynamicLocale.min.js?v=1.2.3.4"></script>
        <!--Angular Material-->
        <script src="lib/angular-material/angular-material.min.js?v=1.2.3.4"></script>
    
        <!--Angular VS-Repeat-->
        <script src="lib/angular-vs-repeat/src/angular-vs-repeat.js?v=1.2.3.4"></script>
    
        <!-- pdfmake -->
        <!--<script src="lib/pdfmake/build/pdfmake.min.js"></script>
        <script src="lib/pdfmake/build/vfs_fonts.js?v=1.2.3.4"></script>-->
        <!--File Saver-->
        <script src="lib/file-saver/FileSaver.min.js?v=1.2.3.4"></script>
    
        <!-- custom protocol detection -->
        <script src="lib/custom-protocol-detection/protocolcheck.js?v=1.2.3.4"></script>
        <script src="dist/js/launch_uri.js?v=1.2.3.4"></script>
        <!--Angular application scripts-->
        <script src="dist/js/angularapp.min.js?v=11.0.0.2542?v=1.2.3.4"></script>
    
        <script src="lib/angular-bootstrap-toggle-switch/angular-toggle-switch.min.js?v=1.2.3.4"></script>
        <!-- ngClipboard -->
        <script src="app/ngClipboard/directives/ngClipboard.js?v=1.2.3.4"></script>
        <!--<script src="../MyCo.webapi/viewer/deployjava.js"></script>-->
        <!--<script src="dist/js/autovue.js"></script>-->
        
    </body>
    </html>
    
    

    The script elements look good, but href = bad.

    That's the first problem.  The second in trying to exclude anything that that may already have a version...

    if($_ -match '\s<script src="(.*)"|\s<link href="(.*)"|\s<link href=''(.*)''' -and $_ -notmatch "?v="){

    I get errors...


    • Edited by NitLions Thursday, July 12, 2018 10:36 PM change pic
    Thursday, July 12, 2018 10:33 PM
  • Two things.  First learn PowerShell then learn Regex. You are using meta characters as characters.  This will cause match failures.

    and $_ -notmatch '\?v='){

    ? is a meta character.  It must be escaped or it will continuously return the wrong match.


    \_(ツ)_/

    Thursday, July 12, 2018 10:43 PM
    Moderator
  • I hope to find the time soon to learn both, but until then, I'm struggling and truly appreciate your help.

    Using '\?v=' seems to have gotten me past those errors.

    The href element stuff still looks a mess so I may have to go back to my elseif, clunky code to get me as close as I'm gonna get I guess... with one remaining problematic line, which appears to contain a line break.

    Thanks again for all the help!

    Thursday, July 12, 2018 11:05 PM
  • It's a bug in regex.  Periodically the code glitches and returns a bunch.  It only happens when oring.


    \_(ツ)_/

    Thursday, July 12, 2018 11:17 PM
    Moderator
  • That sounds like I should go back to the elseif's.

    Thanks again for all the help!!

    Thursday, July 12, 2018 11:17 PM
  • Found it.  It's combination or a bug and an unfortunate recursive match.  After I get some time to test it I will post.


    \_(ツ)_/

    Thursday, July 12, 2018 11:24 PM
    Moderator
  • Found it.  It's combination or a bug and an unfortunate recursive match.  After I get some time to test it I will post.


    \_(ツ)_/

    Cool!  Thanks!!

    I'll see if I can get close with what I have then clean it up if you find a fix for the ORs.

    Thursday, July 12, 2018 11:25 PM
  • This seems to avoid the bug. I am sure I can get it with the OR but that is for later.

    $sourcePath = 'd:\scripts\test.html'
    $addition = '?v=#.#.#.#'
    
    Get-ChildItem $sourcePath -File |
        ForEach-Object{
            $destinationFile = Join-Path 'd:\Test' $_.Name
            Get-Content $_ | 
                ForEach-Object{
                    switch -regex ($_){
                        '\?v\d+\.\d+\.=' { 
                            $_ 
                        }
                        '\s<script src="(.*?)"' {
                            $pattern = [regex]::Escape($matches[1])
                            $_ -replace $pattern, ($matches[1] + '?v=#.#.#.#')
                        }
                       '\s<link href="(.*?)"' {
                            $pattern = [regex]::Escape($matches[1])
                            $_ -replace $pattern, ($matches[1] + '?v=#.#.#.#')
                        }
                        default {$_}
                    }
                } |
                Out-File $destinationFile
            }
    


    \_(ツ)_/

    Thursday, July 12, 2018 11:42 PM
    Moderator