/*!
 * FullCalendar v2.7.3 Stylesheet
 * Docs & License: http://fullcalendar.io/
 * (c) 2016 Adam Shaw
 */

.calendar {
  direction: ltr;
  text-align: left;
  font-family: $font-family-proxima-sbold;

  th,
  td,
  thead,
  tbody,
  .calendar-divider,
  .calendar-row,
  .calendar-content, /* for gutter border */
  .calendar-popover {
    @include themes(border-color, panel-border-inner);
  }

  table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0;

    th {
      text-align: center;
    }

    th,
    td {
      border-style: solid;
      border-width: 1px;
      padding: 0;
      vertical-align: top;
    }

    td.calendar-today {
      border-style: double;
    }
  }

  &-head {
    .calendar-row th {
      padding: (ceil($table-cell-padding * 1.5) - 1)
        ceil($table-cell-padding * 1.5) ceil($table-cell-padding * 1.5);
      font-weight: $font-weight-regular;
      font-family: $font-family-proxima-sbold;
      font-size: $font-size-base;
      line-height: $grid-unit-y * 2;

      @include themes(color, color-text-dark);
    }
  }

  &-header {
    text-align: center;
    margin-bottom: $padding-base-vertical;
    display: flex;
    align-items: center;

    h2 {
      margin-bottom: 0;
    }

    &-right,
    &-center {
      margin-left: auto;
    }

    &-left,
    &-right,
    &-center {
      display: flex;
      align-items: center;

      > .btn,
      > .btn-group {
        &:not(:first-child) {
          margin-left: $grid-unit-x * 2;
        }
      }
    }
  }

  &-popover {
    @include themes(background, popover-bg);

    &-header {
      @include themes(background, color-bg-grey);
    }
  }

  &-close {
    @include themes(color, color-text-default);
  }

  &-divider {
    @include themes(background, color-bg-grey);
  }

  &-today {
    @include themes(background, color-bg-grey);
  }

  &-highlight {
    opacity: 0.3;
    filter: alpha(opacity=30); /* for IE */

    @include themes(background, color-text-light);
  }

  &-bgevent {
    background: $brand-primary;
    opacity: 0.3;
    filter: alpha(opacity=30); /* for IE */
  }

  &-popover {
    position: absolute;

    border-width: 1px;
    border-style: solid;

    @include box-shadow-themes(popover-box-shadow);

    .calendar-header {
      padding: $padding-base-horizontal $padding-base-horizontal;

      .calendar-close {
        cursor: pointer;
      }
    }
  }

  &-not-allowed, /* causes a "warning" cursor. applied on body */
  &-not-allowed .calendar-event {
    /* to override an event's custom cursor */
    cursor: not-allowed;
  }

  &-event {
    position: relative; /* for resize handle and other inner positioning */
    display: block; /* make the <a> tag block */
    font-size: 0.85em;
    line-height: 1.3;
    border-radius: $border-radius-base;
    border: 1px solid $alert-warning-border;
    background-color: $state-warning-bg;
    font-weight: normal; /* undo jqui's ui-widget-header bold */

    @include themes(background, alert-warning-bg);
    @include themes(color, alert-warning-text);

    &[href],
    &.calendar-draggable {
      cursor: pointer; /* give events with links and draggable events a hand mouse pointer */
    }

    &-complete {
      background-color: $brand-primary;
    }

    &-approved {
      background-color: $brand-success;
    }

    &-due {
      background-color: $brand-danger;
    }

    .calendar-bg {
      /* the generic .calendar-bg already does position */
      z-index: 1;
      background: #fff;
      opacity: 0.25;
      filter: alpha(opacity=25); /* for IE */
    }

    .calendar-content {
      position: relative;
      z-index: 2;
    }

    .calendar-resizer {
      position: absolute;
      z-index: 4;
    }

    &.calendar-allow-mouse-resize .calendar-resizer,
    &.calendar-selected .calendar-resizer {
      /* only show when hovering or selected (with touch) */
      display: block;
    }

    &.calendar-selected .calendar-resizer::before {
      /* 40x40 touch area */
      content: "";
      position: absolute;
      z-index: 9999; /* user of this util can scope within a lower z-index */
      top: 50%;
      left: 50%;
      width: 40px;
      height: 40px;
      margin-left: -20px;
      margin-top: -20px;
    }

    &.calendar-selected {
      z-index: 9999 !important; /* overcomes inline z-index */
      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    }

    &.calendar-selected.calendar-dragging {
      box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);
    }
  }
}

/* Misc Reusable Components
-------------------------------------------------------------------------------------------------- */

.calendar-divider {
  border-style: solid;
  border-width: 1px;
}

hr.calendar-divider {
  height: 0;
  margin: 0;
  padding: 0 0 2px; /* height is unreliable across browsers, so use padding */
  border-width: 1px 0;
}

.calendar-bg,
.calendar-bgevent-skeleton,
.calendar-highlight-skeleton,
.calendar-helper-skeleton {
  /* these element should always cling to top-left/right corners */
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.calendar-bg {
  bottom: 0; /* strech bg to bottom edge */
}

.calendar-bg table {
  height: 100%; /* strech bg to bottom edge */
}

/* Fake Table Rows
-------------------------------------------------------------------------------------------------- */

.calendar .calendar-row {
  /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */

  /* no visible border by default. but make available if need be (scrollbar width compensation) */
  border-style: solid;
  border-width: 0;
}

.calendar-row table {
  /* don't put left/right border on anything within a fake row.
	   the outer tbody will worry about this */
  border-left: 0 hidden transparent;
  border-right: 0 hidden transparent;

  /* no bottom borders on rows */
  border-bottom: 0 hidden transparent;
}

.calendar-row:first-child table {
  border-top: 0 hidden transparent; /* no top border on first row */
}

/* Day Row (used within the header and the DayGrid)
-------------------------------------------------------------------------------------------------- */

.calendar-row {
  position: relative;
}

.calendar-row .calendar-bg {
  z-index: 1;
}

/* highlighting cells & background event skeleton */

.calendar-row .calendar-bgevent-skeleton,
.calendar-row .calendar-highlight-skeleton {
  bottom: 0; /* stretch skeleton to bottom of row */
}

.calendar-row .calendar-bgevent-skeleton table,
.calendar-row .calendar-highlight-skeleton table {
  height: 100%; /* stretch skeleton to bottom of row */
}

.calendar-row .calendar-highlight-skeleton td,
.calendar-row .calendar-bgevent-skeleton td {
  border-color: transparent;
}

.calendar-row .calendar-bgevent-skeleton {
  z-index: 2;
}

.calendar-row .calendar-highlight-skeleton {
  z-index: 3;
}

/*
row content (which contains day/week numbers and events) as well as "helper" (which contains
temporary rendered events).
*/

.calendar-row .calendar-content-skeleton {
  position: relative;
  z-index: 4;
  padding-bottom: 2px; /* matches the space above the events */
}

.calendar-row .calendar-helper-skeleton {
  z-index: 5;
}

.calendar-row .calendar-content-skeleton td,
.calendar-row .calendar-helper-skeleton td {
  /* see-through to the background below */
  background: none; /* in case <td>s are globally styled */
  border-color: transparent;

  /* don't put a border between events and/or the day number */
  border-bottom: 0;
}

.calendar-row .calendar-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */
.calendar-row .calendar-helper-skeleton tbody td {
  /* don't put a border between event cells */
  border-top: 0;
}

/* Scrolling Container
-------------------------------------------------------------------------------------------------- */

.calendar-scroller {
  -webkit-overflow-scrolling: touch;
}

/* TODO: move to agenda/basic */
.calendar-scroller > .calendar-day-grid,
.calendar-scroller > .calendar-time-grid {
  position: relative; /* re-scope all positions */
  width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */
}

/* Horizontal Events
-------------------------------------------------------------------------------------------------- */

/* bigger touch area when selected */
.calendar-h-event.calendar-selected::before {
  content: "";
  position: absolute;
  z-index: 3; /* below resizers */
  top: -10px;
  bottom: -10px;
  left: 0;
  right: 0;
}

/* events that are continuing to/from another week. kill rounded corners and butt up against edge */

.calendar-ltr .calendar-h-event.calendar-not-start,
.calendar-rtl .calendar-h-event.calendar-not-end {
  margin-left: 0;
  border-left-width: 0;
  padding-left: 1px; /* replace the border with padding */
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.calendar-ltr .calendar-h-event.calendar-not-end,
.calendar-rtl .calendar-h-event.calendar-not-start {
  margin-right: 0;
  border-right-width: 0;
  padding-right: 1px; /* replace the border with padding */
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

/* resizer (cursor AND touch devices) */

/* left resizer  */
.calendar-ltr .calendar-h-event .calendar-start-resizer,
.calendar-rtl .calendar-h-event .calendar-end-resizer {
  cursor: w-resize;
  left: -1px; /* overcome border */
}

/* right resizer */
.calendar-ltr .calendar-h-event .calendar-end-resizer,
.calendar-rtl .calendar-h-event .calendar-start-resizer {
  cursor: e-resize;
  right: -1px; /* overcome border */
}

/* resizer (mouse devices) */

.calendar-h-event.calendar-allow-mouse-resize .calendar-resizer {
  width: 7px;
  top: -1px; /* overcome top border */
  bottom: -1px; /* overcome bottom border */
}

/* resizer (touch devices) */

.calendar-h-event.calendar-selected .calendar-resizer {
  /* 8x8 little dot */
  border-radius: 4px;
  border-width: 1px;
  width: 6px;
  height: 6px;
  border-style: solid;
  border-color: inherit;

  @include themes(background, color-text-dark);

  /* vertically center */
  top: 50%;
  margin-top: -(ceil($grid-unit-x * 0.5));
}

/* left resizer  */
.calendar-ltr .calendar-h-event.calendar-selected .calendar-start-resizer,
.calendar-rtl .calendar-h-event.calendar-selected .calendar-end-resizer {
  margin-left: -(ceil($grid-unit-x * 0.5)); /* centers the 8x8 dot on the left edge */
}

/* right resizer */
.calendar-ltr .calendar-h-event.calendar-selected .calendar-end-resizer,
.calendar-rtl .calendar-h-event.calendar-selected .calendar-start-resizer {
  margin-right: -(ceil($grid-unit-x * 0.5)); /* centers the 8x8 dot on the right edge */
}

/* DayGrid events
----------------------------------------------------------------------------------------------------
We use the full "calendar-day-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/

.calendar-day-grid-event {
  margin: 1px 2px 0; /* spacing between events and edges */
  padding: 0 1px;
}

.calendar-day-grid-event.calendar-selected::after {
  content: "";
  position: absolute;
  z-index: 1; /* same z-index as calendar-bg, behind text */

  /* overcome the borders */
  top: -1px;
  right: -1px;
  bottom: -1px;
  left: -1px;

  /* darkening effect */
  opacity: 0.25;
  filter: alpha(opacity=25); /* for IE */

  @include themes(background, color-text-dark);
}

.calendar-day-grid-event .calendar-content {
  /* force events to be one-line tall */
  white-space: nowrap;
  overflow: hidden;
}

.calendar-day-grid-event .calendar-time {
  font-weight: bold;
}

/* resizer (cursor devices) */

/* left resizer  */
.calendar-ltr
  .calendar-day-grid-event.calendar-allow-mouse-resize
  .calendar-start-resizer,
.calendar-rtl
  .calendar-day-grid-event.calendar-allow-mouse-resize
  .calendar-end-resizer {
  margin-left: -2px; /* to the day cell's edge */
}

/* right resizer */
.calendar-ltr
  .calendar-day-grid-event.calendar-allow-mouse-resize
  .calendar-end-resizer,
.calendar-rtl
  .calendar-day-grid-event.calendar-allow-mouse-resize
  .calendar-start-resizer {
  margin-right: -2px; /* to the day cell's edge */
}

/* Event Limiting
-------------------------------------------------------------------------------------------------- */

/* "more" link that represents hidden events */

a.calendar-more {
  margin: 1px 3px;
  font-size: $font-size-base;
  cursor: pointer;
  text-decoration: none;
}

a.calendar-more:hover {
  text-decoration: underline;
}

.calendar-limited {
  /* rows and cells that are hidden because of a "more" link */
  display: none;
}

/* popover that appears when "more" link is clicked */

.calendar-day-grid .calendar-row {
  z-index: 1; /* make the "more" popover one higher than this */
}

.calendar-more-popover {
  z-index: 2;
  width: $grid-unit-y * 27;
}

.calendar-more-popover .calendar-event-container {
  padding: $grid-unit-x;
}

/* Now Indicator
-------------------------------------------------------------------------------------------------- */

.calendar-now-indicator {
  position: absolute;
  border: 0 solid red;
}

/* Utilities
-------------------------------------------------------------------------------------------------- */

.calendar-unselectable {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* View Structure
-------------------------------------------------------------------------------------------------- */

/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */

/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
.calendar-view-container *,
.calendar-view-container *::before,
.calendar-view-container *::after {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}

.calendar-view, /* scope positioning and z-index's for everything within the view */
.calendar-view > table {
  /* so dragged elements can be above the view's main element */
  position: relative;
  z-index: 1;
}

/* BasicView
-------------------------------------------------------------------------------------------------- */

/* day row structure */

.calendar-basicWeek-view .calendar-content-skeleton,
.calendar-basicDay-view .calendar-content-skeleton {
  /* we are sure there are no day numbers in these views, so... */
  padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */
  padding-bottom: $grid-unit-y * 2; /* ensure a space at bottom of cell for user selecting/clicking */
}

.calendar-basic-view .calendar-body .calendar-row {
  min-height: $grid-unit-y * 8; /* ensure that all rows are at least this tall */
}

/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */

.calendar-row.calendar-rigid {
  overflow: hidden;
}

.calendar-row.calendar-rigid .calendar-content-skeleton {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

/* week and day number styling */

.calendar-basic-view .calendar-week-number,
.calendar-basic-view .calendar-day-number {
  padding: ceil($grid-unit-y * 0.5) ceil($grid-unit-y * 0.5) 0;
}

.calendar-basic-view td.calendar-week-number span,
.calendar-basic-view td.calendar-day-number {
  padding-top: 2px;
  padding-bottom: 2px;
}

.calendar-basic-view .calendar-week-number {
  text-align: center;
}

.calendar-basic-view .calendar-week-number span {
  /* work around the way we do column resizing and ensure a minimum width */
  display: inline-block;
  min-width: ceil($grid-unit-x * 2.5);
}

.calendar-ltr .calendar-basic-view .calendar-day-number {
  text-align: right;
}

.calendar-rtl .calendar-basic-view .calendar-day-number {
  text-align: left;
}

.calendar-day-number.calendar-other-month {
  @include themes(color, color-text-light);
}

/* AgendaView all-day area
-------------------------------------------------------------------------------------------------- */

.calendar-agenda-view .calendar-day-grid {
  position: relative;
  z-index: 2; /* so the "more.." popover will be over the time grid */
}

.calendar-agenda-view .calendar-day-grid .calendar-row {
  min-height: $grid-unit-y * 6; /* all-day section will never get shorter than this */
}

.calendar-agenda-view
  .calendar-day-grid
  .calendar-row
  .calendar-content-skeleton {
  padding-top: 1px; /* add a pixel to make sure there are 2px padding above events */
  padding-bottom: $grid-unit-y * 2; /* give space underneath events for clicking/selecting days */
}

/* TimeGrid axis running down the side (for both the all-day area and the slot area)
-------------------------------------------------------------------------------------------------- */

.calendar .calendar-axis {
  /* .calendar to overcome default cell styles */
  vertical-align: middle;
  padding: 0 ceil($grid-unit-y * 0.5);
  white-space: nowrap;
}

.calendar-ltr .calendar-axis {
  text-align: right;
}

.calendar-rtl .calendar-axis {
  text-align: left;
}

.ui-widget td.calendar-axis {
  font-weight: normal; /* overcome jqui theme making it bold */
}

/* TimeGrid Structure
-------------------------------------------------------------------------------------------------- */

.calendar-time-grid-container, /* so scroll container's z-index is below all-day */
.calendar-time-grid {
  /* so slats/bg/content/etc positions get scoped within here */
  position: relative;
  z-index: 1;
}

.calendar-time-grid {
  min-height: 100%; /* so if height setting is 'auto', .calendar-bg stretches to fill height */
}

.calendar-time-grid table {
  /* don't put outer borders on slats/bg/content/etc */
  border: 0 hidden transparent;
}

.calendar-time-grid > .calendar-bg {
  z-index: 1;
}

.calendar-time-grid .calendar-slats,
.calendar-time-grid > hr {
  /* the <hr> AgendaView injects when grid is shorter than scroller */
  position: relative;
  z-index: 2;
}

.calendar-time-grid .calendar-content-col {
  position: relative; /* because now-indicator lives directly inside */
}

.calendar-time-grid .calendar-content-skeleton {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
}

/* divs within a cell within the calendar-content-skeleton */

.calendar-time-grid .calendar-business-container {
  position: relative;
  z-index: 1;
}

.calendar-time-grid .calendar-bgevent-container {
  position: relative;
  z-index: 2;
}

.calendar-time-grid .calendar-highlight-container {
  position: relative;
  z-index: 3;
}

.calendar-time-grid .calendar-event-container {
  position: relative;
  z-index: 4;
}

.calendar-time-grid .calendar-now-indicator-line {
  z-index: 5;
}

.calendar-time-grid .calendar-helper-container {
  /* also is calendar-event-container */
  position: relative;
  z-index: 6;
}

/* TimeGrid Slats (lines that run horizontally)
-------------------------------------------------------------------------------------------------- */

.calendar-time-grid .calendar-slats td {
  height: $grid-unit-y * 3;
  border-bottom: 0; /* each cell is responsible for its top border */
}

.calendar-time-grid .calendar-slats .calendar-minor td {
  border-top-style: dotted;
}

.calendar-time-grid .calendar-slats .ui-widget-content {
  /* for jqui theme */
  background: none; /* see through to calendar-bg */
}

/* TimeGrid Highlighting Slots
-------------------------------------------------------------------------------------------------- */

.calendar-time-grid .calendar-highlight-container {
  /* a div within a cell within the calendar-highlight-skeleton */
  position: relative; /* scopes the left/right of the calendar-highlight to be in the column */
}

.calendar-time-grid .calendar-highlight {
  position: absolute;
  left: 0;
  right: 0;

  /* top and bottom will be in by JS */
}

/* TimeGrid Event Containment
-------------------------------------------------------------------------------------------------- */

.calendar-ltr .calendar-time-grid .calendar-event-container {
  /* space on the sides of events for LTR (default) */
  margin: 0 2.5% 0 2px;
}

.calendar-rtl .calendar-time-grid .calendar-event-container {
  /* space on the sides of events for RTL */
  margin: 0 2px 0 2.5%;
}

.calendar-time-grid .calendar-event,
.calendar-time-grid .calendar-bgevent {
  position: absolute;
  z-index: 1; /* scope inner z-index's */
}

.calendar-time-grid .calendar-bgevent {
  /* background events always span full width */
  left: 0;
  right: 0;
}

/* Generic Vertical Event
-------------------------------------------------------------------------------------------------- */

.calendar-v-event.calendar-not-start {
  /* events that are continuing from another day */

  /* replace space made by the top border with padding */
  border-top-width: 0;
  padding-top: 1px;

  /* remove top rounded corners */
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.calendar-v-event.calendar-not-end {
  /* replace space made by the top border with padding */
  border-bottom-width: 0;
  padding-bottom: 1px;

  /* remove bottom rounded corners */
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* TimeGrid Event Styling
----------------------------------------------------------------------------------------------------
We use the full "calendar-time-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/

.calendar-time-grid-event {
  overflow: hidden; /* don't let the bg flow over rounded corners */
}

.calendar-time-grid-event.calendar-selected {
  /* need to allow touch resizers to extend outside event's bounding box */

  /* common calendar-selected styles hide the calendar-bg, so don't need this anyway */
  overflow: visible;
}

.calendar-time-grid-event.calendar-selected .calendar-bg {
  display: none; /* hide semi-white background, to appear darker */
}

.calendar-time-grid-event .calendar-content {
  overflow: hidden; /* for when .calendar-selected */
}

.calendar-time-grid-event .calendar-time,
.calendar-time-grid-event .calendar-title {
  padding: 0 1px;
}

.calendar-time-grid-event .calendar-time {
  font-size: $font-size-base;
  white-space: nowrap;
}

/* short mode, where time and title are on the same line */

.calendar-time-grid-event.calendar-short .calendar-content {
  /* don't wrap to second line (now that contents will be inline) */
  white-space: nowrap;
}

.calendar-time-grid-event.calendar-short .calendar-time,
.calendar-time-grid-event.calendar-short .calendar-title {
  /* put the time and title on the same line */
  display: inline-block;
  vertical-align: top;
}

.calendar-time-grid-event.calendar-short .calendar-time span {
  display: none; /* don't display the full time text... */
}

.calendar-time-grid-event.calendar-short .calendar-time::before {
  content: attr(data-start); /* ...instead, display only the start time */
}

.calendar-time-grid-event.calendar-short .calendar-time::after {
  content: "\000A0-\000A0"; /* seperate with a dash, wrapped in nbsp's */
}

.calendar-time-grid-event.calendar-short .calendar-title {
  font-size: $font-size-base; /* make the title text the same size as the time */
  padding: 0; /* undo padding from above */
}

/* resizer (cursor device) */

.calendar-time-grid-event.calendar-allow-mouse-resize .calendar-resizer {
  left: 0;
  right: 0;
  bottom: 0;
  height: $grid-unit-y;
  overflow: hidden;
  line-height: $grid-unit-y;
  font-size: $font-size-small;
  font-family: monospace;
  text-align: center;
  cursor: s-resize;
}

.calendar-time-grid-event.calendar-allow-mouse-resize .calendar-resizer::after {
  content: "=";
}

/* resizer (touch device) */

.calendar-time-grid-event.calendar-selected .calendar-resizer {
  /* 10x10 dot */
  border-radius: $border-radius-base;
  border-width: 1px;
  width: $grid-unit-x;
  height: $grid-unit-y;
  border-style: solid;
  border-color: inherit;

  @include themes(background, color-text-dark);
  /* horizontally center */
  left: 50%;
  margin-left: -5px;

  /* center on the bottom edge */
  bottom: -5px;
}

/* Now Indicator
-------------------------------------------------------------------------------------------------- */

.calendar-time-grid .calendar-now-indicator-line {
  border-top-width: 1px;
  left: 0;
  right: 0;
}

/* arrow on axis */

.calendar-time-grid .calendar-now-indicator-arrow {
  margin-top: -$grid-unit-x; /* vertically center on top coordinate */
}

.calendar-ltr .calendar-time-grid .calendar-now-indicator-arrow {
  left: 0;

  /* triangle pointing right... */
  border-width: 5px 0 5px 6px;
  border-top-color: transparent;
  border-bottom-color: transparent;
}

.calendar-rtl .calendar-time-grid .calendar-now-indicator-arrow {
  right: 0;

  /* triangle pointing left... */
  border-width: 5px 6px 5px 0;
  border-top-color: transparent;
  border-bottom-color: transparent;
}
