text:
html {
  height: 100%; }

body {
  padding-top: 0px;
  height: 100%;
  position: relative;
  font-size: 13px; }

* {
  outline: none; }

.row > [class*="col-"] {
  margin-bottom: 25px; }

.row.no-margin-bottom > [class*="col-"] {
  margin-bottom: 10px; }

.row.no-gap {
  margin-left: 0;
  margin-right: 0; }
  .row.no-gap > [class*="col-"] {
    padding-left: 0;
    padding-right: 0px; }

.no-padding {
  padding: 0px !important; }

.float-left {
  float: left; }

.float-right {
  float: right; }

.clear-both {
  clear: both; }

.no-margin-bottom {
  margin-bottom: 0; }

.no-margin {
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0; }

a {
  text-decoration: none; }

a:hover {
  text-decoration: none; }

.font-weight-300 {
  font-weight: 300; }

.text-indent {
  text-indent: 1em; }

.navbar {
  z-index: 10001;
  padding-left: 60px;
  -webkit-transition: all 0.25s;
  transition: all 0.25s; }
  .navbar > .container, .navbar > .container-fluid {
    z-index: 10001; }
    .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand {
      height: 60px;
      line-height: 60px;
      margin-left: 0px;
      font-family: 'Roboto Condensed', sans-serif;
      font-weight: 400;
      padding: 0;
      font-size: 1.5em; }
      .navbar > .container .navbar-brand .fa-angle-right, .navbar > .container-fluid .navbar-brand .fa-angle-right {
        margin-left: 5px;
        margin-right: 5px; }
    .navbar > .container .navbar-expand-toggle, .navbar > .container-fluid .navbar-expand-toggle {
      width: 60px;
      height: 60px;
      background-color: transparent;
      border: 0px;
      float: left;
      -moz-transition: all 0.25s linear;
      -webkit-transition: all 0.25s linear;
      transition: all 0.25s linear;
      opacity: 0.75; }
    .navbar > .container .navbar-expand-toggle .icon, .navbar > .container-fluid .navbar-expand-toggle .icon {
      font-size: 1.4em; }
    .navbar > .container .navbar-right-expand-toggle, .navbar > .container-fluid .navbar-right-expand-toggle {
      width: 60px;
      height: 60px;
      background-color: transparent;
      border: 0px;
      position: absolute;
      right: 0;
      -moz-transition: all 0.25s linear;
      -webkit-transition: all 0.25s linear;
      transition: all 0.25s linear;
      opacity: 0.75; }
    .navbar > .container .navbar-right-expand-toggle .icon, .navbar > .container-fluid .navbar-right-expand-toggle .icon {
      font-size: 1.4em; }
  .navbar .navbar-breadcrumb {
    margin-left: 0px;
    background-color: transparent;
    padding: 0px;
    float: left; }
    .navbar .navbar-breadcrumb > li {
      height: 60px;
      line-height: 60px;
      vertical-align: middle;
      font-family: 'Roboto Condensed', sans-serif;
      font-size: 1.5em; }
  .navbar .navbar-nav > li > a {
    font-family: 'Roboto Condensed', sans-serif;
    height: 60px;
    line-height: 60px;
    padding: 0px 20px 0px 20px; }
  .navbar .dropdown-menu {
    padding: 0;
    border: 0;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 2px;
    animation-duration: 0.4s;
    -webkit-animation-duration: 0.4s;
    z-index: -1;
    position: absolute; }
    .navbar .dropdown-menu .title {
      font-family: 'Roboto Condensed', sans-serif;
      padding: 5px 10px;
      -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
      -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
      box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }
    .navbar .dropdown-menu .message {
      font-family: 'Roboto Condensed', sans-serif;
      text-align: center;
      padding: 10px 20px; }
    .navbar .dropdown-menu .notifications.list-group {
      list-style: none;
      padding: 0;
      margin: 0; }
      .navbar .dropdown-menu .notifications.list-group .list-group-item {
        min-width: 250px;
        padding: 8px;
        border: 0;
        border-bottom: 1px solid #EEE; }
        .navbar .dropdown-menu .notifications.list-group .list-group-item .icon {
          margin-right: 5px; }
      .navbar .dropdown-menu .notifications.list-group .badge {
        border-radius: 1em; }
      .navbar .dropdown-menu .notifications.list-group .list-group-item:last-child {
        border-bottom-right-radius: 0px;
        border-bottom-left-radius: 0px; }
      .navbar .dropdown-menu .notifications.list-group .list-group-item:first-child {
        border-top-right-radius: 0px;
        border-top-left-radius: 0px; }
      .navbar .dropdown-menu .notifications.list-group a.list-group-item:hover {
        cursor: pointer; }
  .navbar .dropdown.profile .dropdown-menu {
    width: 305px;
    padding-bottom: 0px;
    text-align: center; }
    .navbar .dropdown.profile .dropdown-menu li.profile-img {
      padding: 0px;
      max-height: 300px;
      overflow: hidden; }
      .navbar .dropdown.profile .dropdown-menu li.profile-img img.profile-img {
        width: 100%;
        height: auto;
        margin: 0px;
        border: 0; }
    .navbar .dropdown.profile .dropdown-menu .profile-info {
      font-family: 'Roboto Condensed', sans-serif;
      padding: 15px; }
      .navbar .dropdown.profile .dropdown-menu .profile-info .username {
        font-size: 1.8em; }

.app-container {
  min-height: 100%;
  position: relative;
  padding-bottom: 30px; }
  .app-container .app-footer {
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    left: 65px;
    -webkit-transition: all 0.25s;
    transition: all 0.25s;
    font-size: 12px;
    font-family: 'Roboto Condensed', sans-serif; }
    .app-container .app-footer .wrapper {
      padding: 10px 35px;
      padding-left: 25px;
      height: 50px;
      line-height: 50px;
      vertical-align: middle; }
  .app-container .content-container {
    margin-right: 0;
    margin-left: 0; }
    .app-container .content-container .side-menu {
      overflow-y: auto;
      z-index: 100000;
      position: fixed;
      width: 60px;
      height: 100%;
      -webkit-transition: all 0.25s;
      transition: all 0.25s; }
      .app-container .content-container .side-menu .navbar-header {
        width: 100%;
        border-bottom: 0px solid #e7e7e7; }
        .app-container .content-container .side-menu .navbar-header .navbar-brand {
          width: 455px;
          line-height: 60px;
          height: 60px;
          padding: 0;
          width: 100%;
          overflow: hidden;
          font-family: 'Roboto Condensed', sans-serif; }
          .app-container .content-container .side-menu .navbar-header .navbar-brand .icon {
            width: 60px;
            text-align: center;
            display: inline-block; }
          .app-container .content-container .side-menu .navbar-header .navbar-brand .title {
            margin-left: -10px;
            display: none; }
        .app-container .content-container .side-menu .navbar-header .navbar-expand-toggle {
          position: absolute;
          right: 0;
          width: 60px;
          height: 60px;
          background-color: transparent;
          border: 0px;
          -moz-transition: all 0.25s linear;
          -webkit-transition: all 0.25s linear;
          transition: all 0.25s linear;
          opacity: 0.75; }
      .app-container .content-container .side-menu .navbar {
        border: none;
        padding-left: 0px; }
      .app-container .content-container .side-menu .navbar-nav li {
        display: block;
        width: 100%;
        overflow: hidden; }
        .app-container .content-container .side-menu .navbar-nav li a {
          font-family: 'Roboto Condensed', sans-serif;
          padding: 0 10px 0 10px;
          height: 46px;
          line-height: 46px;
          display: block;
          white-space: nowrap; }
          .app-container .content-container .side-menu .navbar-nav li a .icon {
            margin-left: 0px;
            width: 38px;
            text-align: center;
            font-size: 1.1em;
            display: inline-block; }
          .app-container .content-container .side-menu .navbar-nav li a .title {
            width: 0px;
            white-space: nowrap;
            padding-left: 6px;
            display: none; }
      .app-container .content-container .side-menu .navbar-nav li.dropdown {
        border: 0;
        margin-bottom: 0;
        border-radius: 0;
        box-shadow: none; }
        .app-container .content-container .side-menu .navbar-nav li.dropdown ul li a {
          height: 44px;
          line-height: 44px;
          vertical-align: middle;
          padding: 0em 1.2em; }
        .app-container .content-container .side-menu .navbar-nav li.dropdown > a:after {
          content: "";
          position: absolute;
          right: 1em; }
      .app-container .content-container .side-menu .navbar-nav .panel-collapse.in {
        display: none; }
    .app-container .content-container .side-menu:hover {
      width: 250px; }
      .app-container .content-container .side-menu:hover .navbar-header .navbar-brand .title {
        display: inline-block; }
      .app-container .content-container .side-menu:hover .navbar-nav li a .title {
        width: 192px;
        display: inline-block; }
      .app-container .content-container .side-menu:hover .navbar-nav li.dropdown > a:after {
        font-family: FontAwesome;
        content: "\f107";
        position: absolute;
        right: 1em; }
      .app-container .content-container .side-menu:hover .panel-collapse.in {
        display: block; }
    .app-container .content-container .side-body {
      padding-top: 70px; }
    .app-container .content-container .side-body.padding-top {
      padding-top: 84px; }

.app-container.expanded .app-footer {
  left: 250px; }
  .app-container.expanded .app-footer .wrapper {
    padding-left: 25px; }

.app-container.expanded .content-container .navbar-top {
  padding-left: 250px; }

.app-container.expanded .content-container .side-menu {
  width: 250px; }
  .app-container.expanded .content-container .side-menu .navbar-header .navbar-brand .title {
    display: inline-block; }
  .app-container.expanded .content-container .side-menu .navbar-nav li a .title {
    display: inline-block; }
  .app-container.expanded .content-container .side-menu .navbar-nav li .panel-collapse.in {
    display: block; }
  .app-container.expanded .content-container .side-menu .navbar-nav li.dropdown > a:after {
    font-family: FontAwesome;
    content: "\f107";
    position: absolute;
    right: 1em; }

.container-fluid > .navbar-collapse, .container-fluid > .navbar-header, .container > .navbar-collapse, .container > .navbar-header {
  margin-left: -15px;
  margin-right: -15px; }

.page-title {
  font-family: 'Roboto Condensed', sans-serif;
  margin-left: -10px;
  margin-right: -10px;
  padding: 15px 10px;
  margin-bottom: 0px;
  height: auto; }
  .page-title .title {
    font-size: 2em; }
  .page-title .page-action {
    float: right;
    height: 40px;
    line-height: 40px;
    vertical-align: middle; }

.sub-title {
  font-family: 'Roboto Condensed', sans-serif; }
  .sub-title > * {
    display: inline-block; }
  .sub-title h3 {
    margin-right: 10px; }
  .sub-title .description {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 0.9em; }
  .sub-title .action .btn {
    padding: 0 0.5em; }

/* Main body section */
.app-container .side-body {
  margin-left: 75px;
  margin-right: 15px;
  -webkit-transition: all 0.25s;
  transition: all 0.25s; }

.app-container.expanded .side-body {
  margin-left: 260px; }

/* small screen */
@media (max-width: 768px) {
  .navbar {
    padding-left: 0; }
    .navbar .navbar-header {
      width: auto;
      display: block; }
    .navbar .navbar-nav {
      width: auto;
      margin: 0; }
      .navbar .navbar-nav > li {
        display: inline-block; }
    .navbar .navbar-right {
      position: absolute;
      top: 0;
      right: -100%;
      height: 100%;
      width: 100%;
      -moz-transition: all 0.25s linear;
      -webkit-transition: all 0.25s linear;
      transition: all 0.25s linear; }
      .navbar .navbar-right .open .dropdown-menu {
        position: absolute; }
    .navbar .navbar-right.expanded {
      right: 0; }
  .app-container .navbar-top {
    min-width: 300px; }
  .app-container .content-container .side-menu {
    margin-left: -250px;
    width: 0px; }
  .app-container .content-container .side-body {
    margin-left: 10px; }
  .app-container.expanded .navbar-top {
    min-width: 480px;
    padding-left: 0px; }
  .app-container.expanded .side-menu {
    margin-left: 0px;
    width: 250px; }
  .app-container.expanded .side-body {
    margin-left: 10px; }
  .app-container .app-footer .wrapper, .app-container.expanded .app-footer .wrapper {
    padding-left: 25px; } }

/* Card */
.card {
  background-color: #FFF;
  border-radius: 1px;
  overflow: hidden;
  position: relative; }
  .card .card-body {
    padding: 25px; }
    .card .card-body .sub-title {
      font-size: 1.2em;
      padding: 1.2em 0em 0.4em 0em;
      margin-bottom: 25px; }
      .card .card-body .sub-title .description {
        padding-left: 0.4em;
        font-size: 0.8em;
        opacity: 0.8; }
  .card .card-body.half-padding {
    padding: 12.5px; }
  .card .card-header .card-title {
    padding: 1.2em 25px;
    float: left; }
    .card .card-header .card-title .title {
      font-family: 'Roboto Condensed', sans-serif;
      font-size: 1.5em;
      text-decoration: none; }
  .card .card-header .pull-right {
    padding: 0.5em 1em; }
  .card .card-header:after {
    content: '';
    display: block;
    clear: both; }
  .card .card-profile-img img {
    width: 100%;
    height: auto; }
  .card .card-jumbotron {
    padding: 1.5em 1.5em; }

.card:hover .card-header .title {
  text-decoration: none !important; }

.card.summary-inline .card-body {
  padding: 20px; }
  .card.summary-inline .card-body .content {
    float: right; }
    .card.summary-inline .card-body .content .title {
      font-family: 'Lato', sans-serif;
      margin-top: -0.3em;
      font-size: 3.5em;
      text-align: right; }
    .card.summary-inline .card-body .content .sub-title {
      font-family: 'Lato', sans-serif;
      font-size: 0.9em;
      text-align: right;
      margin-top: -10px;
      margin-bottom: 0;
      padding: 0;
      border-bottom: 0; }

.card.profile .card-body {
  padding: 0.5em 0.8em; }

.card.profile .card-footer {
  padding: 0.5em 0.8em; }

.panel {
  border-radius: 1px; }
  .panel .panel-heading {
    border-top-left-radius: 2px;
    border-top-right-radius: 2px; }

.chart {
  padding: 15px; }

.chart.no-padding {
  padding: 0;
  margin-bottom: -5px; }

.btn {
  margin-top: 5px;
  margin-bottom: 5px;
  border-radius: 1px;
  border-width: 1px;
  font-family: 'Roboto Condensed', sans-serif; }

.btn-group-lg > .btn, .btn-group-lg > .btn-lg {
  border-radius: 1px; }

.progress {
  border-radius: 1px;
  box-shadow: none; }
  .progress .progress-bar {
    box-shadow: none; }

.pagination {
  margin-top: 5px;
  margin-bottom: 5px; }
  .pagination li:first-child > a, .pagination li:first-child span {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px; }
  .pagination li:last-child > a, .pagination li:last-child span {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px; }

.form-control {
  border-radius: 1px;
  box-shadow: none; }

.bs-example-modal .modal {
  z-index: 100;
  position: relative;
  display: block; }

.modal {
  z-index: 100001; }
  .modal .modal-dialog .modal-header {
    font-family: 'Roboto Condensed', sans-serif; }
  .modal .modal-dialog .modal-content {
    border-radius: 1px;
    box-shadow: none; }
  .modal .modal-dialog .modal-footer .btn {
    margin-top: 0;
    margin-bottom: 0; }

.modal-backdrop {
  z-index: 100000; }

.modal-backdrop.in {
  opacity: 0.8; }

.alert {
  border-width: 0px;
  border-radius: 1px; }

.list-group .badge {
  border-radius: 1px; }

.list-group .list-group-item:last-child {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px; }

.list-group .list-group-item:first-child {
  border-top-right-radius: 3px;
  border-top-left-radius: 3px; }

.checkbox3, .radio3 {
  margin-top: 0px;
  margin-bottom: 0px; }

.checkbox-inline {
  margin-bottom: 5px; }

.checkbox3 label, .radio3 label {
  padding: 8px 0 8px 30px; }

.checkbox3 label::before, .radio3 label::before {
  top: 5px; }

.checkbox3 label::after, .radio3 label::after {
  top: 5px; }

.checkbox3 label, .radio3 label, .checkbox-inline, .radio-inline {
  font-weight: normal; }

.bootstrap-switch {
  border-radius: 1px; }

.thumbnail {
  border-radius: 1px;
  padding: 0; }
  .thumbnail .caption {
    padding: 0.5em 1.2em; }
    .thumbnail .caption .h1, .thumbnail .caption .h2, .thumbnail .caption .h3, .thumbnail .caption h1, .thumbnail .caption h2, .thumbnail .caption h3 {
      margin-top: 15px; }

body.login-page {
  background: url(../../assets/img/app-header-bg.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover; }
  body.login-page .login-box {
    width: 100%;
    max-width: 320px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0; }
    body.login-page .login-box > .title {
      margin-bottom: 1em; }
    body.login-page .login-box > .row {
      margin-left: 0;
      margin-right: 0;
      margin-bottom: 0; }
  body.login-page .login-form {
    padding: 0em; }
    body.login-page .login-form .login-header {
      margin-bottom: 1.2em;
      font-size: 1.5em; }
    body.login-page .login-form .login-body {
      padding: 1.5em;
      border-radius: 1px; }
    body.login-page .login-form input {
      margin-bottom: 0.8em;
      margin-top: 0.5em;
      padding: 1.2em 1em;
      font-size: 1.1em;
      border-radius: 1px; }
  body.login-page .login-button .btn {
    padding: 0.5em 2em;
    font-size: 1.1em;
    border-radius: 1px;
    margin-bottom: 0; }
  body.login-page .login-footer {
    padding-top: 8px;
    padding-bottom: 8px;
    width: 100%;
    text-align: right;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px; }

@media (max-width: 768px) {
  body.login-page .login-form .login-header {
    margin-bottom: 1em; }
  body.login-page .login-box {
    width: 100%;
    max-width: 260px; } }

.dataTables_wrapper .row {
  margin-bottom: 0.5em; }

.dataTables_wrapper .top {
  margin-bottom: 6px;
  position: relative; }

.dataTables_wrapper .bottom {
  margin-top: 6px; }

.dataTables_wrapper .top:after, .dataTables_wrapper .bottom:after {
  position: relative;
  clear: both;
  display: block;
  content: ''; }

.dataTables_wrapper .dataTables_paginate .paginate_button {
  padding: 0;
  margin-left: 0;
  border: 0; }

.dataTables_wrapper .dataTables_paginate .paginate_button:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
  border: 0; }

.dataTables_wrapper tfoot {
  display: none; }

.code-preview {
  width: 100%;
  min-height: 400px; }

.nav-tabs > li {
  margin-bottom: -1px; }
  .nav-tabs > li > a {
    border-radius: 0;
    border: 0; }

.nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover {
  border-radius: 0;
  border-top: 0; }

.tab-content > div {
  padding: 20px; }

.tabs-below > .nav-tabs,
.tabs-right > .nav-tabs,
.tabs-left > .nav-tabs {
  border-bottom: 0; }

.tab-content > .tab-pane,
.pill-content > .pill-pane {
  display: none; }

.tab-content > .active,
.pill-content > .active {
  display: block; }

.tabs-below > .nav-tabs > li {
  margin-top: -1px;
  margin-bottom: 0; }

.tabs-below > .nav-tabs > li > a:hover,
.tabs-below > .nav-tabs > li > a:focus {
  border-bottom-color: transparent; }

.tabs-left > .nav-tabs > li,
.tabs-right > .nav-tabs > li {
  float: none; }

.tabs-left > .nav-tabs > li > a,
.tabs-right > .nav-tabs > li > a {
  min-width: 74px;
  margin-right: 0;
  margin-bottom: 3px; }

.tabs-left, .tabs-right {
  display: table; }

.tabs-left > .nav-tabs {
  display: table-cell;
  margin-right: 19px; }

.tabs-left > .nav-tabs > li > a {
  margin-right: -1px; }

.tabs-right > .nav-tabs {
  display: table-cell;
  margin-left: 19px; }

.tabs-right > .nav-tabs > li > a {
  margin-left: -1px; }

.tab:after {
  content: '';
  display: block;
  clear: both; }

.step .nav-tabs {
  border-bottom: 0px;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 20px; }
  .step .nav-tabs > li[class^="col-"] {
    padding-left: 0;
    padding-right: 0; }
  .step .nav-tabs > li:first-child {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px; }
  .step .nav-tabs > li {
    border-right: 0; }
    .step .nav-tabs > li > a {
      margin-right: 0;
      display: block;
      width: 100%;
      padding: 1em;
      padding-left: 2em;
      vertical-align: middle;
      white-space: nowrap;
      overflow: hidden;
      text-align: left;
      border-bottom: 0; }
      .step .nav-tabs > li > a .icon {
        font-size: 2.5em;
        display: inline-block;
        margin-right: 0.25em;
        vertical-align: middle; }
      .step .nav-tabs > li > a .step-title {
        width: auto;
        display: inline-block;
        vertical-align: middle;
        text-align: left; }
        .step .nav-tabs > li > a .step-title .title {
          font-weight: bold;
          font-size: 1.1em; }
        .step .nav-tabs > li > a .step-title .description {
          font-size: 0.9em; }
    .step .nav-tabs > li > a:hover {
      border-bottom: 0; }
  .step .nav-tabs > li:after {
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    top: 50%;
    right: -15px;
    transform: translate(0%, -50%);
    z-index: 100001; }
  .step .nav-tabs > li:before {
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    top: 50%;
    right: -16px;
    transform: translate(0%, -50%);
    z-index: 100000; }
  .step .nav-tabs > li.active > a, .step .nav-tabs > li.active > a:focus, .step .nav-tabs > li.active > a:hover {
    border: 0;
    border-radius: 0;
    border-bottom: 0; }
  .step .nav-tabs > li:last-child {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px; }
  .step .nav-tabs > li:last-child:before, .step .nav-tabs > li:last-child:after {
    display: none; }

.step .tab-content > div {
  padding: 0; }

.step.card-no-padding .nav-tabs {
  margin-bottom: 0px; }
  .step.card-no-padding .nav-tabs > li {
    border-radius: 0; }

.step.card-no-padding .tab-content > div {
  padding: 20px; }

.step.tabs-left .tab-content {
  padding: 5px 15px;
  display: table-cell;
  vertical-align: top; }
  .step.tabs-left .tab-content > div {
    padding: 20px; }

.step.tabs-left .nav-tabs {
  border-bottom: 0px;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0; }
  .step.tabs-left .nav-tabs > li[class^="col-"] {
    padding-left: 0;
    padding-right: 0; }
  .step.tabs-left .nav-tabs > li:first-child {
    border-top-left-radius: 0px;
    border-top-right-radius: 0px; }
  .step.tabs-left .nav-tabs > li {
    border-right: 0px;
    min-width: 250px;
    display: table;
    width: 250px; }
    .step.tabs-left .nav-tabs > li > a {
      margin-right: 0;
      display: table-cell;
      width: 100%;
      padding: 1em;
      padding-left: 2em;
      vertical-align: middle;
      table-layout: fixed;
      white-space: nowrap;
      overflow: hidden; }
      .step.tabs-left .nav-tabs > li > a .icon {
        font-size: 2.5em;
        display: inline-block;
        margin-right: 0.25em;
        vertical-align: middle; }
      .step.tabs-left .nav-tabs > li > a .step-title {
        width: auto;
        display: inline-block;
        vertical-align: middle; }
        .step.tabs-left .nav-tabs > li > a .step-title .title {
          font-weight: bold;
          font-size: 1.1em; }
        .step.tabs-left .nav-tabs > li > a .step-title .description {
          font-size: 0.9em; }
    .step.tabs-left .nav-tabs > li > a:hover {
      border-bottom: 0; }
  .step.tabs-left .nav-tabs > li:after {
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    top: 50%;
    transform: translate(0%, -50%);
    z-index: 10000;
    display: none; }
  .step.tabs-left .nav-tabs > li:before {
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    top: 50%;
    right: -16px;
    transform: translate(0%, -50%);
    z-index: 10000;
    display: none; }
  .step.tabs-left .nav-tabs > li.active > a, .step.tabs-left .nav-tabs > li.active > a:focus, .step.tabs-left .nav-tabs > li.active > a:hover {
    border: 0;
    border-radius: 0;
    border-bottom: 0; }
  .step.tabs-left .nav-tabs > li.active:after, .step.tabs-left .nav-tabs > li.active:before {
    display: block; }
  .step.tabs-left .nav-tabs > li:last-child {
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px; }

@media (max-width: 768px) {
  .step .nav-tabs > li:after {
    display: none; }
  .step .nav-tabs > li:before {
    display: none; } }

.loader-container {
  display: none; }

.loader .loader-container {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1003; }

.loader:after {
  content: "";
  display: block;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.9);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1001;
  border-radius: 1px; }

.pricing-table .pt-header {
  text-align: center;
  padding: 1em; }
  .pricing-table .pt-header .plan-pricing .pricing {
    font-size: 2.5em; }
  .pricing-table .pt-header .plan-pricing .pricing-type {
    opacity: 0.9; }

.pricing-table .pt-body {
  padding: 1em;
  text-align: center; }
  .pricing-table .pt-body .plan-detail {
    padding: 0;
    margin: 0;
    list-style: none; }

.pricing-table .pt-footer {
  padding: 0.75em;
  text-align: center; }

.icons-list {
  list-style: none;
  margin: 0;
  padding: 0; }
  .icons-list > li {
    float: left;
    text-align: center;
    width: 100px;
    height: 100px;
    padding: 8px; }
    .icons-list > li span {
      display: block; }
    .icons-list > li .glyphicon {
      font-size: 1.5em; }
    .icons-list > li .glyphicon-class {
      margin-top: 8px;
      font-size: 0.75em; }

.icons-list:after {
  content: '';
  display: block;
  position: relative;
  clear: both; }

.row.example > [class*='col-'] > div {
  background-color: #EEE;
  padding: 10px;
  border: 1px solid #DDD; }

.breadcrumb {
  margin-bottom: 0; }
  .breadcrumb > li + li:before {
    font-family: FontAwesome;
    content: '\f105';
    margin-right: 3px; }

.message-list {
  margin: 0;
  padding: 0;
  list-style-type: none; }
  .message-list > a > li {
    border-bottom: 1px dotted #EEE;
    padding: 8px; }
    .message-list > a > li > .message-block {
      padding-left: 70px;
      min-height: 60px; }
      .message-list > a > li > .message-block .username {
        font-size: 12px;
        font-weight: bold; }
      .message-list > a > li > .message-block .message-datetime {
        font-size: 10px;
        color: #AAA; }
      .message-list > a > li > .message-block .message {
        font-size: 12px; }
    .message-list > a > li .profile-img {
      width: 60px;
      height: 60px; }
  .message-list > a:hover li {
    background-color: rgba(0, 0, 0, 0.01); }

.bs-example > * {
  margin-bottom: 20px; }

.bs-example > *:last-child {
  margin-bottom: 5px; }

.landing-page {
  font-family: 'Roboto Condensed', sans-serif; }
  .landing-page .navbar .navbar-toggle {
    position: absolute;
    right: 0;
    border-radius: 0;
    border: 0;
    height: 44px;
    padding: 0 15px; }
  .landing-page .app-header {
    padding-top: 100px;
    background-image: url("../img/app-header-bg.jpg");
    background-repeat: no-repeat;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    background-position: center;
    margin-bottom: 0; }
    .landing-page .app-header .app-logo {
      margin-bottom: 20px; }
    .landing-page .app-header .app-description {
      margin-bottom: 40px; }
  .landing-page .app-content-a, .landing-page .app-content-b {
    padding-top: 50px;
    padding-bottom: 20px; }
  .landing-page .app-content-b.feature-1 {
    background-image: url("../img/bg/picjumbo.com_HNCK3558.jpg");
    background-repeat: no-repeat;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    background-position: center;
    margin-bottom: 0; }
  .landing-page .app-content-b.contact-us {
    padding-top: 60px;
    padding-bottom: 60px;
    background-image: url("../img/contact-us-bg.jpg");
    background-repeat: no-repeat;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    background-position: center;
    margin-bottom: 0; }
    .landing-page .app-content-b.contact-us .contact-us-header {
      font-weight: 300;
      font-size: 46px; }
    .landing-page .app-content-b.contact-us .contact-us-description {
      font-weight: 300;
      font-size: 18px;
      opacity: 0.9;
      text-indent: 40px; }
    .landing-page .app-content-b.contact-us form {
      margin-top: 20px; }
      .landing-page .app-content-b.contact-us form input {
        padding: 10px;
        width: 100%;
        border: 0px; }
  .landing-page .app-content-header {
    font-weight: 300;
    font-size: 46px; }
  .landing-page .app-content-description {
    font-weight: 300;
    font-size: 18px; }
  .landing-page .app-footer {
    padding-top: 15px;
    padding-bottom: 15px;
    margin-bottom: 0; }
    .landing-page .app-footer p {
      margin: 0; }
  .landing-page .navbar-affix {
    width: 100%;
    height: 60px;
    border-top: 2px rgba(78, 205, 196, 0.8);
    -webkit-transition: all 0.2s ease-in;
    transition: all 0.2s ease-in;
    position: fixed;
    -webkit-box-shadow: 0px 0px 6px 0px rgba(96, 100, 109, 0.4);
    box-shadow: 0px 0px 6px 0px rgba(96, 100, 109, 0.4); }
  .landing-page .navbar.affix {
    z-index: 4000;
    background-color: rgba(255, 255, 255, 0.95) !important;
    height: 60px;
    opacity: 1;
    margin-top: 0px; }
  .landing-page .navbar-affix.affix li a {
    height: 60px;
    line-height: 60px; }
  .landing-page .navbar-affix.affix .navbar-nav > li > a {
    background-color: transparent;
    font-weight: 400;
    color: #333; }
  .landing-page .navbar {
    padding-left: 0px;
    background-color: transparent;
    box-shadow: none; }
    .landing-page .navbar .navbar-right {
      position: relative;
      right: 0; }
    .landing-page .navbar .navbar-header {
      border-bottom: 0px solid #e7e7e7; }
      .landing-page .navbar .navbar-header .navbar-brand {
        width: 45px;
        line-height: 60px;
        height: 60px;
        padding: 0;
        width: 100%;
        overflow: hidden;
        padding-left: 0px;
        font-family: 'Roboto Condensed', sans-serif; }
        .landing-page .navbar .navbar-header .navbar-brand .icon {
          width: 50px;
          text-align: center;
          display: inline-block; }
        .landing-page .navbar .navbar-header .navbar-brand .title {
          margin-left: -10px;
          display: inline-block; }
      .landing-page .navbar .navbar-header .navbar-expand-toggle {
        position: absolute;
        right: 0;
        width: 60px;
        height: 60px;
        background-color: transparent;
        border: 0px;
        -moz-transition: all 0.25s linear;
        -webkit-transition: all 0.25s linear;
        transition: all 0.25s linear;
        opacity: 0.75; }

@media only screen and (max-width: 768px) {
  .landing-page .navbar .navbar-header .navbar-brand {
    padding-left: 15px; } }

.row-example > [class*="col-"] {
  margin-bottom: 0px; }

/* CUSTOMIZE THE NAVBAR
-------------------------------------------------- */
/* Special class on .container surrounding .navbar, used for positioning it into place. */
.navbar-wrapper {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 20; }

/* Flip around the padding for proper display in narrow viewports */
.navbar-wrapper > .container {
  padding-right: 0;
  padding-left: 0; }

.navbar-wrapper .navbar {
  padding-right: 15px;
  padding-left: 15px; }

.navbar-wrapper .navbar .container {
  width: auto; }

/* CUSTOMIZE THE CAROUSEL
-------------------------------------------------- */
/* Carousel base class */
.carousel {
  height: 500px;
  margin-bottom: 60px; }

/* Since positioning the image, we need to help out the caption */
.carousel-caption {
  z-index: 10; }

/* Declare heights because of positioning of img element */
.carousel .item {
  height: 500px;
  background-color: #777; }

.carousel-inner > .item > img {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 100%;
  height: 500px; }

/* MARKETING CONTENT
-------------------------------------------------- */
/* Center align the text within the three columns below the carousel */
.marketing .col-lg-4 {
  margin-bottom: 20px;
  text-align: center; }

.marketing h2 {
  font-weight: normal; }

.marketing .col-lg-4 p {
  margin-right: 10px;
  margin-left: 10px; }

/* Featurettes
------------------------- */
.featurette-divider {
  margin: 80px 0;
  /* Space out the Bootstrap <hr> more */ }

/* Thin out the marketing headings */
.featurette-heading {
  font-weight: 300;
  line-height: 1;
  letter-spacing: -1px; }

/* RESPONSIVE CSS
-------------------------------------------------- */
@media (min-width: 768px) {
  /* Navbar positioning foo */
  .navbar-wrapper .container {
    padding-right: 15px;
    padding-left: 15px; }
  .navbar-wrapper .navbar {
    padding-right: 0;
    padding-left: 0; }
  /* The navbar becomes detached from the top, so we round the corners */
  .navbar-wrapper .navbar {
    border-radius: 4px; }
  /* Bump up size of carousel content */
  .carousel-caption p {
    margin-bottom: 20px;
    font-size: 21px;
    line-height: 1.4; }
  .featurette-heading {
    font-size: 50px; } }

@media (min-width: 992px) {
  .featurette-heading {
    margin-top: 100px;
    margin-bottom: 20px; } }


text:
package compilelog

import (
	"context"
	"encoding/json"
	"fmt"

	"go.chromium.org/luci/bisection/internal/logdog"
	"go.chromium.org/luci/bisection/model"
	"go.chromium.org/luci/bisection/util"

	"go.chromium.org/luci/bisection/internal/buildbucket"

	buildbucketpb "go.chromium.org/luci/buildbucket/proto"
	"go.chromium.org/luci/common/logging"
	"google.golang.org/protobuf/types/known/fieldmaskpb"
)

// GetCompileLogs gets the compile log for a build bucket build
// Returns the ninja log and stdout log
func GetCompileLogs(c context.Context, bbid int64) (*model.CompileLogs, error) {
	build, err := buildbucket.GetBuild(c, bbid, &buildbucketpb.BuildMask{
		Fields: &fieldmaskpb.FieldMask{
			Paths: []string{"steps"},
		},
	})
	if err != nil {
		return nil, err
	}
	ninjaUrl := ""
	stdoutUrl := ""
	for _, step := range build.Steps {
		if util.IsCompileStep(step) {
			for _, log := range step.Logs {
				if log.Name == "json.output[ninja_info]" {
					ninjaUrl = log.ViewUrl
				}
				if log.Name == "stdout" {
					stdoutUrl = log.ViewUrl
				}
			}
			break
		}
	}

	ninjaLog := &model.NinjaLog{}
	stdoutLog := ""

	// TODO(crbug.com/1295566): Parallelize downloading ninja & stdout logs
	if ninjaUrl != "" {
		log, err := logdog.GetLogFromViewUrl(c, ninjaUrl)
		if err != nil {
			logging.Errorf(c, "Failed to get ninja log: %v", err)
		}
		if err = json.Unmarshal([]byte(log), ninjaLog); err != nil {
			return nil, fmt.Errorf("Failed to unmarshal ninja log %w. Log: %s", err, log)
		}
	}

	if stdoutUrl != "" {
		stdoutLog, err = logdog.GetLogFromViewUrl(c, stdoutUrl)
		if err != nil {
			logging.Errorf(c, "Failed to get stdout log: %v", err)
		}
	}

	if len(ninjaLog.Failures) > 0 || stdoutLog != "" {
		return &model.CompileLogs{
			NinjaLog:  ninjaLog,
			StdOutLog: stdoutLog,
		}, nil
	}

	return nil, fmt.Errorf("Could not get compile log from build %d", bbid)
}

func GetFailedTargets(compileLogs *model.CompileLogs) []string {
	if compileLogs.NinjaLog == nil {
		return []string{}
	}
	results := []string{}
	for _, failure := range compileLogs.NinjaLog.Failures {
		results = append(results, failure.OutputNodes...)
	}
	return results
}

redpajama_set_name: RedPajamaGithub


text:
#ifndef _SAM3U_ADC_INSTANCE_
#define _SAM3U_ADC_INSTANCE_

/* ========== Register definition for ADC peripheral ========== */
#if (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
#define REG_ADC_CR              (0x400AC000U) /**< \brief (ADC) Control Register */
#define REG_ADC_MR              (0x400AC004U) /**< \brief (ADC) Mode Register */
#define REG_ADC_CHER            (0x400AC010U) /**< \brief (ADC) Channel Enable Register */
#define REG_ADC_CHDR            (0x400AC014U) /**< \brief (ADC) Channel Disable Register */
#define REG_ADC_CHSR            (0x400AC018U) /**< \brief (ADC) Channel Status Register */
#define REG_ADC_SR              (0x400AC01CU) /**< \brief (ADC) Status Register */
#define REG_ADC_LCDR            (0x400AC020U) /**< \brief (ADC) Last Converted Data Register */
#define REG_ADC_IER             (0x400AC024U) /**< \brief (ADC) Interrupt Enable Register */
#define REG_ADC_IDR             (0x400AC028U) /**< \brief (ADC) Interrupt Disable Register */
#define REG_ADC_IMR             (0x400AC02CU) /**< \brief (ADC) Interrupt Mask Register */
#define REG_ADC_CDR             (0x400AC030U) /**< \brief (ADC) Channel Data Register */
#define REG_ADC_RPR             (0x400AC100U) /**< \brief (ADC) Receive Pointer Register */
#define REG_ADC_RCR             (0x400AC104U) /**< \brief (ADC) Receive Counter Register */
#define REG_ADC_RNPR            (0x400AC110U) /**< \brief (ADC) Receive Next Pointer Register */
#define REG_ADC_RNCR            (0x400AC114U) /**< \brief (ADC) Receive Next Counter Register */
#define REG_ADC_PTCR            (0x400AC120U) /**< \brief (ADC) Transfer Control Register */
#define REG_ADC_PTSR            (0x400AC124U) /**< \brief (ADC) Transfer Status Register */
#else
#define REG_ADC_CR     (*(WoReg*)0x400AC000U) /**< \brief (ADC) Control Register */
#define REG_ADC_MR     (*(RwReg*)0x400AC004U) /**< \brief (ADC) Mode Register */
#define REG_ADC_CHER   (*(WoReg*)0x400AC010U) /**< \brief (ADC) Channel Enable Register */
#define REG_ADC_CHDR   (*(WoReg*)0x400AC014U) /**< \brief (ADC) Channel Disable Register */
#define REG_ADC_CHSR   (*(RoReg*)0x400AC018U) /**< \brief (ADC) Channel Status Register */
#define REG_ADC_SR     (*(RoReg*)0x400AC01CU) /**< \brief (ADC) Status Register */
#define REG_ADC_LCDR   (*(RoReg*)0x400AC020U) /**< \brief (ADC) Last Converted Data Register */
#define REG_ADC_IER    (*(WoReg*)0x400AC024U) /**< \brief (ADC) Interrupt Enable Register */
#define REG_ADC_IDR    (*(WoReg*)0x400AC028U) /**< \brief (ADC) Interrupt Disable Register */
#define REG_ADC_IMR    (*(RoReg*)0x400AC02CU) /**< \brief (ADC) Interrupt Mask Register */
#define REG_ADC_CDR    (*(RoReg*)0x400AC030U) /**< \brief (ADC) Channel Data Register */
#define REG_ADC_RPR    (*(RwReg*)0x400AC100U) /**< \brief (ADC) Receive Pointer Register */
#define REG_ADC_RCR    (*(RwReg*)0x400AC104U) /**< \brief (ADC) Receive Counter Register */
#define REG_ADC_RNPR   (*(RwReg*)0x400AC110U) /**< \brief (ADC) Receive Next Pointer Register */
#define REG_ADC_RNCR   (*(RwReg*)0x400AC114U) /**< \brief (ADC) Receive Next Counter Register */
#define REG_ADC_PTCR   (*(WoReg*)0x400AC120U) /**< \brief (ADC) Transfer Control Register */
#define REG_ADC_PTSR   (*(RoReg*)0x400AC124U) /**< \brief (ADC) Transfer Status Register */
#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */

#endif /* _SAM3U_ADC_INSTANCE_ */


text:
package edu.sampleu.admin.config.namespace.pending.approvals.workgroup;

import edu.sampleu.admin.config.namespace.pending.PendingBase;
import org.junit.Test;
import org.kuali.rice.testtools.selenium.AutomatedFunctionalTestUtils;
import org.kuali.rice.testtools.selenium.WebDriverUtils;

/**
 * @author Kuali Rice Team (rice.collab@kuali.org)
 */
public class FyiPendingApprovalsAft extends PendingBase {

    /**
     * ITUtil.PORTAL+"?channelTitle=Namespace&channelUrl="+WebDriverUtils.getBaseUrlString()+ITUtil..KNS_LOOKUP_METHOD
     * +"org.kuali.rice.coreservice.impl.namespace.NamespaceBo&docFormKey=88888888&returnLocation="
     * +ITUtil.PORTAL_URL+ITUtil.HIDE_RETURN_LINK;
     */
    public static final String BOOKMARK_URL = AutomatedFunctionalTestUtils.PORTAL+"?channelTitle=Namespace&channelUrl="
            + WebDriverUtils.getBaseUrlString() + AutomatedFunctionalTestUtils.KNS_LOOKUP_METHOD
            + "org.kuali.rice.coreservice.impl.namespace.NamespaceBo" + "&docFormKey=88888888&returnLocation="
            + AutomatedFunctionalTestUtils.PORTAL_URL + AutomatedFunctionalTestUtils.HIDE_RETURN_LINK;

    @Override
    public String getBookmarkUrl() {
        return BOOKMARK_URL;
    }

    protected void testFYIPendingApprovals() throws Exception {
        fillInNamespaceOverview("Test Namespace 4", "SUACTION4", "SUACTION4", "KUALI");

        String[][] groupsActions = new String[][] {{"group1", "ACKNOWLEDGE"}, {"TestGroup2"}};
        fillInAdHocGroups(groupsActions);

        String docId = submitAndLookupDoc();
        assertSuperGroup(docId);
    }

    @Test
    public void testFYIPendingApprovalsBookmark() throws Exception {
        testFYIPendingApprovals();
        passed();
    }

    @Test
    public void testFYIPendingApprovalsNav() throws Exception {
        testFYIPendingApprovals();
        passed();
    }
}


text:
module SagepayServer
	class Address
		include ActiveModel::Validations

		attr_accessor :first_names, :surname, :address_1, :address_2, :city, :state, :postcode, :country, :phone

		validates :first_names, :surname, :address_1, :city, :postcode, :country, :presence => true

		validates :country, :state, :length =>  {:maximum => 2}

		validates :state, :presence => {:message => "is required if you're from the US"}, :if => :in_us?
		validates :state, :inclusion => {:in => ['', nil], :mesage => "should not be entered if you're not in the US"}, :unless => :in_us?

		def initialize(attributes = {})
      attributes.each do |k, v|
        send("#{k}=", v)
      end
    end

    def in_us?
    	country == "US"
    end

	end
end


text:
import { NgModule } from '@angular/core';
import { CourseItemComponent } from './course-item.component';
import { CourseItemHeaderModule } from '../course-item-header';
import { CourseItemDescriptionModule } from '../course-item-description';
import { CourseItemActionsModule } from '../course-item-actions';
import { SharedModule } from '../../../shared';

@NgModule({
  imports: [
    CourseItemHeaderModule,
    CourseItemDescriptionModule,
    CourseItemActionsModule,
    SharedModule,
  ],
  exports: [
    CourseItemComponent
  ],
  declarations: [
    CourseItemComponent
  ]
})

export class CourseItemModule {
}


text:
class CreateZipCodeRanges < ActiveRecord::Migration
  def up
    create_table :spree_zip_code_ranges do |t|
      t.string :start_zip
      t.string :end_zip
      t.timestamps
    end
  end

  def down
    drop_table :spree_zip_code_ranges
  end
end


text:
module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    uglify: {
      build: {
        src: 'errorShelter.js',
        dest: 'src/errorShelter.min.js'
      }
    }
  });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};


text:
#include "ftd2xx-interface.h"
#include "enttecdmxusbpro.h"

#include <ftd2xx.h>

/**
 * Get some interesting strings from the device.
 *
 * @param deviceIndex The device index, whose strings to get
 * @param vendor Returned vendor string
 * @param description Returned description string
 * @param serial Returned serial string
 * @return FT_OK if strings were extracted successfully
 */
static FT_STATUS get_interface_info(DWORD deviceIndex,
                                     QString& vendor, QString& description,
                                     QString& serial, quint16 &VID, quint16 &PID)
{
    char cVendor[256];
    char cVendorId[256];
    char cDescription[256];
    char cSerial[256];

    FT_HANDLE handle;

    FT_STATUS status = FT_Open(deviceIndex, &handle);
    if (status != FT_OK)
        return status;

    FT_PROGRAM_DATA pData;
    pData.Signature1 = 0;
    pData.Signature2 = 0xFFFFFFFF;
    pData.Version = 0x00000005;
    pData.Manufacturer = cVendor;
    pData.ManufacturerId = cVendorId;
    pData.Description = cDescription;
    pData.SerialNumber = cSerial;
    status = FT_EE_Read(handle, &pData);
    if (status == FT_OK)
    {
        VID = pData.VendorId;
        PID = pData.ProductId;

        if (pData.ProductId == DMXInterface::DMX4ALLPID)
            vendor = QString("DMX4ALL");
        else
            vendor = QString(cVendor);
        description = QString(cDescription);
        serial = QString(cSerial);
    }

    FT_Close(handle);

    return status;
}

FTD2XXInterface::FTD2XXInterface(const QString& serial, const QString& name, const QString& vendor,
                                 quint16 VID, quint16 PID, quint32 id)
    : DMXInterface(serial, name, vendor, VID, PID , id)
    , m_handle(NULL)
{
}

FTD2XXInterface::~FTD2XXInterface()
{
    if (isOpen() == true)
        close();
}

QString FTD2XXInterface::readLabel(uchar label, int *ESTA_code)
{
    FT_HANDLE ftdi = NULL;

    if (FT_Open(id(), &ftdi) != FT_OK)
        return QString();

    if(FT_ResetDevice(ftdi) != FT_OK)
        return QString();

    if(FT_SetBaudRate(ftdi, 250000) != FT_OK)
        return QString();

    if(FT_SetDataCharacteristics(ftdi, FT_BITS_8, FT_STOP_BITS_2, FT_PARITY_NONE) != FT_OK)
        return QString();

    if(FT_SetFlowControl(ftdi, 0, 0, 0) != FT_OK)
        return QString();

    QByteArray request;
    request.append(ENTTEC_PRO_START_OF_MSG);
    request.append(label);
    request.append(ENTTEC_PRO_DMX_ZERO); // data length LSB
    request.append(ENTTEC_PRO_DMX_ZERO); // data length MSB
    request.append(ENTTEC_PRO_END_OF_MSG);

    DWORD written = 0;
    if (FT_Write(ftdi, (char*) request.data(), request.size(), &written) != FT_OK)
        return QString();

    if (written == 0)
    {
        qDebug() << Q_FUNC_INFO << "Cannot write data to device";
        return QString();
    }

    uchar* buffer = (uchar*) malloc(sizeof(uchar) * 40);
    Q_ASSERT(buffer != NULL);

    int read = 0;
    QByteArray array;
    FT_SetTimeouts(ftdi, 500,0);
    FT_Read(ftdi, buffer, 40, (LPDWORD) &read);
    qDebug() << Q_FUNC_INFO << "----- Read: " << read << " ------";
    for (int i = 0; i < read; i++)
        array.append((char) buffer[i]);

    if (array[0] != ENTTEC_PRO_START_OF_MSG)
        qDebug() << Q_FUNC_INFO << "Reply message wrong start code: " << QString::number(array[0], 16);
    *ESTA_code = (array[5] << 8) | array[4];
    array.remove(0, 6); // 4 bytes of Enttec protocol + 2 of ESTA ID
    array.replace(ENTTEC_PRO_END_OF_MSG, '\0'); // replace Enttec termination with string termination

    FT_Close(ftdi);
    return QString(array);
}

DMXInterface::Type FTD2XXInterface::type()
{
    return DMXInterface::FTD2xx;
}

QString FTD2XXInterface::typeString()
{
    return "FTD2xx";
}

QList<DMXInterface *> FTD2XXInterface::interfaces(QList<DMXInterface *> discoveredList)
{
    QList <DMXInterface*> interfacesList;

    /* Find out the number of FTDI devices present */
    DWORD num = 0;
    FT_STATUS status = FT_CreateDeviceInfoList(&num);
    if (status != FT_OK || num <= 0)
    {
        qWarning() << Q_FUNC_INFO << "[FTD2XXInterface] Error in FT_CreateDeviceInfoList:" << status;
        return interfacesList;
    }

    // Allocate storage for list based on numDevices
    FT_DEVICE_LIST_INFO_NODE* devInfo = new FT_DEVICE_LIST_INFO_NODE[num];

    // Get the device information list
    if (FT_GetDeviceInfoList(devInfo, &num) == FT_OK)
    {
        int id = 0;

        for (DWORD i = 0; i < num; i++)
        {
            QString vendor, name, serial;
            quint16 VID, PID;
            FT_STATUS s = get_interface_info(i, vendor, name, serial, VID, PID);
            if (s != FT_OK || name.isEmpty() || serial.isEmpty())
            {
                // Seems that some otherwise working devices don't provide
                // FT_PROGRAM_DATA struct used by get_interface_info().
                name = QString(devInfo[i].Description);
                serial = QString(devInfo[i].SerialNumber);
                vendor = QString();
            }

            qDebug() << "serial: " << serial << "name:" << name << "vendor:" << vendor;

            bool found = false;
            for (int c = 0; c < discoveredList.count(); c++)
            {
                if (discoveredList.at(c)->checkInfo(serial, name, vendor) == true)
                {
                    found = true;
                    break;
                }
            }
            if (found == false)
            {
                FTD2XXInterface *iface = new FTD2XXInterface(serial, name, vendor, VID, PID, id);
                interfacesList << iface;
            }

            id++;
        }
    }

    delete [] devInfo;
    return interfacesList;
}

bool FTD2XXInterface::open()
{
    if (isOpen() == true)
        return true;

    FT_STATUS status = FT_Open(id(), &m_handle);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << "Error opening" << name() << status;
        return false;
    }

    status = FT_GetLatencyTimer(m_handle, &m_defaultLatency);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        m_defaultLatency = 16;
    }

    qDebug() << Q_FUNC_INFO << serial() << "Default latency is" << m_defaultLatency;
    return true;
}

bool FTD2XXInterface::openByPID(const int PID)
{
    Q_UNUSED(PID)
    return open();
}

bool FTD2XXInterface::close()
{
    FT_STATUS status = FT_Close(m_handle);
    m_handle = NULL;
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::isOpen() const
{
    return (m_handle != NULL) ? true : false;
}

bool FTD2XXInterface::reset()
{
    FT_STATUS status = FT_ResetDevice(m_handle);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::setLineProperties()
{
    FT_STATUS status = FT_SetDataCharacteristics(m_handle, FT_BITS_8, FT_STOP_BITS_2, FT_PARITY_NONE);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::setBaudRate()
{
    FT_STATUS status = FT_SetBaudRate(m_handle, 250000);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::setFlowControl()
{
    FT_STATUS status = FT_SetFlowControl(m_handle, 0, 0, 0);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::setLowLatency(bool lowLatency)
{
    unsigned char latency;
    if (lowLatency)
    {
        latency = 1;
    }
    else
    {
        latency = m_defaultLatency;
    }

    FT_STATUS status = FT_SetLatencyTimer(m_handle, latency);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::clearRts()
{
    FT_STATUS status = FT_ClrRts(m_handle);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::purgeBuffers()
{
    FT_STATUS status = FT_Purge(m_handle, FT_PURGE_RX | FT_PURGE_TX);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::setBreak(bool on)
{
    FT_STATUS status;
    if (on == true)
        status = FT_SetBreakOn(m_handle);
    else
        status = FT_SetBreakOff(m_handle);

    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

bool FTD2XXInterface::write(const QByteArray& data)
{
    DWORD written = 0;
    FT_STATUS status = FT_Write(m_handle, (char*) data.data(), data.size(), &written);
    if (status != FT_OK)
    {
        qWarning() << Q_FUNC_INFO << name() << status;
        return false;
    }
    else
    {
        return true;
    }
}

QByteArray FTD2XXInterface::read(int size, uchar* userBuffer)
{
    if (m_handle == NULL)
        return QByteArray();

    DWORD RxBytes, TxBytes, event;
    FT_GetStatus(m_handle, &RxBytes, &TxBytes, &event);

    if (RxBytes < (DWORD)size)
        return QByteArray();

    uchar* buffer = NULL;

    if (userBuffer == NULL)
        buffer = (uchar*) malloc(sizeof(uchar) * size);
    else
        buffer = userBuffer;
    Q_ASSERT(buffer != NULL);

    int read = 0;
    QByteArray array;
    FT_Read(m_handle, buffer, size, (LPDWORD) &read);
    if (userBuffer == NULL)
    {
        for (int i = 0; i < read; i++)
            array.append((char) buffer[i]);
    }
    else
    {
        array = QByteArray((char*) buffer, read);
    }

    if (userBuffer == NULL)
        free(buffer);

    return array;
}

uchar FTD2XXInterface::readByte(bool* ok)
{
    if (ok) *ok = false;

    if (m_handle == NULL)
        return 0;

    DWORD RxBytes, TxBytes, event;
    FT_GetStatus(m_handle, &RxBytes, &TxBytes, &event);

    if (RxBytes < 1)
        return 0;

    uchar byte = 0;
    int read = 0;
    FT_Read(m_handle, &byte, 1, (LPDWORD) &read);
    if (read == 1)
    {
        if (ok) *ok = true;
        return byte;
    }

    return 0;
}


text:
from django import forms

class TrustPayForm(forms.Form):
    action_url = None

    # required fields
    AID = forms.CharField(required=True, widget=forms.HiddenInput(), max_length=10)  # Merchant account ID assigned by TrustPay
    AMT = forms.DecimalField(required=True, widget=forms.HiddenInput(), decimal_places=2)  # Amount of the payment exactly 2 decimal places
    CUR = forms.CharField(required=True, widget=forms.HiddenInput(), max_length=3)  # Currency of the payment same as currency of merchant account
    REF = forms.CharField(required=True, widget=forms.HiddenInput(), max_length=500)  # Reference, Merchant's payment identification
    SIG = forms.CharField(required=True, widget=forms.HiddenInput(), max_length=64)  # Data sign

    # not required fields
    URL = forms.CharField(widget=forms.HiddenInput(), max_length=256)  # Return URL overrides any default Return URL, can be overridden further by RURL, CURL, EURL
    RURL = forms.CharField(widget=forms.HiddenInput(), max_length=256)  # Return URL overrides default Success Return URL
    CURL = forms.CharField(widget=forms.HiddenInput(), max_length=256)  # Return URL overrides default Cancel Return URL
    EURL = forms.CharField(widget=forms.HiddenInput(), max_length=256)  # Return URL overrides default Error Return URL
    NURL = forms.CharField(widget=forms.HiddenInput(), max_length=256)  # Notification URL overrides default Notification URL
    LNG = forms.CharField(widget=forms.HiddenInput(), max_length=2)  # Language
    CNT = forms.CharField(widget=forms.HiddenInput(), max_length=2)  # Country
    DSC = forms.CharField(widget=forms.HiddenInput(), max_length=256)  # Description, free text that will be displayed to the user
    EMA = forms.EmailField(widget=forms.HiddenInput(), max_length=254)  # Customer email, prefills the email address fields for the customer when redirected to TrustPay


text:
/* Code generated by IfcQuery EXPRESS generator, www.ifcquery.com */

#pragma once
#include <vector>
#include <map>
#include <sstream>
#include <string>
#include "ifcpp/model/GlobalDefines.h"
#include "ifcpp/model/BasicTypes.h"
#include "ifcpp/model/BuildingObject.h"

// TYPE IfcArithmeticOperatorEnum = ENUMERATION OF	(ADD	,DIVIDE	,MULTIPLY	,SUBTRACT);
class IFCQUERY_EXPORT IfcArithmeticOperatorEnum : virtual public BuildingObject
{
public:
	enum IfcArithmeticOperatorEnumEnum
	{
		ENUM_ADD,
		ENUM_DIVIDE,
		ENUM_MULTIPLY,
		ENUM_SUBTRACT
	};

	IfcArithmeticOperatorEnum() = default;
	IfcArithmeticOperatorEnum( IfcArithmeticOperatorEnumEnum e ) { m_enum = e; }
	~IfcArithmeticOperatorEnum() = default;
	virtual const char* className() const { return "IfcArithmeticOperatorEnum"; }
	virtual shared_ptr<BuildingObject> getDeepCopy( BuildingCopyOptions& options );
	virtual void getStepParameter( std::stringstream& stream, bool is_select_type = false ) const;
	virtual const std::wstring toString() const;
	static shared_ptr<IfcArithmeticOperatorEnum> createObjectFromSTEP( const std::wstring& arg, const std::map<int,shared_ptr<BuildingEntity> >& map );
	IfcArithmeticOperatorEnumEnum m_enum;
};


text: package monitoring


text:
'use strict';

import Constants from '../constants/constants';
import idbKeyval from '../../third_party/libs/idb-keyval';

class Settings {
  constructor () {
    throw new Error('Settings should not be instantiated.');
  }

  static set (name, value) {
    return idbKeyval.set(`${Constants.APP_NAME}_${name}`, value);
  }

  static get (name, defaultValue=false) {
    return idbKeyval.get(`${Constants.APP_NAME}_${name}`)
        .then(value => {
          if (value === undefined) {
            return Settings.set(name, defaultValue).then(_ => {
              return defaultValue;
            });
          }

          return value;
        });
  }
}

export default Settings;


text:
#ifndef REDUCE_H
#define REDUCE_H
#include <dll.h>
//#include <string>
#include <helpers/sharedmem.h>
#include <stdio.h>
#include <helpers/shape.h>
#ifdef _OPENMP
#include <omp.h>
#endif
#include <templatemath.h>
#include <helper_cuda.h>
#include <nd4jmalloc.h>
#include <pairwise_util.h>
#include <ops/ops.h>
#include <ops/special_accumulation_ops.h>
#include <op_boilerplate.h>

#pragma once
#ifdef __CUDACC__
#include <cuda.h>
#include <cuda_runtime.h>
#endif

#ifndef _OPENMP
#define omp_get_thread_num() 0
#define omp_get_max_threads() 1
#endif

#include "legacy_ops.h"

//an op for the kernel
namespace functions {
    namespace reduce {

/**
 * A reduce function
 * reduces a vector down to
 * a subset of itself
 * via aggregating member
 * elements.
 */
        template<typename T>
        class ReduceFunction {
        public:
#ifdef __CUDACC__
            template<typename OpType>
			static __device__ void transformCuda1D(T *dx,
				Nd4jLong *xShapeInfo,
				T *extraParams,
				T *result,
				Nd4jLong *resultShapeInfo,
				int *dimension,
				int dimensionLength,
				T *reductionBuffer, UnifiedSharedMemory *manager, Nd4jLong *tadOnlyShapeInfo, Nd4jLong *tadOffsets);

            template<typename OpType>
			static __device__ void execScalarCuda(
				T *dx,
				Nd4jLong *xShapeInfo,
				T *extraParams,
				T *result,
				Nd4jLong *resultShapeInfo,
				T *reductionBuffer,
				UnifiedSharedMemory *manager,
				Nd4jLong *tadOnlyShapeInfo);

            template<typename OpType>
			static __device__ void transformCuda3D(
				T *dx,
				Nd4jLong *xShapeInfo,
				T *extraParams,
				T *result,
				Nd4jLong *resultShapeInfo,
				int *dimension,
				int dimensionLength,
				T *reductionBuffer, UnifiedSharedMemory *manager, Nd4jLong *tadOnlyShapeInfo, Nd4jLong *tadOffsets);

            template<typename OpType>
			static __device__ void transformCudaXD(
				T *dx,
				Nd4jLong *xShapeInfo,
				T *extraParams,
				T *result,
				Nd4jLong *resultShapeInfo,
				int *dimension,
				int dimensionLength,
				T *reductionBuffer,
				UnifiedSharedMemory *manager,
				Nd4jLong *tadOnlyShapeInfo,
				Nd4jLong *tadOffsets);

			/**
			 *
			 * @param sPartialsRef
			 * @param tid
			 * @param extraParams
			 */
            template<typename OpType>
			static __device__ void aggregatePartials(T *sPartials, Nd4jLong tid, Nd4jLong numItems, T *extraParams);

            static __host__ void execReduceScalar(dim3 launchDims, cudaStream_t *stream, int opNum, T *x, Nd4jLong *xShapeInfo, T *extraParams, T *z, Nd4jLong *zShapeInfo, int *dimension, int dimensionLength, T *reductionBuffer, Nd4jLong *tadOnlyShapeInfo);

            static __host__ void execReduceXD(dim3 launchDims, cudaStream_t *stream, int opNum, int rank, T *x, Nd4jLong *xShape, T *extraParams, T *z, Nd4jLong *zShape, int *dimension, int dimensionLength, T *reductionPointer, Nd4jLong *tadShapeInfo, Nd4jLong *tadOffsets);
#endif

            /**
             * Reduce down to 1 number
             * @param x the input
             * @param xShapeInfo the shape information
             * for the input
             * @param extraParams the extra params
             * @return
             */
            template<typename OpType>
            static _CUDA_H T execScalar(T *x, Nd4jLong *xShapeInfo, T *extraParams);

            static T execScalar(const int opNum, T *x, Nd4jLong *xShapeInfo, T *extraParams);

            static void exec(const int opNum,
                             T *x,
                             Nd4jLong *xShapeInfo,
                             T *extraParams,
                             T *result,
                             Nd4jLong *resultShapeInfoBuffer,
                             int *dimension,
                             int dimensionLength,
                             Nd4jLong *tadShapeInfo,
                             Nd4jLong *tadOffset);

            /**
             * Execute on the cpu
             * @param x the input data
             * @param xShapeInfo the shape information for x
             * @param extraParams the extra parameters
             * @param result the result buffer
             * @param resultShapeInfoBuffer the shape information
             * @param dimension the dimension to perform
             * the reduce along long
             * @param dimensionLength the length of the dimension buffer
             */

            template<typename OpType>
            static void _CUDA_H exec(T *x,
                             Nd4jLong *xShapeInfo,
                             T *extraParams,
                             T *result,
                             Nd4jLong *resultShapeInfoBuffer,
                             int *dimension,
                             int dimensionLength,
                             Nd4jLong *tadShapeInfo,
                             Nd4jLong *tadOffset);

            /**
            * CPU implementation
            * @param x the input data
            * @param xShapeInfo the shape information for
            * the input data
            * @param extraParams the extra parameters for the problem
            * @param result the result buffer
            * @param resultShapeInfo the shape information
            */
            template<typename OpType>
            static void _CUDA_H exec(T *x,
                             Nd4jLong *xShapeInfo,
                             T *extraParams,
                             T *result,
                             Nd4jLong *resultShapeInfo);

            /**
            * Reduce down to 1 number
            * @param x the input
            * @param xShapeInfo the shape information
            * for the input
            * @param extraParams the extra params
            * @return
            */
            template<typename OpType>
            static T _CUDA_H execScalar(const T *x, Nd4jLong xElementWiseStride, Nd4jLong length, T *extraParams);
        };

#ifdef __CUDACC__
        /**
    *
    * @param extraParams
    * @param sPartials
    * @param sMemSize
    */
        template<typename T>
        __device__ void initializeShared(T *extraParams, T **sPartials, int sMemSize);

#endif

    }

}

#endif


text:
objc-tdd-todo-app
=================

A todo list app for iOS written in TDD


text:
require 'etcd'

host = '172.24.55.142'
key = 'THING_Redis/primary_master'

client = Etcd.client(host:  host)
puts "Couldn't connect to '#{host}' during etcd_set()" if !client

result = client.get("/config/puppet/#{key}").value

puts result.inspect


text:
<?php
/**
 * ©[2016] SugarCRM Inc.  Licensed by SugarCRM under the Apache 2.0 license.
 */

namespace SugarAPI\SDK\Endpoint\PUT;

use SugarAPI\SDK\Endpoint\Abstracts\PUT\AbstractPutEndpoint;

class ModuleRecordLinkRecord extends AbstractPutEndpoint
{
    /**
     * @inheritdoc
     */
    protected $_URL = '$module/$record/link/$relationship/$record';
}


text:
package sterling.lang.compiler.syntax;

import static java.util.Arrays.asList;
import static sterling.lang.util.StringUtil.stringify;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import sterling.lang.SterlingException;

public class ModuleDeclaration extends SyntaxNode {

    private List<SyntaxNode> expressions;

    public ModuleDeclaration(Collection<SyntaxNode> expressions) {
        this.expressions = new ArrayList<>(expressions);
    }

    public ModuleDeclaration(SyntaxNode... expressions) {
        this.expressions = asList(expressions);
    }

    @Override
    public <R, S> R accept(SyntaxVisitor<R, S> visitor, S state) throws SterlingException {
        return visitor.visitModuleDeclaration(this, state);
    }

    @Override
    public boolean equals(Object o) {
        return o == this || o instanceof ModuleDeclaration && Objects.equals(expressions, ((ModuleDeclaration) o).expressions);
    }

    public List<SyntaxNode> getExpressions() {
        return new ArrayList<>(expressions);
    }

    @Override
    public int hashCode() {
        return Objects.hash(expressions);
    }

    @Override
    public String toString() {
        return stringify(this, expressions);
    }
}


text:
Wise-stack is an opinioned modular Rails 6.1+ application template focused on Ruby on Rails developing
best practices.
Wise-stack aims to provide a customizable stack of recipes to simplify the installation
and configuration of the most useful tools for rails developing.

Every gem in the recipes will be installed with the latest version obtained from rubygems.org and described
in Gemfile with the pessimistic version constraint operator, to avoid breaking
changes in case of a bundle update.

Some recipes are optionals. Wise-stack asks for installation, but you can configure default answers on default_answers.yml

## Usage

```shell
git clone git@github.com:gabrypulzio/wise-stack.git /path/to/wise-stack
rails new [APPLICATION_NAME] -T -m /path/to/wise-stack/template.rb
```

## Features

* Modular recipes
* Use pessimistic version constraint operator on Gemfile, to avoid breaking changes on code in
case of gem updates (see: [rubygems guides](http://guides.rubygems.org/patterns/#pessimistic-version-constraint))
* Best practices tools:
  * [Overcommit](https://github.com/brigade/overcommit).
  * [Rubocop](https://github.com/rubocop-hq/rubocop).
* Common developing tools:
  * [Awesome_print](https://github.com/awesome-print/awesome_print).
  * [Better_errors](https://github.com/charliesome/better_errors).
  * [Pry](https://github.com/pry/pry).
  * [Devise](https://github.com/plataformatec/devise) (optional).
  * [Simple_form](https://github.com/plataformatec/simple_form) (if bootstrap is installed it handles automatically bootstrap integration).
  * [Foreman](https://github.com/ddollar/foreman) to simplify development with webpack-dev-server
* security tools:
  * [Brakeman](https://github.com/presidentbeef/brakeman).
  * [Bundler_audit](https://github.com/rubysec/bundler-audit).
* testing tools:
  * [Rspec](https://github.com/rspec/rspec).
  * [Factory Bot](https://github.com/thoughtbot/factory_bot).
  * [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner)
    (with a tailored configuration for rspec installed with the recipe).
* customizations:
  * Git gitignore that properly ignores security sensitive files.
  * Rails overwrites for a more clean and secure scaffolding.
  * Custom .rubocop.yml with a rails friendly configuration.

## Special notes on recipes

* Webpack:
  * Use stylesheet_pack_tag for stylesheets.
  * wise-stack renames app/javascript to app/webpacker because it's possibile to
  handle stylesheets too with wepbacker. The structure is configured as below:

```
app/webpacker/
├── packs
│   ├── application.js
│   └── stylesheets.scss
└── src
    ├── javascripts # optionals javascripts to be included in packs/application.js
    └── stylesheets # optionals stylesheets to be included in packs/application.scss
```

* Bootstrap:
  * Inject bootstrap helpers for flash messages in application.html.erb

* Rails_overwrites:
  * Disable scaffold stylesheets, assets, helpers and json from scaffolding.
  * Remove application.css and install a blank application.scss in favor of scss syntax.

* Rubocop:
  * Install a custom .rubocop.yml on the project root path.
  * A rubocop autocorrection will be executed at the end of the template process.


text:
package ika.utils;

import javax.swing.*;
import java.awt.*;

/**
 *
 * @author jenny
 */
public class TextWindow {

    public static void showSimpleTextDialog(String text, String title,
            java.awt.Frame ownerFrame, int tabSize) {
        if (text == null || text.length() == 0)
            return;

        JTextArea textArea = new JTextArea();
        textArea.setText(text);
        textArea.setFont(new Font ("Monospaced", Font.PLAIN, 13));
        textArea.setTabSize(tabSize);
        textArea.setEditable(false);
        textArea.setCaretPosition(0);
        JScrollPane scrollPane = new JScrollPane(textArea);
        scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        JDialog dialog = new JDialog(ownerFrame);
        dialog.setTitle(title);
        dialog.setModal(true);
        dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        dialog.setContentPane(scrollPane);
        dialog.setLocation(50, 50);
        dialog.setSize(800, 600);
        dialog.setVisible(true);
    }

    public static void showSimpleTextWindow(String text) {
        if (text == null || text.length() == 0)
            return;

        JTextArea textArea = new JTextArea();
        textArea.setText(text);
        textArea.setEditable(false);
        textArea.setCaretPosition(0);
        JScrollPane scrollPane = new JScrollPane(textArea);
        scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setContentPane(scrollPane);
        frame.setLocation(50, 50);
        frame.setSize(500, 600);
        frame.setVisible(true);
    }

    private JDialog dialog;
    private JTextArea textArea;

    public TextWindow (java.awt.Frame ownerFrame, boolean modal,
            boolean initiallyVisible,
            String text, String title) {
        this.textArea = new JTextArea();
        this.textArea.setText(text);
        this.textArea.setFont(new Font ("Monospaced", Font.PLAIN, 13));
        this.textArea.setTabSize(16);
        this.textArea.setEditable(false);
        this.textArea.setCaretPosition(0);
        JScrollPane scrollPane = new JScrollPane(this.textArea);
        scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        this.dialog = new JDialog(ownerFrame);
        dialog.setTitle(title);
        dialog.setModal(modal);
        dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        dialog.setContentPane(scrollPane);
        dialog.setLocation(50, 50);
        dialog.setSize(800, 600);
        if (initiallyVisible)
            dialog.setVisible(true);
    }

    public void show() {
        this.dialog.setVisible(true);
    }

    public void hide() {
        this.dialog.setVisible(false);
    }

    public String getText() {
        return this.textArea.getText();
    }

    public void setText(String text) {
        this.textArea.setText(text);
        this.textArea.setCaretPosition(0);
    }

    public String getTitle() {
        return dialog.getTitle();
    }

    public void setTitle(String title) {
        dialog.setTitle(title);
    }

    public void setTabSize (int tabSize) {
        this.textArea.setTabSize(tabSize);
    }
}


text:
begin;
-- no data in yet
drop table "volunteers_task";
CREATE TABLE "volunteers_task" (
    "id" integer NOT NULL PRIMARY KEY,
    "volunteer_id" integer NOT NULL REFERENCES "volunteers_volunteer" ("id"),
    "for_committee_id" integer NOT NULL REFERENCES "volunteers_committee" ("id"),
    "points" integer NOT NULL,
    "task_type_id" integer NOT NULL REFERENCES "volunteers_tasktype" ("id"),
    "description" text NOT NULL,
    "completed" bool NOT NULL,
    "status_id" integer NOT NULL REFERENCES "volunteers_taskstatus" ("id"),
    "established" datetime NOT NULL,
    "modified" datetime NOT NULL
);
CREATE INDEX "volunteers_task_volunteer_id" ON "volunteers_task" ("volunteer_id");
CREATE INDEX "volunteers_task_for_committee_id" ON "volunteers_task" ("for_committee_id");
CREATE INDEX "volunteers_task_task_type_id" ON "volunteers_task" ("task_type_id");
CREATE INDEX "volunteers_task_status_id" ON "volunteers_task" ("status_id");
commit;