#include <stdio.h>
#define SOCIALMEDIASERVICES 37
#define URLSIZE 1024
#define ARGLENGTH 1024
/* Coded by HoldOffHunger, as part of the SocialShare github project.
*
* Why don't you check us out?
*
* https://g...content-available-to-author-only...b.com/bradvin/social-share-urls
*/
struct SocialMediaArgs_Interface {
char url[ ARGLENGTH] ;
char title[ ARGLENGTH] ;
char desc[ ARGLENGTH] ;
char image[ ARGLENGTH] ;
char app_id[ ARGLENGTH] ;
char redirect_url[ ARGLENGTH] ;
char via[ ARGLENGTH] ;
char hash_tags[ ARGLENGTH] ;
char provider[ ARGLENGTH] ;
char language[ ARGLENGTH] ;
char user_id[ ARGLENGTH] ;
char category[ ARGLENGTH] ;
char phone_number[ ARGLENGTH] ;
char email_address[ ARGLENGTH] ;
char cc_email_address[ ARGLENGTH] ;
char bcc_email_address[ ARGLENGTH] ;
} SocialMediaArgs_default = {
"http%3A%2F%2Fwww.earthfluent.com%2F" ,
"EarthFluent" ,
"Want%20to%20learn%20another%20language%3F%20%20Learn%20Spanish%2C%20French%2C%20Italian%2C%20German%2C%20Japanese%2C%20Chinese%2C%20Hindi%2C%20Indonesian%2C%20Dutch%2C%20Polish%2C%20Portuguese%2C%20or%20Russian%21" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
"" ,
""
} ;
typedef struct SocialMediaArgs_Interface SocialMediaArgs;
struct SocialMedia_Interface {
char urls[ SOCIALMEDIASERVICES] [ URLSIZE] ;
char urlsOrderedByPopularity[ SOCIALMEDIASERVICES] [ URLSIZE] ;
char urlsOrderedByName[ SOCIALMEDIASERVICES] [ URLSIZE] ;
} SocialMedia_default = {
{
} ,
{
"google.plus" ,
"google.bookmarks" ,
"facebook" ,
"reddit" ,
"twitter" ,
"linkedin" ,
"tumblr" ,
"pinterest" ,
"blogger" ,
"livejournal" ,
"evernote" ,
"add.this" ,
"getpocket" ,
"hacker.news" ,
"stumbleupon" ,
"digg" ,
"buffer" ,
"flipboard" ,
"instapaper" ,
"surfingbird.ru" ,
"flattr" ,
"diaspora" ,
"qzone" ,
"vk" ,
"weibo" ,
"ok.ru" ,
"douban" ,
"xing" ,
"renren" ,
"threema" ,
"sms" ,
"line.me" ,
"skype" ,
"telegram.me" ,
"email" ,
"gmail" ,
"yahoo" ,
} ,
{
"add.this" ,
"blogger" ,
"buffer" ,
"diaspora" ,
"digg" ,
"douban" ,
"email" ,
"evernote" ,
"facebook" ,
"flattr" ,
"flipboard" ,
"getpocket" ,
"gmail" ,
"google.bookmarks" ,
"google.plus" ,
"hacker.news" ,
"instapaper" ,
"line.me" ,
"linkedin" ,
"livejournal" ,
"ok.ru" ,
"pinterest" ,
"qzone" ,
"reddit" ,
"renren" ,
"skype" ,
"sms" ,
"stumbleupon" ,
"surfingbird.ru" ,
"telegram.me" ,
"threema" ,
"tumblr" ,
"twitter" ,
"vk" ,
"weibo" ,
"xing" ,
"yahoo" ,
} ,
} ;
typedef struct SocialMedia_Interface SocialMedia;
struct SocialMedia_Interface buildUrls( void ) {
SocialMediaArgs sma = SocialMediaArgs_default;
SocialMedia sm = SocialMedia_default;
char text[ ARGLENGTH] ;
sprintf ( text
, "%s%s%s" , sma.
title , "%20%3A%20" , sma.
desc ) ; } else {
}
char addthis[ URLSIZE] ;
sprintf ( addthis
, "%s%s" , "http://w...content-available-to-author-only...s.com/bookmark.php?url=" , sma.
url ) ;
char blogger[ URLSIZE] ;
sprintf ( blogger
, "%s%s%s%s%s%s" , "https://w...content-available-to-author-only...r.com/blog-this.g?u=" , sma.
url , "&n=" , sma.
title , "&t=" , sma.
desc ) ;
char buffer[ URLSIZE] ;
sprintf ( buffer
, "%s%s%s%s" , "https://b...content-available-to-author-only...r.com/add?text=" , text
, "&url=" , sma.
url ) ;
char diaspora[ URLSIZE] ;
sprintf ( diaspora
, "%s%s%s%s" , "https://s...content-available-to-author-only...n.org/?title=" , sma.
title , "&url=" , sma.
url ) ;
char digg[ URLSIZE] ;
sprintf ( digg
, "%s%s%s%s" , "http://d...content-available-to-author-only...g.com/submit?url=" , sma.
url , "&title=" , text
) ;
char douban[ URLSIZE] ;
sprintf ( douban
, "%s%s%s%s" , "http://w...content-available-to-author-only...n.com/recommend/?url=" , sma.
url , "&title=" , sma.
title ) ;
char email[ URLSIZE] ;
sprintf ( email
, "%s%s%s%s%s%s" , "mailto:" , sma.
email_address , "?subject=" , sma.
title , "&body=" , sma.
desc ) ;
char evernote[ URLSIZE] ;
sprintf ( evernote
, "%s%s%s%s" , "http://w...content-available-to-author-only...e.com/clip.action?url=" , sma.
url , "&title=" , sma.
title ) ;
char getpocket[ URLSIZE] ;
sprintf ( getpocket
, "%s%s" , "https://g...content-available-to-author-only...t.com/edit?url=" , sma.
url ) ;
char facebook[ URLSIZE] ;
sprintf ( facebook
, "%s%s" , "http://w...content-available-to-author-only...k.com/sharer.php?u=" , sma.
url ) ;
char flattr[ URLSIZE] ;
sprintf ( flattr
, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s" , "https://f...content-available-to-author-only...r.com/submit/auto?user_id=" , sma.
user_id , "&url=" , sma.
url , "&title=" , sma.
title , "&description=" , text
, "&language=" , sma.
language , "&tags=" , sma.
hash_tags , "&hidden=HIDDEN&category=" , sma.
category ) ;
char flipboard[ URLSIZE] ;
sprintf ( flipboard
, "%s%s%s%s" , "https://s...content-available-to-author-only...d.com/bookmarklet/popout?v=2&title=" , text
, "&url=" , sma.
url ) ;
char gmail[ URLSIZE] ;
sprintf ( gmail
, "%s%s%s%s%s%s%s%s%s%s" , "https://mail.google.com/mail/?view=cm&to=" , sma.
email_address , "&su=" , sma.
title , "&body=" , sma.
url , "&bcc=" , sma.
bcc_email_address , "&cc=" , sma.
cc_email_address ) ;
char googlebookmarks[ URLSIZE] ;
sprintf ( googlebookmarks
, "%s%s%s%s%s%s%s%s" , "https://www.google.com/bookmarks/mark?op=edit&bkmk=" , sma.
url , "&title=" , sma.
title , "&annotation=" , text
, "&labels=" , sma.
hash_tags ) ;
char instapaper[ URLSIZE] ;
sprintf ( instapaper
, "%s%s%s%s%s%s" , "http://w...content-available-to-author-only...r.com/edit?url=" , sma.
url , "&title=" , sma.
title , "&description=" , sma.
desc ) ;
char lineme[ URLSIZE] ;
sprintf ( lineme
, "%s%s%s%s" , "https://l...content-available-to-author-only...e.me/share/ui?url=" , sma.
url , "&text=" , text
) ;
char linkedin[ URLSIZE] ;
sprintf ( linkedin
, "%s%s%s%s%s%s%s%s" , "https://w...content-available-to-author-only...n.com/shareArticle?mini=true&url=" , sma.
url , "&title=" , sma.
title , "&summary=" , text
, "&source=" , sma.
provider ) ;
char livejournal[ URLSIZE] ;
sprintf ( livejournal
, "%s%s%s%s" , "http://w...content-available-to-author-only...l.com/update.bml?subject=" , text
, "&event=" , sma.
url ) ;
char hackernews[ URLSIZE] ;
sprintf ( hackernews
, "%s%s%s%s" , "https://n...content-available-to-author-only...r.com/submitlink?u=" , sma.
url , "&t=" , sma.
title ) ;
char okru[ URLSIZE] ;
sprintf ( okru
, "%s%s" , "https://c...content-available-to-author-only...k.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl=" , sma.
url ) ;
char pinterest[ URLSIZE] ;
sprintf ( pinterest
, "%s%s" , "http://p...content-available-to-author-only...t.com/pin/create/button/?url=" , sma.
url ) ;
char googleplus[ URLSIZE] ;
sprintf ( googleplus
, "%s%s%s%s%s%s" , "https://plus.google.com/share?url=" , sma.
url , "&text=" , text
, "&hl=" , sma.
language ) ;
char qzone[ URLSIZE] ;
sprintf ( qzone
, "%s%s" , "http://s...content-available-to-author-only...q.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=" , sma.
url ) ;
char reddit[ URLSIZE] ;
sprintf ( reddit
, "%s%s%s%s" , "https://r...content-available-to-author-only...t.com/submit?url=" , sma.
url , "&title=" , sma.
title ) ;
char renren[ URLSIZE] ;
sprintf ( renren
, "%s%s%s%s%s%s%s%s" , "http://w...content-available-to-author-only...n.com/dialog/share?resourceUrl=" , sma.
url , "&srcUrl=" , sma.
url , "&title=" , sma.
title , "&description=" , sma.
desc ) ;
char skype[ URLSIZE] ;
sprintf ( skype
, "%s%s%s%s" , "https://w...content-available-to-author-only...e.com/share?url=" , sma.
url , "&text=" , text
) ;
char sms[ URLSIZE] ;
sprintf ( sms
, "%s%s%s%s" , "sms:" , sma.
phone_number , "?body=" , text
) ;
char stumbleupon[ URLSIZE] ;
sprintf ( stumbleupon
, "%s%s%s%s" , "http://w...content-available-to-author-only...n.com/submit?url=" , sma.
url , "&title=" , text
) ;
char surfingbird[ URLSIZE] ;
sprintf ( surfingbird
, "%s%s%s%s%s%s%s%s" , "http://s...content-available-to-author-only...d.ru/share?url=" , sma.
url , "&description=" , sma.
desc , "&screenshot=" , sma.
image , "&title=" , sma.
title ) ;
char telegramme[ URLSIZE] ;
sprintf ( telegramme
, "%s%s%s%s%s%s" , "https://content-available-to-author-only.me/share/url?url=" , sma.
url , "&text=" , text
, "&to=" , sma.
phone_number ) ;
char threema[ URLSIZE] ;
sprintf ( threema
, "%s%s%s%s" , "threema://compose?text=" , text
, "&id=" , sma.
user_id ) ;
char tumblr[ URLSIZE] ;
sprintf ( tumblr
, "%s%s%s%s%s%s%s%s" , "https://w...content-available-to-author-only...r.com/widgets/share/tool?canonicalUrl=" , sma.
url , "&title=" , sma.
title , "&caption=" , sma.
desc , "&tags=" , sma.
hash_tags ) ;
char twitter[ URLSIZE] ;
sprintf ( twitter
, "%s%s%s%s%s%s%s%s" , "https://t...content-available-to-author-only...r.com/intent/tweet?url=" , sma.
url , "&text=" , text
, "&via=" , sma.
via , "&hashtags=" , sma.
hash_tags ) ;
char vk[ URLSIZE] ;
sprintf ( vk
, "%s%s%s%s%s%s" , "http://content-available-to-author-only.com/share.php?url=" , sma.
url , "&title=" , sma.
title , "&comments=" , sma.
desc ) ;
char weibo[ URLSIZE] ;
sprintf ( weibo
, "%s%s%s%s%s" , "http://s...content-available-to-author-only...o.com/share/share.php?url=" , sma.
url , "&appkey=&title=" , sma.
title , "&pic=&ralateUid=" ) ;
char xing[ URLSIZE] ;
sprintf ( xing
, "%s%s" , "https://w...content-available-to-author-only...g.com/app/user?op=share&url=" , sma.
url ) ;
char yahoo[ URLSIZE] ;
sprintf ( yahoo
, "%s%s%s%s%s%s" , "http://c...content-available-to-author-only...o.com/?to=" , sma.
email_address , "&subject=" , sma.
title , "&body=" , text
) ;
char urllist[ SOCIALMEDIASERVICES] [ URLSIZE] ;
int i = 0 ;
// NOTE : This ordering must identically match urlsOrderedByPopularity.
strcpy ( urllist
[ i
++ ] , googleplus
) ; strcpy ( urllist
[ i
++ ] , googlebookmarks
) ; strcpy ( urllist
[ i
++ ] , facebook
) ; strcpy ( urllist
[ i
++ ] , twitter
) ; strcpy ( urllist
[ i
++ ] , linkedin
) ; strcpy ( urllist
[ i
++ ] , pinterest
) ; strcpy ( urllist
[ i
++ ] , blogger
) ; strcpy ( urllist
[ i
++ ] , livejournal
) ; strcpy ( urllist
[ i
++ ] , evernote
) ; strcpy ( urllist
[ i
++ ] , addthis
) ; strcpy ( urllist
[ i
++ ] , getpocket
) ; strcpy ( urllist
[ i
++ ] , hackernews
) ; strcpy ( urllist
[ i
++ ] , stumbleupon
) ; strcpy ( urllist
[ i
++ ] , flipboard
) ; strcpy ( urllist
[ i
++ ] , instapaper
) ; strcpy ( urllist
[ i
++ ] , surfingbird
) ; strcpy ( urllist
[ i
++ ] , diaspora
) ; strcpy ( urllist
[ i
++ ] , threema
) ; strcpy ( urllist
[ i
++ ] , telegramme
) ;
for ( int i = 0 ; i < SOCIALMEDIASERVICES; i++ ) {
strcpy ( sm.
urls [ i
] , urllist
[ i
] ) ; }
return sm;
}
int main( void ) {
SocialMedia sm = buildUrls( ) ;
for ( int i = 0 ; i < SOCIALMEDIASERVICES; i++ ) {
printf ( "%s" , sm.
urlsOrderedByPopularity [ i
] ) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNPQ0lBTE1FRElBU0VSVklDRVMgMzcKI2RlZmluZSBVUkxTSVpFIDEwMjQKI2RlZmluZSBBUkdMRU5HVEggMTAyNAoKCS8qIENvZGVkIGJ5IEhvbGRPZmZIdW5nZXIsIGFzIHBhcnQgb2YgdGhlIFNvY2lhbFNoYXJlIGdpdGh1YiBwcm9qZWN0LgoJKgoJKiBXaHkgZG9uJ3QgeW91IGNoZWNrIHVzIG91dD8KCSoKCSogaHR0cHM6Ly9nLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5iLmNvbS9icmFkdmluL3NvY2lhbC1zaGFyZS11cmxzCgkqLwoKc3RydWN0IFNvY2lhbE1lZGlhQXJnc19JbnRlcmZhY2UgewoJY2hhciB1cmxbQVJHTEVOR1RIXTsKCWNoYXIgdGl0bGVbQVJHTEVOR1RIXTsKCWNoYXIgZGVzY1tBUkdMRU5HVEhdOwoJY2hhciBpbWFnZVtBUkdMRU5HVEhdOwoJY2hhciBhcHBfaWRbQVJHTEVOR1RIXTsKCWNoYXIgcmVkaXJlY3RfdXJsW0FSR0xFTkdUSF07CgljaGFyIHZpYVtBUkdMRU5HVEhdOwoJY2hhciBoYXNoX3RhZ3NbQVJHTEVOR1RIXTsKCWNoYXIgcHJvdmlkZXJbQVJHTEVOR1RIXTsKCWNoYXIgbGFuZ3VhZ2VbQVJHTEVOR1RIXTsKCWNoYXIgdXNlcl9pZFtBUkdMRU5HVEhdOwoJY2hhciBjYXRlZ29yeVtBUkdMRU5HVEhdOwoJY2hhciBwaG9uZV9udW1iZXJbQVJHTEVOR1RIXTsKCWNoYXIgZW1haWxfYWRkcmVzc1tBUkdMRU5HVEhdOwoJY2hhciBjY19lbWFpbF9hZGRyZXNzW0FSR0xFTkdUSF07CgljaGFyIGJjY19lbWFpbF9hZGRyZXNzW0FSR0xFTkdUSF07Cn0gU29jaWFsTWVkaWFBcmdzX2RlZmF1bHQgPSB7CgkiaHR0cCUzQSUyRiUyRnd3dy5lYXJ0aGZsdWVudC5jb20lMkYiLAoJIkVhcnRoRmx1ZW50IiwKCSJXYW50JTIwdG8lMjBsZWFybiUyMGFub3RoZXIlMjBsYW5ndWFnZSUzRiUyMCUyMExlYXJuJTIwU3BhbmlzaCUyQyUyMEZyZW5jaCUyQyUyMEl0YWxpYW4lMkMlMjBHZXJtYW4lMkMlMjBKYXBhbmVzZSUyQyUyMENoaW5lc2UlMkMlMjBIaW5kaSUyQyUyMEluZG9uZXNpYW4lMkMlMjBEdXRjaCUyQyUyMFBvbGlzaCUyQyUyMFBvcnR1Z3Vlc2UlMkMlMjBvciUyMFJ1c3NpYW4lMjEiLAoJIiIsCgkiIiwKCSIiLAoJIiIsCgkiIiwKCSIiLAoJIiIsCgkiIiwKCSIiLAoJIiIsCgkiIiwKCSIiLAoJIiIKfTsKCnR5cGVkZWYgc3RydWN0IFNvY2lhbE1lZGlhQXJnc19JbnRlcmZhY2UgU29jaWFsTWVkaWFBcmdzOwoKc3RydWN0IFNvY2lhbE1lZGlhX0ludGVyZmFjZSB7CgkJY2hhciB1cmxzW1NPQ0lBTE1FRElBU0VSVklDRVNdW1VSTFNJWkVdOwoJCWNoYXIgdXJsc09yZGVyZWRCeVBvcHVsYXJpdHlbU09DSUFMTUVESUFTRVJWSUNFU11bVVJMU0laRV07CgkJY2hhciB1cmxzT3JkZXJlZEJ5TmFtZVtTT0NJQUxNRURJQVNFUlZJQ0VTXVtVUkxTSVpFXTsKfSBTb2NpYWxNZWRpYV9kZWZhdWx0ID0gewoJewoJfSwKCXsKCQkiZ29vZ2xlLnBsdXMiLAoJCSJnb29nbGUuYm9va21hcmtzIiwKCQkiZmFjZWJvb2siLAoJCSJyZWRkaXQiLAoJCSJ0d2l0dGVyIiwKCQkibGlua2VkaW4iLAoJCSJ0dW1ibHIiLAoJCSJwaW50ZXJlc3QiLAoJCSJibG9nZ2VyIiwKCQkibGl2ZWpvdXJuYWwiLAoJCSJldmVybm90ZSIsCgkJImFkZC50aGlzIiwKCQkiZ2V0cG9ja2V0IiwKCQkiaGFja2VyLm5ld3MiLAoJCSJzdHVtYmxldXBvbiIsCgkJImRpZ2ciLAoJCSJidWZmZXIiLAoJCSJmbGlwYm9hcmQiLAoJCSJpbnN0YXBhcGVyIiwKCQkic3VyZmluZ2JpcmQucnUiLAoJCSJmbGF0dHIiLAoJCSJkaWFzcG9yYSIsCgkJInF6b25lIiwKCQkidmsiLAoJCSJ3ZWlibyIsCgkJIm9rLnJ1IiwKCQkiZG91YmFuIiwKCQkieGluZyIsCgkJInJlbnJlbiIsCgkJInRocmVlbWEiLAoJCSJzbXMiLAoJCSJsaW5lLm1lIiwKCQkic2t5cGUiLAoJCSJ0ZWxlZ3JhbS5tZSIsCgkJImVtYWlsIiwKCQkiZ21haWwiLAoJCSJ5YWhvbyIsCgl9LAoJewoJCSJhZGQudGhpcyIsCgkJImJsb2dnZXIiLAoJCSJidWZmZXIiLAoJCSJkaWFzcG9yYSIsCgkJImRpZ2ciLAoJCSJkb3ViYW4iLAoJCSJlbWFpbCIsCgkJImV2ZXJub3RlIiwKCQkiZmFjZWJvb2siLAoJCSJmbGF0dHIiLAoJCSJmbGlwYm9hcmQiLAoJCSJnZXRwb2NrZXQiLAoJCSJnbWFpbCIsCgkJImdvb2dsZS5ib29rbWFya3MiLAoJCSJnb29nbGUucGx1cyIsCgkJImhhY2tlci5uZXdzIiwKCQkiaW5zdGFwYXBlciIsCgkJImxpbmUubWUiLAoJCSJsaW5rZWRpbiIsCgkJImxpdmVqb3VybmFsIiwKCQkib2sucnUiLAoJCSJwaW50ZXJlc3QiLAoJCSJxem9uZSIsCgkJInJlZGRpdCIsCgkJInJlbnJlbiIsCgkJInNreXBlIiwKCQkic21zIiwKCQkic3R1bWJsZXVwb24iLAoJCSJzdXJmaW5nYmlyZC5ydSIsCgkJInRlbGVncmFtLm1lIiwKCQkidGhyZWVtYSIsCgkJInR1bWJsciIsCgkJInR3aXR0ZXIiLAoJCSJ2ayIsCgkJIndlaWJvIiwKCQkieGluZyIsCgkJInlhaG9vIiwKCX0sCn07Cgp0eXBlZGVmIHN0cnVjdCBTb2NpYWxNZWRpYV9JbnRlcmZhY2UgU29jaWFsTWVkaWE7CgpzdHJ1Y3QgU29jaWFsTWVkaWFfSW50ZXJmYWNlIGJ1aWxkVXJscyh2b2lkKSB7CglTb2NpYWxNZWRpYUFyZ3Mgc21hID0gU29jaWFsTWVkaWFBcmdzX2RlZmF1bHQ7CglTb2NpYWxNZWRpYSBzbSA9IFNvY2lhbE1lZGlhX2RlZmF1bHQ7CgkKCWNoYXIgdGV4dFtBUkdMRU5HVEhdOwoKCWlmKHN0cmxlbihzbWEuZGVzYykpIHsKCQlzcHJpbnRmKHRleHQsICIlcyVzJXMiLCBzbWEudGl0bGUsICIlMjAlM0ElMjAiLCBzbWEuZGVzYyk7Cgl9IGVsc2UgewoJCXNwcmludGYodGV4dCwgIiVzIiwgc21hLnRpdGxlKTsKCX0KCQoJY2hhciBhZGR0aGlzW1VSTFNJWkVdOwoJc3ByaW50ZihhZGR0aGlzLCAiJXMlcyIsICJodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5jb20vYm9va21hcmsucGhwP3VybD0iLCBzbWEudXJsKTsKCQoJY2hhciBibG9nZ2VyW1VSTFNJWkVdOwoJc3ByaW50ZihibG9nZ2VyLCAiJXMlcyVzJXMlcyVzIiwgImh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uci5jb20vYmxvZy10aGlzLmc/dT0iLCBzbWEudXJsLCAiJm49Iiwgc21hLnRpdGxlLCAiJnQ9Iiwgc21hLmRlc2MpOwoKCWNoYXIgYnVmZmVyW1VSTFNJWkVdOwoJc3ByaW50ZihidWZmZXIsICIlcyVzJXMlcyIsICJodHRwczovL2IuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnIuY29tL2FkZD90ZXh0PSIsIHRleHQsICImdXJsPSIsIHNtYS51cmwpOwoKCWNoYXIgZGlhc3BvcmFbVVJMU0laRV07CglzcHJpbnRmKGRpYXNwb3JhLCAiJXMlcyVzJXMiLCAiaHR0cHM6Ly9zLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5uLm9yZy8/dGl0bGU9Iiwgc21hLnRpdGxlLCAiJnVybD0iLCBzbWEudXJsKTsKCQoJY2hhciBkaWdnW1VSTFNJWkVdOwoJc3ByaW50ZihkaWdnLCAiJXMlcyVzJXMiLCAiaHR0cDovL2QuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmcuY29tL3N1Ym1pdD91cmw9Iiwgc21hLnVybCwgIiZ0aXRsZT0iLCB0ZXh0KTsKCgljaGFyIGRvdWJhbltVUkxTSVpFXTsKCXNwcmludGYoZG91YmFuLCAiJXMlcyVzJXMiLCAiaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm4uY29tL3JlY29tbWVuZC8/dXJsPSIsIHNtYS51cmwsICImdGl0bGU9Iiwgc21hLnRpdGxlKTsKCgljaGFyIGVtYWlsW1VSTFNJWkVdOwoJc3ByaW50ZihlbWFpbCwgIiVzJXMlcyVzJXMlcyIsICJtYWlsdG86Iiwgc21hLmVtYWlsX2FkZHJlc3MsICI/c3ViamVjdD0iLCBzbWEudGl0bGUsICImYm9keT0iLCBzbWEuZGVzYyk7CgoJY2hhciBldmVybm90ZVtVUkxTSVpFXTsKCXNwcmludGYoZXZlcm5vdGUsICIlcyVzJXMlcyIsICJodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vY2xpcC5hY3Rpb24/dXJsPSIsIHNtYS51cmwsICImdGl0bGU9Iiwgc21hLnRpdGxlKTsKCQoJY2hhciBnZXRwb2NrZXRbVVJMU0laRV07CglzcHJpbnRmKGdldHBvY2tldCwgIiVzJXMiLCAiaHR0cHM6Ly9nLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi50LmNvbS9lZGl0P3VybD0iLCBzbWEudXJsKTsKCQoJY2hhciBmYWNlYm9va1tVUkxTSVpFXTsKCXNwcmludGYoZmFjZWJvb2ssICIlcyVzIiwgImh0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5rLmNvbS9zaGFyZXIucGhwP3U9Iiwgc21hLnVybCk7CgkKCWNoYXIgZmxhdHRyW1VSTFNJWkVdOwoJc3ByaW50ZihmbGF0dHIsICIlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzIiwgImh0dHBzOi8vZi4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uci5jb20vc3VibWl0L2F1dG8/dXNlcl9pZD0iLCBzbWEudXNlcl9pZCwgIiZ1cmw9Iiwgc21hLnVybCwgIiZ0aXRsZT0iLCBzbWEudGl0bGUsICImZGVzY3JpcHRpb249IiwgdGV4dCwgIiZsYW5ndWFnZT0iLCBzbWEubGFuZ3VhZ2UsICImdGFncz0iLCBzbWEuaGFzaF90YWdzLCAiJmhpZGRlbj1ISURERU4mY2F0ZWdvcnk9Iiwgc21hLmNhdGVnb3J5KTsKCQoJY2hhciBmbGlwYm9hcmRbVVJMU0laRV07CglzcHJpbnRmKGZsaXBib2FyZCwgIiVzJXMlcyVzIiwgImh0dHBzOi8vcy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZC5jb20vYm9va21hcmtsZXQvcG9wb3V0P3Y9MiZ0aXRsZT0iLCB0ZXh0LCAiJnVybD0iLCBzbWEudXJsKTsKCQoJY2hhciBnbWFpbFtVUkxTSVpFXTsKCXNwcmludGYoZ21haWwsICIlcyVzJXMlcyVzJXMlcyVzJXMlcyIsICJodHRwczovL21haWwuZ29vZ2xlLmNvbS9tYWlsLz92aWV3PWNtJnRvPSIsIHNtYS5lbWFpbF9hZGRyZXNzLCAiJnN1PSIsIHNtYS50aXRsZSwgIiZib2R5PSIsIHNtYS51cmwsICImYmNjPSIsIHNtYS5iY2NfZW1haWxfYWRkcmVzcywgIiZjYz0iLCBzbWEuY2NfZW1haWxfYWRkcmVzcyk7CgkKCWNoYXIgZ29vZ2xlYm9va21hcmtzW1VSTFNJWkVdOwoJc3ByaW50Zihnb29nbGVib29rbWFya3MsICIlcyVzJXMlcyVzJXMlcyVzIiwgImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYm9va21hcmtzL21hcms/b3A9ZWRpdCZia21rPSIsIHNtYS51cmwsICImdGl0bGU9Iiwgc21hLnRpdGxlLCAiJmFubm90YXRpb249IiwgdGV4dCwgIiZsYWJlbHM9Iiwgc21hLmhhc2hfdGFncyk7CgkKCWNoYXIgaW5zdGFwYXBlcltVUkxTSVpFXTsKCXNwcmludGYoaW5zdGFwYXBlciwgIiVzJXMlcyVzJXMlcyIsICJodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uci5jb20vZWRpdD91cmw9Iiwgc21hLnVybCwgIiZ0aXRsZT0iLCBzbWEudGl0bGUsICImZGVzY3JpcHRpb249Iiwgc21hLmRlc2MpOwoJCgljaGFyIGxpbmVtZVtVUkxTSVpFXTsKCXNwcmludGYobGluZW1lLCAiJXMlcyVzJXMiLCAiaHR0cHM6Ly9sLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLm1lL3NoYXJlL3VpP3VybD0iLCBzbWEudXJsLCAiJnRleHQ9IiwgdGV4dCk7CgkKCWNoYXIgbGlua2VkaW5bVVJMU0laRV07CglzcHJpbnRmKGxpbmtlZGluLCAiJXMlcyVzJXMlcyVzJXMlcyIsICJodHRwczovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmdXJsPSIsIHNtYS51cmwsICImdGl0bGU9Iiwgc21hLnRpdGxlLCAiJnN1bW1hcnk9IiwgdGV4dCwgIiZzb3VyY2U9Iiwgc21hLnByb3ZpZGVyKTsKCQoJY2hhciBsaXZlam91cm5hbFtVUkxTSVpFXTsKCXNwcmludGYobGl2ZWpvdXJuYWwsICIlcyVzJXMlcyIsICJodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ubC5jb20vdXBkYXRlLmJtbD9zdWJqZWN0PSIsIHRleHQsICImZXZlbnQ9Iiwgc21hLnVybCk7CgkKCWNoYXIgaGFja2VybmV3c1tVUkxTSVpFXTsKCXNwcmludGYoaGFja2VybmV3cywgIiVzJXMlcyVzIiwgImh0dHBzOi8vbi4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uci5jb20vc3VibWl0bGluaz91PSIsIHNtYS51cmwsICImdD0iLCBzbWEudGl0bGUpOwoJCgljaGFyIG9rcnVbVVJMU0laRV07CglzcHJpbnRmKG9rcnUsICIlcyVzIiwgImh0dHBzOi8vYy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uay5ydS9kaz9zdC5jbWQ9V2lkZ2V0U2hhcmVQcmV2aWV3JnN0LnNoYXJlVXJsPSIsIHNtYS51cmwpOwoJCgljaGFyIHBpbnRlcmVzdFtVUkxTSVpFXTsKCXNwcmludGYocGludGVyZXN0LCAiJXMlcyIsICJodHRwOi8vcC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4udC5jb20vcGluL2NyZWF0ZS9idXR0b24vP3VybD0iLCBzbWEudXJsKTsKCQoJY2hhciBnb29nbGVwbHVzW1VSTFNJWkVdOwoJc3ByaW50Zihnb29nbGVwbHVzLCAiJXMlcyVzJXMlcyVzIiwgImh0dHBzOi8vcGx1cy5nb29nbGUuY29tL3NoYXJlP3VybD0iLCBzbWEudXJsLCAiJnRleHQ9IiwgdGV4dCwgIiZobD0iLCBzbWEubGFuZ3VhZ2UpOwoJCgljaGFyIHF6b25lW1VSTFNJWkVdOwoJc3ByaW50Zihxem9uZSwgIiVzJXMiLCAiaHR0cDovL3MuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnEuY29tL2NnaS1iaW4vcXpzaGFyZS9jZ2lfcXpzaGFyZV9vbmVrZXk/dXJsPSIsIHNtYS51cmwpOwoJCgljaGFyIHJlZGRpdFtVUkxTSVpFXTsKCXNwcmludGYocmVkZGl0LCAiJXMlcyVzJXMiLCAiaHR0cHM6Ly9yLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi50LmNvbS9zdWJtaXQ/dXJsPSIsIHNtYS51cmwsICImdGl0bGU9Iiwgc21hLnRpdGxlKTsKCQoJY2hhciByZW5yZW5bVVJMU0laRV07CglzcHJpbnRmKHJlbnJlbiwgIiVzJXMlcyVzJXMlcyVzJXMiLCAiaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm4uY29tL2RpYWxvZy9zaGFyZT9yZXNvdXJjZVVybD0iLCBzbWEudXJsLCAiJnNyY1VybD0iLCBzbWEudXJsLCAiJnRpdGxlPSIsIHNtYS50aXRsZSwgIiZkZXNjcmlwdGlvbj0iLCBzbWEuZGVzYyk7CgkKCWNoYXIgc2t5cGVbVVJMU0laRV07CglzcHJpbnRmKHNreXBlLCAiJXMlcyVzJXMiLCAiaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS9zaGFyZT91cmw9Iiwgc21hLnVybCwgIiZ0ZXh0PSIsIHRleHQpOwoJCgljaGFyIHNtc1tVUkxTSVpFXTsKCXNwcmludGYoc21zLCAiJXMlcyVzJXMiLCAic21zOiIsIHNtYS5waG9uZV9udW1iZXIsICI/Ym9keT0iLCB0ZXh0KTsKCQoJY2hhciBzdHVtYmxldXBvbltVUkxTSVpFXTsKCXNwcmludGYoc3R1bWJsZXVwb24sICIlcyVzJXMlcyIsICJodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ubi5jb20vc3VibWl0P3VybD0iLCBzbWEudXJsLCAiJnRpdGxlPSIsIHRleHQpOwoJCgljaGFyIHN1cmZpbmdiaXJkW1VSTFNJWkVdOwoJc3ByaW50ZihzdXJmaW5nYmlyZCwgIiVzJXMlcyVzJXMlcyVzJXMiLCAiaHR0cDovL3MuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmQucnUvc2hhcmU/dXJsPSIsIHNtYS51cmwsICImZGVzY3JpcHRpb249Iiwgc21hLmRlc2MsICImc2NyZWVuc2hvdD0iLCBzbWEuaW1hZ2UsICImdGl0bGU9Iiwgc21hLnRpdGxlKTsKCQoJY2hhciB0ZWxlZ3JhbW1lW1VSTFNJWkVdOwoJc3ByaW50Zih0ZWxlZ3JhbW1lLCAiJXMlcyVzJXMlcyVzIiwgImh0dHBzOi8vY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkubWUvc2hhcmUvdXJsP3VybD0iLCBzbWEudXJsLCAiJnRleHQ9IiwgdGV4dCwgIiZ0bz0iLCBzbWEucGhvbmVfbnVtYmVyKTsKCQoJY2hhciB0aHJlZW1hW1VSTFNJWkVdOwoJc3ByaW50Zih0aHJlZW1hLCAiJXMlcyVzJXMiLCAidGhyZWVtYTovL2NvbXBvc2U/dGV4dD0iLCB0ZXh0LCAiJmlkPSIsIHNtYS51c2VyX2lkKTsKCQoJY2hhciB0dW1ibHJbVVJMU0laRV07CglzcHJpbnRmKHR1bWJsciwgIiVzJXMlcyVzJXMlcyVzJXMiLCAiaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5yLmNvbS93aWRnZXRzL3NoYXJlL3Rvb2w/Y2Fub25pY2FsVXJsPSIsIHNtYS51cmwsICImdGl0bGU9Iiwgc21hLnRpdGxlLCAiJmNhcHRpb249Iiwgc21hLmRlc2MsICImdGFncz0iLCBzbWEuaGFzaF90YWdzKTsKCQoJY2hhciB0d2l0dGVyW1VSTFNJWkVdOwoJc3ByaW50Zih0d2l0dGVyLCAiJXMlcyVzJXMlcyVzJXMlcyIsICJodHRwczovL3QuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnIuY29tL2ludGVudC90d2VldD91cmw9Iiwgc21hLnVybCwgIiZ0ZXh0PSIsIHRleHQsICImdmlhPSIsIHNtYS52aWEsICImaGFzaHRhZ3M9Iiwgc21hLmhhc2hfdGFncyk7CgkKCWNoYXIgdmtbVVJMU0laRV07CglzcHJpbnRmKHZrLCAiJXMlcyVzJXMlcyVzIiwgImh0dHA6Ly9jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS5jb20vc2hhcmUucGhwP3VybD0iLCBzbWEudXJsLCAiJnRpdGxlPSIsIHNtYS50aXRsZSwgIiZjb21tZW50cz0iLCBzbWEuZGVzYyk7CgkKCWNoYXIgd2VpYm9bVVJMU0laRV07CglzcHJpbnRmKHdlaWJvLCAiJXMlcyVzJXMlcyIsICJodHRwOi8vcy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uby5jb20vc2hhcmUvc2hhcmUucGhwP3VybD0iLCBzbWEudXJsLCAiJmFwcGtleT0mdGl0bGU9Iiwgc21hLnRpdGxlLCAiJnBpYz0mcmFsYXRlVWlkPSIpOwoJCgljaGFyIHhpbmdbVVJMU0laRV07CglzcHJpbnRmKHhpbmcsICIlcyVzIiwgImh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZy5jb20vYXBwL3VzZXI/b3A9c2hhcmUmdXJsPSIsIHNtYS51cmwpOwoJCgljaGFyIHlhaG9vW1VSTFNJWkVdOwoJc3ByaW50Zih5YWhvbywgIiVzJXMlcyVzJXMlcyIsICJodHRwOi8vYy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uby5jb20vP3RvPSIsIHNtYS5lbWFpbF9hZGRyZXNzLCAiJnN1YmplY3Q9Iiwgc21hLnRpdGxlLCAiJmJvZHk9IiwgdGV4dCk7CgoJY2hhciB1cmxsaXN0W1NPQ0lBTE1FRElBU0VSVklDRVNdW1VSTFNJWkVdOwoJaW50IGkgPSAwOwoKCQkJLy8gTk9URSA6IFRoaXMgb3JkZXJpbmcgbXVzdCBpZGVudGljYWxseSBtYXRjaCB1cmxzT3JkZXJlZEJ5UG9wdWxhcml0eS4KCglzdHJjcHkodXJsbGlzdFtpKytdLCBnb29nbGVwbHVzKTsKCXN0cmNweSh1cmxsaXN0W2krK10sIGdvb2dsZWJvb2ttYXJrcyk7CglzdHJjcHkodXJsbGlzdFtpKytdLCBmYWNlYm9vayk7CglzdHJjcHkodXJsbGlzdFtpKytdLCByZWRkaXQpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgdHdpdHRlcik7CglzdHJjcHkodXJsbGlzdFtpKytdLCBsaW5rZWRpbik7CglzdHJjcHkodXJsbGlzdFtpKytdLCB0dW1ibHIpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgcGludGVyZXN0KTsKCXN0cmNweSh1cmxsaXN0W2krK10sIGJsb2dnZXIpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgbGl2ZWpvdXJuYWwpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgZXZlcm5vdGUpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgYWRkdGhpcyk7CglzdHJjcHkodXJsbGlzdFtpKytdLCBnZXRwb2NrZXQpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgaGFja2VybmV3cyk7CglzdHJjcHkodXJsbGlzdFtpKytdLCBzdHVtYmxldXBvbik7CglzdHJjcHkodXJsbGlzdFtpKytdLCBkaWdnKTsKCXN0cmNweSh1cmxsaXN0W2krK10sIGJ1ZmZlcik7CglzdHJjcHkodXJsbGlzdFtpKytdLCBmbGlwYm9hcmQpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgaW5zdGFwYXBlcik7CglzdHJjcHkodXJsbGlzdFtpKytdLCBzdXJmaW5nYmlyZCk7CglzdHJjcHkodXJsbGlzdFtpKytdLCBmbGF0dHIpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgZGlhc3BvcmEpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgcXpvbmUpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgdmspOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgd2VpYm8pOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgb2tydSk7CglzdHJjcHkodXJsbGlzdFtpKytdLCBkb3ViYW4pOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgeGluZyk7CglzdHJjcHkodXJsbGlzdFtpKytdLCByZW5yZW4pOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgdGhyZWVtYSk7CglzdHJjcHkodXJsbGlzdFtpKytdLCBzbXMpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgbGluZW1lKTsKCXN0cmNweSh1cmxsaXN0W2krK10sIHNreXBlKTsKCXN0cmNweSh1cmxsaXN0W2krK10sIHRlbGVncmFtbWUpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgZW1haWwpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgZ21haWwpOwoJc3RyY3B5KHVybGxpc3RbaSsrXSwgeWFob28pOwoKCWZvcihpbnQgaSA9IDA7IGkgPCBTT0NJQUxNRURJQVNFUlZJQ0VTOyBpKyspIHsKCQlzdHJjcHkoc20udXJsc1tpXSwgdXJsbGlzdFtpXSk7Cgl9CgoJcmV0dXJuIHNtOwp9CgppbnQgbWFpbih2b2lkKSB7CglTb2NpYWxNZWRpYSBzbSA9IGJ1aWxkVXJscygpOwoJCglmb3IoaW50IGkgPSAwOyBpIDwgU09DSUFMTUVESUFTRVJWSUNFUzsgaSsrKSB7CgkJcHJpbnRmKCIlcyIsIHNtLnVybHNPcmRlcmVkQnlQb3B1bGFyaXR5W2ldKTsKCQlwcmludGYoIiA6ICIpOwoJCXByaW50ZigiJXMiLCBzbS51cmxzW2ldKTsKCQlwcmludGYoIlxuIik7Cgl9CgkKCXJldHVybiAwOwp9