From adeeaec304303c6ebf87fe8f92739c4bb4a741b5 Mon Sep 17 00:00:00 2001 From: Christoph Gohlke Date: Fri, 12 Feb 2010 03:08:33 -0800 Subject: [PATCH] Testcase for long string literals. --- shorter_strings.diff | 12 + tests/compile/msvc_strings.pyx | 1072 ++++++++++++++++++++++++++++++++ 2 files changed, 1084 insertions(+) create mode 100644 shorter_strings.diff create mode 100644 tests/compile/msvc_strings.pyx diff --git a/shorter_strings.diff b/shorter_strings.diff new file mode 100644 index 00000000..3110c917 --- /dev/null +++ b/shorter_strings.diff @@ -0,0 +1,12 @@ +diff -r 8bff3332e34f Cython/Compiler/Code.py +--- a/Cython/Compiler/Code.py Tue Feb 02 02:10:32 2010 -0800 ++++ b/Cython/Compiler/Code.py Thu Feb 04 19:33:59 2010 -0800 +@@ -667,7 +667,7 @@ + decls_writer = self.parts['decls'] + for _, cname, c in c_consts: + decls_writer.putln('static char %s[] = "%s";' % ( +- cname, c.escaped_value)) ++ cname, StringEncoding.split_docstring(c.escaped_value))) + if c.py_strings is not None: + for py_string in c.py_strings.itervalues(): + py_strings.append((c.cname, len(py_string.cname), py_string)) diff --git a/tests/compile/msvc_strings.pyx b/tests/compile/msvc_strings.pyx new file mode 100644 index 00000000..306b7ed8 --- /dev/null +++ b/tests/compile/msvc_strings.pyx @@ -0,0 +1,1072 @@ +"""A long module docstring. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet +mauris mauris, sit amet venenatis nisl. Vivamus a est porta enim sollicitudin +mollis. Proin fringilla massa vel ante gravida luctus. Nunc quis nunc id quam +hendrerit posuere. Cum sociis natoque penatibus et magnis dis parturient +montes, nascetur ridiculus mus. Aliquam porttitor interdum sollicitudin. Mauris +malesuada tellus tellus. Mauris condimentum nunc et sapien pellentesque +gravida. Suspendisse sed ipsum orci. Duis ut lacus dui. Integer ac gravida sem. +Vivamus fermentum porttitor velit ac blandit. Maecenas pulvinar ullamcorper +enim, vitae aliquet tortor scelerisque et. Vestibulum ante massa, sodales et +bibendum dignissim, consectetur vitae metus. Quisque vel dui erat, vel commodo +metus. Aliquam arcu dolor, viverra sit amet porttitor a, faucibus eu augue. + +Sed ornare, enim eget ultricies suscipit, nunc dui lacinia enim, vitae tempus +nunc libero vitae ligula. Nam et commodo ligula. Pellentesque tincidunt lorem +at elit aliquam at fringilla libero tempor. Donec molestie consectetur nibh, ac +varius ante dictum id. Suspendisse lectus nibh, molestie vel dapibus eget, +egestas ut eros. Mauris vel mauris turpis, vitae bibendum nunc. Vestibulum +nulla enim, vestibulum vitae tincidunt et, gravida eu metus. Nulla sagittis, +odio a placerat laoreet, arcu lectus vestibulum nunc, in hendrerit tortor quam +sit amet turpis. In et purus vel dui pellentesque tincidunt. Donec dictum nibh +sed quam luctus sit amet luctus justo dapibus. Integer nulla elit, lacinia +aliquet euismod sed, tempus vitae lectus. Fusce non sapien dolor. Suspendisse +ut est ut dui tempor ultricies id ut elit. Aenean adipiscing sollicitudin enim, +nec porttitor est porttitor eget. Proin lobortis ante ut diam sodales volutpat. +Donec urna diam, porttitor nec laoreet ut, rhoncus non diam. + +Ut sed mi vitae turpis semper semper. Integer sit amet lorem sapien. Aliquam +risus diam, vulputate id sagittis et, molestie ut lectus. Aliquam erat +volutpat. Morbi aliquet venenatis metus in posuere. Cras vitae purus nunc, ut +vestibulum ipsum. Nullam vehicula dui in urna iaculis lobortis. Ut a est non +est tincidunt iaculis. Vivamus rutrum velit non nunc malesuada sed bibendum mi +iaculis. Sed id lacus in sem tempor vestibulum. Cras bibendum accumsan +suscipit. Phasellus congue nisl consectetur turpis rhoncus aliquet posuere +libero fringilla. Sed eros tellus, hendrerit nec imperdiet vitae, blandit ac +dolor. Nulla facilisi. Morbi ullamcorper libero odio, at cursus tortor. Cras +ultricies tellus eget justo cursus cursus. Donec at mi massa, auctor suscipit +sem. + +Proin dolor purus, semper sed ultrices ut, iaculis at tortor. Donec risus enim, +interdum et convallis nec, aliquam eget velit. Curabitur eget lectus dolor. +Integer id turpis eu nulla euismod tincidunt. Fusce elit nibh, dapibus sit amet +tempus ac, convallis eu libero. Donec dui justo, molestie sed euismod porta, +ultricies id orci. Praesent a tellus et risus faucibus porttitor pellentesque +in purus. Fusce blandit risus ac tortor viverra vitae molestie odio convallis. +Donec rhoncus volutpat mauris, sit amet mattis libero dapibus id. Ut rhoncus +venenatis nisi ac dictum. In non nulla eget massa convallis facilisis. Praesent +nec odio id odio semper lobortis non eu erat. Proin quis gravida magna. Sed +rhoncus lectus auctor arcu posuere a auctor dui pellentesque. + +Sed enim nulla, luctus quis sagittis sed, vestibulum eget metus. Mauris ornare +pretium fringilla. Proin ligula eros, fermentum in placerat sit amet, placerat +vel mauris. Nulla magna enim, luctus eget euismod ac, lacinia vel lorem. Duis +mi leo, porttitor vitae dictum ac, ultrices iaculis metus. Quisque libero mi, +aliquet quis vestibulum eget, porttitor non justo. Praesent ac metus felis. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. Donec vel enim sit amet ante imperdiet commodo sed vel nisi. +Praesent semper viverra nulla vehicula sollicitudin. Fusce lacinia aliquet +ullamcorper. Donec vitae diam est. Integer volutpat hendrerit turpis ut +bibendum. Integer et dui augue. + +Nunc ut nisl in felis feugiat semper nec sit amet purus. Proin convallis +ultrices nisl ut vehicula. Pellentesque neque mi, elementum vel placerat nec, +laoreet ac nulla. Pellentesque aliquam dui a metus iaculis posuere. Curabitur +dapibus faucibus metus. Donec quis diam dui. Proin at mi nec augue cursus +pulvinar eu vel metus. Curabitur eget turpis ac risus dignissim luctus sed id +ligula. Etiam lectus neque, varius ut euismod nec, euismod quis nulla. Ut +feugiat, quam id tempor luctus, metus eros lacinia diam, nec dapibus tellus dui +quis diam. Nam interdum, orci id fringilla mattis, ipsum eros pellentesque +turpis, hendrerit dignissim justo dui interdum ante. Curabitur aliquam nisi ut +dui lacinia tempor. Nulla lobortis tellus non sapien dignissim ut dapibus dui +aliquet. Nam scelerisque, urna a aliquam malesuada, mi tortor scelerisque +libero, quis pellentesque erat eros ut justo. + +Phasellus nulla purus, suscipit vel gravida euismod, malesuada et odio. +Vestibulum non libero eget lacus venenatis auctor quis a est. Nunc id leo est. +Curabitur pulvinar viverra sapien at viverra. Cras pretium justo et lorem +lobortis id tempor nisi accumsan. Cras egestas tortor in risus hendrerit eu +varius purus suscipit. Nullam mauris eros, mattis at tempor vitae, mollis vitae +velit. Etiam at adipiscing lectus. Quisque molestie, metus id posuere pharetra, +lorem enim vehicula mauris, ut ultricies purus justo a lacus. Vivamus blandit +euismod adipiscing. Nam eu ligula at elit ultricies tempus. Nunc ac sodales +neque. Ut dui diam, porttitor a pulvinar vel, sodales sit amet turpis. Donec +vitae eros at neque luctus scelerisque. In consequat elementum iaculis. Donec +ullamcorper dolor eu quam volutpat rhoncus. Lorem ipsum dolor sit amet, +consectetur adipiscing elit. Cras laoreet ante eget dolor sagittis imperdiet. +Proin magna urna, porta id blandit nec, commodo eget lorem. + +Etiam imperdiet, orci sit amet rutrum consectetur, orci augue tempus lacus, id +venenatis sapien nisl a est. Sed accumsan massa sed libero consectetur +scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia +nostra, per inceptos himenaeos. Sed nunc risus, lobortis id egestas nec, +suscipit id magna. Morbi at iaculis mauris. Proin felis sem, tempus non +pellentesque congue, vehicula sit amet eros. Maecenas porttitor erat ac dolor +pharetra iaculis. Cras tincidunt, nulla eget malesuada egestas, sem diam +consequat quam, sed feugiat nulla orci at mauris. Quisque non arcu diam, ac +lacinia felis. Nunc iaculis mollis egestas. Etiam imperdiet dolor consectetur +eros feugiat fringilla sed in lacus. Nunc nec tincidunt dolor. Etiam sagittis +tortor condimentum nunc fermentum vestibulum. Vivamus lobortis, magna sit amet +scelerisque lobortis, sem eros molestie leo, eget aliquet ligula est in lectus. +Duis placerat porta pulvinar. Sed sed adipiscing ante. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam accumsan +iaculis augue, sed varius dui sagittis id. Etiam sit amet eleifend augue. + +Ut sit amet nibh sit amet justo tempor condimentum. Ut faucibus sagittis +volutpat. Duis vestibulum feugiat sollicitudin. Aenean cursus luctus urna at +consectetur. Nullam tincidunt, eros a iaculis sodales, tellus est imperdiet +arcu, sit amet tincidunt orci felis et tortor. Mauris rutrum venenatis nunc ut +rutrum. Phasellus nec erat magna, in tincidunt orci. Sed sit amet suscipit +tellus. Mauris ut nisi turpis. Suspendisse augue turpis, condimentum ac +bibendum in, vestibulum nec eros. Curabitur dapibus pulvinar vehicula. Fusce +consequat, erat in malesuada hendrerit, tellus urna pharetra lacus, sed euismod +nisi urna sed nisi. Etiam fermentum accumsan nunc, sed bibendum dui iaculis id. +Etiam blandit fermentum ligula nec viverra. Vivamus venenatis arcu in nulla +euismod euismod. Donec sit amet augue nec metus varius fringilla. Vivamus +pulvinar elit ac mi rhoncus in luctus diam egestas. Curabitur a felis eget arcu +pretium tempus eu sed mauris. Vestibulum ante ipsum primis in faucibus orci +luctus et ultrices posuere cubilia Curae; + +Mauris malesuada, nibh ac venenatis hendrerit, ligula dui condimentum tellus, +sit amet pretium diam tortor vel risus. Suspendisse suscipit consequat eros id +dignissim. Cras interdum lorem ac massa euismod non porta enim pretium. Aliquam +ultrices nibh vitae ligula consectetur vel sollicitudin lacus volutpat. +Phasellus vulputate iaculis sem nec laoreet. Nam leo sem, tempor eu condimentum +id, imperdiet sed dolor. Donec pharetra velit non libero euismod tempor. +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere +cubilia Curae; Sed fermentum, libero a posuere posuere, enim elit imperdiet +enim, a sollicitudin est felis non libero. Sed vel dolor ut arcu dapibus +iaculis nec a mauris. Morbi ullamcorper ultrices venenatis. Fusce luctus ante +sit amet lacus venenatis ut rutrum elit lobortis. Nulla fermentum tortor ac +sapien fringilla quis iaculis quam egestas. + +Aliquam et tortor est, at elementum mauris. Morbi posuere erat nec leo +vulputate in pellentesque tortor condimentum. Vestibulum at orci augue. Aenean +pellentesque sapien id felis consequat varius. Suspendisse bibendum enim sit +amet mi imperdiet vel suscipit nisi tristique. Curabitur velit massa, +consectetur ac mattis vel, accumsan at nunc. Donec porta, nibh nec consequat +convallis, urna neque auctor erat, eu convallis lorem leo convallis turpis. +Morbi non mauris non metus ornare vulputate. Sed aliquet, dolor ut egestas +fermentum, metus purus mollis elit, nec commodo odio quam quis nisl. Aliquam +erat volutpat. Suspendisse sed faucibus urna. Integer suscipit rutrum +condimentum. Praesent dignissim libero eget metus luctus consectetur. + +Vestibulum ac erat felis, vitae iaculis erat. Duis interdum lacinia arcu, non +lacinia urna luctus in. Curabitur feugiat sapien sapien, in vestibulum diam. +Phasellus lobortis massa ut metus pretium dignissim. Fusce quis sem odio. +Integer pellentesque sodales augue id tincidunt. Pellentesque habitant morbi +tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum +lorem odio, semper vel scelerisque sit amet, sagittis ac libero. Vestibulum +ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Nam egestas ultricies dui at gravida. Duis tristique, eros id consectetur +pellentesque, nulla arcu ultricies tortor, ut pulvinar sapien lacus in elit. +Vivamus dolor massa, pulvinar at mollis vitae, euismod ut dolor. Vivamus a +magna ante. Vestibulum vitae fringilla leo. Ut gravida magna in quam fringilla +ultricies. Mauris rhoncus enim id sem interdum blandit. Pellentesque luctus leo +sit amet felis viverra ac accumsan purus mollis. Aenean pretium fringilla quam +nec laoreet. + +Nulla id mauris mauris. Nam varius bibendum tristique. Integer ante felis, +volutpat sed dignissim vel, interdum molestie nisi. Etiam mollis accumsan elit, +ut gravida eros molestie nec. Nullam quis velit ac purus imperdiet sodales. +Donec semper placerat venenatis. Cras dolor risus, sodales sed scelerisque nec, +sollicitudin pretium felis. Quisque pretium felis id turpis bibendum pulvinar +ornare id nibh. Morbi lobortis leo non mi porttitor vulputate. Vestibulum nec +odio tellus, ut blandit ligula. In pellentesque neque sit amet dui pulvinar sed +laoreet dui vehicula. In hac habitasse platea dictumst. Etiam feugiat dictum +blandit. Praesent lacinia tincidunt elit, quis consectetur tortor molestie +commodo. + +Ut sit amet accumsan lorem. Cras quam nunc, malesuada tempor volutpat vitae, +aliquam eu diam. Sed sem nibh, bibendum nec sollicitudin at, interdum et magna. +Cum sociis natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. Aliquam vitae sem non elit pharetra vestibulum et condimentum +libero. Nam egestas ultricies hendrerit. Nunc nec fringilla nulla. Aliquam +risus tellus, hendrerit non dapibus a, tincidunt vel ante. Vivamus mollis, +magna et lacinia tincidunt, dui massa porta odio, ac ornare felis massa nec +lorem. Mauris sagittis lacus sed metus mollis ac egestas lectus porttitor. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer +vitae lacinia libero. Phasellus at neque enim, sit amet dictum mi. + +Ut risus nisi, vestibulum vel congue eget, egestas in ipsum. Duis faucibus +tempus sodales. Duis convallis pellentesque arcu rhoncus congue. Nunc ac mauris +eu purus vestibulum congue. Praesent convallis semper augue vel volutpat. +Integer dictum varius placerat. Vestibulum convallis tortor non mi lacinia ac +aliquet dui ultricies. Donec ultrices purus eros. Maecenas venenatis posuere +massa, nec consectetur lacus cursus eget. Donec quam lacus, tempus id placerat +et, posuere sed libero. Proin auctor diam ut arcu viverra ut imperdiet tellus +dapibus. + +Morbi ac mauris quis tellus porttitor eleifend. Sed et ante magna, ut sodales +sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices +posuere cubilia Curae; Integer mattis venenatis mi non ullamcorper. Vestibulum +magna enim, aliquam non interdum ut, dignissim vitae ante. Praesent dignissim, +est at pretium posuere, nisl ante varius felis, vitae posuere enim nulla et +nunc. Morbi sagittis suscipit leo, eu accumsan ligula volutpat non. Donec ut +tincidunt magna. Integer ac libero mi. Sed non eros dolor, in tincidunt enim. +Curabitur iaculis erat quis felis iaculis ut volutpat augue malesuada. +Pellentesque eget arcu ligula, ut volutpat purus. Suspendisse dictum lorem quis +sapien lacinia pretium. Lorem ipsum dolor sit amet, consectetur adipiscing +elit. + +Proin sagittis egestas massa et tempor. Mauris et eros ante, id porta sem. Duis +ac eros vitae ipsum ultrices malesuada eget a risus. Morbi imperdiet, est a +hendrerit tristique, mi erat molestie lacus, ac tempor risus nulla id erat. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. Etiam congue, lacus quis ultricies consequat, diam metus +convallis enim, ut volutpat enim urna vitae erat. In quam risus, molestie et +dapibus id, elementum sit amet ligula. Nam faucibus lacus id dolor facilisis +viverra. Nullam vehicula massa ac arcu consectetur vulputate. Praesent nec +augue ac justo dapibus vehicula. Aliquam consectetur hendrerit dolor, et mollis +nisl auctor ut. + +Ut sagittis risus at felis fringilla ultricies. Vestibulum non urna nibh, nec +pretium dolor. Nulla imperdiet lobortis eros at pharetra. Vivamus cursus +pellentesque ornare. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Fusce arcu quam, pulvinar at rutrum vitae, ornare vitae leo. Maecenas vehicula +magna sit amet nulla bibendum condimentum. Curabitur ultrices tempor fringilla. +Vivamus pretium suscipit molestie. Donec arcu diam, ultricies ac pellentesque +eu, venenatis et sapien. + +Nam dictum orci augue, vel eleifend leo. Nam at lacus sapien, nec pretium eros. +In egestas, enim sed sagittis feugiat, purus odio tristique lectus, vel +condimentum leo turpis ac odio. Nam iaculis mi quis odio posuere et venenatis +velit ultricies. Nulla facilisi. Proin nec dolor ac quam euismod gravida quis +et eros. Nam interdum condimentum mattis. Cum sociis natoque penatibus et +magnis dis parturient montes, nascetur ridiculus mus. Praesent a nisi eu massa +mollis posuere sed a nunc. Aenean tempus enim a justo rhoncus quis ultrices +nisl commodo. + +Aenean imperdiet mauris a ipsum venenatis vel scelerisque lorem rutrum. Donec +ut nunc eros, eget accumsan felis. Nullam ullamcorper porta dictum. Donec +accumsan cursus vestibulum. Aenean in sapien velit. Vivamus nec massa mi. Fusce +felis tortor, bibendum non volutpat a, fringilla quis nisi. Duis varius +bibendum erat, quis fermentum sem accumsan eget. Maecenas massa felis, porta +sed laoreet eu, luctus eu lectus. Cras id nibh vitae erat fringilla rutrum. +Maecenas eget consequat est. Vivamus viverra, felis vel faucibus rhoncus, quam +ipsum elementum libero, quis convallis urna purus ut mauris. Nam quis urna +vitae enim consequat placerat. Vivamus congue augue sit amet lectus luctus +tempor. Cras ut justo convallis est egestas pellentesque ac nec orci. + +Vivamus rutrum bibendum ante, at cursus erat pulvinar ornare. Proin imperdiet +scelerisque ante eu vestibulum. Nullam ullamcorper metus nec purus auctor +lobortis. Proin sed lacus et ipsum tempor tempus. Vivamus odio dolor, vulputate +vitae semper sit amet, aliquet egestas orci. Nullam non quam eu quam sagittis +porta. Nunc in velit id erat commodo viverra. Praesent nec est augue, nec +sagittis erat. Cras sed turpis quis enim tempor sagittis. Donec in justo ac +nisl porta condimentum id vestibulum nulla. Nam elementum ultricies nunc a +bibendum. + +Aenean tincidunt nisl non augue pellentesque sit amet convallis neque semper. +Cras placerat suscipit massa sed volutpat. Integer vulputate imperdiet enim, +vitae vulputate sapien mattis feugiat. Vivamus pharetra facilisis mauris a +gravida. Nulla non venenatis est. Duis lobortis consectetur sem ac aliquam. In +eget sapien odio. Vivamus pulvinar ultricies magna, quis laoreet dui porta et. +Integer tempus malesuada velit, et consequat odio ultrices sed. Aliquam +malesuada commodo diam vel posuere. Morbi porttitor, elit vitae auctor gravida, +lorem massa bibendum arcu, vel placerat nulla justo at augue. + +Aliquam libero quam, mattis blandit congue sit amet, fermentum ac augue. +Aliquam malesuada molestie vulputate. Duis id porta augue. Vestibulum diam +dolor, ultrices sit amet porttitor id, convallis id lectus. Etiam ac augue +tincidunt nisi tempor molestie euismod id nisl. Nam et tortor ac arcu viverra +pulvinar. Fusce pulvinar rhoncus leo, a faucibus enim interdum non. Aliquam +vulputate mattis consectetur. Pellentesque sit amet quam sem. Cras eget arcu eu +elit volutpat volutpat. Integer sed varius enim. Integer sit amet felis orci, +id dignissim sapien. Sed vitae lorem sed libero facilisis fringilla. +Pellentesque congue tristique purus, eleifend semper risus suscipit quis. +Phasellus rutrum quam vitae arcu vulputate porta. Sed tristique arcu nec mi +porttitor lacinia. + +Donec congue feugiat diam quis pretium. Vivamus at luctus nunc. Integer +vulputate laoreet mauris quis auctor. Nunc at ultrices libero. Maecenas porta +faucibus purus non vehicula. Sed sit amet metus vitae mi ultrices scelerisque +nec quis risus. Phasellus pellentesque tincidunt massa id ultricies. Aliquam +dictum arcu ac dolor interdum rutrum. Nulla facilisi. Duis nisi est, tincidunt +a sagittis id, sollicitudin at odio. Curabitur sed est eu sapien faucibus +dignissim in quis tortor. + +Nunc ac elit tortor, non lobortis massa. Proin posuere ante ut metus vehicula +suscipit. Proin mattis mauris ac lectus consequat rutrum. Nam arcu lectus, +commodo non pretium a, pharetra semper dolor. Fusce eleifend hendrerit +adipiscing. Nunc et eleifend erat. Suspendisse tempus nisl ut arcu blandit ut +adipiscing nisi tristique. Suspendisse molestie facilisis risus sed fermentum. +Praesent tempor convallis ultricies. Integer et elit velit, at consectetur +risus. + +Vestibulum mollis adipiscing sodales. Vestibulum ante ipsum primis in faucibus +orci luctus et ultrices posuere cubilia Curae; Mauris dictum molestie porta. +Nam convallis nisl quis lacus vulputate in convallis risus sagittis. Vivamus +accumsan faucibus cursus. Ut ultricies imperdiet ligula scelerisque blandit. In +ornare egestas purus, at convallis velit egestas laoreet. Class aptent taciti +sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla +quis imperdiet est. Nunc tempus magna quis lacus feugiat et posuere lacus +vehicula. Cras lacinia aliquam est at vehicula. Aenean congue elit in ante +dignissim vitae fermentum lectus aliquam. Mauris at odio magna, at interdum +dui. Cras fringilla mi velit, nec varius neque. + +Fusce et volutpat lacus. Suspendisse id turpis et urna varius convallis in eu +purus. Nulla facilisi. Etiam mauris nisl, ultrices ac porttitor sit amet, +facilisis ut neque. Nullam ut velit quis velit tincidunt rhoncus. Praesent +tristique porttitor euismod. Nulla non felis ante, feugiat commodo turpis. In +nec venenatis mi. Duis tempus tempor purus, vitae consectetur mi ornare eu. +Proin sed consequat erat. Quisque nec sem dui. Nam semper, ligula facilisis +pretium interdum, diam lectus sollicitudin lorem, in elementum nisi lorem +scelerisque justo. Nullam ac fringilla nunc. Maecenas malesuada ligula in massa +sollicitudin sit amet auctor ipsum malesuada. Vestibulum ut augue in magna +lobortis varius eget in ipsum. In hac habitasse platea dictumst. + +Cras vel sagittis mi. Aenean urna sapien, ultrices et tristique et, aliquam vel +libero. Nullam in consequat ante. Suspendisse libero augue, pulvinar a +dignissim vitae, fringilla malesuada dui. Phasellus augue ante, pulvinar eget +tincidunt vel, venenatis sed arcu. Pellentesque ac purus orci, vel molestie +turpis. Nulla consectetur sollicitudin dolor, sed ornare arcu accumsan +fermentum. Fusce vestibulum nisi at leo interdum eu sollicitudin lacus dictum. +Fusce malesuada consequat ipsum ut convallis. Maecenas in eros sit amet elit +consectetur fringilla nec a nibh. Ut et velit vel ligula pharetra elementum. +Nullam aliquam, tellus vel cursus lacinia, dui libero dictum turpis, nec +lacinia dolor nunc vel diam. Pellentesque convallis dui quis lacus ornare at +rutrum lorem pellentesque. Suspendisse potenti. Cum sociis natoque penatibus et +magnis dis parturient montes, nascetur ridiculus mus. + +Nunc ac nibh sed mauris ornare cursus. Praesent enim mauris, tincidunt vitae +convallis ac, ultricies imperdiet sapien. Duis sodales ligula eget lorem +suscipit sed consectetur metus pretium. Nam in magna augue, quis volutpat +mauris. Quisque pretium lobortis orci quis laoreet. Nam ut nisi diam. Sed +ultrices ultrices dapibus. Integer feugiat mauris id orci pulvinar eu tempus +nibh viverra. Etiam venenatis bibendum massa a consequat. Fusce interdum velit +ac mauris rhoncus non cursus neque consectetur. Vestibulum dictum eros ac metus +fringilla venenatis. Phasellus auctor dui non nulla molestie id malesuada +mauris euismod. Aenean id tortor ac justo eleifend mollis non vel arcu. Duis ac +lorem tortor. Donec volutpat purus sed nunc luctus interdum hendrerit nulla +ullamcorper. Sed consectetur interdum aliquet. Proin ullamcorper risus ut ante +lacinia sagittis. Nunc varius eleifend purus, ac pellentesque urna viverra id. +Praesent euismod, sapien accumsan gravida dictum, massa massa euismod sapien, +ut auctor tellus arcu sed diam. + +Vivamus tincidunt dolor non lorem pellentesque at tempus elit adipiscing. +Vestibulum tempor aliquam consectetur. Mauris nec dictum nisl. Donec +scelerisque ornare condimentum. Phasellus laoreet justo nec nibh convallis +convallis. Duis id orci sapien, eget pulvinar justo. Aenean id arcu felis, eu +iaculis nibh. Aenean eleifend pretium rutrum. Aliquam molestie sem quis tellus +aliquam eleifend. Mauris et purus orci. Nunc et accumsan tortor. Phasellus +semper eleifend nisi, a faucibus risus vehicula id. Lorem ipsum dolor sit amet, +consectetur adipiscing elit. Maecenas in felis et est lacinia eleifend vel sed +ipsum. Aliquam commodo molestie lorem id hendrerit. Nam sed tellus urna, sed +dignissim eros. + +""" + + +A_LONG_STRING = """A long string. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet +mauris mauris, sit amet venenatis nisl. Vivamus a est porta enim sollicitudin +mollis. Proin fringilla massa vel ante gravida luctus. Nunc quis nunc id quam +hendrerit posuere. Cum sociis natoque penatibus et magnis dis parturient +montes, nascetur ridiculus mus. Aliquam porttitor interdum sollicitudin. Mauris +malesuada tellus tellus. Mauris condimentum nunc et sapien pellentesque +gravida. Suspendisse sed ipsum orci. Duis ut lacus dui. Integer ac gravida sem. +Vivamus fermentum porttitor velit ac blandit. Maecenas pulvinar ullamcorper +enim, vitae aliquet tortor scelerisque et. Vestibulum ante massa, sodales et +bibendum dignissim, consectetur vitae metus. Quisque vel dui erat, vel commodo +metus. Aliquam arcu dolor, viverra sit amet porttitor a, faucibus eu augue. + +Sed ornare, enim eget ultricies suscipit, nunc dui lacinia enim, vitae tempus +nunc libero vitae ligula. Nam et commodo ligula. Pellentesque tincidunt lorem +at elit aliquam at fringilla libero tempor. Donec molestie consectetur nibh, ac +varius ante dictum id. Suspendisse lectus nibh, molestie vel dapibus eget, +egestas ut eros. Mauris vel mauris turpis, vitae bibendum nunc. Vestibulum +nulla enim, vestibulum vitae tincidunt et, gravida eu metus. Nulla sagittis, +odio a placerat laoreet, arcu lectus vestibulum nunc, in hendrerit tortor quam +sit amet turpis. In et purus vel dui pellentesque tincidunt. Donec dictum nibh +sed quam luctus sit amet luctus justo dapibus. Integer nulla elit, lacinia +aliquet euismod sed, tempus vitae lectus. Fusce non sapien dolor. Suspendisse +ut est ut dui tempor ultricies id ut elit. Aenean adipiscing sollicitudin enim, +nec porttitor est porttitor eget. Proin lobortis ante ut diam sodales volutpat. +Donec urna diam, porttitor nec laoreet ut, rhoncus non diam. + +Ut sed mi vitae turpis semper semper. Integer sit amet lorem sapien. Aliquam +risus diam, vulputate id sagittis et, molestie ut lectus. Aliquam erat +volutpat. Morbi aliquet venenatis metus in posuere. Cras vitae purus nunc, ut +vestibulum ipsum. Nullam vehicula dui in urna iaculis lobortis. Ut a est non +est tincidunt iaculis. Vivamus rutrum velit non nunc malesuada sed bibendum mi +iaculis. Sed id lacus in sem tempor vestibulum. Cras bibendum accumsan +suscipit. Phasellus congue nisl consectetur turpis rhoncus aliquet posuere +libero fringilla. Sed eros tellus, hendrerit nec imperdiet vitae, blandit ac +dolor. Nulla facilisi. Morbi ullamcorper libero odio, at cursus tortor. Cras +ultricies tellus eget justo cursus cursus. Donec at mi massa, auctor suscipit +sem. + +Proin dolor purus, semper sed ultrices ut, iaculis at tortor. Donec risus enim, +interdum et convallis nec, aliquam eget velit. Curabitur eget lectus dolor. +Integer id turpis eu nulla euismod tincidunt. Fusce elit nibh, dapibus sit amet +tempus ac, convallis eu libero. Donec dui justo, molestie sed euismod porta, +ultricies id orci. Praesent a tellus et risus faucibus porttitor pellentesque +in purus. Fusce blandit risus ac tortor viverra vitae molestie odio convallis. +Donec rhoncus volutpat mauris, sit amet mattis libero dapibus id. Ut rhoncus +venenatis nisi ac dictum. In non nulla eget massa convallis facilisis. Praesent +nec odio id odio semper lobortis non eu erat. Proin quis gravida magna. Sed +rhoncus lectus auctor arcu posuere a auctor dui pellentesque. + +Sed enim nulla, luctus quis sagittis sed, vestibulum eget metus. Mauris ornare +pretium fringilla. Proin ligula eros, fermentum in placerat sit amet, placerat +vel mauris. Nulla magna enim, luctus eget euismod ac, lacinia vel lorem. Duis +mi leo, porttitor vitae dictum ac, ultrices iaculis metus. Quisque libero mi, +aliquet quis vestibulum eget, porttitor non justo. Praesent ac metus felis. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. Donec vel enim sit amet ante imperdiet commodo sed vel nisi. +Praesent semper viverra nulla vehicula sollicitudin. Fusce lacinia aliquet +ullamcorper. Donec vitae diam est. Integer volutpat hendrerit turpis ut +bibendum. Integer et dui augue. + +Nunc ut nisl in felis feugiat semper nec sit amet purus. Proin convallis +ultrices nisl ut vehicula. Pellentesque neque mi, elementum vel placerat nec, +laoreet ac nulla. Pellentesque aliquam dui a metus iaculis posuere. Curabitur +dapibus faucibus metus. Donec quis diam dui. Proin at mi nec augue cursus +pulvinar eu vel metus. Curabitur eget turpis ac risus dignissim luctus sed id +ligula. Etiam lectus neque, varius ut euismod nec, euismod quis nulla. Ut +feugiat, quam id tempor luctus, metus eros lacinia diam, nec dapibus tellus dui +quis diam. Nam interdum, orci id fringilla mattis, ipsum eros pellentesque +turpis, hendrerit dignissim justo dui interdum ante. Curabitur aliquam nisi ut +dui lacinia tempor. Nulla lobortis tellus non sapien dignissim ut dapibus dui +aliquet. Nam scelerisque, urna a aliquam malesuada, mi tortor scelerisque +libero, quis pellentesque erat eros ut justo. + +Phasellus nulla purus, suscipit vel gravida euismod, malesuada et odio. +Vestibulum non libero eget lacus venenatis auctor quis a est. Nunc id leo est. +Curabitur pulvinar viverra sapien at viverra. Cras pretium justo et lorem +lobortis id tempor nisi accumsan. Cras egestas tortor in risus hendrerit eu +varius purus suscipit. Nullam mauris eros, mattis at tempor vitae, mollis vitae +velit. Etiam at adipiscing lectus. Quisque molestie, metus id posuere pharetra, +lorem enim vehicula mauris, ut ultricies purus justo a lacus. Vivamus blandit +euismod adipiscing. Nam eu ligula at elit ultricies tempus. Nunc ac sodales +neque. Ut dui diam, porttitor a pulvinar vel, sodales sit amet turpis. Donec +vitae eros at neque luctus scelerisque. In consequat elementum iaculis. Donec +ullamcorper dolor eu quam volutpat rhoncus. Lorem ipsum dolor sit amet, +consectetur adipiscing elit. Cras laoreet ante eget dolor sagittis imperdiet. +Proin magna urna, porta id blandit nec, commodo eget lorem. + +Etiam imperdiet, orci sit amet rutrum consectetur, orci augue tempus lacus, id +venenatis sapien nisl a est. Sed accumsan massa sed libero consectetur +scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia +nostra, per inceptos himenaeos. Sed nunc risus, lobortis id egestas nec, +suscipit id magna. Morbi at iaculis mauris. Proin felis sem, tempus non +pellentesque congue, vehicula sit amet eros. Maecenas porttitor erat ac dolor +pharetra iaculis. Cras tincidunt, nulla eget malesuada egestas, sem diam +consequat quam, sed feugiat nulla orci at mauris. Quisque non arcu diam, ac +lacinia felis. Nunc iaculis mollis egestas. Etiam imperdiet dolor consectetur +eros feugiat fringilla sed in lacus. Nunc nec tincidunt dolor. Etiam sagittis +tortor condimentum nunc fermentum vestibulum. Vivamus lobortis, magna sit amet +scelerisque lobortis, sem eros molestie leo, eget aliquet ligula est in lectus. +Duis placerat porta pulvinar. Sed sed adipiscing ante. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam accumsan +iaculis augue, sed varius dui sagittis id. Etiam sit amet eleifend augue. + +Ut sit amet nibh sit amet justo tempor condimentum. Ut faucibus sagittis +volutpat. Duis vestibulum feugiat sollicitudin. Aenean cursus luctus urna at +consectetur. Nullam tincidunt, eros a iaculis sodales, tellus est imperdiet +arcu, sit amet tincidunt orci felis et tortor. Mauris rutrum venenatis nunc ut +rutrum. Phasellus nec erat magna, in tincidunt orci. Sed sit amet suscipit +tellus. Mauris ut nisi turpis. Suspendisse augue turpis, condimentum ac +bibendum in, vestibulum nec eros. Curabitur dapibus pulvinar vehicula. Fusce +consequat, erat in malesuada hendrerit, tellus urna pharetra lacus, sed euismod +nisi urna sed nisi. Etiam fermentum accumsan nunc, sed bibendum dui iaculis id. +Etiam blandit fermentum ligula nec viverra. Vivamus venenatis arcu in nulla +euismod euismod. Donec sit amet augue nec metus varius fringilla. Vivamus +pulvinar elit ac mi rhoncus in luctus diam egestas. Curabitur a felis eget arcu +pretium tempus eu sed mauris. Vestibulum ante ipsum primis in faucibus orci +luctus et ultrices posuere cubilia Curae; + +Mauris malesuada, nibh ac venenatis hendrerit, ligula dui condimentum tellus, +sit amet pretium diam tortor vel risus. Suspendisse suscipit consequat eros id +dignissim. Cras interdum lorem ac massa euismod non porta enim pretium. Aliquam +ultrices nibh vitae ligula consectetur vel sollicitudin lacus volutpat. +Phasellus vulputate iaculis sem nec laoreet. Nam leo sem, tempor eu condimentum +id, imperdiet sed dolor. Donec pharetra velit non libero euismod tempor. +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere +cubilia Curae; Sed fermentum, libero a posuere posuere, enim elit imperdiet +enim, a sollicitudin est felis non libero. Sed vel dolor ut arcu dapibus +iaculis nec a mauris. Morbi ullamcorper ultrices venenatis. Fusce luctus ante +sit amet lacus venenatis ut rutrum elit lobortis. Nulla fermentum tortor ac +sapien fringilla quis iaculis quam egestas. + +Aliquam et tortor est, at elementum mauris. Morbi posuere erat nec leo +vulputate in pellentesque tortor condimentum. Vestibulum at orci augue. Aenean +pellentesque sapien id felis consequat varius. Suspendisse bibendum enim sit +amet mi imperdiet vel suscipit nisi tristique. Curabitur velit massa, +consectetur ac mattis vel, accumsan at nunc. Donec porta, nibh nec consequat +convallis, urna neque auctor erat, eu convallis lorem leo convallis turpis. +Morbi non mauris non metus ornare vulputate. Sed aliquet, dolor ut egestas +fermentum, metus purus mollis elit, nec commodo odio quam quis nisl. Aliquam +erat volutpat. Suspendisse sed faucibus urna. Integer suscipit rutrum +condimentum. Praesent dignissim libero eget metus luctus consectetur. + +Vestibulum ac erat felis, vitae iaculis erat. Duis interdum lacinia arcu, non +lacinia urna luctus in. Curabitur feugiat sapien sapien, in vestibulum diam. +Phasellus lobortis massa ut metus pretium dignissim. Fusce quis sem odio. +Integer pellentesque sodales augue id tincidunt. Pellentesque habitant morbi +tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum +lorem odio, semper vel scelerisque sit amet, sagittis ac libero. Vestibulum +ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; +Nam egestas ultricies dui at gravida. Duis tristique, eros id consectetur +pellentesque, nulla arcu ultricies tortor, ut pulvinar sapien lacus in elit. +Vivamus dolor massa, pulvinar at mollis vitae, euismod ut dolor. Vivamus a +magna ante. Vestibulum vitae fringilla leo. Ut gravida magna in quam fringilla +ultricies. Mauris rhoncus enim id sem interdum blandit. Pellentesque luctus leo +sit amet felis viverra ac accumsan purus mollis. Aenean pretium fringilla quam +nec laoreet. + +Nulla id mauris mauris. Nam varius bibendum tristique. Integer ante felis, +volutpat sed dignissim vel, interdum molestie nisi. Etiam mollis accumsan elit, +ut gravida eros molestie nec. Nullam quis velit ac purus imperdiet sodales. +Donec semper placerat venenatis. Cras dolor risus, sodales sed scelerisque nec, +sollicitudin pretium felis. Quisque pretium felis id turpis bibendum pulvinar +ornare id nibh. Morbi lobortis leo non mi porttitor vulputate. Vestibulum nec +odio tellus, ut blandit ligula. In pellentesque neque sit amet dui pulvinar sed +laoreet dui vehicula. In hac habitasse platea dictumst. Etiam feugiat dictum +blandit. Praesent lacinia tincidunt elit, quis consectetur tortor molestie +commodo. + +Ut sit amet accumsan lorem. Cras quam nunc, malesuada tempor volutpat vitae, +aliquam eu diam. Sed sem nibh, bibendum nec sollicitudin at, interdum et magna. +Cum sociis natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. Aliquam vitae sem non elit pharetra vestibulum et condimentum +libero. Nam egestas ultricies hendrerit. Nunc nec fringilla nulla. Aliquam +risus tellus, hendrerit non dapibus a, tincidunt vel ante. Vivamus mollis, +magna et lacinia tincidunt, dui massa porta odio, ac ornare felis massa nec +lorem. Mauris sagittis lacus sed metus mollis ac egestas lectus porttitor. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer +vitae lacinia libero. Phasellus at neque enim, sit amet dictum mi. + +Ut risus nisi, vestibulum vel congue eget, egestas in ipsum. Duis faucibus +tempus sodales. Duis convallis pellentesque arcu rhoncus congue. Nunc ac mauris +eu purus vestibulum congue. Praesent convallis semper augue vel volutpat. +Integer dictum varius placerat. Vestibulum convallis tortor non mi lacinia ac +aliquet dui ultricies. Donec ultrices purus eros. Maecenas venenatis posuere +massa, nec consectetur lacus cursus eget. Donec quam lacus, tempus id placerat +et, posuere sed libero. Proin auctor diam ut arcu viverra ut imperdiet tellus +dapibus. + +Morbi ac mauris quis tellus porttitor eleifend. Sed et ante magna, ut sodales +sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices +posuere cubilia Curae; Integer mattis venenatis mi non ullamcorper. Vestibulum +magna enim, aliquam non interdum ut, dignissim vitae ante. Praesent dignissim, +est at pretium posuere, nisl ante varius felis, vitae posuere enim nulla et +nunc. Morbi sagittis suscipit leo, eu accumsan ligula volutpat non. Donec ut +tincidunt magna. Integer ac libero mi. Sed non eros dolor, in tincidunt enim. +Curabitur iaculis erat quis felis iaculis ut volutpat augue malesuada. +Pellentesque eget arcu ligula, ut volutpat purus. Suspendisse dictum lorem quis +sapien lacinia pretium. Lorem ipsum dolor sit amet, consectetur adipiscing +elit. + +Proin sagittis egestas massa et tempor. Mauris et eros ante, id porta sem. Duis +ac eros vitae ipsum ultrices malesuada eget a risus. Morbi imperdiet, est a +hendrerit tristique, mi erat molestie lacus, ac tempor risus nulla id erat. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. Etiam congue, lacus quis ultricies consequat, diam metus +convallis enim, ut volutpat enim urna vitae erat. In quam risus, molestie et +dapibus id, elementum sit amet ligula. Nam faucibus lacus id dolor facilisis +viverra. Nullam vehicula massa ac arcu consectetur vulputate. Praesent nec +augue ac justo dapibus vehicula. Aliquam consectetur hendrerit dolor, et mollis +nisl auctor ut. + +Ut sagittis risus at felis fringilla ultricies. Vestibulum non urna nibh, nec +pretium dolor. Nulla imperdiet lobortis eros at pharetra. Vivamus cursus +pellentesque ornare. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Fusce arcu quam, pulvinar at rutrum vitae, ornare vitae leo. Maecenas vehicula +magna sit amet nulla bibendum condimentum. Curabitur ultrices tempor fringilla. +Vivamus pretium suscipit molestie. Donec arcu diam, ultricies ac pellentesque +eu, venenatis et sapien. + +Nam dictum orci augue, vel eleifend leo. Nam at lacus sapien, nec pretium eros. +In egestas, enim sed sagittis feugiat, purus odio tristique lectus, vel +condimentum leo turpis ac odio. Nam iaculis mi quis odio posuere et venenatis +velit ultricies. Nulla facilisi. Proin nec dolor ac quam euismod gravida quis +et eros. Nam interdum condimentum mattis. Cum sociis natoque penatibus et +magnis dis parturient montes, nascetur ridiculus mus. Praesent a nisi eu massa +mollis posuere sed a nunc. Aenean tempus enim a justo rhoncus quis ultrices +nisl commodo. + +Aenean imperdiet mauris a ipsum venenatis vel scelerisque lorem rutrum. Donec +ut nunc eros, eget accumsan felis. Nullam ullamcorper porta dictum. Donec +accumsan cursus vestibulum. Aenean in sapien velit. Vivamus nec massa mi. Fusce +felis tortor, bibendum non volutpat a, fringilla quis nisi. Duis varius +bibendum erat, quis fermentum sem accumsan eget. Maecenas massa felis, porta +sed laoreet eu, luctus eu lectus. Cras id nibh vitae erat fringilla rutrum. +Maecenas eget consequat est. Vivamus viverra, felis vel faucibus rhoncus, quam +ipsum elementum libero, quis convallis urna purus ut mauris. Nam quis urna +vitae enim consequat placerat. Vivamus congue augue sit amet lectus luctus +tempor. Cras ut justo convallis est egestas pellentesque ac nec orci. + +Vivamus rutrum bibendum ante, at cursus erat pulvinar ornare. Proin imperdiet +scelerisque ante eu vestibulum. Nullam ullamcorper metus nec purus auctor +lobortis. Proin sed lacus et ipsum tempor tempus. Vivamus odio dolor, vulputate +vitae semper sit amet, aliquet egestas orci. Nullam non quam eu quam sagittis +porta. Nunc in velit id erat commodo viverra. Praesent nec est augue, nec +sagittis erat. Cras sed turpis quis enim tempor sagittis. Donec in justo ac +nisl porta condimentum id vestibulum nulla. Nam elementum ultricies nunc a +bibendum. + +Aenean tincidunt nisl non augue pellentesque sit amet convallis neque semper. +Cras placerat suscipit massa sed volutpat. Integer vulputate imperdiet enim, +vitae vulputate sapien mattis feugiat. Vivamus pharetra facilisis mauris a +gravida. Nulla non venenatis est. Duis lobortis consectetur sem ac aliquam. In +eget sapien odio. Vivamus pulvinar ultricies magna, quis laoreet dui porta et. +Integer tempus malesuada velit, et consequat odio ultrices sed. Aliquam +malesuada commodo diam vel posuere. Morbi porttitor, elit vitae auctor gravida, +lorem massa bibendum arcu, vel placerat nulla justo at augue. + +Aliquam libero quam, mattis blandit congue sit amet, fermentum ac augue. +Aliquam malesuada molestie vulputate. Duis id porta augue. Vestibulum diam +dolor, ultrices sit amet porttitor id, convallis id lectus. Etiam ac augue +tincidunt nisi tempor molestie euismod id nisl. Nam et tortor ac arcu viverra +pulvinar. Fusce pulvinar rhoncus leo, a faucibus enim interdum non. Aliquam +vulputate mattis consectetur. Pellentesque sit amet quam sem. Cras eget arcu eu +elit volutpat volutpat. Integer sed varius enim. Integer sit amet felis orci, +id dignissim sapien. Sed vitae lorem sed libero facilisis fringilla. +Pellentesque congue tristique purus, eleifend semper risus suscipit quis. +Phasellus rutrum quam vitae arcu vulputate porta. Sed tristique arcu nec mi +porttitor lacinia. + +Donec congue feugiat diam quis pretium. Vivamus at luctus nunc. Integer +vulputate laoreet mauris quis auctor. Nunc at ultrices libero. Maecenas porta +faucibus purus non vehicula. Sed sit amet metus vitae mi ultrices scelerisque +nec quis risus. Phasellus pellentesque tincidunt massa id ultricies. Aliquam +dictum arcu ac dolor interdum rutrum. Nulla facilisi. Duis nisi est, tincidunt +a sagittis id, sollicitudin at odio. Curabitur sed est eu sapien faucibus +dignissim in quis tortor. + +Nunc ac elit tortor, non lobortis massa. Proin posuere ante ut metus vehicula +suscipit. Proin mattis mauris ac lectus consequat rutrum. Nam arcu lectus, +commodo non pretium a, pharetra semper dolor. Fusce eleifend hendrerit +adipiscing. Nunc et eleifend erat. Suspendisse tempus nisl ut arcu blandit ut +adipiscing nisi tristique. Suspendisse molestie facilisis risus sed fermentum. +Praesent tempor convallis ultricies. Integer et elit velit, at consectetur +risus. + +Vestibulum mollis adipiscing sodales. Vestibulum ante ipsum primis in faucibus +orci luctus et ultrices posuere cubilia Curae; Mauris dictum molestie porta. +Nam convallis nisl quis lacus vulputate in convallis risus sagittis. Vivamus +accumsan faucibus cursus. Ut ultricies imperdiet ligula scelerisque blandit. In +ornare egestas purus, at convallis velit egestas laoreet. Class aptent taciti +sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla +quis imperdiet est. Nunc tempus magna quis lacus feugiat et posuere lacus +vehicula. Cras lacinia aliquam est at vehicula. Aenean congue elit in ante +dignissim vitae fermentum lectus aliquam. Mauris at odio magna, at interdum +dui. Cras fringilla mi velit, nec varius neque. + +Fusce et volutpat lacus. Suspendisse id turpis et urna varius convallis in eu +purus. Nulla facilisi. Etiam mauris nisl, ultrices ac porttitor sit amet, +facilisis ut neque. Nullam ut velit quis velit tincidunt rhoncus. Praesent +tristique porttitor euismod. Nulla non felis ante, feugiat commodo turpis. In +nec venenatis mi. Duis tempus tempor purus, vitae consectetur mi ornare eu. +Proin sed consequat erat. Quisque nec sem dui. Nam semper, ligula facilisis +pretium interdum, diam lectus sollicitudin lorem, in elementum nisi lorem +scelerisque justo. Nullam ac fringilla nunc. Maecenas malesuada ligula in massa +sollicitudin sit amet auctor ipsum malesuada. Vestibulum ut augue in magna +lobortis varius eget in ipsum. In hac habitasse platea dictumst. + +Cras vel sagittis mi. Aenean urna sapien, ultrices et tristique et, aliquam vel +libero. Nullam in consequat ante. Suspendisse libero augue, pulvinar a +dignissim vitae, fringilla malesuada dui. Phasellus augue ante, pulvinar eget +tincidunt vel, venenatis sed arcu. Pellentesque ac purus orci, vel molestie +turpis. Nulla consectetur sollicitudin dolor, sed ornare arcu accumsan +fermentum. Fusce vestibulum nisi at leo interdum eu sollicitudin lacus dictum. +Fusce malesuada consequat ipsum ut convallis. Maecenas in eros sit amet elit +consectetur fringilla nec a nibh. Ut et velit vel ligula pharetra elementum. +Nullam aliquam, tellus vel cursus lacinia, dui libero dictum turpis, nec +lacinia dolor nunc vel diam. Pellentesque convallis dui quis lacus ornare at +rutrum lorem pellentesque. Suspendisse potenti. Cum sociis natoque penatibus et +magnis dis parturient montes, nascetur ridiculus mus. + +Nunc ac nibh sed mauris ornare cursus. Praesent enim mauris, tincidunt vitae +convallis ac, ultricies imperdiet sapien. Duis sodales ligula eget lorem +suscipit sed consectetur metus pretium. Nam in magna augue, quis volutpat +mauris. Quisque pretium lobortis orci quis laoreet. Nam ut nisi diam. Sed +ultrices ultrices dapibus. Integer feugiat mauris id orci pulvinar eu tempus +nibh viverra. Etiam venenatis bibendum massa a consequat. Fusce interdum velit +ac mauris rhoncus non cursus neque consectetur. Vestibulum dictum eros ac metus +fringilla venenatis. Phasellus auctor dui non nulla molestie id malesuada +mauris euismod. Aenean id tortor ac justo eleifend mollis non vel arcu. Duis ac +lorem tortor. Donec volutpat purus sed nunc luctus interdum hendrerit nulla +ullamcorper. Sed consectetur interdum aliquet. Proin ullamcorper risus ut ante +lacinia sagittis. Nunc varius eleifend purus, ac pellentesque urna viverra id. +Praesent euismod, sapien accumsan gravida dictum, massa massa euismod sapien, +ut auctor tellus arcu sed diam. + +Vivamus tincidunt dolor non lorem pellentesque at tempus elit adipiscing. +Vestibulum tempor aliquam consectetur. Mauris nec dictum nisl. Donec +scelerisque ornare condimentum. Phasellus laoreet justo nec nibh convallis +convallis. Duis id orci sapien, eget pulvinar justo. Aenean id arcu felis, eu +iaculis nibh. Aenean eleifend pretium rutrum. Aliquam molestie sem quis tellus +aliquam eleifend. Mauris et purus orci. Nunc et accumsan tortor. Phasellus +semper eleifend nisi, a faucibus risus vehicula id. Lorem ipsum dolor sit amet, +consectetur adipiscing elit. Maecenas in felis et est lacinia eleifend vel sed +ipsum. Aliquam commodo molestie lorem id hendrerit. Nam sed tellus urna, sed +dignissim eros. + +""" + +def a_function(): + """"A long function docstring. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sit amet + mauris mauris, sit amet venenatis nisl. Vivamus a est porta enim + sollicitudin mollis. Proin fringilla massa vel ante gravida luctus. Nunc + quis nunc id quam hendrerit posuere. Cum sociis natoque penatibus et magnis + dis parturient montes, nascetur ridiculus mus. Aliquam porttitor interdum + sollicitudin. Mauris malesuada tellus tellus. Mauris condimentum nunc et + sapien pellentesque gravida. Suspendisse sed ipsum orci. Duis ut lacus dui. + Integer ac gravida sem. Vivamus fermentum porttitor velit ac blandit. + Maecenas pulvinar ullamcorper enim, vitae aliquet tortor scelerisque et. + Vestibulum ante massa, sodales et bibendum dignissim, consectetur vitae + metus. Quisque vel dui erat, vel commodo metus. Aliquam arcu dolor, viverra + sit amet porttitor a, faucibus eu augue. + + Sed ornare, enim eget ultricies suscipit, nunc dui lacinia enim, vitae + tempus nunc libero vitae ligula. Nam et commodo ligula. Pellentesque + tincidunt lorem at elit aliquam at fringilla libero tempor. Donec molestie + consectetur nibh, ac varius ante dictum id. Suspendisse lectus nibh, + molestie vel dapibus eget, egestas ut eros. Mauris vel mauris turpis, vitae + bibendum nunc. Vestibulum nulla enim, vestibulum vitae tincidunt et, + gravida eu metus. Nulla sagittis, odio a placerat laoreet, arcu lectus + vestibulum nunc, in hendrerit tortor quam sit amet turpis. In et purus vel + dui pellentesque tincidunt. Donec dictum nibh sed quam luctus sit amet + luctus justo dapibus. Integer nulla elit, lacinia aliquet euismod sed, + tempus vitae lectus. Fusce non sapien dolor. Suspendisse ut est ut dui + tempor ultricies id ut elit. Aenean adipiscing sollicitudin enim, nec + porttitor est porttitor eget. Proin lobortis ante ut diam sodales volutpat. + Donec urna diam, porttitor nec laoreet ut, rhoncus non diam. + + Ut sed mi vitae turpis semper semper. Integer sit amet lorem sapien. + Aliquam risus diam, vulputate id sagittis et, molestie ut lectus. Aliquam + erat volutpat. Morbi aliquet venenatis metus in posuere. Cras vitae purus + nunc, ut vestibulum ipsum. Nullam vehicula dui in urna iaculis lobortis. Ut + a est non est tincidunt iaculis. Vivamus rutrum velit non nunc malesuada + sed bibendum mi iaculis. Sed id lacus in sem tempor vestibulum. Cras + bibendum accumsan suscipit. Phasellus congue nisl consectetur turpis + rhoncus aliquet posuere libero fringilla. Sed eros tellus, hendrerit nec + imperdiet vitae, blandit ac dolor. Nulla facilisi. Morbi ullamcorper libero + odio, at cursus tortor. Cras ultricies tellus eget justo cursus cursus. + Donec at mi massa, auctor suscipit sem. + + Proin dolor purus, semper sed ultrices ut, iaculis at tortor. Donec risus + enim, interdum et convallis nec, aliquam eget velit. Curabitur eget lectus + dolor. Integer id turpis eu nulla euismod tincidunt. Fusce elit nibh, + dapibus sit amet tempus ac, convallis eu libero. Donec dui justo, molestie + sed euismod porta, ultricies id orci. Praesent a tellus et risus faucibus + porttitor pellentesque in purus. Fusce blandit risus ac tortor viverra + vitae molestie odio convallis. Donec rhoncus volutpat mauris, sit amet + mattis libero dapibus id. Ut rhoncus venenatis nisi ac dictum. In non nulla + eget massa convallis facilisis. Praesent nec odio id odio semper lobortis + non eu erat. Proin quis gravida magna. Sed rhoncus lectus auctor arcu + posuere a auctor dui pellentesque. + + Sed enim nulla, luctus quis sagittis sed, vestibulum eget metus. Mauris + ornare pretium fringilla. Proin ligula eros, fermentum in placerat sit + amet, placerat vel mauris. Nulla magna enim, luctus eget euismod ac, + lacinia vel lorem. Duis mi leo, porttitor vitae dictum ac, ultrices iaculis + metus. Quisque libero mi, aliquet quis vestibulum eget, porttitor non + justo. Praesent ac metus felis. Pellentesque habitant morbi tristique + senectus et netus et malesuada fames ac turpis egestas. Donec vel enim sit + amet ante imperdiet commodo sed vel nisi. Praesent semper viverra nulla + vehicula sollicitudin. Fusce lacinia aliquet ullamcorper. Donec vitae diam + est. Integer volutpat hendrerit turpis ut bibendum. Integer et dui augue. + + Nunc ut nisl in felis feugiat semper nec sit amet purus. Proin convallis + ultrices nisl ut vehicula. Pellentesque neque mi, elementum vel placerat + nec, laoreet ac nulla. Pellentesque aliquam dui a metus iaculis posuere. + Curabitur dapibus faucibus metus. Donec quis diam dui. Proin at mi nec + augue cursus pulvinar eu vel metus. Curabitur eget turpis ac risus + dignissim luctus sed id ligula. Etiam lectus neque, varius ut euismod nec, + euismod quis nulla. Ut feugiat, quam id tempor luctus, metus eros lacinia + diam, nec dapibus tellus dui quis diam. Nam interdum, orci id fringilla + mattis, ipsum eros pellentesque turpis, hendrerit dignissim justo dui + interdum ante. Curabitur aliquam nisi ut dui lacinia tempor. Nulla lobortis + tellus non sapien dignissim ut dapibus dui aliquet. Nam scelerisque, urna a + aliquam malesuada, mi tortor scelerisque libero, quis pellentesque erat + eros ut justo. + + Phasellus nulla purus, suscipit vel gravida euismod, malesuada et odio. + Vestibulum non libero eget lacus venenatis auctor quis a est. Nunc id leo + est. Curabitur pulvinar viverra sapien at viverra. Cras pretium justo et + lorem lobortis id tempor nisi accumsan. Cras egestas tortor in risus + hendrerit eu varius purus suscipit. Nullam mauris eros, mattis at tempor + vitae, mollis vitae velit. Etiam at adipiscing lectus. Quisque molestie, + metus id posuere pharetra, lorem enim vehicula mauris, ut ultricies purus + justo a lacus. Vivamus blandit euismod adipiscing. Nam eu ligula at elit + ultricies tempus. Nunc ac sodales neque. Ut dui diam, porttitor a pulvinar + vel, sodales sit amet turpis. Donec vitae eros at neque luctus scelerisque. + In consequat elementum iaculis. Donec ullamcorper dolor eu quam volutpat + rhoncus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras + laoreet ante eget dolor sagittis imperdiet. Proin magna urna, porta id + blandit nec, commodo eget lorem. + + Etiam imperdiet, orci sit amet rutrum consectetur, orci augue tempus lacus, + id venenatis sapien nisl a est. Sed accumsan massa sed libero consectetur + scelerisque. Class aptent taciti sociosqu ad litora torquent per conubia + nostra, per inceptos himenaeos. Sed nunc risus, lobortis id egestas nec, + suscipit id magna. Morbi at iaculis mauris. Proin felis sem, tempus non + pellentesque congue, vehicula sit amet eros. Maecenas porttitor erat ac + dolor pharetra iaculis. Cras tincidunt, nulla eget malesuada egestas, sem + diam consequat quam, sed feugiat nulla orci at mauris. Quisque non arcu + diam, ac lacinia felis. Nunc iaculis mollis egestas. Etiam imperdiet dolor + consectetur eros feugiat fringilla sed in lacus. Nunc nec tincidunt dolor. + Etiam sagittis tortor condimentum nunc fermentum vestibulum. Vivamus + lobortis, magna sit amet scelerisque lobortis, sem eros molestie leo, eget + aliquet ligula est in lectus. Duis placerat porta pulvinar. Sed sed + adipiscing ante. Vestibulum ante ipsum primis in faucibus orci luctus et + ultrices posuere cubilia Curae; Nam accumsan iaculis augue, sed varius dui + sagittis id. Etiam sit amet eleifend augue. + + Ut sit amet nibh sit amet justo tempor condimentum. Ut faucibus sagittis + volutpat. Duis vestibulum feugiat sollicitudin. Aenean cursus luctus urna + at consectetur. Nullam tincidunt, eros a iaculis sodales, tellus est + imperdiet arcu, sit amet tincidunt orci felis et tortor. Mauris rutrum + venenatis nunc ut rutrum. Phasellus nec erat magna, in tincidunt orci. Sed + sit amet suscipit tellus. Mauris ut nisi turpis. Suspendisse augue turpis, + condimentum ac bibendum in, vestibulum nec eros. Curabitur dapibus pulvinar + vehicula. Fusce consequat, erat in malesuada hendrerit, tellus urna + pharetra lacus, sed euismod nisi urna sed nisi. Etiam fermentum accumsan + nunc, sed bibendum dui iaculis id. Etiam blandit fermentum ligula nec + viverra. Vivamus venenatis arcu in nulla euismod euismod. Donec sit amet + augue nec metus varius fringilla. Vivamus pulvinar elit ac mi rhoncus in + luctus diam egestas. Curabitur a felis eget arcu pretium tempus eu sed + mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices + posuere cubilia Curae; + + Mauris malesuada, nibh ac venenatis hendrerit, ligula dui condimentum + tellus, sit amet pretium diam tortor vel risus. Suspendisse suscipit + consequat eros id dignissim. Cras interdum lorem ac massa euismod non porta + enim pretium. Aliquam ultrices nibh vitae ligula consectetur vel + sollicitudin lacus volutpat. Phasellus vulputate iaculis sem nec laoreet. + Nam leo sem, tempor eu condimentum id, imperdiet sed dolor. Donec pharetra + velit non libero euismod tempor. Vestibulum ante ipsum primis in faucibus + orci luctus et ultrices posuere cubilia Curae; Sed fermentum, libero a + posuere posuere, enim elit imperdiet enim, a sollicitudin est felis non + libero. Sed vel dolor ut arcu dapibus iaculis nec a mauris. Morbi + ullamcorper ultrices venenatis. Fusce luctus ante sit amet lacus venenatis + ut rutrum elit lobortis. Nulla fermentum tortor ac sapien fringilla quis + iaculis quam egestas. + + Aliquam et tortor est, at elementum mauris. Morbi posuere erat nec leo + vulputate in pellentesque tortor condimentum. Vestibulum at orci augue. + Aenean pellentesque sapien id felis consequat varius. Suspendisse bibendum + enim sit amet mi imperdiet vel suscipit nisi tristique. Curabitur velit + massa, consectetur ac mattis vel, accumsan at nunc. Donec porta, nibh nec + consequat convallis, urna neque auctor erat, eu convallis lorem leo + convallis turpis. Morbi non mauris non metus ornare vulputate. Sed aliquet, + dolor ut egestas fermentum, metus purus mollis elit, nec commodo odio quam + quis nisl. Aliquam erat volutpat. Suspendisse sed faucibus urna. Integer + suscipit rutrum condimentum. Praesent dignissim libero eget metus luctus + consectetur. + + Vestibulum ac erat felis, vitae iaculis erat. Duis interdum lacinia arcu, + non lacinia urna luctus in. Curabitur feugiat sapien sapien, in vestibulum + diam. Phasellus lobortis massa ut metus pretium dignissim. Fusce quis sem + odio. Integer pellentesque sodales augue id tincidunt. Pellentesque + habitant morbi tristique senectus et netus et malesuada fames ac turpis + egestas. Vestibulum lorem odio, semper vel scelerisque sit amet, sagittis + ac libero. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices + posuere cubilia Curae; Nam egestas ultricies dui at gravida. Duis + tristique, eros id consectetur pellentesque, nulla arcu ultricies tortor, + ut pulvinar sapien lacus in elit. Vivamus dolor massa, pulvinar at mollis + vitae, euismod ut dolor. Vivamus a magna ante. Vestibulum vitae fringilla + leo. Ut gravida magna in quam fringilla ultricies. Mauris rhoncus enim id + sem interdum blandit. Pellentesque luctus leo sit amet felis viverra ac + accumsan purus mollis. Aenean pretium fringilla quam nec laoreet. + + Nulla id mauris mauris. Nam varius bibendum tristique. Integer ante felis, + volutpat sed dignissim vel, interdum molestie nisi. Etiam mollis accumsan + elit, ut gravida eros molestie nec. Nullam quis velit ac purus imperdiet + sodales. Donec semper placerat venenatis. Cras dolor risus, sodales sed + scelerisque nec, sollicitudin pretium felis. Quisque pretium felis id + turpis bibendum pulvinar ornare id nibh. Morbi lobortis leo non mi + porttitor vulputate. Vestibulum nec odio tellus, ut blandit ligula. In + pellentesque neque sit amet dui pulvinar sed laoreet dui vehicula. In hac + habitasse platea dictumst. Etiam feugiat dictum blandit. Praesent lacinia + tincidunt elit, quis consectetur tortor molestie commodo. + + Ut sit amet accumsan lorem. Cras quam nunc, malesuada tempor volutpat + vitae, aliquam eu diam. Sed sem nibh, bibendum nec sollicitudin at, + interdum et magna. Cum sociis natoque penatibus et magnis dis parturient + montes, nascetur ridiculus mus. Aliquam vitae sem non elit pharetra + vestibulum et condimentum libero. Nam egestas ultricies hendrerit. Nunc nec + fringilla nulla. Aliquam risus tellus, hendrerit non dapibus a, tincidunt + vel ante. Vivamus mollis, magna et lacinia tincidunt, dui massa porta odio, + ac ornare felis massa nec lorem. Mauris sagittis lacus sed metus mollis ac + egestas lectus porttitor. Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient + montes, nascetur ridiculus mus. Integer vitae lacinia libero. Phasellus at + neque enim, sit amet dictum mi. + + Ut risus nisi, vestibulum vel congue eget, egestas in ipsum. Duis faucibus + tempus sodales. Duis convallis pellentesque arcu rhoncus congue. Nunc ac + mauris eu purus vestibulum congue. Praesent convallis semper augue vel + volutpat. Integer dictum varius placerat. Vestibulum convallis tortor non + mi lacinia ac aliquet dui ultricies. Donec ultrices purus eros. Maecenas + venenatis posuere massa, nec consectetur lacus cursus eget. Donec quam + lacus, tempus id placerat et, posuere sed libero. Proin auctor diam ut arcu + viverra ut imperdiet tellus dapibus. + + Morbi ac mauris quis tellus porttitor eleifend. Sed et ante magna, ut + sodales sapien. Vestibulum ante ipsum primis in faucibus orci luctus et + ultrices posuere cubilia Curae; Integer mattis venenatis mi non + ullamcorper. Vestibulum magna enim, aliquam non interdum ut, dignissim + vitae ante. Praesent dignissim, est at pretium posuere, nisl ante varius + felis, vitae posuere enim nulla et nunc. Morbi sagittis suscipit leo, eu + accumsan ligula volutpat non. Donec ut tincidunt magna. Integer ac libero + mi. Sed non eros dolor, in tincidunt enim. Curabitur iaculis erat quis + felis iaculis ut volutpat augue malesuada. Pellentesque eget arcu ligula, + ut volutpat purus. Suspendisse dictum lorem quis sapien lacinia pretium. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + Proin sagittis egestas massa et tempor. Mauris et eros ante, id porta sem. + Duis ac eros vitae ipsum ultrices malesuada eget a risus. Morbi imperdiet, + est a hendrerit tristique, mi erat molestie lacus, ac tempor risus nulla id + erat. Pellentesque habitant morbi tristique senectus et netus et malesuada + fames ac turpis egestas. Etiam congue, lacus quis ultricies consequat, diam + metus convallis enim, ut volutpat enim urna vitae erat. In quam risus, + molestie et dapibus id, elementum sit amet ligula. Nam faucibus lacus id + dolor facilisis viverra. Nullam vehicula massa ac arcu consectetur + vulputate. Praesent nec augue ac justo dapibus vehicula. Aliquam + consectetur hendrerit dolor, et mollis nisl auctor ut. + + Ut sagittis risus at felis fringilla ultricies. Vestibulum non urna nibh, + nec pretium dolor. Nulla imperdiet lobortis eros at pharetra. Vivamus + cursus pellentesque ornare. Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Fusce arcu quam, pulvinar at rutrum vitae, ornare vitae + leo. Maecenas vehicula magna sit amet nulla bibendum condimentum. Curabitur + ultrices tempor fringilla. Vivamus pretium suscipit molestie. Donec arcu + diam, ultricies ac pellentesque eu, venenatis et sapien. + + Nam dictum orci augue, vel eleifend leo. Nam at lacus sapien, nec pretium + eros. In egestas, enim sed sagittis feugiat, purus odio tristique lectus, + vel condimentum leo turpis ac odio. Nam iaculis mi quis odio posuere et + venenatis velit ultricies. Nulla facilisi. Proin nec dolor ac quam euismod + gravida quis et eros. Nam interdum condimentum mattis. Cum sociis natoque + penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent + a nisi eu massa mollis posuere sed a nunc. Aenean tempus enim a justo + rhoncus quis ultrices nisl commodo. + + Aenean imperdiet mauris a ipsum venenatis vel scelerisque lorem rutrum. + Donec ut nunc eros, eget accumsan felis. Nullam ullamcorper porta dictum. + Donec accumsan cursus vestibulum. Aenean in sapien velit. Vivamus nec massa + mi. Fusce felis tortor, bibendum non volutpat a, fringilla quis nisi. Duis + varius bibendum erat, quis fermentum sem accumsan eget. Maecenas massa + felis, porta sed laoreet eu, luctus eu lectus. Cras id nibh vitae erat + fringilla rutrum. Maecenas eget consequat est. Vivamus viverra, felis vel + faucibus rhoncus, quam ipsum elementum libero, quis convallis urna purus ut + mauris. Nam quis urna vitae enim consequat placerat. Vivamus congue augue + sit amet lectus luctus tempor. Cras ut justo convallis est egestas + pellentesque ac nec orci. + + Vivamus rutrum bibendum ante, at cursus erat pulvinar ornare. Proin + imperdiet scelerisque ante eu vestibulum. Nullam ullamcorper metus nec + purus auctor lobortis. Proin sed lacus et ipsum tempor tempus. Vivamus odio + dolor, vulputate vitae semper sit amet, aliquet egestas orci. Nullam non + quam eu quam sagittis porta. Nunc in velit id erat commodo viverra. + Praesent nec est augue, nec sagittis erat. Cras sed turpis quis enim tempor + sagittis. Donec in justo ac nisl porta condimentum id vestibulum nulla. Nam + elementum ultricies nunc a bibendum. + + Aenean tincidunt nisl non augue pellentesque sit amet convallis neque + semper. Cras placerat suscipit massa sed volutpat. Integer vulputate + imperdiet enim, vitae vulputate sapien mattis feugiat. Vivamus pharetra + facilisis mauris a gravida. Nulla non venenatis est. Duis lobortis + consectetur sem ac aliquam. In eget sapien odio. Vivamus pulvinar ultricies + magna, quis laoreet dui porta et. Integer tempus malesuada velit, et + consequat odio ultrices sed. Aliquam malesuada commodo diam vel posuere. + Morbi porttitor, elit vitae auctor gravida, lorem massa bibendum arcu, vel + placerat nulla justo at augue. + + Aliquam libero quam, mattis blandit congue sit amet, fermentum ac augue. + Aliquam malesuada molestie vulputate. Duis id porta augue. Vestibulum diam + dolor, ultrices sit amet porttitor id, convallis id lectus. Etiam ac augue + tincidunt nisi tempor molestie euismod id nisl. Nam et tortor ac arcu + viverra pulvinar. Fusce pulvinar rhoncus leo, a faucibus enim interdum non. + Aliquam vulputate mattis consectetur. Pellentesque sit amet quam sem. Cras + eget arcu eu elit volutpat volutpat. Integer sed varius enim. Integer sit + amet felis orci, id dignissim sapien. Sed vitae lorem sed libero facilisis + fringilla. Pellentesque congue tristique purus, eleifend semper risus + suscipit quis. Phasellus rutrum quam vitae arcu vulputate porta. Sed + tristique arcu nec mi porttitor lacinia. + + Donec congue feugiat diam quis pretium. Vivamus at luctus nunc. Integer + vulputate laoreet mauris quis auctor. Nunc at ultrices libero. Maecenas + porta faucibus purus non vehicula. Sed sit amet metus vitae mi ultrices + scelerisque nec quis risus. Phasellus pellentesque tincidunt massa id + ultricies. Aliquam dictum arcu ac dolor interdum rutrum. Nulla facilisi. + Duis nisi est, tincidunt a sagittis id, sollicitudin at odio. Curabitur sed + est eu sapien faucibus dignissim in quis tortor. + + Nunc ac elit tortor, non lobortis massa. Proin posuere ante ut metus + vehicula suscipit. Proin mattis mauris ac lectus consequat rutrum. Nam arcu + lectus, commodo non pretium a, pharetra semper dolor. Fusce eleifend + hendrerit adipiscing. Nunc et eleifend erat. Suspendisse tempus nisl ut + arcu blandit ut adipiscing nisi tristique. Suspendisse molestie facilisis + risus sed fermentum. Praesent tempor convallis ultricies. Integer et elit + velit, at consectetur risus. + + Vestibulum mollis adipiscing sodales. Vestibulum ante ipsum primis in + faucibus orci luctus et ultrices posuere cubilia Curae; Mauris dictum + molestie porta. Nam convallis nisl quis lacus vulputate in convallis risus + sagittis. Vivamus accumsan faucibus cursus. Ut ultricies imperdiet ligula + scelerisque blandit. In ornare egestas purus, at convallis velit egestas + laoreet. Class aptent taciti sociosqu ad litora torquent per conubia + nostra, per inceptos himenaeos. Nulla quis imperdiet est. Nunc tempus magna + quis lacus feugiat et posuere lacus vehicula. Cras lacinia aliquam est at + vehicula. Aenean congue elit in ante dignissim vitae fermentum lectus + aliquam. Mauris at odio magna, at interdum dui. Cras fringilla mi velit, + nec varius neque. + + Fusce et volutpat lacus. Suspendisse id turpis et urna varius convallis in + eu purus. Nulla facilisi. Etiam mauris nisl, ultrices ac porttitor sit + amet, facilisis ut neque. Nullam ut velit quis velit tincidunt rhoncus. + Praesent tristique porttitor euismod. Nulla non felis ante, feugiat commodo + turpis. In nec venenatis mi. Duis tempus tempor purus, vitae consectetur mi + ornare eu. Proin sed consequat erat. Quisque nec sem dui. Nam semper, + ligula facilisis pretium interdum, diam lectus sollicitudin lorem, in + elementum nisi lorem scelerisque justo. Nullam ac fringilla nunc. Maecenas + malesuada ligula in massa sollicitudin sit amet auctor ipsum malesuada. + Vestibulum ut augue in magna lobortis varius eget in ipsum. In hac + habitasse platea dictumst. + + Cras vel sagittis mi. Aenean urna sapien, ultrices et tristique et, aliquam + vel libero. Nullam in consequat ante. Suspendisse libero augue, pulvinar a + dignissim vitae, fringilla malesuada dui. Phasellus augue ante, pulvinar + eget tincidunt vel, venenatis sed arcu. Pellentesque ac purus orci, vel + molestie turpis. Nulla consectetur sollicitudin dolor, sed ornare arcu + accumsan fermentum. Fusce vestibulum nisi at leo interdum eu sollicitudin + lacus dictum. Fusce malesuada consequat ipsum ut convallis. Maecenas in + eros sit amet elit consectetur fringilla nec a nibh. Ut et velit vel ligula + pharetra elementum. Nullam aliquam, tellus vel cursus lacinia, dui libero + dictum turpis, nec lacinia dolor nunc vel diam. Pellentesque convallis dui + quis lacus ornare at rutrum lorem pellentesque. Suspendisse potenti. Cum + sociis natoque penatibus et magnis dis parturient montes, nascetur + ridiculus mus. + + Nunc ac nibh sed mauris ornare cursus. Praesent enim mauris, tincidunt + vitae convallis ac, ultricies imperdiet sapien. Duis sodales ligula eget + lorem suscipit sed consectetur metus pretium. Nam in magna augue, quis + volutpat mauris. Quisque pretium lobortis orci quis laoreet. Nam ut nisi + diam. Sed ultrices ultrices dapibus. Integer feugiat mauris id orci + pulvinar eu tempus nibh viverra. Etiam venenatis bibendum massa a + consequat. Fusce interdum velit ac mauris rhoncus non cursus neque + consectetur. Vestibulum dictum eros ac metus fringilla venenatis. Phasellus + auctor dui non nulla molestie id malesuada mauris euismod. Aenean id tortor + ac justo eleifend mollis non vel arcu. Duis ac lorem tortor. Donec volutpat + purus sed nunc luctus interdum hendrerit nulla ullamcorper. Sed consectetur + interdum aliquet. Proin ullamcorper risus ut ante lacinia sagittis. Nunc + varius eleifend purus, ac pellentesque urna viverra id. Praesent euismod, + sapien accumsan gravida dictum, massa massa euismod sapien, ut auctor + tellus arcu sed diam. + + Vivamus tincidunt dolor non lorem pellentesque at tempus elit adipiscing. + Vestibulum tempor aliquam consectetur. Mauris nec dictum nisl. Donec + scelerisque ornare condimentum. Phasellus laoreet justo nec nibh convallis + convallis. Duis id orci sapien, eget pulvinar justo. Aenean id arcu felis, + eu iaculis nibh. Aenean eleifend pretium rutrum. Aliquam molestie sem quis + tellus aliquam eleifend. Mauris et purus orci. Nunc et accumsan tortor. + Phasellus semper eleifend nisi, a faucibus risus vehicula id. Lorem ipsum + dolor sit amet, consectetur adipiscing elit. Maecenas in felis et est + lacinia eleifend vel sed ipsum. Aliquam commodo molestie lorem id + hendrerit. Nam sed tellus urna, sed dignissim eros. + + """ + + return A_LONG_STRING -- 2.26.2