PageSourceSearch

https://cistrome.org/ap/root

html cistrome.org collected 2026-10-03 20:30:34 UTC 27,421 bytes, 607 lines download raw bytes

1<!DOCTYPE HTML>
2
3
4    
5
6
7
8
9
10
11
12
13
14
15
16
17<html>
18    <!--base_panels.mako-->
19    
20
21    
21<script type="text/javascript">
22        if ( window != top ) {
23            top.location.href = location.href;
24        }
25    </script>
25
26    
27    <head>
28            <title>Galaxy / Cistrome / Cistrome</title>
29        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
30        <meta name = "viewport" content = "maximum-scale=1.0">
31        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
32        
33    
34    <link href="/ap/static/style/base.css?v=1780073495" media="screen" rel="stylesheet" type="text/css" />
35<link href="/ap/static/style/jquery.rating.css?v=1780073495" media="screen" rel="stylesheet" type="text/css" />
36    <style type="text/css">
37    #center {
38    }
39    </style>
40
41    <link href="/ap/static/style/tool_menu.css?v=1780073495" media="screen" rel="stylesheet" type="text/css" />
42    <style>
43        #right .unified-panel-body {
44            background: none repeat scroll 0 0 #DFE5F9;
45            overflow: auto;
46            padding: 0;
47        }
48    </style>
49
50        
51    
52
53
54
55    
55<script src="/ap/static/scripts/libs/jquery/jquery.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 55
55
56<script src="/ap/static/scripts/libs/jquery/jquery.migrate.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 56
56
57<script src="/ap/static/scripts/libs/jquery/select2.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 57
57
58<script src="/ap/static/scripts/libs/bootstrap.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 58
58
59<script src="/ap/static/scripts/libs/underscore.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 59
59
60<script src="/ap/static/scripts/libs/backbone/backbone.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 60
60
61<script src="/ap/static/scripts/libs/handlebars.runtime.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 61
61
62<script src="/ap/static/scripts/galaxy.base.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 62
62
63<script src="/ap/static/scripts/libs/require.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 63
63
64<script src="/ap/static/scripts/mvc/ui.js?v=1780073495" type="text/javascript"></script>
64
65
66    
66<script type="text/javascript">
67        var galaxy_config =
68        {
69            root: '/ap/'
70        };
71
72        if (window != window.top)
73            $('<link href="' + galaxy_config.root + 'static/style/galaxy.frame.masthead.css" rel="stylesheet">').appendTo('head');
74
75        // start a Galaxy namespace for objects created
76        window.Galaxy = window.Galaxy || {};
77
78        // console protection
79        window.console = window.console || {
80            log     : function(){},
81            debug   : function(){},
82            info    : function(){},
83            warn    : function(){},
84            error   : function(){},
85            assert  : function(){}
86        };
87
88        require.config({
89            baseUrl: "/ap/static/scripts",
90            shim: {
91                "libs/underscore": { exports: "_" },
92                "libs/backbone/backbone": { exports: "Backbone" }
93            }
94        });
95    </script>
95
96
97
98    
99    
99<script src="/ap/static/scripts/templates/compiled/tool_link.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 99
99
100<script src="/ap/static/scripts/templates/compiled/panel_section.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 100
100
101<script src="/ap/static/scripts/templates/compiled/tool_search.js?v=1780073495" type="text/javascript"></script>
101
102    
102<script src="/ap/static/scripts/libs/require.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 102
102
103<script src="/ap/static/scripts/galaxy.autocom_tagging.js?v=1780073495" type="text/javascript"></script>
103
104    
105    
105<script type="text/javascript">
106
107        require.config({ 
108                baseUrl: "/ap/static/scripts",
109                shim: {
110                    "libs/underscore": { exports: "_" }
111                }
112        });
113
114        require(["mvc/tools"], function(tools_mod) {
115
116            // Init. on document load.
117            $(function() {
118            });
119
120        });
121    </script>
121
122
123
124    </head>
125    
126    
127
128    <body scroll="no" class="full-content ">
129            <noscript>
130                <div class="overlay overlay-background">
131                    <div class="modal dialog-box" border="0">
132                        <div class="modal-header"><h3 class="title">Javascript Required</h3></div>
133                        <div class="modal-body">The Galaxy analysis interface requires a browser with Javascript enabled. <br> Please enable Javascript and refresh this page</div>
134                    </div>
135                </div>
136            </noscript>
137        <div id="everything" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;">
138            <div id="background"></div>
139            <div id="masthead" class="navbar navbar-fixed-top navbar-inverse">
140                
141    
142    
143
144
145    
145<script src="/ap/static/scripts/utils/localization.js?v=1780073495" type="text/javascript"></script>
145
146
147    
147<script type="text/javascript">
148        if( !window.Galaxy ){
149            Galaxy = {};
150        }
151
152        if (window != window.top){
153            $('<link href="' + galaxy_config.root + 'static/style/galaxy.frame.masthead.css" rel="stylesheet">')
154                .appendTo('head');
155        }
156
157        require([
158            'galaxy.masthead', 'galaxy.menu', 'mvc/ui/ui-modal', 'galaxy.frame', 'mvc/upload/upload-view',
159            'mvc/user/user-model',
160            'mvc/user/user-quotameter'
161        ], function( mod_masthead, mod_menu, mod_modal, mod_frame, GalaxyUpload, user, quotameter ){
162            $(function() {
163                if (Galaxy.masthead)
164                    return;
165
166                var masthead_config = {"ftp_upload_site": "cistrome.dfci.harvard.edu", "mailing_lists": "http://wiki.galaxyproject.org/MailingLists", "nginx_upload_path": "/ap/api/tools", "terms_url": "", "wiki_url": "http://bitbucket.org/cistrome/cistrome-harvard/wiki", "support_url": "http://wiki.galaxyproject.org/Support", "remote_user_logout_href": null, "biostar_url_redirect": "http://cistrome.org/ap/biostar/biostar_redirect", "ftp_upload_dir": "/project/Cistrome/CistromeAP/ap_lib/ftp", "logo_url": "http://cistrome.org/ap/", "search_url": "http://galaxyproject.org/search/usegalaxy/", "screencasts_url": "http://vimeo.com/galaxyproject", "brand": "Cistrome", "lims_doc_url": "http://main.g2.bx.psu.edu/u/rkchak/p/sts", "active_view": "analysis", "citation_url": "https://bitbucket.org/cistrome/cistrome-harvard/wiki/Citations", "allow_user_creation": true, "is_admin_user": null, "biostar_url": null, "datatypes_disable_auto": false, "use_remote_user": false, "enable_cloud_launch": false, "user": {"requests": false, "valid": false, "email": "", "json": {"quota_percent": null, "nice_total_disk_usage": "0 bytes", "total_disk_usage": 0}}};
167
168                Galaxy.masthead = new mod_masthead.GalaxyMasthead(masthead_config);
169                Galaxy.modal = new mod_modal.View();
170                Galaxy.frame = new mod_frame.GalaxyFrame();
171
172                Galaxy.menu = new mod_menu.GalaxyMenu({
173                    masthead: Galaxy.masthead,
174                    config: masthead_config
175                });
176                
177                Galaxy.upload = new GalaxyUpload(masthead_config);
178
179                if( !Galaxy.currUser ){
180                    Galaxy.currUser = new user.User(
181{
182  "quota_percent": null, 
183  "nice_total_disk_usage": "0 bytes", 
184  "total_disk_usage": 0
185});
186                }
187                Galaxy.quotaMeter = new quotameter.UserQuotaMeter({
188                    model   : Galaxy.currUser,
189                    el      : Galaxy.masthead.$('.quota-meter-container')
190                }).render();
191            });
192        });
193    </script>
193
194
195
196            </div>
197            <div id="messagebox" class="panel-info-message">
198                None
199            </div>
200            
201    
202    
203
204    
205
206    <div id="top-modal" class="modal fade " style='display: none;'>
207        <div id="top-modal-backdrop" class="modal-backdrop fade " style="z-index: -1"></div>
208        <div id="top-modal-dialog" class="modal-dialog">
209            <div class="modal-content">
210                <div class="modal-header">
211                    <button type='button' class='close' style="display: none;">&times;</button>
212                    <h4 class='title'></h4>
213                </div>
214                <div class="modal-body"></div>
215                <div class="modal-footer">
216                    <div class="buttons" style="float: right;"></div>
217                    <div class="extra_buttons" style=""></div>
218                    <div style="clear: both;"></div>
219                </div>
220            </div>
221        </div>
222    </div>
223
224                <div id="left">
225                    
226    <div class="unified-panel-header" unselectable="on">
227        <div class='unified-panel-header-inner'>
228            Tools
229        </div>
230    </div>
231    <div class="unified-panel-body" style="overflow: auto">
232        
233    <div class="toolMenuContainer">
234        
235        <div class="toolMenu" style="display: none">
236            <div id="search-no-results" style="display: none; padding-top: 5px">
237                <em><strong>Search did not match any tools.</strong></em>
238            </div>
239            
240            
241            
242        </div>
243    </div>
244
245    </div>
246
247                    <div class="unified-panel-footer">
248                        <div class="panel-collapse"></div>
249                        <div class="drag"></div>
250                    </div>
251                </div><!--end left-->
252            <div id="center" class="inbound">
253                
254
255    
256    
257    <div style="position: absolute; width: 100%; height: 100%">
258        <iframe name="galaxy_main" id="galaxy_main" frameborder="0"
259                style="position: absolute; width: 100%; height: 100%;" src="/ap/user/login"></iframe>
260    </div>
261
262
263            </div><!--end center-->
264                <div id="right">
265                    
266    <div class="unified-panel-header" unselectable="on">
267        <div class="unified-panel-header-inner">
268            <div style="float: right">
269                <a id="history-refresh-button" class='panel-header-button' href="javascript:void(0)" title="Refresh history">
270                    <span class="fa fa-refresh"></span>
271                </a>
272                <a id="history-options-button" class='panel-header-button'
273                   href="/ap/root/history_options" target="galaxy_main" title="History options">
274                    <span class="fa fa-cog"></span>
275                </a>
276            </div>
277            <div class="panel-header-text">History</div>
278        </div>
279    </div>
280    <div class="unified-panel-body">
281        <div id="current-history-panel" class="history-panel"></div>
282        
283
284
285<script src="/ap/static/scripts/utils/localization.js?v=1780073495" type="text/javascript"></script>
285
286
287
288<script type="text/javascript">
289    GalaxyLocalization.setLocalizedString(
290        {"View data": "View data", "Edit attributes": "Edit attributes", "hide deleted": "hide deleted", "Info: ": "Info: ", "Your history is empty. Click 'Get Data' on the left pane to start": "Your history is empty. Click 'Get Data' on the left pane to start", "You are currently viewing a deleted history!": "You are currently viewing a deleted history!", "No data: ": "No data: ", "refresh": "refresh", "database: ": "database: ", "collapse all": "collapse all", "Job is currently running": "Job is currently running", "Display Data": "Display Data", "Job is waiting to run": "Job is waiting to run", "hide hidden": "hide hidden", "Download": "Download", "Error: unknown dataset state": "Error: unknown dataset state", "Metadata is being Auto-Detected.": "Metadata is being Auto-Detected.", "View Details": "View Details", "format: ": "format: ", "Delete": "Delete"}
291    );
292</script>
292
293
294
295<script type="text/javascript">
296var //debugging = JSON.parse( sessionStorage.getItem( 'debugging' ) ) || false,
297    // use deferred to allow multiple callbacks (.done())
298    onhistoryready = jQuery.Deferred();
299
300require.config({
301    baseUrl : "/ap/static/scripts"
302});
303
304// requirejs optimizer:
305   //r.js -o baseUrl='/Users/carleberhard/galaxy/iframe-2-hpanel/static/scripts'    //        name=./mvc/history/history-panel.js out=history-panel.min.js
306//TODO: can't get either to work - historyPanel is undefined
307//require([ "history-panel.min" ], function( historyPanel ){
308//require([ "/static/scripts/history-panel.min.js" ], function( historyPanel ){
309
310require([ "mvc/history/history-panel" ], function( historyPanel ){
311    $(function(){
312        onhistoryready.resolve( historyPanel )
313    });
314});
315</script>
315
316
317
318<script type="text/javascript">
319require([ "mvc/history/current-history-panel" ], function( historyPanel ){
320    $(function(){
321        var currPanel = new historyPanel.CurrentHistoryPanel({
322            // is page sending in show settings? if so override history's
323            show_deleted    : null,
324            show_hidden     : null,
325            el              : $( "#current-history-panel" ),
326            linkTarget      : 'galaxy_main',
327            onready         : function loadAsCurrentHistoryPanel(){
328                this.connectToQuotaMeter( Galaxy.quotaMeter )
329                    .connectToOptionsMenu( Galaxy.historyOptionsMenu );
330                this.loadCurrentHistory();
331            }
332        });
333        Galaxy.currHistoryPanel = currPanel;
334    });
335});
336</script>
336
337
338        
338<script type="text/javascript">
339            $(function(){
340                $( '#history-refresh-button' ).on( 'click', function(){
341                    if( top.Galaxy && top.Galaxy.currHistoryPanel ){
342                        top.Galaxy.currHistoryPanel.loadCurrentHistory();
343                        inside_galaxy_frameset = true;
344                    }
345                });
346            });
347        </script>
347
348    </div>
349
350                    <div class="unified-panel-footer">
351                        <div class="panel-collapse right"></div>
352                        <div class="drag"></div>
353                    </div>
354                </div><!--end right-->
355        </div><!--end everything-->
356    </body>
357    
358    
359
360    
360<script src="/ap/static/scripts/libs/jquery/jquery.event.drag.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 360
360
361<script src="/ap/static/scripts/libs/jquery/jquery.event.hover.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 361
361
362<script src="/ap/static/scripts/libs/jquery/jquery.form.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 362
362
363<script src="/ap/static/scripts/libs/jquery/jquery.rating.js?v=1780073495" type="text/javascript"></script>
vendor: 1 bytes, line 363
363
364<script src="/ap/static/scripts/galaxy.panels.js?v=1780073495" type="text/javascript"></script>
364
365    
365<script type="text/javascript">
366        
367    ensure_dd_helper();
368        
369            var lp = new Panel( { panel: $("#left"), center: $("#center"), drag: $("#left > .unified-panel-footer > .drag" ), toggle: $("#left > .unified-panel-footer > .panel-collapse" ) } );
370            force_left_panel = function( x ) { lp.force_panel( x ) };
371        
372            var rp = new Panel( { panel: $("#right"), center: $("#center"), drag: $("#right > .unified-panel-footer > .drag" ), toggle: $("#right > .unified-panel-footer > .panel-collapse" ), right: true } );
373            window.handle_minwidth_hint = function( x ) { rp.handle_minwidth_hint( x ) };
374            force_right_panel = function( x ) { rp.force_panel( x ) };
375    
376    </script>
376
377    
377<script type="text/javascript">
378        var upload_form_error = function( msg ) {
379            var $galaxy_mainBody = $("iframe#galaxy_main").contents().find("body"),
380                $errMsg = $galaxy_mainBody.find( 'div.errormessage' );
381            if ( !$errMsg.size() ){
382                $errMsg = $( '<div/>' ).addClass( 'errormessage' ).prependTo( $galaxy_mainBody );
383            }
384            $errMsg.text( msg );
385        }
386
387        var uploads_in_progress = 0;
388        function decrementUploadsInProgress(){
389            uploads_in_progress -= 1;
390            if( uploads_in_progress === 0 ){
391                window.onbeforeunload = null;
392            }
393        }
394        jQuery( function() {
395            $("iframe#galaxy_main").load( function() {
396                $(this).contents().find("form").each( function() {
397                    if ( $(this).find("input[galaxy-ajax-upload]").length > 0 ){
398                        var $form = $( this );
399
400                        $(this).submit( function( event ) {
401                            // Only bother using a hidden iframe if there's a file (e.g. big data) upload
402                            var file_upload = false;
403                            $(this).find("input[galaxy-ajax-upload]").each( function() {
404                                if ( $(this).val() != '' ) {
405                                    file_upload = true;
406                                }
407                            });
408                            if ( ! file_upload ) {
409                                return true;
410                            }
411                            // Make a synchronous request to create the datasets first
412                            var async_datasets;
413                            var upload_error = false;
414
415                            //NOTE: in order for upload.py to match the datasets created below, we'll move the js File
416                            //  object's name into the file_data field (not in the form only for what we send to
417                            //  upload_async_create)
418                            var formData = $( this ).serializeArray();
419                            var name = function(){
420                                var $fileInput = $form.find( 'input[name="files_0|file_data"]' );
421                                if( /msie/.test( navigator.userAgent.toLowerCase() ) ){
422                                    return $fileInput.val().replace( 'C:\\fakepath\\', '' );
423                                } else {
424                                    return $fileInput.get( 0 ).files[0].name;
425                                }
426                            }
427                            formData.push({ name: "files_0|file_data", value: name });
428
429                            $.ajax( {
430                                async:      false,
431                                type:       "POST",
432                                url:        "/ap/tool_runner/upload_async_create",
433                                data:       formData,
434                                dataType:   "json",
435                                success:    function(array_obj, status) {
436                                                if (array_obj.length > 0) {
437                                                    if (array_obj[0] == 'error') {
438                                                        upload_error = true;
439                                                        upload_form_error(array_obj[1]);
440                                                    } else {
441                                                        async_datasets = array_obj.join();
442                                                    }
443                                                } else {
444                                                    // ( gvk 1/22/10 ) FIXME: this block is never entered, so there may be a bug somewhere
445                                                    // I've done some debugging like checking to see if array_obj is undefined, but have not
446                                                    // tracked down the behavior that will result in this block being entered.  I believe the
447                                                    // intent was to have this block entered if the upload button is clicked on the upload
448                                                    // form but no file was selected.
449                                                    upload_error = true;
450                                                    upload_form_error( 'No data was entered in the upload form.  You may choose to upload a file, paste some data directly in the data box, or enter URL(s) to fetch data.' );
451                                                }
452                                            }
453                            } );
454
455                            // show the dataset we created above in the history panel
456                            Galaxy && Galaxy.currHistoryPanel && Galaxy.currHistoryPanel.refreshHdas();
457
458                            if (upload_error == true) {
459                                return false;
460                            } else {
461                                $(this).find("input[name=async_datasets]").val( async_datasets );
462                                $(this).append("<input type='hidden' name='ajax_upload' value='true'>");
463                            }
464                            // iframe submit is required for nginx (otherwise the encoding is wrong)
465                            $(this).ajaxSubmit({
466                                //iframe: true,
467                                error: function( xhr, msg, status ){
468                                    decrementUploadsInProgress();
469                                },
470                                success: function ( response, x, y, z ) {
471                                    decrementUploadsInProgress();
472                                }
473                            });
474                            uploads_in_progress++;
475                            window.onbeforeunload = function() {
476                                return "Navigating away from the Galaxy analysis interface will interrupt the "
477                                        + "file upload(s) currently in progress.  Do you really want to do this?";
478                            }
479                            if ( $(this).find("input[name='folder_id']").val() != undefined ) {
480                                var library_id = $(this).find("input[name='library_id']").val();
481                                var show_deleted = $(this).find("input[name='show_deleted']").val();
482                                if ( location.pathname.indexOf( 'admin' ) != -1 ) {
483                                    $("iframe#galaxy_main").attr("src","/ap/library_common/browse_library?cntrller=library_admin&id=" + library_id + "&created_ldda_ids=" + async_datasets + "&show_deleted=" + show_deleted);
484                                } else {
485                                    $("iframe#galaxy_main").attr("src","/ap/library_common/browse_library?cntrller=library&id=" + library_id + "&created_ldda_ids=" + async_datasets + "&show_deleted=" + show_deleted);
486                                }
487                            } else {
488                                $("iframe#galaxy_main").attr("src","/ap/tool_runner/upload_async_message");
489                            }
490                            event.preventDefault();
491                            return false;
492                        });
493                    }
494                });
495            });
496        });
497    </script>
497
498
499
500
501    
501<script type="text/javascript">
502    // Set up GalaxyAsync object.
503    var galaxy_async = new GalaxyAsync();
504    galaxy_async.set_func_url( galaxy_async.set_user_pref,
505        "/ap/user/set_user_pref_async");
506    
507    // set up history options menu
508    $(function(){
509        // Init history options.
510        //$("#history-options-button").css( "position", "relative" );
511        var popupmenu = PopupMenu.make_popupmenu( $("#history-options-button"), {
512            "History Lists": null,
513            "Saved Histories": function() {
514                galaxy_main.location = "/ap/history/list";
515            },
516            "Histories Shared with Me": function() {
517                galaxy_main.location = "/ap/history/list_shared";
518            },
519            "Current History": null,
520            "Create New": function() {
521                if( Galaxy && Galaxy.currHistoryPanel ){
522                    Galaxy.currHistoryPanel.createNewHistory();
523                }
524            },
525            "Copy History": function() {
526                galaxy_main.location = "/ap/history/copy";
527            },
528            "Copy Datasets": function() {
529                galaxy_main.location = "/ap/dataset/copy_datasets";
530            },
531            "Share or Publish": function() {
532                galaxy_main.location = "/ap/history/sharing";
533            },
534            "Extract Workflow": function() {
535                galaxy_main.location = "/ap/workflow/build_from_current_history";
536            },
537            "Dataset Security": function() {
538                galaxy_main.location = "/ap/root/history_set_default_permissions";
539            },
540            "Resume Paused Jobs": function() {
541                galaxy_main.location = "/ap/history/resume_paused_jobs?current=True";
542            },
543            "Collapse Expanded Datasets": function() {
544                if( Galaxy && Galaxy.currHistoryPanel ){
545                    Galaxy.currHistoryPanel.collapseAllHdaBodies();
546                }
547            },
548            "Include Deleted Datasets": function( clickEvent, thisMenuOption ) {
549                if( Galaxy && Galaxy.currHistoryPanel ){
550                    thisMenuOption.checked = Galaxy.currHistoryPanel.toggleShowDeleted();
551                }
552            },
553            "Include Hidden Datasets": function( clickEvent, thisMenuOption ) {
554                if( Galaxy && Galaxy.currHistoryPanel ){
555                    thisMenuOption.checked = Galaxy.currHistoryPanel.toggleShowHidden();
556                }
557            },
558            "Unhide Hidden Datasets": function() {
559                if ( confirm( "Really unhide all hidden datasets?" ) ) {
560                    galaxy_main.location = "/ap/history/unhide_datasets?current=True";
561                }
562            },
563            "Delete Hidden Datasets": function() {
564                if ( confirm( "Really delete all hidden datasets?" ) ) {
565                    galaxy_main.location = "/ap/history/delete_hidden_datasets";
566                }
567            },
568            "Purge Deleted Datasets": function() {
569                if ( confirm( "Really delete all deleted datasets permanently? This cannot be undone." ) ) {
570                    galaxy_main.location = "/ap/history/purge_deleted_datasets";
571                }
572            },
573            "Show Structure": function() {
574                galaxy_main.location = "/ap/history/display_structured";
575            },
576            "Export to File": function() {
577                galaxy_main.location = "/ap/history/export_archive";
578            },
579            "Delete": function() {
580                if ( confirm( "Really delete the current history?" ) ) {
581                    galaxy_main.location = "/ap/history/delete_current";
582                }
583            },
584            "Delete Permanently": function() {
585                if ( confirm( "Really delete the current history permanently? This cannot be undone." ) ) {
586                    galaxy_main.location = "/ap/history/delete_current?purge=True";
587                }
588            },
589            "Other Actions": null,
590            "Import from File": function() {
591                galaxy_main.location = "/ap/history/import_archive";
592            }
593        });
594        Galaxy.historyOptionsMenu = popupmenu;
595
596        // Fix iFrame scrolling on iOS
597        if( navigator.userAgent.match( /(iPhone|iPod|iPad)/i ) ) {
598            $("iframe").parent().css( {
599                "overflow": "scroll",
600                "-webkit-overflow-scrolling": "touch"
601            })
602        }
603
604    });
605    </script>
605
606
607</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.