text:
html, body {
  color: #fff;
  font-size: 14px;
  line-height: 16px;
  font-family: "Montserrat" Arial, sans-serif;
  height: 100%; }

@font-face {
  font-family: "Montserrat";
  src: url("../font/Montserrat-Regular-webfont.eot");
  src: url("../font/Montserrat-Regular-webfont.eot?#iefix") format("embedded-opentype"), url("../font/Montserrat-Regular-webfont.woff2") format("woff2"), url("../font/Montserrat-Regular-webfont.woff") format("woff"), url("../font/Montserrat-Regular-webfont.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }
@font-face {
  font-family: "Cardo";
  src: url("../font/Cardo-Regular-webfont.eot");
  src: url("../font/Cardo-Regular-webfont.eot?#iefix") format("embedded-opentype"), url("../font/Cardo-Regular-webfont.woff2") format("woff2"), url("../font/Cardo-Regular-webfont.woff") format("woff"), url("../font/Cardo-Regular-webfont.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }
h1 {
  font-size: 3.4rem;
  line-height: 3.6rem; }

h2 {
  font-size: 2.1rem;
  line-height: 2.3rem; }

h3 {
  font-size: 1.7rem;
  line-height: 1.9rem; }

h4 {
  font-size: 1.4rem;
  line-height: 1.6rem; }

h5 {
  font-size: 1rem;
  line-height: 1.4rem;
  margin: 10px 0; }

h1, h2, h3, h4, h5 {
  text-transform: uppercase; }

::selection {
  color: #00ffff;
  background: #1e023f;
  text-shadow: none; }

::selection {
  background: #b3d4fc; }

::-webkit-scrollbar {
  background: #f4f4f4;
  width: 10px;
  height: 10px; }

::-webkit-scrollbar-thumb {
  background: #00ffff;
  width: 10px; }

/*! HTML5 Boilerplate v5.0.0 | MIT License | https://html5boilerplate.com/
 *
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 * ==========================================================================
 * Base styles: opinionated defaults
 * ==========================================================================
 *
 * A better looking default horizontal rule */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

/*  Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440 */
audio, canvas, iframe, img, svg, video {
  vertical-align: middle; }

fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

textarea {
  resize: vertical; }

.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

.hidden {
  display: none !important; }

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }
  .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto; }

.invisible {
  visibility: hidden; }

/* Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements. */
.clearfix:before {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */
  clear: both; }

.menu {
  position: fixed;
  right: 30px;
  top: 10px;
  width: 50px;
  cursor: pointer;
  z-index: 999; }

.menu_content {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  z-index: 1999;
  background: #1e023f;
  text-align: center; }
  .menu_content .close_menu {
    cursor: pointer;
    position: fixed;
    right: 0;
    width: 100px;
    height: 100px; }
  .menu_content ul {
    margin-top: 150px;
    list-style-type: none; }
    .menu_content ul a {
      font-size: 2.2rem;
      line-height: 3.5rem;
      text-decoration: none;
      color: #00ffff; }

.hover_animation a {
  overflow: hidden;
  padding: 0 4px;
  height: 3.5rem; }
  .hover_animation a span {
    position: relative;
    display: inline-block;
    -webkit-transition: -webkit-transform 0.3s;
    -moz-transition: -moz-transform 0.3s;
    transition: transform 0.3s; }
    .hover_animation a span::before {
      position: absolute;
      top: 100%;
      content: attr(data-hover);
      -webkit-transform: translate3d(0, 0, 0);
      -moz-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0); }
  .hover_animation a:hover span, .hover_animation a:focus span {
    -webkit-transform: translateY(-100%);
    -moz-transform: translateY(-100%);
    transform: translateY(-100%); }

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }
  *:after, *::before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }

nav a {
  position: relative;
  display: inline-block;
  margin: 15px 25px;
  outline: none;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1px; }

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0; }
  *:before, *:after {
    box-sizing: border-box;
    margin: 0;
    padding: 0; }

html {
  height: 100%;
  overflow-x: hidden; }

body {
  height: 100%;
  overflow-x: hidden;
  background: #fff; }

svg {
  display: block;
  overflow: visible; }

.slider-container {
  position: relative;
  height: 100%;
  user-select: none;
  cursor: all-scroll; }
  .slider-container::-webkit-scrollbar {
    display: none; }

.slider-control {
  z-index: 999;
  position: absolute;
  bottom: 2%;
  width: 100px;
  height: 100px;
  transition: opacity 0.3s;
  will-change: opacity;
  opacity: 0.5; }
  .slider-control.inactive:hover {
    cursor: auto; }
  .slider-control:not(.inactive):hover {
    opacity: 1;
    cursor: pointer; }
  .slider-control.left {
    left: 1%; }
  .slider-control.right {
    right: 1%; }
  .slider-control img {
    width: 100px; }

.logo {
  position: absolute;
  left: 8%;
  top: 10%;
  z-index: 2;
  max-width: 200px;
  transition: transform 0.5s 0.5s, opacity 0.2s 0.5s;
  will-change: transform, opacity;
  transform: translate3d(-20%, 0, 0);
  opacity: 0; }

.slider {
  z-index: 1;
  position: relative;
  height: 100%; }
  .slider.animating {
    transition: transform 0.5s;
    will-change: transform; }
    .slider.animating .slide__bg {
      transition: transform 0.5s;
      will-change: transform; }

.slide {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }
  .slide.active .slide__overlay, .slide.active .slide__text, .slide.active .logo {
    opacity: 1;
    transform: translateX(0); }

.slide__bg {
  position: absolute;
  top: 0;
  left: -50%;
  width: 100%;
  height: 100%;
  will-change: transform;
  background: no-repeat center center;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover; }

.slide:nth-child(1) {
  left: 0; }
  .slide:nth-child(1) .slide__bg {
    left: 0;
    background-image: url("../img/slides/1_slide_1920x1200.jpg"); }
    @media (max-width: 980px) {
      .slide:nth-child(1) .slide__bg {
        background-image: url("../img/slides/1_slide_1280x800.jpg"); } }
    @media (max-width: 480px) {
      .slide:nth-child(1) .slide__bg {
        background-image: url("../img/slides/1_slide_480x800.jpg"); } }
  .slide:nth-child(1) .slide__overlay-path {
    fill: rgba(247, 51, 155, 0.9); }
.slide:nth-child(2) {
  left: 100%; }
  .slide:nth-child(2) .slide__bg {
    left: -50%;
    background-image: url("../img/slides/2_slide_1920x1200.jpg"); }
    @media (max-width: 980px) {
      .slide:nth-child(2) .slide__bg {
        background-image: url("../img/slides/2_slide_1280x800.jpg"); } }
    @media (max-width: 480px) {
      .slide:nth-child(2) .slide__bg {
        background-image: url("../img/slides/2_slide_480x800.jpg"); } }
  .slide:nth-child(2) .slide__overlay-path {
    fill: rgba(60, 60, 62, 0.9); }
.slide:nth-child(3) {
  left: 200%; }
  .slide:nth-child(3) .slide__bg {
    left: -100%;
    background-image: url("../img/slides/3_slide_1920x1200.jpg"); }
    @media (max-width: 980px) {
      .slide:nth-child(3) .slide__bg {
        background-image: url("../img/slides/3_slide_1280x800.jpg"); } }
    @media (max-width: 480px) {
      .slide:nth-child(3) .slide__bg {
        background-image: url("../img/slides/3_slide_480x800.jpg"); } }
  .slide:nth-child(3) .slide__overlay-path {
    fill: rgba(49, 8, 40, 0.9); }
.slide:nth-child(4) {
  left: 300%; }
  .slide:nth-child(4) .slide__bg {
    left: -150%;
    background-image: url("../img/slides/4_slide_1920x1200.jpg"); }
    @media (max-width: 980px) {
      .slide:nth-child(4) .slide__bg {
        background-image: url("../img/slides/4_slide_1280x800.jpg"); } }
    @media (max-width: 480px) {
      .slide:nth-child(4) .slide__bg {
        background-image: url("../img/slides/4_slide_480x800.jpg"); } }
  .slide:nth-child(4) .slide__overlay-path {
    fill: rgba(45, 56, 122, 0.9); }

@media (max-width: 980px) {
  .slide:nth-child(1) .slide__text {
    background-color: rgba(247, 51, 155, 0.9); } }
@media (max-width: 980px) {
  .slide:nth-child(2) .slide__text {
    background-color: rgba(60, 60, 62, 0.9); } }
@media (max-width: 980px) {
  .slide:nth-child(3) .slide__text {
    background-color: rgba(49, 8, 40, 0.9); } }
@media (max-width: 980px) {
  .slide:nth-child(4) .slide__text {
    background-color: rgba(45, 56, 122, 0.9); } }
.slide__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.slide__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 100%;
  min-height: 810px;
  transition: transform 0.5s 0.5s, opacity 0.2s 0.5s;
  will-change: transform, opacity;
  transform: translate3d(-20%, 0, 0);
  opacity: 0; }
  .slide__overlay path {
    opacity: 0.8; }

@media (max-width: 980px) {
  .slide__overlay {
    display: none; } }
.slide__text {
  position: absolute;
  width: 25%;
  bottom: 15%;
  left: 9%;
  color: #fff;
  transition: transform 0.5s 0.8s, opacity 0.5s 0.8s;
  will-change: transform, opacity;
  transform: translateY(-50%);
  opacity: 0; }

@media (max-width: 980px) {
  .slide__text {
    left: 0;
    bottom: 0;
    width: 100%;
    text-align: center;
    transform: translateY(50%);
    transition: transform 0.5s 0.5s, opacity 0.5s 0.5s;
    padding: 0 1rem; } }
.slide__text-heading {
  font-family: "Montserrat" Arial, sans-serif;
  margin-bottom: 1.2rem; }

@media (max-width: 980px) {
  .slide__text-heading {
    font-size: 3.5rem; } }
.slide__text-desc {
  margin-bottom: 1.5rem;
  font-family: "Montserrat" Arial, sans-serif; }

@media (max-width: 980px) {
  .slide__text-desc {
    display: none; } }
.slide__text-link {
  z-index: 5;
  display: inline-block;
  position: relative;
  cursor: pointer;
  font-family: "Montserrat" Arial, sans-serif;
  font-size: 1.3rem;
  position: relative;
  padding-left: 40px; }
  .slide__text-link:before {
    content: "";
    position: absolute;
    bottom: 8px;
    left: 0;
    display: block;
    height: 1px;
    width: 30px;
    background-color: #fff; }

@media (max-width: 980px) {
  .slide__text-link {
    padding: 20px 0;
    border-top: 1px solid #fff; }
    .slide__text-link:before {
      display: none; } }
#offer {
  background-color: #1e023f;
  color: #fff;
  width: 100%;
  overflow: hidden;
  padding: 40px 0; }
  #offer .box_offer {
    display: block;
    float: left;
    width: 25%;
    text-align: center;
    padding: 0;
    margin: 0; }
    @media (max-width: 768px) {
      #offer .box_offer {
        width: 50%; } }
    @media (max-width: 480px) {
      #offer .box_offer {
        width: 100%; } }
    #offer .box_offer .icon img {
      max-width: 110px; }
    #offer .box_offer h2 {
      margin-bottom: 20px; }
    #offer .box_offer ul li {
      line-height: 1.8rem;
      list-style: none; }
    #offer .box_offer .line {
      width: 60px;
      height: 1px;
      background-color: #00ffff;
      margin: 30px auto; }

#portfolio {
  overflow: hidden;
  clear: both; }
  #portfolio .box {
    width: 25%;
    float: left;
    display: block;
    position: relative;
    overflow: hidden; }
    #portfolio .box:hover .portfolio_animation {
      -webkit-transform: scale3d(1.2, 1.2, 1);
      transform: scale3d(1.2, 1.2, 1); }
      #portfolio .box:hover .portfolio_animation .portfolio_project {
        display: none; }
    @media (max-width: 768px) {
      #portfolio .box {
        width: 50%; } }
    @media (max-width: 480px) {
      #portfolio .box {
        width: 100%; } }
    #portfolio .box .portfolio_animation {
      width: 100%;
      -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
      transition: transform 0.35s;
      cursor: pointer; }
    #portfolio .box .portfolio_project {
      cursor: pointer;
      position: absolute;
      display: block;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      text-align: center; }
      #portfolio .box .portfolio_project .portfolio_description {
        vertical-align: middle;
        position: absolute;
        display: block;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        padding: 40% 15%; }
        @media (max-width: 980px) {
          #portfolio .box .portfolio_project .portfolio_description h2 {
            font-size: 1.4rem;
            line-height: 1.6rem; } }
        @media (max-width: 768px) {
          #portfolio .box .portfolio_project .portfolio_description h2 {
            font-size: 2.1rem;
            line-height: 2.3rem; } }
        #portfolio .box .portfolio_project .portfolio_description .line {
          width: 80px;
          height: 1px;
          background-color: #fff;
          margin: 15px auto; }
  #portfolio .azja .portfolio_project {
    background-color: rgba(124, 70, 46, 0.9); }
  #portfolio .chmiel .portfolio_project {
    background-color: rgba(64, 191, 160, 0.9); }
  #portfolio .corner .portfolio_project {
    background-color: rgba(0, 242, 180, 0.9); }
  #portfolio .figle .portfolio_project {
    background-color: rgba(240, 99, 174, 0.9); }
  #portfolio .flowers .portfolio_project {
    background-color: rgba(2, 170, 164, 0.9); }
  #portfolio .ilustrations .portfolio_project {
    background-color: rgba(238, 23, 77, 0.9); }
  #portfolio .pegaz .portfolio_project {
    background-color: rgba(83, 183, 213, 0.9); }
  #portfolio .mice .portfolio_project {
    background-color: rgba(248, 0, 101, 0.9); }
  #portfolio .project_content {
    display: none;
    position: fixed;
    z-index: 99999;
    bottom: 0;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    background: #fff;
    color: #1e023f; }
    #portfolio .project_content .close {
      z-index: 999999;
      position: fixed;
      right: 50px;
      top: 40px;
      width: 100px;
      cursor: pointer; }
      @media (max-width: 980px) {
        #portfolio .project_content .close {
          right: 0;
          top: 20px; } }
    #portfolio .project_content .content {
      padding: 40px 20px;
      max-width: 980px;
      margin: 0 auto; }
      #portfolio .project_content .content .project_title {
        max-width: 75%; }
      #portfolio .project_content .content .project_description {
        max-width: 75%;
        padding: 20px 40px;
        font-family: "Cardo" Arial, sans-serif;
        font-size: 1.2rem;
        line-height: 1.6rem;
        position: relative; }
        #portfolio .project_content .content .project_description:before {
          content: "";
          position: absolute;
          top: 28px;
          left: 0;
          display: block;
          height: 1px;
          width: 30px;
          background-color: #1e023f; }
      #portfolio .project_content .content .project_img img {
        width: 100%; }

#contact {
  background-color: #1e023f;
  color: #fff;
  padding: 50px 20px 0; }
  #contact .contact_container {
    max-width: 680px;
    margin: 0 auto;
    overflow: hidden; }
    #contact .contact_container .footer_logo {
      width: 100px;
      float: right; }
    #contact .contact_container a {
      color: #00ffff;
      text-transform: none;
      text-decoration: none; }
    #contact .contact_container h2 {
      display: block;
      float: left;
      padding-top: 30px;
      position: relative; }
      #contact .contact_container h2:before {
        content: "";
        position: absolute;
        bottom: -30px;
        height: 1px;
        width: 30px;
        background-color: #00ffff; }
    #contact .contact_container h3 {
      color: #00ffff;
      display: block;
      margin-top: 10px; }
    #contact .contact_container .ask {
      padding: 20px 0;
      display: block;
      clear: both; }
    #contact .contact_container .contact_line {
      width: 50%;
      float: left;
      padding-top: 35px; }
      @media (max-width: 768px) {
        #contact .contact_container .contact_line {
          width: 100%; } }
    #contact .contact_container .social {
      clear: both;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-box-pack: justify;
      -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
      justify-content: space-between;
      padding: 40px 0; }
      #contact .contact_container .social img {
        width: 30px; }

#about {
  clear: both;
  background: #1e023f;
  margin-left: auto;
  margin-right: auto;
  position: relative; }
  #about .about_bg {
    background-image: url(../img/nofajnie_illustration.svg);
    background-color: #fff;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: bottom;
    width: 100%;
    color: #1e023f; }
    @media (max-width: 480px) {
      #about .about_bg {
        background-image: url(../img/nofajnie_illustration_mobile.svg); } }
    #about .about_bg .about_text {
      text-align: center;
      margin: 0 auto;
      max-width: 600px;
      padding: 5% 10px 40%; }
      @media (max-width: 480px) {
        #about .about_bg .about_text {
          padding: 15% 10px 130%; } }
      #about .about_bg .about_text span {
        font-size: 1.2rem;
        line-height: 2.2rem; }
  #about .about_content {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-align: stretch;
    -ms-flex-align: stretch;
    -webkit-align-items: stretch;
    align-items: stretch; }
    #about .about_content .box {
      width: 25%;
      color: #00ffff;
      overflow: hidden; }
      @media (max-width: 980px) and (min-width: 480px) {
        #about .about_content .box {
          width: 50%; }
          #about .about_content .box:nth-child(3) {
            -webkit-box-ordinal-group: 2;
            -moz-box-ordinal-group: 2;
            -ms-flex-order: 2;
            -webkit-order: 2;
            order: 2; }
          #about .about_content .box:nth-child(4) {
            -webkit-box-ordinal-group: 1;
            -moz-box-ordinal-group: 1;
            -ms-flex-order: 1;
            -webkit-order: 1;
            order: 1; } }
      @media (max-width: 480px) {
        #about .about_content .box {
          width: 100%; } }
    #about .about_content .about_person {
      padding: 3%; }
      @media (max-width: 480px) {
        #about .about_content .about_person {
          padding: 6%; } }
      #about .about_content .about_person h5 {
        text-transform: none; }
    #about .about_content .person_description {
      color: #fff;
      font-family: "PT Serif", serif;
      line-height: 1.6rem;
      padding: 20px;
      position: relative; }
    #about .about_content .ewelina, #about .about_content .piotrek {
      background-position: center center;
      background-repeat: no-repeat; }
    #about .about_content .ewelina {
      background-image: url(../img/ewelina.jpg); }
    #about .about_content .piotrek {
      background-image: url(../img/piotrek.jpg); }

/*# sourceMappingURL=app.css.map */


text:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">

<fieldset id="fieldset">
    <legend>Choose a shipping method:</legend>

<input id="overnight" type="radio" name="shipping" value="overnight" />Overnight

</fieldset>

End of test

redpajama_set_name: RedPajamaGithub


text:
import re
import unicodedata

import nltk
from nltk.corpus import wordnet

def normalize(text):
    normalized_text = normalize_unicode(text)
    normalized_text = normalize_number(normalized_text)
    normalized_text = lower_text(normalized_text)
    return normalized_text

def lower_text(text):
    return text.lower()

def normalize_unicode(text, form='NFKC'):
    normalized_text = unicodedata.normalize(form, text)
    return normalized_text

def lemmatize_term(term, pos=None):
    if pos is None:
        synsets = wordnet.synsets(term)
        if not synsets:
            return term
        pos = synsets[0].pos()
        if pos == wordnet.ADJ_SAT:
            pos = wordnet.ADJ
    return nltk.WordNetLemmatizer().lemmatize(term, pos=pos)

def normalize_number(text):
    """
    pattern = r'\d+'
    replacer = re.compile(pattern)
    result = replacer.sub('0', text)
    """
    # 連続した数字を0で置換
    replaced_text = re.sub(r'\d+', '0', text)
    return replaced_text


text:
class CreateComments < ActiveRecord::Migration[5.0] # :nodoc:
  def change
    create_table :comments do |t|
      t.belongs_to :user, foreign_key: true
      t.belongs_to :post, foreign_key: true
      t.belongs_to :parent, polymorphic: true
      t.text :body

      t.timestamps
    end
  end
end


text:
using System;
using System.Diagnostics;

namespace BudgetAnalyser.Engine
{
    /// <summary>
    ///     A logging implementation that simply outputs to the Debug stream <see cref="System.Diagnostics.Debug" />.
    /// </summary>
    [AutoRegisterWithIoC]
    public class DebugLogger : ILogger
    {
        /// <summary>
        ///     A custom string format method to avoid code translation and localisation warnings. The logging language is always
        ///     English.
        /// </summary>
        public string Format(string formatTemplate, params object[] parameters)
        {
            return string.Format(formatTemplate, parameters);
        }

        /// <summary>
        ///     Write a debug/diagnostic log entry regardless of the configured log level.
        /// </summary>
        public void LogAlways(Func<ILogger, string> logEntryBuilder)
        {
            Debug.WriteLine(ConstructLogEntry("ALWAYS", logEntryBuilder));
        }

        /// <summary>
        ///     Write a debug/diagnostic log entry if the configured log level is set to error.
        /// </summary>
        public void LogError(Func<ILogger, string> logEntryBuilder)
        {
            Debug.WriteLine(ConstructLogEntry("ERROR", logEntryBuilder));
        }

        /// <summary>
        ///     Write a debug/diagnostic log entry if the configured log level is set to error.
        /// </summary>
        public void LogError(Exception ex, Func<ILogger, string> logEntryBuilder)
        {
            if (ex == null) throw new ArgumentNullException(nameof(ex));
            if (logEntryBuilder == null) throw new ArgumentNullException(nameof(logEntryBuilder));

            Debug.WriteLine(ConstructLogEntry("ERROR", logEntryBuilder));
            Debug.WriteLine(ex.ToString());
        }

        /// <summary>
        ///     Write a debug/diagnostic log entry if the configured log level is set to info.
        /// </summary>
        public void LogInfo(Func<ILogger, string> logEntryBuilder)
        {
            if (logEntryBuilder == null) throw new ArgumentNullException(nameof(logEntryBuilder));
            Debug.WriteLine("INFO   " + logEntryBuilder(this));
        }

        /// <summary>
        ///     Write a debug/diagnostic log entry if the configured log level is set to warning.
        /// </summary>
        public void LogWarning(Func<ILogger, string> logEntryBuilder)
        {
            Debug.WriteLine(ConstructLogEntry("WARN", logEntryBuilder));
        }

        private string ConstructLogEntry(string level, Func<ILogger, string> logEntryBuilder)
        {
            return $"{DateTime.Now.ToString("yy-MM-dThh:mm:ss.ffff")} {level.PadRight(7)}{logEntryBuilder(this)}";
        }
    }
}


text:
import "./accounts_tests.js";
import "./accounts_reconnect_tests.js";


text:
using System;
using System.Collections.Generic;
using System.Text;

namespace Stencil.SDK.Models
{
    public partial class Asset : SDKModel
    {
        public Asset()
        {

        }

        public virtual Guid asset_id { get; set; }
        public virtual AssetType type { get; set; }
        public virtual bool available { get; set; }
        public virtual bool resize_required { get; set; }
        public virtual bool encode_required { get; set; }
        public virtual bool resize_processing { get; set; }
        public virtual bool encode_processing { get; set; }
        public virtual string thumb_small_dimensions { get; set; }
        public virtual string thumb_medium_dimensions { get; set; }
        public virtual string thumb_large_dimensions { get; set; }
        public virtual string resize_status { get; set; }
        public virtual int resize_attempts { get; set; }
        public virtual DateTime? resize_attempt_utc { get; set; }
        public virtual string encode_identifier { get; set; }
        public virtual string encode_status { get; set; }
        public virtual string raw_url { get; set; }
        public virtual string public_url { get; set; }
        public virtual string thumb_small_url { get; set; }
        public virtual string thumb_medium_url { get; set; }
        public virtual string thumb_large_url { get; set; }
        public virtual string encode_log { get; set; }
        public virtual string resize_log { get; set; }
        public virtual Dependency dependencies { get; set; }
        public virtual int encode_attempts { get; set; }
        public virtual DateTime? encode_attempt_utc { get; set; }
        public virtual string resize_mode { get; set; }

	}
}


text:
using Leak.Meta.Store;
using Leak.Peer.Coordinator;
using Leak.Tasks;

namespace Leak.Meta.Share
{
    public class MetashareDependencies
    {
        public PipelineService Pipeline;

        public CoordinatorService Glue;

        public MetafileService Metafile;
    }
}


text:
module SS::Locatable
  extend ActiveSupport::Concern

  included do
    if Rails.env.test?
      define_method(:url) { SS.config.ss.file_url_with == "name" ? url_with_name : url_with_filename }
      define_method(:full_url) { SS.config.ss.file_url_with == "name" ? full_url_with_name : full_url_with_filename }
    elsif SS.config.ss.file_url_with == "name"
      define_method(:url) { url_with_name }
      define_method(:full_url) { full_url_with_name }
    else
      define_method(:url) { url_with_filename }
      define_method(:full_url) { full_url_with_filename }
    end
  end

  def physical_name
    id.to_s
  end

  def path
    "#{self.class.root}/ss_files/" + id.to_s.chars.join("/") + "/_/#{physical_name}"
  end

  def public_dir
    return if site.blank? || !site.respond_to?(:root_path)
    "#{site.root_path}/fs/" + id.to_s.chars.join("/") + "/_"
  end

  def public_path
    public_dir.try { |dir| "#{dir}/#{filename}" }
  end

  def url_with_filename
    "/fs/" + id.to_s.chars.join("/") + "/_/#{filename}"
  end

  def url_with_name
    if SS::FilenameUtils.url_safe_japanese?(name)
      "/fs/" + id.to_s.chars.join("/") + "/_/#{Addressable::URI.encode_component(name)}"
    else
      url_with_filename
    end
  end

  def full_url_with_filename
    return if site.blank? || !site.respond_to?(:full_root_url)
    "#{site.full_root_url}fs/" + id.to_s.chars.join("/") + "/_/#{filename}"
  end

  def full_url_with_name
    return if site.blank? || !site.respond_to?(:full_root_url)
    if SS::FilenameUtils.url_safe_japanese?(name)
      "#{site.full_root_url}fs/" + id.to_s.chars.join("/") + "/_/#{Addressable::URI.encode_component(name)}"
    else
      full_url_with_filename
    end
  end

  def download_filename
    return name if name.include?('.') && !name.end_with?(".")

    name_without_ext = ::File.basename(name, ".*")
    ext = ::File.extname(filename)
    return name_without_ext if ext.blank? || ext == "."

    name_without_ext + ext
  end
end