PageSourceSearch

https://crmhub.com.ua/wp-content/themes/crmhub/assets/js/viewportchecker.js

js crmhub.com.ua collected 2026-10-07 23:04:31 UTC 17,411 bytes, 2 lines download raw bytes

1!function(o){o.fn.viewportChecker=function(t){var e={classToAdd:"visible",classToRemove:"invisible",classToAddForFullView:"full-visible",removeClassAfterAnimation:!1,offset:100,repeat:!1,invertBottomOffset:!0,callbackFunction:function(o,t){},scrollHorizontal:!1,scrollBox:window};o.extend(e,t);var a=this,s={height:o(e.scrollBox).height(),width:o(e.scrollBox).width()};return this.checkElements=function(){var t,l;e.scrollHorizontal?(t=Math.max(o("html").scrollLeft(),o("body").scrollLeft(),o(window).scrollLeft()),l=t+s.width):(t=Math.max(o("html").scrollTop(),o("body").scrollTop(),o(window).scrollTop()),l=t+s.height),a.each(function(){var a=o(this),i={},n={};if(a.data("vp-add-class")&&(n.classToAdd=a.data("vp-add-class")),a.data("vp-remove-class")&&(n.classToRemove=a.data("vp-remove-class")),a.data("vp-add-class-full-view")&&(n.classToAddForFullView=a.data("vp-add-class-full-view")),a.data("vp-keep-add-class")&&(n.removeClassAfterAnimation=a.data("vp-remove-after-animation")),a.data("vp-offset")&&(n.offset=a.data("vp-offset")),a.data("vp-repeat")&&(n.repeat=a.data("vp-repeat")),a.data("vp-scrollHorizontal")&&(n.scrollHorizontal=a.data("vp-scrollHorizontal")),a.data("vp-invertBottomOffset")&&(n.scrollHorizontal=a.data("vp-invertBottomOffset")),o.extend(i,e),o.extend(i,n),!a.data("vp-animated")||i.repeat){String(i.offset).indexOf("%")>0&&(i.offset=parseInt(i.offset)/100*s.height);var d=i.scrollHorizontal?a.offset().left:a.offset().top,r=i.scrollHorizontal?d+a.width():d+a.height(),c=Math.round(d)+i.offset,f=i.scrollHorizontal?c+a.width():c+a.height();i.invertBottomOffset&&(f-=2*i.offset),c<l&&f>t?(a.removeClass(i.classToRemove),a.addClass(i.classToAdd),i.callbackFunction(a,"add"),r<=l&&d>=t?a.addClass(i.classToAddForFullView):a.removeClass(i.classToAddForFullView),a.data("vp-animated",!0),i.removeClassAfterAnimation&&a.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){a.removeClass(i.classToAdd)})):a.hasClass(i.classToAdd)&&i.repeat&&(a.removeClass(i.classToAdd+" "+i.classToAddForFullView),i.callbackFunction(a,"remove"),a.data("vp-animated",!1))}})},("ontouchstart"in window||"onmsgesturechange"in window)&&o(document).bind("touchmove MSPointerMove pointermove",this.checkElements),o(e.scrollBox).bind("load scroll",this.checkElements),o(window).resize(function(t){s={height:o(e.scrollBox).height(),width:o(e.scrollBox).width()},a.checkElements()}),this.checkElements(),this}}(jQuery);
2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpZXdwb3J0Y2hlY2tlci5qcyJdLCJuYW1lcyI6WyIkIiwiZm4iLCJ2aWV3cG9ydENoZWNrZXIiLCJ1c2Vyb3B0aW9ucyIsIm9wdGlvbnMiLCJjbGFzc1RvQWRkIiwiY2xhc3NUb1JlbW92ZSIsImNsYXNzVG9BZGRGb3JGdWxsVmlldyIsInJlbW92ZUNsYXNzQWZ0ZXJBbmltYXRpb24iLCJvZmZzZXQiLCJyZXBlYXQiLCJpbnZlcnRCb3R0b21PZmZzZXQiLCJjYWxsYmFja0Z1bmN0aW9uIiwiZWxlbSIsImFjdGlvbiIsInNjcm9sbEhvcml6b250YWwiLCJzY3JvbGxCb3giLCJ3aW5kb3ciLCJleHRlbmQiLCIkZWxlbSIsInRoaXMiLCJib3hTaXplIiwiaGVpZ2h0Iiwid2lkdGgiLCJjaGVja0VsZW1lbnRzIiwidmlld3BvcnRTdGFydCIsInZpZXdwb3J0RW5kIiwiTWF0aCIsIm1heCIsInNjcm9sbExlZnQiLCJzY3JvbGxUb3AiLCJlYWNoIiwiJG9iaiIsIm9iak9wdGlvbnMiLCJhdHRyT3B0aW9ucyIsImRhdGEiLCJTdHJpbmciLCJpbmRleE9mIiwicGFyc2VJbnQiLCJyYXdTdGFydCIsImxlZnQiLCJ0b3AiLCJyYXdFbmQiLCJlbGVtU3RhcnQiLCJyb3VuZCIsImVsZW1FbmQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwib25lIiwiaGFzQ2xhc3MiLCJkb2N1bWVudCIsImJpbmQiLCJyZXNpemUiLCJlIiwialF1ZXJ5Il0sIm1hcHBpbmdzIjoiQ0FnQkEsU0FBVUEsR0FDTkEsRUFBRUMsR0FBR0MsZ0JBQWtCLFNBQVNDLEdBRTVCLEdBQUlDLElBQ0FDLFdBQVksVUFDWkMsY0FBZ0IsWUFDaEJDLHNCQUF3QixlQUN4QkMsMkJBQTJCLEVBQzNCQyxPQUFRLElBQ1JDLFFBQVEsRUFDUkMsb0JBQW9CLEVBQ3BCQyxpQkFBa0IsU0FBU0MsRUFBTUMsS0FDakNDLGtCQUFrQixFQUNsQkMsVUFBV0MsT0FFZmpCLEdBQUVrQixPQUFPZCxFQUFTRCxFQUdsQixJQUFJZ0IsR0FBUUMsS0FDaEJDLEdBQVdDLE9BQVF0QixFQUFFSSxFQUFRWSxXQUFXTSxTQUFVQyxNQUFPdkIsRUFBRUksRUFBUVksV0FBV08sUUE4STFFLE9BeklBSCxNQUFLSSxjQUFnQixXQUNqQixHQUFJQyxHQUFlQyxDQUdkdEIsR0FBUVcsa0JBU1RVLEVBQWdCRSxLQUFLQyxJQUNoQjVCLEVBQUUsUUFBUTZCLGFBQ1Y3QixFQUFFLFFBQVE2QixhQUNWN0IsRUFBRWlCLFFBQVFZLGNBRWZILEVBQWVELEVBQWdCSixFQUFRRSxRQWJ2Q0UsRUFBZ0JFLEtBQUtDLElBQ2hCNUIsRUFBRSxRQUFROEIsWUFDVjlCLEVBQUUsUUFBUThCLFlBQ1Y5QixFQUFFaUIsUUFBUWEsYUFFZkosRUFBZUQsRUFBZ0JKLEVBQVFDLFFBWTNDSCxFQUFNWSxLQUFLLFdBQ1AsR0FBSUMsR0FBT2hDLEVBQUVvQixNQUNUYSxL
2QUNBQyxJQXlCSixJQXRCSUYsRUFBS0csS0FBSyxrQkFDVkQsRUFBWTdCLFdBQWEyQixFQUFLRyxLQUFLLGlCQUNuQ0gsRUFBS0csS0FBSyxxQkFDVkQsRUFBWTVCLGNBQWdCMEIsRUFBS0csS0FBSyxvQkFDdENILEVBQUtHLEtBQUssNEJBQ1ZELEVBQVkzQixzQkFBd0J5QixFQUFLRyxLQUFLLDJCQUM5Q0gsRUFBS0csS0FBSyx1QkFDVkQsRUFBWTFCLDBCQUE0QndCLEVBQUtHLEtBQUssOEJBQ2xESCxFQUFLRyxLQUFLLGVBQ1ZELEVBQVl6QixPQUFTdUIsRUFBS0csS0FBSyxjQUMvQkgsRUFBS0csS0FBSyxlQUNWRCxFQUFZeEIsT0FBU3NCLEVBQUtHLEtBQUssY0FDL0JILEVBQUtHLEtBQUsseUJBQ1ZELEVBQVluQixpQkFBbUJpQixFQUFLRyxLQUFLLHdCQUN6Q0gsRUFBS0csS0FBSywyQkFDVkQsRUFBWW5CLGlCQUFtQmlCLEVBQUtHLEtBQUssMEJBRzdDbkMsRUFBRWtCLE9BQU9lLEVBQVk3QixHQUNyQkosRUFBRWtCLE9BQU9lLEVBQVlDLElBR2pCRixFQUFLRyxLQUFLLGdCQUFtQkYsRUFBV3ZCLE9BQTVDLENBS0kwQixPQUFPSCxFQUFXeEIsUUFBUTRCLFFBQVEsS0FBTyxJQUN6Q0osRUFBV3hCLE9BQVU2QixTQUFTTCxFQUFXeEIsUUFBVSxJQUFPWSxFQUFRQyxPQUd0RSxJQUFJaUIsR0FBYU4sRUFBV2xCLGlCQUF3Q2lCLEVBQUt2QixTQUFTK0IsS0FBbENSLEVBQUt2QixTQUFTZ0MsSUFDMURDLEVBQVdULEVBQVdsQixpQkFBK0N3QixFQUFXUCxFQUFLVCxRQUEzQ2dCLEVBQVdQLEVBQUtWLFNBRzFEcUIsRUFBWWhCLEtBQUtpQixNQUFPTCxHQUFhTixFQUFXeEIsT0FDaERvQyxFQUFZWixFQUFXbEIsaUJBQWdENEIsRUFBWVgsRUFBS1QsUUFBN0NvQixFQUFZWCxFQUFLVixRQUU1RFcsR0FBV3RCLHFCQUNYa0MsR0FBZ0MsRUFBcEJaLEVBQVd4QixRQUd0QmtDLEVBQVlqQixHQUFpQm1CLEVBQVVwQixHQUd4Q08sRUFBS2MsWUFBWWIsRUFBVzNCLGVBQzVCMEIsRUFBS2UsU0FBU2QsRUFBVzVCLFlBR3pCNEIsRUFBV3JCLGlCQUFpQm9CLEVBQU0sT0FHOUJVLEdBQVVoQixHQUFlYSxHQUFZZCxFQUNyQ08sRUFBS2UsU0FBU2QsRUFBVzFCLHVCQUV6QnlCLEVBQUtjLFlBQVliLEVBQVcxQix1QkFHaEN5QixFQUFLRyxLQUFLLGVBQWUsR0FFckJGLEVBQVd6QiwyQkFDWHdCLEVBQUtnQixJQUFJLCtFQUFnRixXQUNyRmhCLEVBQUtjLFlBQVliLEVBQVc1QixlQUs3QjJCLEVBQUtpQixTQUFTaEIsRUFBVzVCLGFBQWdCNEIsRUFBaUIsU0FDakVELEVBQUtjLFlBQVliLEVBQVc1QixXQUFhLElBQU00QixFQUFXMUIsdUJBRzFEMEIsRUFBV3JCLGlCQUFpQm9CLEVBQU0sVUFHbENBLEVBQUtHLEtBQUssZUFBZSxTQWlCakMsZ0JBQWtCbEIsU0FBVSxxQkFBdUJBLFVBRW5EakIsRUFBRWtELFVBQVVDLEtBQUssc0NBQXVDL0IsS0FBS0ksZUFJakV4QixFQUFFSSxFQUFRWSxXQUFXbUMsS0FBSyxjQUFlL0IsS0FBS0ksZUFHOUN4QixFQUFFaUIsUUFBUW1DLE9BQU8sU0FBU0MsR0FDdEJoQyxHQUFXQyxPQUFRdEIsRUFBRUksRUFBUVksV0FBV00sU0FBVUMsTUFBT3ZCLEVBQUVJLEVBQVFZLFdBQVdPLFNBQzlFSixFQUFNSyxrQkFJVkosS0FBS0ksZ0JBR0VKLE9BRVprQyIsImZpbGUiOiJ2aWV3cG9ydGNoZWNrZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gICAgVGhlIE1JVCBMaWNlbnNlIChNSVQpXHJcblxyXG4gICAgQ29weXJpZ2h0IChjKSAyMDE0IERpcmsgR3JvZW5lblxyXG5cclxuICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2ZcclxuICAgIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW5cclxuICAgIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG9cclxuICAgIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mXHJcbiAgICB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sXHJcbiAgICBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuXHJcbiAgICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcclxuICAgIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbiovXHJcblxyXG4oZnVuY3Rpb24oJCl7XHJcbiAgICAkLmZuLnZpZXdwb3J0Q2hlY2tlciA9IGZ1bmN0aW9uKHVzZXJvcHRpb25zKXtcclxuICAgICAgICAvLyBEZWZpbmUgb3B0aW9ucyBhbmQgZXh0ZW5kIHdpdGggdXNlclxyXG4gICAgICAgIHZhciBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICBjbGFzc1RvQWRkOiAndmlzaWJsZScsXHJcbiAgICAgICAgICAgIGNsYXNzVG9SZW1vdmUgOiAnaW52aXNpYmxlJyxcclxuICAgICAgICAgICAgY2xhc3NUb0FkZEZvckZ1bGxWaWV3IDogJ2Z1bGwtdmlzaWJsZScsXHJcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzQWZ0ZXJBbmltYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICBvZmZzZXQ6IDEwMCxcclxuICAgICAgICAgICAgcmVwZWF0OiBmYWxzZSxcclxuICAgICAgICAgICAgaW52ZXJ0Qm90dG9tT2Zmc2V0OiB0cnVlLFxyXG4gICAgICAgICAgICBjYWxsYmFja0Z1bmN0aW9uOiBmdW5jdGlvbihlbGVtLCBhY3Rpb24pe30sXHJcbiAgICAgICAgICAgIHNjcm9sbEhvcml6b250YWw6IGZhbHNlLFxyXG4gICAgICAgICAgICBzY3JvbGxCb3g6IHdpbmRvd1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgJC5leHRlbmQob3B0aW9ucywgdXNlcm9wdGlvbnMpO1xyXG5cclxuICAgICAgICAvLyBDYWNoZSB0aGUgZ2l2ZW4gZWxlbWVudCBhbmQgaGVpZ2h0IG9mIHRoZSBicm93c2VyXHJcbiAgICAgICAgdmFyICRlbGVtID0gdGhpcyxcclxuICAgXHRib3hTaXplID0ge2hlaWdodDogJChvcHRpb25zLnNjcm9sbEJveCkuaGVpZ2h0KCksIHdpZHRoOiAkKG9wdGlvbnMuc2Nyb2xsQm94KS53aWR0aCgpfTtcclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiBNYWluIG1ldGhvZCB0aGF0IGNoZWNrcyB0aGUgZWxlbWVudHMgYW5kIGFkZHMgb3IgcmVtb3ZlcyB0aGUgY2xhc3MoZXMpXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jaGVja0VsZW1lbnRzID0gZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHZpZXdwb3J0U3RhcnQsIHZpZXdwb3J0RW5kO1xyXG5cclxuICAgICAgICAgICAgLy8gU2V0IHNvbWUgdmFycyB0byBjaGVjayB3aXRoXHJcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5zY3JvbGxIb3Jpem9udGFsKXtcclxuICAgICAgICAgICAgICAgI
2HZpZXdwb3J0U3RhcnQgPSBNYXRoLm1heChcclxuICAgICAgICAgICAgICAgICAgICAgJCgnaHRtbCcpLnNjcm9sbFRvcCgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAkKCdib2R5Jykuc2Nyb2xsVG9wKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGxUb3AoKVxyXG4gICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB2aWV3cG9ydEVuZCA9ICh2aWV3cG9ydFN0YXJ0ICsgYm94U2l6ZS5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB2aWV3cG9ydFN0YXJ0ID0gTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgICQoJ2h0bWwnKS5zY3JvbGxMZWZ0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5zY3JvbGxMZWZ0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGxMZWZ0KClcclxuICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgdmlld3BvcnRFbmQgPSAodmlld3BvcnRTdGFydCArIGJveFNpemUud2lkdGgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIGdpdmVuIGRvbSBlbGVtZW50c1xyXG4gICAgICAgICAgICAkZWxlbS5lYWNoKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICB2YXIgJG9iaiA9ICQodGhpcyksXHJcbiAgICAgICAgICAgICAgICAgICAgb2JqT3B0aW9ucyA9IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF0dHJPcHRpb25zID0ge307XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIEdldCBhbnkgaW5kaXZpZHVhbCBhdHRyaWJ1dGlvbiBkYXRhXHJcbiAgICAgICAgICAgICAgICBpZiAoJG9iai5kYXRhKCd2cC1hZGQtY2xhc3MnKSlcclxuICAgICAgICAgICAgICAgICAgICBhdHRyT3B0aW9ucy5jbGFzc1RvQWRkID0gJG9iai5kYXRhKCd2cC1hZGQtY2xhc3MnKTtcclxuICAgICAgICAgICAgICAgIGlmICgkb2JqLmRhdGEoJ3ZwLXJlbW92ZS1jbGFzcycpKVxyXG4gICAgICAgICAgICAgICAgICAgIGF0dHJPcHRpb25zLmNsYXNzVG9SZW1vdmUgPSAkb2JqLmRhdGEoJ3ZwLXJlbW92ZS1jbGFzcycpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCRvYmouZGF0YSgndnAtYWRkLWNsYXNzLWZ1bGwtdmlldycpKVxyXG4gICAgICAgICAgICAgICAgICAgIGF0dHJPcHRpb25zLmNsYXNzVG9BZGRGb3JGdWxsVmlldyA9ICRvYmouZGF0YSgndnAtYWRkLWNsYXNzLWZ1bGwtdmlldycpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCRvYmouZGF0YSgndnAta2VlcC1hZGQtY2xhc3MnKSlcclxuICAgICAgICAgICAgICAgICAgICBhdHRyT3B0aW9ucy5yZW1vdmVDbGFzc0FmdGVyQW5pbWF0aW9uID0gJG9iai5kYXRhKCd2cC1yZW1vdmUtYWZ0ZXItYW5pbWF0aW9uJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoJG9iai5kYXRhKCd2cC1vZmZzZXQnKSlcclxuICAgICAgICAgICAgICAgICAgICBhdHRyT3B0aW9ucy5vZmZzZXQgPSAkb2JqLmRhdGEoJ3ZwLW9mZnNldCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCRvYmouZGF0YSgndnAtcmVwZWF0JykpXHJcbiAgICAgICAgICAgICAgICAgICAgYXR0ck9wdGlvbnMucmVwZWF0ID0gJG9iai5kYXRhKCd2cC1yZXBlYXQnKTtcclxuICAgICAgICAgICAgICAgIGlmICgkb2JqLmRhdGEoJ3ZwLXNjcm9sbEhvcml6b250YWwnKSlcclxuICAgICAgICAgICAgICAgICAgICBhdHRyT3B0aW9ucy5zY3JvbGxIb3Jpem9udGFsID0gJG9iai5kYXRhKCd2cC1zY3JvbGxIb3Jpem9udGFsJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoJG9iai5kYXRhKCd2cC1pbnZlcnRCb3R0b21PZmZzZXQnKSlcclxuICAgICAgICAgICAgICAgICAgICBhdHRyT3B0aW9ucy5zY3JvbGxIb3Jpem9udGFsID0gJG9iai5kYXRhKCd2cC1pbnZlcnRCb3R0b21PZmZzZXQnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBFeHRlbmQgb2JqT3B0aW9ucyB3aXRoIGRhdGEgYXR0cmlidXRlcyBhbmQgZGVmYXVsdCBvcHRpb25zXHJcbiAgICAgICAgICAgICAgICAkLmV4dGVuZChvYmpPcHRpb25zLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgICQuZXh0ZW5kKG9iak9wdGlvbnMsIGF0dHJPcHRpb25zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiBjbGFzcyBhbHJlYWR5IGV4aXN0czsgcXVpdFxyXG4gICAgICAgICAgICAgICAgaWYgKCRvYmouZGF0YSgndnAtYW5pbWF0ZWQnKSAmJiAhb2JqT3B0aW9ucy5yZXBlYXQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgb2Zmc2V0IGlzIHBlcmNlbnRhZ2UgYmFzZWRcclxuICAgICAgICAgICAgICAgIGlmIChTdHJpbmcob2JqT3B0aW9ucy5vZmZzZXQpLmluZGV4T2YoXCIlXCIpID4gMClcclxuICAgICAgICAgICAgICAgICAgICBvYmpPcHRpb25zLm9mZnNldCA9IChwYXJzZUludChvYmpPcHRpb25zLm9mZnNldCkgLyAxMDApICogYm94U2l6ZS5oZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gR2V0IHRoZSByYXcgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnNcclxuICAgICAgICAgICAgICAgIHZhciByYXdTdGFydCA9ICghb2JqT3B0aW9ucy5zY3JvbGxIb3Jpem9udGFsKSA/ICRvYmoub2Zmc2V0KCkudG9wIDogJG9iai5vZmZzZXQoKS5sZWZ0LFxyXG4gICAgICAgICAgICAgICAgICAgIHJhd0VuZCA9ICghb2JqT3B0aW9ucy5zY3JvbGxIb3Jpem9udGFsKSA/IHJhd1N0YXJ0ICsgJG9iai5oZWlnaHQoKSA6IHJhd1N0YXJ0ICsgJG9iai53aWR0aCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgZGVmaW5lZCBvZmZzZXRcclxuICAgICAgICAgICAgICAgIHZhciBlbGVtU3RhcnQgPSBNYXRoLnJvdW5kKCByYXdTdGFydCApICsgb2JqT3B0aW9ucy5vZmZzZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbUVuZCA9ICghb2JqT3B0aW9ucy5zY3JvbGxIb3Jpem9udGFsKSA/IGVsZW1TdGFydCArICRvYmouaGVpZ2h0KCkgOiBlbGVtU3RhcnQgKyAkb2JqLndpZHRoKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9iak9wdGlvbnMuaW52ZXJ0Qm90dG9tT2Zmc2V0KVxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1FbmQgLT0gKG9iak9wdGlvbnMub2Zmc2V0ICogMik7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQWRkIGNsYXNzIGlmIGluIHZpZXdwb3J0XHJcbiAgICAgICAgICAgICAgICBpZiAoKGVsZW1TdGFydCA8IHZpZXdwb3J0RW5kKSAmJiAoZWxlbUVuZCA+IHZpZXdwb3J0U3RhcnQpKXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGNsYXNzXHJcbiAgICAgICAgICAgICAgICAgICAgJG9iai5yZW1vdmVDbGFzcyhvYmpPcHRpb25zLmNsYXNzVG9SZW1vdmUpO1xyXG4gICAgICAgICAgICAgICAgICAgICRvYmouYWRkQ2xhc3Mob2JqT3B0aW9ucy5jbGFzc1RvQWRkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLiBDYWxsYmFjayB3aWwgc2VuZCB0aGUgalF1ZXJ5IG9iamVjdCBhcyBwYXJhbWV0ZXJcclxuICAgICAgICAgICAgICAgICAgICBvYmpPcHRpb25zLmNhbGxiYWNrRnVuY3Rpb24oJG9iaiwgXCJhZGRcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGZ1bGwgZWxlbWVudCBpcyBpbiB2aWV3XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhd0VuZCA8PSB2aWV3cG9ydEVuZCAmJiByYXdTdGFydCA+PSB2aWV3cG9ydFN0YXJ0KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAkb2JqLmFkZENsYXNzKG9iak9wdGlvbnMuY2xhc3NUb0FkZEZvckZ1bGxWaWV3KTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRvYmoucmVtb3ZlQ2xhc3Mob2JqT3B0aW9ucy5jbGFzc1RvQWRkRm9yRnVsbFZpZXcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZWxlbWVudCBhcyBhbHJlYWR5IGFuaW1hdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgJG9iai5kYXRhKCd2cC1hbmltYXRlZCcsIHRydWUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAob2JqT3B0aW9ucy5yZW1vdmVDbGFzc0FmdGVyQW5pbWF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRvYmoub25lKCd3ZWJraXRBbmltYXRpb25FbmQgbW96QW5pbWF0aW9uRW5kIE1TQW5pbWF0aW9uRW5kIG9hbmltYXRpb25lbmQgYW5pbWF0aW9uZW5kJywgZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmoucmVtb3ZlQ2xhc3Mob2JqT3B0aW9ucy5jbGFzc1RvQWRkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBjbGFzcyBpZiBub3QgaW4gdmlld3BvcnQgYW5kIHJlcGVhdCBpcyB0cnVlXHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRvYmouaGFzQ2xhc3Mob2JqT3B0aW9ucy5jbGFzc1RvQWRkKSAmJiAob2JqT3B0aW9ucy5yZXBlYXQpKXtcclxuICAgICAgICAgICAgICAgICAgICAkb2JqLnJlbW92ZUNsYXNzKG9iak9wdGlvbnMuY2xhc3NUb0FkZCArIFwiIFwiICsgb2JqT3B0aW9ucy5jbGFzc1RvQWRkRm9yRnVsbFZpZXcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBEbyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgICAgICAgICAgICAgICAgb2JqT3B0aW9ucy5jYWxsYmFja0Z1bmN0aW9uKCRvYmosIFwicmVtb3ZlXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgYWxyZWFkeS1hbmltYXRlZC1mbGFnXHJcbiAgICAgICAgICAgICAgICAgICAgJG9iai5kYXRhKCd2cC1hbmltYXRlZCcsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgI
2H1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJpbmRpbmcgdGhlIGNvcnJlY3QgZXZlbnQgbGlzdGVuZXIgaXMgc3RpbGwgYSB0cmlja3kgdGhpbmcuXHJcbiAgICAgICAgICogUGVvcGxlIGhhdmUgZXhwaWVyZW5jZWQgc2xvcHB5IHNjcm9sbGluZyB3aGVuIGJvdGggc2Nyb2xsIGFuZCB0b3VjaFxyXG4gICAgICAgICAqIGV2ZW50cyBhcmUgYWRkZWQsIGJ1dCB0byBtYWtlIHN1cmUgZGV2aWNlcyB3aXRoIGJvdGggc2Nyb2xsIGFuZCB0b3VjaFxyXG4gICAgICAgICAqIGFyZSBoYW5kbGVzIHRvbyB3ZSBhbHdheXMgaGF2ZSB0byBhZGQgdGhlIHdpbmRvdy5zY3JvbGwgZXZlbnRcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBzZWUgIGh0dHBzOi8vZ2l0aHViLmNvbS9kaXJrZ3JvZW5lbi9qUXVlcnktdmlld3BvcnQtY2hlY2tlci9pc3N1ZXMvMjVcclxuICAgICAgICAgKiBAc2VlICBodHRwczovL2dpdGh1Yi5jb20vZGlya2dyb2VuZW4valF1ZXJ5LXZpZXdwb3J0LWNoZWNrZXIvaXNzdWVzLzI3XHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8vIFNlbGVjdCB0aGUgY29ycmVjdCBldmVudHNcclxuICAgICAgICBpZiggJ29udG91Y2hzdGFydCcgaW4gd2luZG93IHx8ICdvbm1zZ2VzdHVyZWNoYW5nZScgaW4gd2luZG93ICl7XHJcbiAgICAgICAgICAgIC8vIERldmljZSB3aXRoIHRvdWNoc2NyZWVuXHJcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLmJpbmQoXCJ0b3VjaG1vdmUgTVNQb2ludGVyTW92ZSBwb2ludGVybW92ZVwiLCB0aGlzLmNoZWNrRWxlbWVudHMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQWx3YXlzIGxvYWQgb24gd2luZG93IGxvYWRcclxuICAgICAgICAkKG9wdGlvbnMuc2Nyb2xsQm94KS5iaW5kKFwibG9hZCBzY3JvbGxcIiwgdGhpcy5jaGVja0VsZW1lbnRzKTtcclxuXHJcbiAgICAgICAgLy8gT24gcmVzaXplIGNoYW5nZSB0aGUgaGVpZ2h0IHZhclxyXG4gICAgICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oZSl7XHJcbiAgICAgICAgICAgIGJveFNpemUgPSB7aGVpZ2h0OiAkKG9wdGlvbnMuc2Nyb2xsQm94KS5oZWlnaHQoKSwgd2lkdGg6ICQob3B0aW9ucy5zY3JvbGxCb3gpLndpZHR
2oKCl9O1xyXG4gICAgICAgICAgICAkZWxlbS5jaGVja0VsZW1lbnRzKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIHRyaWdnZXIgaW5pdGFsIGNoZWNrIGlmIGVsZW1lbnRzIGFscmVhZHkgdmlzaWJsZVxyXG4gICAgICAgIHRoaXMuY2hlY2tFbGVtZW50cygpO1xyXG5cclxuICAgICAgICAvLyBEZWZhdWx0IGpxdWVyeSBwbHVnaW4gYmVoYXZpb3VyXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9O1xyXG59KShqUXVlcnkpOyJdfQ==

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.