12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091(* Autogenerated by gen_services.ml, do not edit directly *)lettcp_port_of_service_tables=([|"9pfs";"acap";"auth";"bgp";"bootpc";"bootps";"chargen";"daytime";"dctp";"dhcpv6-client";"dhcpv6-server";"discard";"domain";"echo";"efs";"finger";"ftp";"ftp-data";"ftps";"ftps-data";"genrad-mux";"git";"gopher";"http";"https";"ident";"imap";"imap4-ssl";"imaps";"ipx";"irc";"irc-serv";"ircs";"kerberos";"kerberos-adm";"keyserver";"klogin";"kpasswd";"kshell";"ldap";"msp";"netbios-dgm";"netbios-ns";"netbios-ssn";"nmap";"nntp";"ntalk";"ntp";"pirp";"pop3";"pop3s";"printer";"qmtp";"rsync";"rtsp";"silc";"smtp";"ssh";"sunrpc";"syslog-conn";"systat";"talk";"telnet";"telnets";"tftp";"time";"utime";"www";"www-http";"xdmcp";|],[|[564];[674];[113];[179];[68];[67];[19];[13];[675];[546];[547];[9];[53];[7];[520];[79];[21];[20];[990];[989];[176];[9418];[70];[80];[443];[113];[143];[585];[993];[213];[194];[529];[994];[88];[749];[584];[543];[464];[544];[389];[18];[138];[137];[139];[689];[119];[518];[123];[553];[110];[995];[515];[209];[873];[554];[706];[25];[22];[111];[601];[11];[517];[23];[992];[69];[37];[519];[80];[80];[177];|])letudp_port_of_service_tables=([|"9pfs";"acap";"auth";"bgp";"bootpc";"bootps";"daytime";"dctp";"dhcpv6-client";"dhcpv6-server";"discard";"domain";"echo";"finger";"ftp";"ftp-data";"ftps";"ftps-data";"git";"gopher";"http";"https";"imap";"imap4-ssl";"imaps";"ipx";"irc";"irc-serv";"ircs";"kerberos";"kerberos-adm";"keyserver";"klogin";"kpasswd";"kshell";"ldap";"msp";"netbios-dgm";"netbios-ns";"netbios-ssn";"nmap";"nntp";"ntalk";"ntp";"pirp";"pop3";"pop3s";"printer";"qmtp";"rsync";"rtsp";"silc";"smtp";"ssh";"sunrpc";"syslog";"syslog-conn";"systat";"talk";"telnet";"telnets";"tftp";"time";"utime";"www";"www-http";"xdmcp";|],[|[564];[674];[113];[179];[68];[67];[13];[675];[546];[547];[9];[53];[7];[79];[21];[20];[990];[989];[9418];[70];[80];[443];[143];[585];[993];[213];[194];[529];[994];[88];[749];[584];[543];[464];[544];[389];[18];[138];[137];[139];[689];[119];[518];[123];[553];[110];[995];[515];[209];[873];[554];[706];[25];[22];[111];[514];[601];[11];[517];[23];[992];[69];[37];[519];[80];[80];[177];|])letservice_of_tcp_port_tables=([|7;9;11;13;18;19;20;21;22;23;25;37;53;67;68;69;70;79;80;88;110;111;113;119;123;137;138;139;143;176;177;179;194;209;213;389;443;464;515;517;518;519;520;529;543;544;546;547;553;554;564;584;585;601;674;675;689;706;749;873;989;990;992;993;994;995;9418;|],[|["echo"];["discard"];["systat"];["daytime"];["msp"];["chargen"];["ftp-data"];["ftp"];["ssh"];["telnet"];["smtp"];["time"];["domain"];["bootps"];["bootpc"];["tftp"];["gopher"];["finger"];["www-http";"www";"http"];["kerberos"];["pop3"];["sunrpc"];["ident";"auth"];["nntp"];["ntp"];["netbios-ns"];["netbios-dgm"];["netbios-ssn"];["imap"];["genrad-mux"];["xdmcp"];["bgp"];["irc"];["qmtp"];["ipx"];["ldap"];["https"];["kpasswd"];["printer"];["talk"];["ntalk"];["utime"];["efs"];["irc-serv"];["klogin"];["kshell"];["dhcpv6-client"];["dhcpv6-server"];["pirp"];["rtsp"];["9pfs"];["keyserver"];["imap4-ssl"];["syslog-conn"];["acap"];["dctp"];["nmap"];["silc"];["kerberos-adm"];["rsync"];["ftps-data"];["ftps"];["telnets"];["imaps"];["ircs"];["pop3s"];["git"];|])letservice_of_udp_port_tables=([|7;9;11;13;18;20;21;22;23;25;37;53;67;68;69;70;79;80;88;110;111;113;119;123;137;138;139;143;177;179;194;209;213;389;443;464;514;515;517;518;519;529;543;544;546;547;553;554;564;584;585;601;674;675;689;706;749;873;989;990;992;993;994;995;9418;|],[|["echo"];["discard"];["systat"];["daytime"];["msp"];["ftp-data"];["ftp"];["ssh"];["telnet"];["smtp"];["time"];["domain"];["bootps"];["bootpc"];["tftp"];["gopher"];["finger"];["www-http";"www";"http"];["kerberos"];["pop3"];["sunrpc"];["auth"];["nntp"];["ntp"];["netbios-ns"];["netbios-dgm"];["netbios-ssn"];["imap"];["xdmcp"];["bgp"];["irc"];["qmtp"];["ipx"];["ldap"];["https"];["kpasswd"];["syslog"];["printer"];["talk"];["ntalk"];["utime"];["irc-serv"];["klogin"];["kshell"];["dhcpv6-client"];["dhcpv6-server"];["pirp"];["rtsp"];["9pfs"];["keyserver"];["imap4-ssl"];["syslog-conn"];["acap"];["dctp"];["nmap"];["silc"];["kerberos-adm"];["rsync"];["ftps-data"];["ftps"];["telnets"];["imaps"];["ircs"];["pop3s"];["git"];|])letknown_tcp_services=["9pfs";"acap";"auth";"bgp";"bootpc";"bootps";"chargen";"daytime";"dctp";"dhcpv6-client";"dhcpv6-server";"discard";"domain";"echo";"efs";"finger";"ftp";"ftp-data";"ftps";"ftps-data";"genrad-mux";"git";"gopher";"http";"https";"ident";"imap";"imap4-ssl";"imaps";"ipx";"irc";"irc-serv";"ircs";"kerberos";"kerberos-adm";"keyserver";"klogin";"kpasswd";"kshell";"ldap";"msp";"netbios-dgm";"netbios-ns";"netbios-ssn";"nmap";"nntp";"ntalk";"ntp";"pirp";"pop3";"pop3s";"printer";"qmtp";"rsync";"rtsp";"silc";"smtp";"ssh";"sunrpc";"syslog-conn";"systat";"talk";"telnet";"telnets";"tftp";"time";"utime";"www";"www-http";"xdmcp"]letknown_udp_services=["9pfs";"acap";"auth";"bgp";"bootpc";"bootps";"daytime";"dctp";"dhcpv6-client";"dhcpv6-server";"discard";"domain";"echo";"finger";"ftp";"ftp-data";"ftps";"ftps-data";"git";"gopher";"http";"https";"imap";"imap4-ssl";"imaps";"ipx";"irc";"irc-serv";"ircs";"kerberos";"kerberos-adm";"keyserver";"klogin";"kpasswd";"kshell";"ldap";"msp";"netbios-dgm";"netbios-ns";"netbios-ssn";"nmap";"nntp";"ntalk";"ntp";"pirp";"pop3";"pop3s";"printer";"qmtp";"rsync";"rtsp";"silc";"smtp";"ssh";"sunrpc";"syslog";"syslog-conn";"systat";"talk";"telnet";"telnets";"tftp";"time";"utime";"www";"www-http";"xdmcp"]letknown_services=[("tcp",known_tcp_services);("udp",known_udp_services)]letsearch_stringkeysk=letrecloopkeysklowhigh=iflow>highthen(-1)elsebeginletmid=(high+low)/2inletdiff=String.comparekkeys.(mid)inifdiff<0thenloopkeysklow(mid-1)elseifdiff>0thenloopkeysk(mid+1)highelsemidendinloopkeysk0(Array.lengthkeys-1)letsearch_intkeysk=letrecloopkeysklowhigh=iflow>highthen(-1)elsebeginletmid=(high+low)/2inletdiff=k-keys.(mid)inifdiff<0thenloopkeysklow(mid-1)elseifdiff>0thenloopkeysk(mid+1)highelsemidendinloopkeysk0(Array.lengthkeys-1)letlookupsearch(keys,values)k=leti=searchkeyskinifi<0then[]elsevalues.(i)letservice_of_tcp_portp=lookupsearch_intservice_of_tcp_port_tablespletservice_of_udp_portp=lookupsearch_intservice_of_udp_port_tablesplettcp_port_of_services=lookupsearch_stringtcp_port_of_service_tablessletudp_port_of_services=lookupsearch_stringudp_port_of_service_tablessletport_of_uri?defaultlookupfnuri=matchUri.porturiwith|Some_portasx->x|None->beginmatchUri.schemeuri,defaultwith|None,None->None|None,Somescheme|Somescheme,_->beginmatchlookupfnschemewith|[]->None|hd::_->Somehdendendlettcp_port_of_uri?defaulturi=port_of_uri?defaulttcp_port_of_serviceuriletudp_port_of_uri?defaulturi=port_of_uri?defaultudp_port_of_serviceuri