forked from emeryberger/CSrankings
-
Notifications
You must be signed in to change notification settings - Fork 0
/
csrankings.min.js
103 lines (103 loc) · 45.2 KB
/
csrankings.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.createTemplateTagFirstArg=function(a){return a.raw=a};$jscomp.createTemplateTagFirstArgWithRaw=function(a,b){a.raw=b;return a};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};$jscomp.arrayIterator=function(a){return{next:$jscomp.arrayIteratorImpl(a)}};$jscomp.makeIterator=function(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):$jscomp.arrayIterator(a)};
$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};
$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(a,b){var c=$jscomp.propertyToPolyfillSymbol[b];if(null==c)return a[b];c=a[c];return void 0!==c?c:a[b]};$jscomp.polyfill=function(a,b,c,d){b&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(a,b,c,d):$jscomp.polyfillUnisolated(a,b,c,d))};
$jscomp.polyfillUnisolated=function(a,b,c,d){c=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var f=a[d];if(!(f in c))return;c=c[f]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})};
$jscomp.polyfillIsolated=function(a,b,c,d){var f=a.split(".");a=1===f.length;d=f[0];d=!a&&d in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var h=0;h<f.length-1;h++){var e=f[h];if(!(e in d))return;d=d[e]}f=f[f.length-1];c=$jscomp.IS_SYMBOL_NATIVE&&"es6"===c?d[f]:null;b=b(c);null!=b&&(a?$jscomp.defineProperty($jscomp.polyfills,f,{configurable:!0,writable:!0,value:b}):b!==c&&($jscomp.propertyToPolyfillSymbol[f]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(f):$jscomp.POLYFILL_PREFIX+f,f=
$jscomp.propertyToPolyfillSymbol[f],$jscomp.defineProperty(d,f,{configurable:!0,writable:!0,value:b})))};$jscomp.underscoreProtoCanBeSet=function(){var a={a:!0},b={};try{return b.__proto__=a,b.a}catch(c){}return!1};$jscomp.setPrototypeOf=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:$jscomp.underscoreProtoCanBeSet()?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null;$jscomp.generator={};
$jscomp.generator.ensureIteratorResultIsObject_=function(a){if(!(a instanceof Object))throw new TypeError("Iterator result "+a+" is not an object");};$jscomp.generator.Context=function(){this.isRunning_=!1;this.yieldAllIterator_=null;this.yieldResult=void 0;this.nextAddress=1;this.finallyAddress_=this.catchAddress_=0;this.finallyContexts_=this.abruptCompletion_=null};
$jscomp.generator.Context.prototype.start_=function(){if(this.isRunning_)throw new TypeError("Generator is already running");this.isRunning_=!0};$jscomp.generator.Context.prototype.stop_=function(){this.isRunning_=!1};$jscomp.generator.Context.prototype.jumpToErrorHandler_=function(){this.nextAddress=this.catchAddress_||this.finallyAddress_};$jscomp.generator.Context.prototype.next_=function(a){this.yieldResult=a};
$jscomp.generator.Context.prototype.throw_=function(a){this.abruptCompletion_={exception:a,isException:!0};this.jumpToErrorHandler_()};$jscomp.generator.Context.prototype.return=function(a){this.abruptCompletion_={return:a};this.nextAddress=this.finallyAddress_};$jscomp.generator.Context.prototype.jumpThroughFinallyBlocks=function(a){this.abruptCompletion_={jumpTo:a};this.nextAddress=this.finallyAddress_};$jscomp.generator.Context.prototype.yield=function(a,b){this.nextAddress=b;return{value:a}};
$jscomp.generator.Context.prototype.yieldAll=function(a,b){a=$jscomp.makeIterator(a);var c=a.next();$jscomp.generator.ensureIteratorResultIsObject_(c);if(c.done)this.yieldResult=c.value,this.nextAddress=b;else return this.yieldAllIterator_=a,this.yield(c.value,b)};$jscomp.generator.Context.prototype.jumpTo=function(a){this.nextAddress=a};$jscomp.generator.Context.prototype.jumpToEnd=function(){this.nextAddress=0};
$jscomp.generator.Context.prototype.setCatchFinallyBlocks=function(a,b){this.catchAddress_=a;void 0!=b&&(this.finallyAddress_=b)};$jscomp.generator.Context.prototype.setFinallyBlock=function(a){this.catchAddress_=0;this.finallyAddress_=a||0};$jscomp.generator.Context.prototype.leaveTryBlock=function(a,b){this.nextAddress=a;this.catchAddress_=b||0};
$jscomp.generator.Context.prototype.enterCatchBlock=function(a){this.catchAddress_=a||0;a=this.abruptCompletion_.exception;this.abruptCompletion_=null;return a};$jscomp.generator.Context.prototype.enterFinallyBlock=function(a,b,c){c?this.finallyContexts_[c]=this.abruptCompletion_:this.finallyContexts_=[this.abruptCompletion_];this.catchAddress_=a||0;this.finallyAddress_=b||0};
$jscomp.generator.Context.prototype.leaveFinallyBlock=function(a,b){b=this.finallyContexts_.splice(b||0)[0];if(b=this.abruptCompletion_=this.abruptCompletion_||b){if(b.isException)return this.jumpToErrorHandler_();void 0!=b.jumpTo&&this.finallyAddress_<b.jumpTo?(this.nextAddress=b.jumpTo,this.abruptCompletion_=null):this.nextAddress=this.finallyAddress_}else this.nextAddress=a};$jscomp.generator.Context.prototype.forIn=function(a){return new $jscomp.generator.Context.PropertyIterator(a)};
$jscomp.generator.Context.PropertyIterator=function(a){this.object_=a;this.properties_=[];for(var b in a)this.properties_.push(b);this.properties_.reverse()};$jscomp.generator.Context.PropertyIterator.prototype.getNext=function(){for(;0<this.properties_.length;){var a=this.properties_.pop();if(a in this.object_)return a}return null};$jscomp.generator.Engine_=function(a){this.context_=new $jscomp.generator.Context;this.program_=a};
$jscomp.generator.Engine_.prototype.next_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_.next,a,this.context_.next_);this.context_.next_(a);return this.nextStep_()};
$jscomp.generator.Engine_.prototype.return_=function(a){this.context_.start_();var b=this.context_.yieldAllIterator_;if(b)return this.yieldAllStep_("return"in b?b["return"]:function(c){return{value:c,done:!0}},a,this.context_.return);this.context_.return(a);return this.nextStep_()};
$jscomp.generator.Engine_.prototype.throw_=function(a){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_["throw"],a,this.context_.next_);this.context_.throw_(a);return this.nextStep_()};
$jscomp.generator.Engine_.prototype.yieldAllStep_=function(a,b,c){try{var d=a.call(this.context_.yieldAllIterator_,b);$jscomp.generator.ensureIteratorResultIsObject_(d);if(!d.done)return this.context_.stop_(),d;var f=d.value}catch(h){return this.context_.yieldAllIterator_=null,this.context_.throw_(h),this.nextStep_()}this.context_.yieldAllIterator_=null;c.call(this.context_,f);return this.nextStep_()};
$jscomp.generator.Engine_.prototype.nextStep_=function(){for(;this.context_.nextAddress;)try{var a=this.program_(this.context_);if(a)return this.context_.stop_(),{value:a.value,done:!1}}catch(b){this.context_.yieldResult=void 0,this.context_.throw_(b)}this.context_.stop_();if(this.context_.abruptCompletion_){a=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(a.isException)throw a.exception;return{value:a.return,done:!0}}return{value:void 0,done:!0}};
$jscomp.generator.Generator_=function(a){this.next=function(b){return a.next_(b)};this.throw=function(b){return a.throw_(b)};this.return=function(b){return a.return_(b)};this[Symbol.iterator]=function(){return this}};$jscomp.generator.createGenerator=function(a,b){b=new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(b));$jscomp.setPrototypeOf&&a.prototype&&$jscomp.setPrototypeOf(b,a.prototype);return b};$jscomp.initSymbol=function(){};
$jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(f,h){this.$jscomp$symbol$id_=f;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:h})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};var c=0,d=function(f){if(this instanceof d)throw new TypeError("Symbol is not a constructor");return new b("jscomp_symbol_"+(f||"")+"_"+c++,f)};return d},"es6","es3");
$jscomp.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=$jscomp.global[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&$jscomp.defineProperty(d.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this))}})}return a},"es6",
"es3");$jscomp.iteratorPrototype=function(a){a={next:a};a[Symbol.iterator]=function(){return this};return a};
$jscomp.polyfill("Promise",function(a){function b(){this.batch_=null}function c(e){return e instanceof f?e:new f(function(g,k){g(e)})}if(a&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return a;b.prototype.asyncExecute=function(e){if(null==this.batch_){this.batch_=[];var g=this;this.asyncExecuteFunction(function(){g.executeBatch_()})}this.batch_.push(e)};
var d=$jscomp.global.setTimeout;b.prototype.asyncExecuteFunction=function(e){d(e,0)};b.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var e=this.batch_;this.batch_=[];for(var g=0;g<e.length;++g){var k=e[g];e[g]=null;try{k()}catch(l){this.asyncThrow_(l)}}}this.batch_=null};b.prototype.asyncThrow_=function(e){this.asyncExecuteFunction(function(){throw e;})};var f=function(e){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var g=this.createResolveAndReject_();
try{e(g.resolve,g.reject)}catch(k){g.reject(k)}};f.prototype.createResolveAndReject_=function(){function e(l){return function(m){k||(k=!0,l.call(g,m))}}var g=this,k=!1;return{resolve:e(this.resolveTo_),reject:e(this.reject_)}};f.prototype.resolveTo_=function(e){if(e===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(e instanceof f)this.settleSameAsPromise_(e);else{a:switch(typeof e){case "object":var g=null!=e;break a;case "function":g=!0;break a;default:g=!1}g?this.resolveToNonPromiseObj_(e):
this.fulfill_(e)}};f.prototype.resolveToNonPromiseObj_=function(e){var g=void 0;try{g=e.then}catch(k){this.reject_(k);return}"function"==typeof g?this.settleSameAsThenable_(g,e):this.fulfill_(e)};f.prototype.reject_=function(e){this.settle_(2,e)};f.prototype.fulfill_=function(e){this.settle_(1,e)};f.prototype.settle_=function(e,g){if(0!=this.state_)throw Error("Cannot settle("+e+", "+g+"): Promise already settled in state"+this.state_);this.state_=e;this.result_=g;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};f.prototype.scheduleUnhandledRejectionCheck_=function(){var e=this;d(function(){if(e.notifyUnhandledRejection_()){var g=$jscomp.global.console;"undefined"!==typeof g&&g.error(e.result_)}},1)};f.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var e=$jscomp.global.CustomEvent,g=$jscomp.global.Event,k=$jscomp.global.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof e?e=new e("unhandledrejection",{cancelable:!0}):
"function"===typeof g?e=new g("unhandledrejection",{cancelable:!0}):(e=$jscomp.global.document.createEvent("CustomEvent"),e.initCustomEvent("unhandledrejection",!1,!0,e));e.promise=this;e.reason=this.result_;return k(e)};f.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var e=0;e<this.onSettledCallbacks_.length;++e)h.asyncExecute(this.onSettledCallbacks_[e]);this.onSettledCallbacks_=null}};var h=new b;f.prototype.settleSameAsPromise_=function(e){var g=this.createResolveAndReject_();
e.callWhenSettled_(g.resolve,g.reject)};f.prototype.settleSameAsThenable_=function(e,g){var k=this.createResolveAndReject_();try{e.call(g,k.resolve,k.reject)}catch(l){k.reject(l)}};f.prototype.then=function(e,g){function k(p,q){return"function"==typeof p?function(r){try{l(p(r))}catch(t){m(t)}}:q}var l,m,n=new f(function(p,q){l=p;m=q});this.callWhenSettled_(k(e,l),k(g,m));return n};f.prototype.catch=function(e){return this.then(void 0,e)};f.prototype.callWhenSettled_=function(e,g){function k(){switch(l.state_){case 1:e(l.result_);
break;case 2:g(l.result_);break;default:throw Error("Unexpected state: "+l.state_);}}var l=this;null==this.onSettledCallbacks_?h.asyncExecute(k):this.onSettledCallbacks_.push(k);this.isRejectionHandled_=!0};f.resolve=c;f.reject=function(e){return new f(function(g,k){k(e)})};f.race=function(e){return new f(function(g,k){for(var l=$jscomp.makeIterator(e),m=l.next();!m.done;m=l.next())c(m.value).callWhenSettled_(g,k)})};f.all=function(e){var g=$jscomp.makeIterator(e),k=g.next();return k.done?c([]):new f(function(l,
m){function n(r){return function(t){p[r]=t;q--;0==q&&l(p)}}var p=[],q=0;do p.push(void 0),q++,c(k.value).callWhenSettled_(n(p.length-1),m),k=g.next();while(!k.done)})};return f},"es6","es3");$jscomp.iteratorFromArray=function(a,b){a instanceof String&&(a+="");var c=0,d=!1,f={next:function(){if(!d&&c<a.length){var h=c++;return{value:b(h,a[h]),done:!1}}d=!0;return{done:!0,value:void 0}}};f[Symbol.iterator]=function(){return f};return f};
$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b){return b})}},"es6","es3");$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,f=0;f<d;f++){var h=a[f];if(b.call(c,h,f,a))return{i:f,v:h}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(b,c){return $jscomp.findInternal(this,b,c).v}},"es6","es3");
$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""};
$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279<b)throw new RangeError("Invalid count value");b|=0;for(var d="";b;)if(b&1&&(d+=c),b>>>=1)c+=c;return d}},"es6","es3");$jscomp.polyfill("Math.log10",function(a){return a?a:function(b){return Math.log(b)/Math.LN10}},"es6","es3");
var __awaiter=this&&this.__awaiter||function(a,b,c,d){function f(h){return h instanceof c?h:new c(function(e){e(h)})}return new (c||(c=Promise))(function(h,e){function g(m){try{l(d.next(m))}catch(n){e(n)}}function k(m){try{l(d["throw"](m))}catch(n){e(n)}}function l(m){m.done?h(m.value):f(m.value).then(g,k)}l((d=d.apply(a,b||[])).next())})},CSRankings=function(){var a=this;this.note={};this.authorFile="./csrankings.csv";this.authorinfoFile="./generated-author-info.csv";this.countryinfoFile="./country-info.csv";
this.turingFile="./turing.csv";this.turingImage="./png/acm-turing-award.png";this.acmfellowFile="./acm-fellows.csv";this.acmfellowImage="./png/acm.png";this.homepageImage="./house-logo.png";this.allowRankingChange=!1;this.areaMap=[{area:"ai",title:"AI"},{area:"aaai",title:"AI"},{area:"ijcai",title:"AI"},{area:"vision",title:"Vision"},{area:"cvpr",title:"Vision"},{area:"eccv",title:"Vision"},{area:"iccv",title:"Vision"},{area:"mlmining",title:"ML"},{area:"icml",title:"ML"},{area:"kdd",title:"ML"},
{area:"nips",title:"ML"},{area:"nlp",title:"NLP"},{area:"acl",title:"NLP"},{area:"emnlp",title:"NLP"},{area:"naacl",title:"NLP"},{area:"ir",title:"Web+IR"},{area:"sigir",title:"Web+IR"},{area:"www",title:"Web+IR"},{area:"arch",title:"Arch"},{area:"asplos",title:"Arch"},{area:"isca",title:"Arch"},{area:"micro",title:"Arch"},{area:"hpca",title:"Arch"},{area:"comm",title:"Networks"},{area:"sigcomm",title:"Networks"},{area:"nsdi",title:"Networks"},{area:"sec",title:"Security"},{area:"ccs",title:"Security"},
{area:"oakland",title:"Security"},{area:"usenixsec",title:"Security"},{area:"ndss",title:"Security"},{area:"pets",title:"Security"},{area:"mod",title:"DB"},{area:"sigmod",title:"DB"},{area:"vldb",title:"DB"},{area:"icde",title:"DB"},{area:"pods",title:"DB"},{area:"hpc",title:"HPC"},{area:"sc",title:"HPC"},{area:"hpdc",title:"HPC"},{area:"ics",title:"HPC"},{area:"mobile",title:"Mobile"},{area:"mobicom",title:"Mobile"},{area:"mobisys",title:"Mobile"},{area:"sensys",title:"Mobile"},{area:"metrics",title:"Metrics"},
{area:"imc",title:"Metrics"},{area:"sigmetrics",title:"Metrics"},{area:"ops",title:"OS"},{area:"sosp",title:"OS"},{area:"osdi",title:"OS"},{area:"fast",title:"OS"},{area:"usenixatc",title:"OS"},{area:"eurosys",title:"OS"},{area:"pldi",title:"PL"},{area:"popl",title:"PL"},{area:"icfp",title:"PL"},{area:"oopsla",title:"PL"},{area:"plan",title:"PL"},{area:"soft",title:"SE"},{area:"fse",title:"SE"},{area:"icse",title:"SE"},{area:"ase",title:"SE"},{area:"issta",title:"SE"},{area:"act",title:"Theory"},
{area:"focs",title:"Theory"},{area:"soda",title:"Theory"},{area:"stoc",title:"Theory"},{area:"crypt",title:"Crypto"},{area:"crypto",title:"Crypto"},{area:"eurocrypt",title:"Crypto"},{area:"log",title:"Logic"},{area:"cav",title:"Logic"},{area:"lics",title:"Logic"},{area:"graph",title:"Graphics"},{area:"siggraph",title:"Graphics"},{area:"siggraph-asia",title:"Graphics"},{area:"chi",title:"HCI"},{area:"chiconf",title:"HCI"},{area:"ubicomp",title:"HCI"},{area:"uist",title:"HCI"},{area:"robotics",title:"Robotics"},
{area:"icra",title:"Robotics"},{area:"iros",title:"Robotics"},{area:"rss",title:"Robotics"},{area:"bio",title:"Comp. Bio"},{area:"ismb",title:"Comp. Bio"},{area:"recomb",title:"Comp. Bio"},{area:"da",title:"EDA"},{area:"dac",title:"EDA"},{area:"iccad",title:"EDA"},{area:"bed",title:"Embedded"},{area:"emsoft",title:"Embedded"},{area:"rtas",title:"Embedded"},{area:"rtss",title:"Embedded"},{area:"visualization",title:"Visualization"},{area:"vis",title:"Visualization"},{area:"vr",title:"Visualization"},
{area:"ecom",title:"ECom"},{area:"ec",title:"ECom"},{area:"wine",title:"ECom"}];this.aiAreas=["ai","vision","mlmining","nlp","ir"];this.systemsAreas="arch comm sec mod hpc mobile metrics ops plan soft da bed".split(" ");this.theoryAreas=["act","crypt","log"];this.interdisciplinaryAreas="graph chi robotics bio visualization ecom".split(" ");this.areaNames=[];this.fields=[];this.aiFields=[];this.systemsFields=[];this.theoryFields=[];this.otherFields=[];this.areaDict={};this.areaPosition={};this.scholarInfo=
{};this.aliases={};this.turing={};this.acmfellow={};this.countryInfo={};this.countryAbbrv={};this.homepages={};this.useDenseRankings=!1;this.authors=[];this.dblpAuthors={};this.authorAreas={};this.stats={};this.areaDeptAdjustedCount={};this.areaStringMap={};this.color="#f30000 #0600f3 #00b109 #14e4b4 #0fe7fb #67f200 #ff7e00 #8fe4fa #ff5300 #640000 #3854d1 #d00ed8 #7890ff #01664d #04231b #e9f117 #f3228e #7ce8ca #ff5300 #ff5300 #7eff30 #9a8cf6 #79aff9 #bfbfbf #56b510 #00e2f6 #ff4141 #61ff41".split(" ");
this.RightTriangle="►";this.DownTriangle="▼";this.PieChart="<img alt='closed piechart' src='png/piechart.png'>";this.OpenPieChart="<img alt='opened piechart' src='png/piechart-open.png'>";CSRankings.theInstance=this;this.navigoRouter=new Navigo(null,!0);for(var b=0;b<this.areaMap.length;b++){var c=this.areaMap[b],d=c.area;c=c.title;CSRankings.areas[b]=d;d in CSRankings.parentMap||(CSRankings.topLevelAreas[d]=d);d in CSRankings.nextTier||(CSRankings.topTierAreas[d]=d);this.areaNames[b]=
c;this.fields[b]=d;this.areaDict[d]=c;this.areaPosition[d]=b}d=$jscomp.makeIterator(this.aiAreas);for(b=d.next();!b.done;b=d.next())this.aiFields.push(this.areaPosition[b.value]);d=$jscomp.makeIterator(this.systemsAreas);for(b=d.next();!b.done;b=d.next())this.systemsFields.push(this.areaPosition[b.value]);d=$jscomp.makeIterator(this.theoryAreas);for(b=d.next();!b.done;b=d.next())this.theoryFields.push(this.areaPosition[b.value]);d=$jscomp.makeIterator(this.interdisciplinaryAreas);for(b=d.next();!b.done;b=
d.next())this.otherFields.push(this.areaPosition[b.value]);b=0;for(var f in CSRankings.parentMap)d=CSRankings.parentMap[f],d in CSRankings.childMap?CSRankings.childMap[d].push(f):(CSRankings.childMap[d]=[f],CSRankings.parentIndex[d]=b,b+=1);this.displayProgress(1);(function(){return __awaiter(a,void 0,void 0,function e(){var g=this;return $jscomp.generator.createGenerator(e,function(k){switch(k.nextAddress){case 1:return k.yield(g.loadTuring(g.turing),2);case 2:return k.yield(g.loadACMFellow(g.acmfellow),
3);case 3:return g.displayProgress(2),k.yield(g.loadAuthorInfo(),4);case 4:return g.displayProgress(3),k.yield(g.loadAuthors(),5);case 5:return g.setAllOn(),g.navigoRouter.on({"/index":g.navigation,"/fromyear/:fromyear/toyear/:toyear/index":g.navigation}).resolve(),g.displayProgress(4),g.countAuthorAreas(),k.yield(g.loadCountryInfo(g.countryInfo,g.countryAbbrv),6);case 6:g.addListeners(),CSRankings.geoCheck(),g.rank(),k.jumpToEnd()}})})})()};
CSRankings.updateMinimum=function(a){return 500>=CSRankings.minToRank?(a=a.scrollTop,CSRankings.minToRank=5E3,CSRankings.getInstance().rank(),a):0};CSRankings.getInstance=function(){return CSRankings.theInstance};CSRankings.promise=function(a){"undefined"!==typeof Promise?Promise.resolve().then(a):setTimeout(a,0)};
CSRankings.prototype.translateNameToDBLP=function(a){a=a.replace(/ Jr\./g,"_Jr.");a=a.replace(/ II/g,"_II");a=a.replace(/ III/g,"_III");a=a.replace(/'|\-|\./g,"=");a=he.encode(a,{useNamedReferences:!0,allowUnsafeSymbols:!0});a=a.replace(/&/g,"=");a=a.replace(/;/g,"=");a=a.split(" ");var b=a[a.length-1];0<parseInt(b)&&(a.pop(),b=a[a.length-1]+"_"+b);a.pop();a=a.join(" ");a=a.replace(/\s/g,"_");a=a.replace(/\-/g,"=");a=encodeURIComponent(a);return"https://dblp.org/pers/hd/"+(b[0].toLowerCase()+"/"+
b+":"+a)};CSRankings.prototype.makePrologue=function(){return'<div class="table-responsive" style="overflow:auto; height:700px;"><table class="table table-fit table-sm table-striped"id="ranking" valign="top">'};CSRankings.sum=function(a){for(var b=0,c=0;c<a.length;c++)b+=a[c];return b};CSRankings.average=function(a){return CSRankings.sum(a)/a.length};CSRankings.stddev=function(a){var b=CSRankings.average(a),c=a.map(function(d){d-=b;return d*d});return Math.sqrt(CSRankings.sum(c)/(a.length-1))};
CSRankings.prototype.areaString=function(a){if(a in this.areaStringMap)return this.areaStringMap[a];if(!this.authorAreas[a])return"";var b={},c=CSRankings.topTierAreas,d=0,f;for(f in c)c=this.authorAreas[a][f],f in CSRankings.parentMap&&(f=this.areaDict[f]),0<c&&(f in b||(b[f]=0),b[f]+=c,d=b[f]>d?b[f]:d);f=[];for(var h in b)f.push(b[h]);h=CSRankings.sum(f);c=0;1<f.length&&(c=Math.ceil(1*CSRankings.stddev(f)));f=[];for(var e in b)b[e]>=d-c&&.2<=1*b[e]/h&&1<b[e]&&f.push(e);d=f.sort(function(g,k){return b[k]-
b[g]}).slice(0,3).join(",");return this.areaStringMap[a]=d};CSRankings.prototype.compareNames=function(a,b){a=a.split(" ");b=b.split(" ");a=a[a.length-1];b=b[b.length-1];return a<b?-1:a>b?1:0};
CSRankings.prototype.makeChart=function(a){var b=[],c={},d=CSRankings.topTierAreas,f=unescape(a),h;for(h in d){if(!(f in this.authorAreas))return;d=this.authorAreas[f][h];d=Math.round(10*d)/10;0<d&&(h in CSRankings.parentMap&&(h=CSRankings.parentMap[h]),h in c||(c[h]=0),c[h]+=d)}for(var e in c)b.push({label:this.areaDict[e],value:Math.round(10*c[e])/10,color:this.color[CSRankings.parentIndex[e]]});new d3pie(a+"-chart",{header:{title:{text:f,fontSize:24,font:"open sans"},subtitle:{text:"Publication Profile",
color:"#999999",fontSize:14,font:"open sans"},titleSubtitlePadding:9},size:{canvasHeight:500,canvasWidth:500,pieInnerRadius:"38%",pieOuterRadius:"83%"},data:{content:b,smallSegmentGrouping:{enabled:!0,value:1}},labels:{outer:{pieDistance:32},inner:{format:"value",hideWhenLessThanPercentage:5},mainLabel:{fontSize:10.5},percentage:{color:"#ffffff",decimalPlaces:0},value:{color:"#ffffff",fontSize:10},lines:{enabled:!0},truncation:{enabled:!0}},effects:{load:{effect:"none"},pullOutSegmentOnClick:{effect:"linear",
speed:400,size:8}},misc:{gradient:{enabled:!0,percentage:100}}})};CSRankings.prototype.displayProgress=function(a){var b="",c=1;["Initializing.","Loading author information.","Loading publication data.","Computing ranking."].map(function(d){b=c==a?b+("<strong>"+d+"</strong>"):b+("<font color='gray'>"+d+"</font>");b+="<br />";c+=1});document.querySelector("#progress").innerHTML=b};
CSRankings.prototype.loadTuring=function(a){return __awaiter(this,void 0,void 0,function c(){var d=this,f,h,e,g,k,l;return $jscomp.generator.createGenerator(c,function(m){if(1==m.nextAddress)return f=d,m.yield(new Promise(function(n){Papa.parse(f.turingFile,{header:!0,download:!0,complete:function(p){n(p.data)}})}),2);e=h=m.yieldResult;g=$jscomp.makeIterator(e);for(k=g.next();!k.done;k=g.next())l=k.value,a[l.name]=l.year;m.jumpToEnd()})})};
CSRankings.prototype.loadACMFellow=function(a){return __awaiter(this,void 0,void 0,function c(){var d=this,f,h,e,g,k,l;return $jscomp.generator.createGenerator(c,function(m){if(1==m.nextAddress)return f=d,m.yield(new Promise(function(n){Papa.parse(f.acmfellowFile,{header:!0,download:!0,complete:function(p){n(p.data)}})}),2);e=h=m.yieldResult;g=$jscomp.makeIterator(e);for(k=g.next();!k.done;k=g.next())l=k.value,a[l.name]=l.year;m.jumpToEnd()})})};
CSRankings.prototype.loadCountryInfo=function(a,b){return __awaiter(this,void 0,void 0,function d(){var f=this,h,e,g,k,l,m;return $jscomp.generator.createGenerator(d,function(n){if(1==n.nextAddress)return h=f,n.yield(new Promise(function(p){Papa.parse(h.countryinfoFile,{header:!0,download:!0,complete:function(q){p(q.data)}})}),2);g=e=n.yieldResult;k=$jscomp.makeIterator(g);for(l=k.next();!l.done;l=k.next())m=l.value,a[m.institution]=m.region,b[m.institution]=m.countryabbrv;n.jumpToEnd()})})};
CSRankings.prototype.loadAuthorInfo=function(){return __awaiter(this,void 0,void 0,function b(){var c=this,d,f,h,e,g,k,l;return $jscomp.generator.createGenerator(b,function(m){if(1==m.nextAddress)return d=c,m.yield(new Promise(function(n){Papa.parse(d.authorFile,{download:!0,header:!0,complete:function(p){n(p.data)}})}),2);h=f=m.yieldResult;for(e=0;e<h.length;e++){g=h[e];k=g.name.trim();if(l=k.match(CSRankings.nameMatcher))k=l[1].trim(),c.note[k]=l[2];""!==k&&(c.dblpAuthors[k]=c.translateNameToDBLP(k),
c.homepages[k]=g.homepage,c.scholarInfo[k]=g.scholarid)}m.jumpToEnd()})})};CSRankings.prototype.loadAuthors=function(){return __awaiter(this,void 0,void 0,function b(){var c=this,d,f;return $jscomp.generator.createGenerator(b,function(h){if(1==h.nextAddress)return d=c,h.yield(new Promise(function(e){Papa.parse(d.authorinfoFile,{download:!0,header:!0,complete:function(g){e(g.data)}})}),2);f=h.yieldResult;c.authors=f;h.jumpToEnd()})})};
CSRankings.prototype.inRegion=function(a,b){switch(b){case "us":if(a in this.countryInfo)return!1;break;case "at":case "au":case "br":case "ca":case "ch":case "cn":case "de":case "dk":case "es":case "fr":case "gr":case "hk":case "il":case "in":case "it":case "jp":case "kr":case "nl":case "nz":case "tr":case "uk":if(this.countryAbbrv[a]!=b)return!1;break;case "europe":if(!(a in this.countryInfo)||"europe"!=this.countryInfo[a])return!1;break;case "northamerica":if(a in this.countryInfo&&"canada"!=this.countryInfo[a])return!1;
break;case "australasia":if(!(a in this.countryInfo)||"australasia"!=this.countryInfo[a])return!1;break;case "southamerica":if(!(a in this.countryInfo)||"southamerica"!=this.countryInfo[a])return!1;break;case "asia":if(!(a in this.countryInfo)||"asia"!=this.countryInfo[a])return!1;break;case "africa":if(!(a in this.countryInfo)||"africa"!=this.countryInfo[a])return!1}return!0};
CSRankings.prototype.activateFields=function(a,b){for(var c=0;c<b.length;c++){var d=this.fields[b[c]],f="input[name="+d+"]";$(f).prop("checked",a);d in CSRankings.childMap&&($(f).prop("disabled",!1),CSRankings.childMap[d].forEach(function(h){var e="input[name="+h+"]";h in CSRankings.nextTier?$(e).prop("checked",!1):$(e).prop("checked",a)}))}this.rank();return!1};CSRankings.prototype.sortIndex=function(a){var b=Object.keys(a);b.sort(function(c,d){return a[c]!=a[d]?a[d]-a[c]:c<d?-1:d<c?1:0});return b};
CSRankings.prototype.countAuthorAreas=function(){var a=parseInt($("#fromyear").find(":selected").text()),b=parseInt($("#toyear").find(":selected").text());this.authorAreas={};for(var c in this.authors){var d=this.authors[c].area;if(!(d in CSRankings.nextTier)){var f=this.authors[c].year;if(!(f<a||f>b)){var h=this.authors[c];f=h.name;var e=h.dept;h=parseFloat(h.count);if(!(f in this.authorAreas)){this.authorAreas[f]={};for(var g in this.areaDict)this.areaDict.hasOwnProperty(g)&&(this.authorAreas[f][g]=
0)}if(!(e in this.authorAreas)){this.authorAreas[e]={};for(var k in this.areaDict)this.areaDict.hasOwnProperty(k)&&(this.authorAreas[e][k]=0)}this.authorAreas[f][d]+=h;this.authorAreas[e][d]+=h}}}};
CSRankings.prototype.buildDepartments=function(a,b,c,d,f,h,e,g){var k={},l;for(l in this.authors)if(this.authors.hasOwnProperty(l)){var m=this.authors[l],n=m.dept;if(this.inRegion(n,d)){var p=m.area;if(0!==c[p]){var q=m.year;if(!(q<a||q>b)&&"undefined"!==typeof n){m=m.name;p in CSRankings.parentMap&&(p=CSRankings.parentMap[p]);p+=n;p in this.areaDeptAdjustedCount||(this.areaDeptAdjustedCount[p]=0);q=parseInt(this.authors[l].count);var r=parseFloat(this.authors[l].adjustedcount);this.areaDeptAdjustedCount[p]+=
r;m in k||(k[m]=!0,e[m]=0,g[m]=0,n in f||(f[n]=0,h[n]=[]),h[n].push(m),f[n]+=1);e[m]+=q;g[m]+=r}}}}};CSRankings.prototype.computeStats=function(a,b,c){this.stats={};for(var d in a)if(a.hasOwnProperty(d)){this.stats[d]=1;for(var f in CSRankings.topLevelAreas){var h=f+d;h in this.areaDeptAdjustedCount||(this.areaDeptAdjustedCount[h]=0);0!=c[f]&&(this.stats[d]*=this.areaDeptAdjustedCount[h]+1)}this.stats[d]=Math.pow(this.stats[d],1/b)}};
CSRankings.prototype.updateWeights=function(a){for(var b=0,c=0;c<CSRankings.areas.length;c++){var d=CSRankings.areas[c];a[d]=$("input[name="+this.fields[c]+"]").prop("checked")?1:0;1!==a[d]||d in CSRankings.parentMap||b++}return b};
CSRankings.prototype.buildDropDown=function(a,b,c){var d=this,f={},h={},e;for(e in a){if(a.hasOwnProperty(e)){var g='<div class="table"><table class="table table-sm table-striped"><thead><th></th><td><small><em><abbr title="Click on an author\'s name to go to their home page.">Faculty</abbr></em></small></td><td align="right"><small><em> <abbr title="Total number of publications (click for DBLP entry)."># Pubs</abbr> </em></small></td><td align="right"><small><em><abbr title="Count divided by number of co-authors">Adj. #</abbr></em></small></td></thead><tbody>';h.$jscomp$loop$prop$fc$28=
{};for(var k=$jscomp.makeIterator(a[e]),l=k.next();!l.done;l=k.next())l=l.value,h.$jscomp$loop$prop$fc$28[l]=b[l];k=Object.keys(h.$jscomp$loop$prop$fc$28);k.sort(function(p){return function(q,r){return p.$jscomp$loop$prop$fc$28[r]===p.$jscomp$loop$prop$fc$28[q]?d.compareNames(q,r):p.$jscomp$loop$prop$fc$28[r]-p.$jscomp$loop$prop$fc$28[q]}}(h));k=$jscomp.makeIterator(k);for(l=k.next();!l.done;l=k.next()){l=l.value;var m=encodeURI(this.homepages[l]),n=this.dblpAuthors[l];g+='<tr><td> </td><td><small><a title="Click for author\'s home page." target="_blank" href="'+
m+'" onclick="trackOutboundLink(\''+m+"', true); return false;\">"+l+"</a> ";this.note.hasOwnProperty(l)&&(g+='<span class="note" title="Note">[<a href="'+(CSRankings.noteMap[this.note[l]]+'">')+this.note[l]+"</a>]</span> ");this.acmfellow.hasOwnProperty(l)&&(g+='<span title="ACM Fellow ('+this.acmfellow[l]+')"><img alt="ACM Fellow" src="'+this.acmfellowImage+'"></span> ');this.turing.hasOwnProperty(l)&&(g+='<span title="Turing Award"><img alt="Turing Award" src="'+this.turingImage+
'"></span> ');g+='<span class="areaname">'+this.areaString(l).toLowerCase()+"</span> ";g+='<a title="Click for author\'s home page." target="_blank" href="'+m+'" onclick="trackOutboundLink(\''+m+'\', true); return false;"><img alt="Home page" src="'+this.homepageImage+'"></a> ';this.scholarInfo.hasOwnProperty(l)&&"NOSCHOLARPAGE"!=this.scholarInfo[l]&&(m="https://scholar.google.com/citations?user="+this.scholarInfo[l]+"&hl=en&oi=ao",g+='<a title="Click for author\'s Google Scholar page." target="_blank" href="'+
m+'" onclick="trackOutboundLink(\''+m+'\', true); return false;"><img alt="Google Scholar" src="scholar-favicon.ico" height="10" width="10"></a> ');g+='<a title="Click for author\'s DBLP entry." target="_blank" href="'+n+'" onclick="trackOutboundLink(\''+n+"', true); return false;\">";g+='<img alt="DBLP" src="dblp.png"></a>';g+="<span onclick='csr.toggleChart(\""+escape(l)+'");\' title="Click for author\'s publication profile." class="hovertip" id="'+(escape(l)+'-chartwidget">');g+="<span class='piechart'>"+
this.PieChart+'</span></span></small></td><td align="right"><small><a title="Click for author\'s DBLP entry." target="_blank" href="'+n+'" onclick="trackOutboundLink(\''+n+"', true); return false;\">"+h.$jscomp$loop$prop$fc$28[l]+'</a></small></td><td align="right"><small>'+(Math.round(10*c[l])/10).toFixed(1)+'</small></td></tr><tr><td colspan="4"><div class="csr-piechart" id="'+escape(l)+'-chart"></div></td></tr>'}g+="</tbody></table></div>";f[e]=g}h={$jscomp$loop$prop$fc$28:h.$jscomp$loop$prop$fc$28}}return f};
CSRankings.prototype.buildOutputString=function(a,b,c,d,f){var h=this.makePrologue();h=h+'<thead><tr><th align="left"><font color="#777">#</font></th><th align="left"><font color="#777">Institution</font>'+" ".repeat(20)+'</th><th align="right"><abbr title="Geometric mean count of papers published across all areas."><font color="#777">Count</font></abbr></th><th align="right"> <abbr title="Number of faculty who have published in these areas."><font color="#777">Faculty</font></abbr></th></th></tr></thead>';
h+="<tbody>";if(0<a){a=1;var e=0,g=9999999.999;for(k in this.stats)this.stats[k]=Math.round(10*this.stats[k])/10;var k=this.sortIndex(this.stats);for(var l=0;l<k.length;l++){var m=k[l],n=this.stats[m];if(l>=f&&n!=g)break;if(0===n)break;g!=n&&(this.useDenseRankings?e+=1:(e+=a,a=0));g=escape(m);h+="\n<tr><td>"+e;h+=" ".repeat(4-Math.ceil(Math.log10(e)));h+="</td>";h+='<td><span class="hovertip" onclick="csr.toggleFaculty(\''+g+'\');" id="'+g+'-widget">'+this.RightTriangle+"</span>";var p="us";
m in b&&(p=b[m]);h+=" "+m+(' <img src="/flags/'+p+'.png"> <span class="hovertip" onclick="csr.toggleChart(\'')+g+'\');" id="'+g+'-chartwidget">'+this.PieChart+"</span>";h+="</td>";h+='<td align="right">'+(Math.round(10*n)/10).toFixed(1)+"</td>";h+='<td align="right">'+c[m];h+="</td>";h+="</tr>\n";h+='<tr><td colspan="4"><div class="csr-piechart" id="'+g+'-chart"></div></td></tr>';h+='<tr><td colspan="4"><div style="display:none;" id="'+g+'-faculty">'+d[m]+"</div></td></tr>";a++;g=n}h+=
"</tbody></table><br /></div></div>\n<br></body></html>"}else h="<h3>Please select at least one area by clicking one or more checkboxes.</h3>";return h};CSRankings.prototype.setAllOn=function(a){a=void 0===a?!0:a;for(var b=0;b<CSRankings.areas.length;b++){var c=this.fields[b],d="input[name="+c+"]";a?c in CSRankings.nextTier?$(d).prop("checked",!1):($(d).prop("checked",!0),$(d).prop("disabled",!1)):($(d).prop("checked",!1),$(d).prop("disabled",!1))}};
CSRankings.prototype.rank=function(a){a=void 0===a?!0:a;var b=performance.now(),c={},d={},f={},h={},e={};this.areaDeptAdjustedCount={};var g=parseInt($("#fromyear").find(":selected").text()),k=parseInt($("#toyear").find(":selected").text()),l=String($("#regions").find(":selected").val()),m=this.updateWeights(e);this.buildDepartments(g,k,e,l,d,c,f,h);this.computeStats(c,m,e);c=this.buildDropDown(c,f,h);d=this.buildOutputString(m,this.countryAbbrv,d,c,CSRankings.minToRank);m=performance.now();console.log("Before render: rank took "+
(m-b)+" milliseconds.");document.getElementById("success").innerHTML=d;$("div").scroll(function(){if(this.scrollTop+this.clientHeight>this.scrollHeight-50){var n=CSRankings.updateMinimum(this);n&&$("div").scrollTop(n)}});a?this.navigoRouter.resume():this.navigoRouter.pause();a=this.updatedURL();this.navigoRouter.navigate(a);m=performance.now();console.log("Rank took "+(m-b)+" milliseconds.");return!1};
CSRankings.prototype.toggleChart=function(a){var b=document.getElementById(a+"-chart"),c=document.getElementById(a+"-chartwidget");"block"===b.style.display?(b.style.display="none",b.innerHTML="",c.innerHTML=this.PieChart):(b.style.display="block",this.makeChart(a),c.innerHTML=this.OpenPieChart)};
CSRankings.prototype.toggleConferences=function(a){var b=document.getElementById(a+"-conferences");a=document.getElementById(a+"-widget");"block"===b.style.display?(b.style.display="none",a.innerHTML=this.RightTriangle):(b.style.display="block",a.innerHTML=this.DownTriangle)};
CSRankings.prototype.toggleFaculty=function(a){var b=document.getElementById(a+"-faculty");a=document.getElementById(a+"-widget");"block"===b.style.display?(b.style.display="none",a.innerHTML=this.RightTriangle):(b.style.display="block",a.innerHTML=this.DownTriangle)};CSRankings.prototype.activateAll=function(a){this.setAllOn(void 0===a?!0:a);this.rank();return!1};CSRankings.prototype.activateNone=function(){return this.activateAll(!1)};
CSRankings.prototype.activateSystems=function(a){return this.activateFields(void 0===a?!0:a,this.systemsFields)};CSRankings.prototype.activateAI=function(a){return this.activateFields(void 0===a?!0:a,this.aiFields)};CSRankings.prototype.activateTheory=function(a){return this.activateFields(void 0===a?!0:a,this.theoryFields)};CSRankings.prototype.activateOthers=function(a){return this.activateFields(void 0===a?!0:a,this.otherFields)};CSRankings.prototype.deactivateSystems=function(){return this.activateSystems(!1)};
CSRankings.prototype.deactivateAI=function(){return this.activateAI(!1)};CSRankings.prototype.deactivateTheory=function(){return this.activateTheory(!1)};CSRankings.prototype.deactivateOthers=function(){return this.activateOthers(!1)};
CSRankings.prototype.updatedURL=function(){for(var a="",b=0,c=0,d={},f=0;f<this.fields.length;d={$jscomp$loop$prop$allChecked$30:d.$jscomp$loop$prop$allChecked$30},f++){var h="input[name="+this.fields[f]+"]";this.fields[f]in CSRankings.parentMap||(c+=1);!$(h).prop("checked")||this.fields[f]in CSRankings.parentMap||(d.$jscomp$loop$prop$allChecked$30=1,this.fields[f]in CSRankings.childMap&&CSRankings.childMap[this.fields[f]].forEach(function(k){return function(l){var m=$("input[name="+l+"]").prop("checked");
k.$jscomp$loop$prop$allChecked$30=l in CSRankings.nextTier?k.$jscomp$loop$prop$allChecked$30&(m?0:1):k.$jscomp$loop$prop$allChecked$30&m}}(d)),d.$jscomp$loop$prop$allChecked$30&&(a+=this.fields[f]+"&",b+=1))}0<b&&(a=a.slice(0,-1));d=$("#regions").find(":selected").val();f="";h=(new Date).getFullYear();var e=parseInt($("#fromyear").find(":selected").text()),g=parseInt($("#toyear").find(":selected").text());if(e!=h-10||g!=h)f+="/fromyear/"+e.toString(),f+="/toyear/"+g.toString();f=b==c?f+"/index?all":
0==b?f+"/index?none":f+("/index?"+a);"USA"!=d&&(f+="&"+d);return f};CSRankings.geoCheck=function(){navigator.geolocation.getCurrentPosition(function(a){a=whichContinent(a.coords.latitude,a.coords.longitude);var b=document.getElementById("regions");switch(a){case "northamerica":return;case "europe":case "asia":case "southamerica":case "africa":b.value=a;break;default:b.value="world"}CSRankings.getInstance().rank()})};
CSRankings.prototype.navigation=function(a,b){null!==a&&Object.keys(a).forEach(function(e){$("#"+e).prop("value",a[e].toString())});CSRankings.clearNonSubsetted();var c=b.split("&");b=c.some(function(e){return"all"==e});var d=c.some(function(e){return"none"==e});if(c.some(function(e){return 0<=CSRankings.regions.indexOf(e)})){var f=0;c.forEach(function(e){0<=CSRankings.regions.indexOf(e)&&c.splice(f,1);$("#regions").val(e);f+=1})}if(b)for(var h in CSRankings.topTierAreas)b="input[name="+h+"]",$(b).prop("checked",
!0),h in CSRankings.childMap&&($(b).prop("disabled",!1),CSRankings.childMap[h].forEach(function(e){e in CSRankings.nextTier||$("input[name="+e+"]").prop("checked",!0)}));else if(d)CSRankings.clearNonSubsetted();else for(CSRankings.clearNonSubsetted(),h=$jscomp.makeIterator(c),b=h.next();!b.done;b=h.next())b=b.value,"none"!=b&&""!=b&&(d="input[name="+b+"]",$(d).prop("checked",!0),$(d).prop("disabled",!1),b in CSRankings.childMap&&CSRankings.childMap[b].forEach(function(e){e in CSRankings.nextTier||
$("input[name="+e+"]").prop("checked",!0)}))};CSRankings.clearNonSubsetted=function(){for(var a=$jscomp.makeIterator(CSRankings.areas),b=a.next();!b.done;b=a.next()){var c=b.value;c in CSRankings.childMap&&(b=CSRankings.childMap[c],CSRankings.subsetting(b)||(c="input[name="+c+"]",$(c).prop("checked",!1),$(c).prop("disabled",!1),b.forEach(function(d){$("input[name="+d+"]").prop("checked",!1)})))}};
CSRankings.subsetting=function(a){var b=[],c=[];a.forEach(function(h){h in CSRankings.nextTier?c.push(h):b.push(h)});var d=0;b.forEach(function(h){$("input[name="+h+"]").prop("checked")&&d++});var f=0;c.forEach(function(h){$("input[name="+h+"]").prop("checked")&&f++});a=0<f&&0!=c.length;return 0<d&&d<b.length||a};
CSRankings.prototype.addListeners=function(){var a=this;["toyear","fromyear","regions"].forEach(function(e){document.getElementById(e).addEventListener("change",function(){a.countAuthorAreas();a.rank()})});for(var b={},c=0;c<CSRankings.areas.length;b={$jscomp$loop$prop$area$32:b.$jscomp$loop$prop$area$32},c++)if(b.$jscomp$loop$prop$area$32=CSRankings.areas[c],!(b.$jscomp$loop$prop$area$32 in CSRankings.parentMap)){var d=document.getElementById(b.$jscomp$loop$prop$area$32+"-widget");d&&d.addEventListener("click",
function(e){return function(){a.toggleConferences(e.$jscomp$loop$prop$area$32)}}(b))}b={};for(c=0;c<this.fields.length;b={$jscomp$loop$prop$field$34:b.$jscomp$loop$prop$field$34,$jscomp$loop$prop$str$35:b.$jscomp$loop$prop$str$35},c++)b.$jscomp$loop$prop$str$35="input[name="+this.fields[c]+"]",b.$jscomp$loop$prop$field$34=this.fields[c],(d=document.getElementById(this.fields[c]))&&d.addEventListener("click",function(e){return function(){var g=!0;if(e.$jscomp$loop$prop$field$34 in CSRankings.parentMap){g=
!1;var k=CSRankings.parentMap[e.$jscomp$loop$prop$field$34],l="input[name="+k+"]",m=0,n=1;CSRankings.childMap[k].forEach(function(r){var t=$("input[name="+r+"]").prop("checked");m|=t;n=r in CSRankings.nextTier?n&(t?0:1):n&t});$(l).prop("checked",m);m&&!n||$(l).prop("disabled",!1);m&&!n&&$(l).prop("disabled",!0)}else if(k=$(e.$jscomp$loop$prop$str$35).prop("checked"),e.$jscomp$loop$prop$field$34 in CSRankings.childMap){l=$jscomp.makeIterator(CSRankings.childMap[e.$jscomp$loop$prop$field$34]);for(var p=
l.next();!p.done;p=l.next()){p=p.value;var q="input[name="+p+"]";p in CSRankings.nextTier?$(q).prop("checked",!1):$(q).prop("checked",k)}}a.rank(g)}}(b));var f={all_areas_on:function(){a.activateAll()},all_areas_off:function(){a.activateNone()},ai_areas_on:function(){a.activateAI()},ai_areas_off:function(){a.deactivateAI()},systems_areas_on:function(){a.activateSystems()},systems_areas_off:function(){a.deactivateSystems()},theory_areas_on:function(){a.activateTheory()},theory_areas_off:function(){a.deactivateTheory()},
other_areas_on:function(){a.activateOthers()},other_areas_off:function(){a.deactivateOthers()}};b={};for(var h in f)b.$jscomp$loop$prop$item$37=h,document.getElementById(b.$jscomp$loop$prop$item$37).addEventListener("click",function(e){return function(){f[e.$jscomp$loop$prop$item$37]()}}(b)),b={$jscomp$loop$prop$item$37:b.$jscomp$loop$prop$item$37}};CSRankings.minToRank=30;CSRankings.areas=[];CSRankings.topLevelAreas={};CSRankings.topTierAreas={};CSRankings.regions="us europe ca northamerica southamerica australasia asia africa world".split(" ");
CSRankings.nameMatcher=/(.*)\s+\[(.*)\]/;CSRankings.parentIndex={};
CSRankings.parentMap={aaai:"ai",ijcai:"ai",cvpr:"vision",eccv:"vision",iccv:"vision",icml:"mlmining",kdd:"mlmining",nips:"mlmining",acl:"nlp",emnlp:"nlp",naacl:"nlp",sigir:"ir",www:"ir",asplos:"arch",isca:"arch",micro:"arch",hpca:"arch",ccs:"sec",oakland:"sec",usenixsec:"sec",ndss:"sec",pets:"sec",vldb:"mod",sigmod:"mod",icde:"mod",pods:"mod",dac:"da",iccad:"da",emsoft:"bed",rtas:"bed",rtss:"bed",sc:"hpc",hpdc:"hpc",ics:"hpc",mobicom:"mobile",mobisys:"mobile",sensys:"mobile",imc:"metrics",sigmetrics:"metrics",
osdi:"ops",sosp:"ops",eurosys:"ops",fast:"ops",usenixatc:"ops",popl:"plan",pldi:"plan",oopsla:"plan",icfp:"plan",fse:"soft",icse:"soft",ase:"soft",issta:"soft",nsdi:"comm",sigcomm:"comm",siggraph:"graph","siggraph-asia":"graph",focs:"act",soda:"act",stoc:"act",crypto:"crypt",eurocrypt:"crypt",cav:"log",lics:"log",ismb:"bio",recomb:"bio",ec:"ecom",wine:"ecom",chiconf:"chi",ubicomp:"chi",uist:"chi",icra:"robotics",iros:"robotics",rss:"robotics",vis:"visualization",vr:"visualization"};
CSRankings.nextTier={ase:!0,issta:!0,icde:!0,pods:!0,hpca:!0,ndss:!0,pets:!0,eurosys:!0,fast:!0,usenixatc:!0,icfp:!0,oopsla:!0};CSRankings.childMap={};CSRankings.noteMap={Tech:"https://tech.cornell.edu/",CBG:"https://www.cis.mpg.de/cbg/",INF:"https://www.cis.mpg.de/mpi-inf/",IS:"https://www.cis.mpg.de/is/",MG:"https://www.cis.mpg.de/molgen/",SP:"https://www.cis.mpg.de/mpi-for-security-and-privacy/",SWS:"https://www.cis.mpg.de/mpi-sws/"};var csr=new CSRankings;