1!function(t,o,n){t(function(){t('a[href^="#"]').on("click",function(n){if("1"===t(this).attr("data-op3-smooth-scroll")){let i=this.hash;t("html, body").animate({scrollTop:t(i).offset().top},1500,function(){o.location.hash=i}),n.preventDefault()}})})}(jQuery,window,document);!function(t,i,e){"use strict";var s=function(i){(i=t(i).get(0))&&!i._postListNavigator&&this._init(i)};s.prototype={constructor:s,_init:function(i){if(i._postListNavigator=this,this._$ui={},this._$ui.element=t(i),this._$ui.container=this._$ui.element.children(".op3-element__container"),this._$ui.nav=this._$ui.container.find('.op3-element[data-op3-element-spec^="wrapflex"][data-op3-element-spec$="listpagenavigation"]').last(),this._refreshLastPost(),1*this._$ui.container.attr("data-op3-post-list-has-more-posts")){var e=this._$ui.container.attr("data-op3-post-list-navigation-type");"loadmore"===e?this._bindLoadMore():"infinitescroll"===e&&this._bindInfiniteScroll()}},_bindLoadMore:function(){this._$ui.loadMore=this._$ui.container.find('.op3-element[data-op3-element-spec$="listloadmore"]').on("click",this._handleLoadMoreClick.bind(this))},_bindInfiniteScroll:function(){this._observer||(this._observer=new IntersectionObserver(this._handleInfiniteScroll.bind(this))),this._observer.observe(this._$ui.lastPost.get(0))},_refreshLastPost:function(){this._$ui.lastPost=this._$ui.container.find('.op3-element[data-op3-element-type$="listitem"]').last()},_request:function(i){this._$ui.loadInfo&&this._$ui.loadInfo.length||(this._$ui.loadInfo=t("<
1div></div>").text("Loading...").addClass("loadinfo")),this._$ui.loadInfo.appendTo(this._$ui.nav),jQuery.ajax({url:this._$ui.container.attr("data-op3-post-list-api-endpoint"),method:"post",dataType:"json",contentType:"application/json",data:JSON.stringify({post_id:1*this._$ui.lastPost.find("[data-op3-post-id]").attr("data-op3-post-id")||0,uuid:this._$ui.element.attr("data-op3-uuid"),filter:OP3.Meta.filter}),success:this._handleRequestSuccess.bind(this,i)})},_handleRequestSuccess:function(i,e,s,n){this._$ui.lastPost.after(e.data.html),this._$ui.container.attr("data-op3-post-list-has-more-posts",e.data.hasMorePosts?"1":"0"),this._refreshLastPost(),this._$ui.loadInfo.detach(),e.data.hasMorePosts||(this._$ui.loadInfo=t(null),this._$ui.nav.remove(),this._$ui.nav=t(null)),i.call(this,e.data)},_handleLoadMoreClick:function(t){t.preventDefault(),this._$ui.nav.css("height",this._$ui.loadMore.prop("offsetHeight")),this._$ui.loadMore.css("display","none"),this._request(this._handleLoadMoreResponseCallback.bind(this))},_handleLoadMoreResponseCallback:function(t){this._$ui.nav.css("height",""),t.hasMorePosts&&this._$ui.loadMore.css("display","")},_handleInfiniteScroll:function(t,i){t.reduce(function(t,i){return t||i.isIntersecting},!1)&&(this._observer.unobserve(this._$ui.lastPost.get(0)),this._request(this._handleInfiniteScrollResponseCallback.bind(this)))},_handleInfiniteScrollResponseCallback:function(t){t.hasMorePosts&&this._bindInfiniteScroll()}},t(function(){t('.op3-element[data-op3-element-type="postlist"],.op3-element[data-op3-element-type="courselist"]').each(function(){new s(this)})})}(jQuery,window,document);
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.