/*
 * gotham.scss test theme for experimenting with icon themes
 */
/** Cross theme styles */
/*
 * Global.scss provides styles and configuration
 * all themes.
 *
 */
/** Global styles and values */
/** styles and values */
#stop5283-0 {
  stop-color: #df9f3f;
  stop-opacity: 1; }

#stop5289-6 {
  stop-color: #ffbf3f;
  stop-opacity: 1; }

#stop5285-8 {
  stop-color: #ffff9f;
  stop-opacity: 1; }

#stop5293 {
  stop-color: #543830;
  stop-opacity: 1; }

#stop5295 {
  stop-color: #543830;
  stop-opacity: 1; }

#stop5120-7-2 {
  stop-color: #005597;
  stop-opacity: 1; }

#stop5122-6-7 {
  stop-color: #00467d;
  stop-opacity: 1; }

#stop5194 {
  stop-color: #003c6e;
  stop-opacity: 1; }

#stop5196 {
  stop-color: #004c88;
  stop-opacity: 1; }

#stop5283-0-40 {
  stop-color: #df9f3f;
  stop-opacity: 1; }

#stop5289-6-9 {
  stop-color: #ffbf3f;
  stop-opacity: 1; }

#stop5285-8-4 {
  stop-color: #ffff9f;
  stop-opacity: 1; }

#stop5293-45 {
  stop-color: #543830;
  stop-opacity: 1; }

#stop5295-5 {
  stop-color: #543830;
  stop-opacity: 1; }

#stop5194-1 {
  stop-color: #003c6e;
  stop-opacity: 1; }

#stop5196-5 {
  stop-color: #004c88;
  stop-opacity: 1; }

#stop5120-7-2-6 {
  stop-color: #005597;
  stop-opacity: 1; }

#stop5122-6-7-14 {
  stop-color: #00467d;
  stop-opacity: 1; }

#g11189 {
  fill: #ffffff;
  stroke: #ffffff;
  display: inline; }

#path11191 {
  fill: #ffffff;
  stroke: #ffffff;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1; }

#path11193 {
  fill: #ffffff;
  fill-opacity: 1;
  stroke: #ffffff;
  display: inline; }

#path11195 {
  fill: #ffffff;
  stroke: #ffffff;
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#path11197 {
  fill: #ffffff;
  fill-opacity: 1;
  stroke: #ffffff;
  display: inline; }

#stop3853-2 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3863-0 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3855-4 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop3089 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3091 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3093 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop4013-6 {
  stop-color: #e0b575;
  stop-opacity: 1; }

#stop4015-7 {
  stop-color: #f5ca75;
  stop-opacity: 1; }

#stop4017-5 {
  stop-color: #f5f5b5;
  stop-opacity: 1; }

#stop3867-6 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3869-6 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3871-4 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop3853-2-0 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3863-0-1 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3855-4-1 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop4013-6-8 {
  stop-color: #e0b575;
  stop-opacity: 1; }

#stop4015-7-1 {
  stop-color: #f5ca75;
  stop-opacity: 1; }

#stop4017-5-5 {
  stop-color: #f5f5b5;
  stop-opacity: 1; }

#stop3853-2-6 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3863-0-8 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3855-4-0 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop4013-6-88 {
  stop-color: #e0b575;
  stop-opacity: 1; }

#stop4015-7-7 {
  stop-color: #f5ca75;
  stop-opacity: 1; }

#stop4017-5-9 {
  stop-color: #f5f5b5;
  stop-opacity: 1; }

#stop3853-2-0-3 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3863-0-1-3 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3855-4-1-0 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop4013-6-8-3 {
  stop-color: #df9f3f;
  stop-opacity: 1; }

#stop4015-7-1-6 {
  stop-color: #ffbf3f;
  stop-opacity: 1; }

#stop4017-5-5-9 {
  stop-color: #f5f5b5;
  stop-opacity: 1; }

#stop3853-2-0-3-4 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3863-0-1-3-8 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3855-4-1-0-4 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop4013-6-8-3-4 {
  stop-color: #df9f3f;
  stop-opacity: 1; }

#stop4015-7-1-6-9 {
  stop-color: #ffbf3f;
  stop-opacity: 1; }

#stop4017-5-5-9-7 {
  stop-color: #f5f5b5;
  stop-opacity: 1; }

#stop3853-2-0-3-4-7 {
  stop-color: #ffffff;
  stop-opacity: 1; }

#stop3863-0-1-3-8-2 {
  stop-color: #ffffff;
  stop-opacity: 0.82198954; }

#stop3855-4-1-0-4-2 {
  stop-color: #ffffff;
  stop-opacity: 0; }

#stop4013-6-8-3-4-1 {
  stop-color: #df9f3f;
  stop-opacity: 1; }

#stop4015-7-1-6-9-1 {
  stop-color: #ffbf3f;
  stop-opacity: 1; }

#stop4017-5-5-9-7-8 {
  stop-color: #f5f5b5;
  stop-opacity: 1; }

#layer1 {
  display: inline; }

#path5048 {
  fill: none;
  stroke: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient10956);
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1; }

#path4242-2-1 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient10953);
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#path5048-2 {
  fill: none;
  stroke: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient10978);
  stroke-width: 1px;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-opacity: 1;
  display: inline; }

#path4242-2-1-3 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient10953-2);
  fill-opacity: 1;
  stroke: none;
  display: inline; }

#g11096 {
  filter: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#filter11967);
  stroke: #ffffff;
  stroke-width: 2;
  stroke-miterlimit: 4;
  stroke-dasharray: none; }

#path4059-7-6-6-4 {
  fill: #ffffff;
  fill-opacity: 1;
  stroke: #ffffff;
  stroke-width: 2;
  stroke-miterlimit: 4;
  stroke-opacity: 1;
  stroke-dasharray: none;
  display: inline; }

#path4059-7-6-6-1-1 {
  fill: #ffffff;
  fill-opacity: 1;
  stroke: #ffffff;
  stroke-width: 2;
  stroke-miterlimit: 4;
  stroke-opacity: 1;
  stroke-dasharray: none;
  display: inline; }

#g3064-4-2 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient3140-3-9-1-9-7);
  fill-opacity: 1;
  stroke: #543830;
  stroke-opacity: 1;
  display: inline; }

#path4413-2-5-3-1-2-4-7 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient4009-9-0-4-2-0);
  fill-opacity: 1;
  stroke: #543830;
  stroke-width: 1;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-miterlimit: 4;
  stroke-opacity: 1;
  stroke-dasharray: none;
  display: inline; }

#path4475-6-4 {
  fill: #ffffff;
  fill-opacity: 1;
  stroke: #543830;
  stroke-width: 1;
  stroke-linejoin: round;
  stroke-miterlimit: 4;
  stroke-opacity: 1;
  stroke-dasharray: none; }

#g3064-4 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient3140-3-9-1);
  fill-opacity: 1;
  stroke: #543830;
  stroke-opacity: 1;
  display: inline; }

#path4413-2-5-3-1-2-4 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient4009-9-0-4);
  fill-opacity: 1;
  stroke: #543830;
  stroke-width: 1;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-miterlimit: 4;
  stroke-opacity: 1;
  stroke-dasharray: none;
  display: inline; }

#path4475-6 {
  fill: #ffffff;
  fill-opacity: 1;
  stroke: #543830;
  stroke-width: 1;
  stroke-linejoin: round;
  stroke-miterlimit: 4;
  stroke-opacity: 1;
  stroke-dasharray: none; }

#g3878 {
  fill: url(../../../../../../eclipse-svg/org.eclipse.debug.ui/icons/full/obj16//debugt_obj.svg#linearGradient3268);
  fill-opacity: 1;
  stroke: none;
  display: inline; }
