Topic: Feedback requested on D0762R0 draft 1: result<T,
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Mon, 02 Oct 2017 22:24:39 +0200
Raw View
On 09/24/2017 03:55 AM, Niall Douglas wrote:
> D0762R0 draft 1: result<T, E> and expected<T, E>: Summary of the Boost.Outcome peer review
Thanks.
Comments:
I would appreciate a paragraph that introduces the whole topic of "T or E".
Why would I need it at all? My guess is "consider a function that returns
a value T on success and otherwise some error indication E (which might be
an error_code or an exception type)".
(Citing the std::filesystem library with its funny duplicate interface
functions may or may not be helpful.)
Allowing T=void seems useful in some circumstances.
1.1 item 12: You highlight "const T"; what about "volatile T"?
(Fine, I guess, but not highlighted.)
1.1 item 13: "... compatible" should be "convertible"
1.2 item 1: is_base_of_v<std::exception, E> also appears to be an
"error indication" check, and should be considered to be allowed.
I'm curious to learn what those restrictions buy you [reading on...]
1.2 item 2: Constructing to a T or an E seems a bit ... non-obvious,
but I can see why you want that: If you have an error code in hand,
there's little need for extra syntactic sugar when returning.
1.2 item 3: What's "wide/narrow contract" in this case? What does
value() return if there's an E? Checking error() (which might be
"no error") seems plausible before attempting to access the value.
1.2 item 5: What would be a plausible type E where you want to
ignore the result (for the expected case)?
1.2 item 6: I don't understand the reference to optional<result<T>>
here. Where's the E? Would expected's default constructed state
be different from result<T,E>(T()) ?
1.2 item 9: Please show the std:: prefixes throughout, which makes
success and failure, in my opinion, less appealing. And yes, since
"result" only allows a select few types, it seems the failure returns
should be readily apparent in source code.
1.2 item 10: "unexpected_type" seems to be a particularly obtuse
naming choice when reading the expression here.
1.2 item 11 move next to item 3.
It's not clear from the onset whether the a-c list is result's or
expected's behavior. Also, the phrasing "If E is a base of" should be
"... is the same as or derived from...".
Regardless of whether E is constrained (similar to "result"), the behavior
prescribed in item 11 seems reasonable. Oh, and std::error_code has
an "ok" value; can we just return that instead of throwing bad_result_access,
or is that too non-orthogonal?
2.1 "Result is specifically designed..." The argument then talks about
"compile-time overhead for variant storage with strong never-empty
guarantees" For someone not well-versed in the variant wars, could
you please explain (in the paper)? This is all templates in any case,
right? (also mentioned in 3.2)
2.2 second paragraph: "just use expected": We will either have
result or expected in the standard, not both, so "just use expected"
is not an option. And no, make_error_code(enum) should not usually
throw an exception; that would be very surprising (the
standard-provided functions are all noexcept). The third
argument is the compelling one ("the mapping from E to exceptions is
the task of some middle layer; if you don't like the default,
implement your own way of doing it"). This argument should be first.
One of Bjarne's concerns is "make it hard to ignore errors". How is
that reflected in either design, in particular for T=void?
In short, I'm glad to learn that the differences between expected
and result are fairly small, once expected moves away from the
misguided emulation of std::optional (with operator* and friends).
Thanks,
Jens
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/59D2A087.6030907%40gmx.net.
.
Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Date: Mon, 2 Oct 2017 16:04:05 -0700 (PDT)
Raw View
------=_Part_5893_196893658.1506985445358
Content-Type: multipart/alternative;
boundary="----=_Part_5894_765124750.1506985445358"
------=_Part_5894_765124750.1506985445358
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Saturday, September 23, 2017 at 6:55:16 PM UTC-7, Niall Douglas wrote:
>
> Dear std-proposals,
>
> You may remember me asking a few weeks ago about how best to balance a=20
> summary of a peer review for WG21 consumption. Please find attached:
>
> D0762R0 draft 1: result<T, E> and expected<T, E>: Summary of the=20
> Boost.Outcome peer review
>
Thanks for this paper!
I find it confusing that the paper uses the words "Outcome" and "Result"=20
interchangeably or at least indistinguishably to the layman. I infer that=
=20
the thing called Boost::Outcome is being proposed for standardization as=20
Std::Result? I assume there are good pedantic reasons for saying "Outcome"=
=20
sometimes and "Result" other times, but it's needlessly confusing to me=20
IMHO.
In the list of dissimilarities, I find:
> Result places these strict requirements on E:=20
> (a) std::is_base_of_v<std::error_code, E> must be true; OR
> (b) std::is_base_of_v<std::exception_ptr, E> must be true; OR [...]
If the user is actually inheriting from either std::error_code or=20
std::exception_ptr, they are in a state of sin. Those types are *not*=20
supposed to be classically polymorphic, and inheriting from them will only=
=20
lead to slicing and bitter tears. Would anything of value be lost if you=20
replaced "is_base_of" with "is_same", here?
Dissimilarity #2 (implicit constructors) seems like a clear win for=20
Expected. Implicit construction (especially from integral types) is the=20
root of all evil.
Dissimilarity #5 says "nor would it be appropriate for many choices of type=
=20
E." This needs explanation/support. Otherwise it seems like just a QoI=20
defect against Expected.
Dissimilarity #9 says "Expected=E2=80=99s type sugar is unexpected_type<E> =
which=20
maps almost identically onto failure<E>. Expected has no corollary to=20
success<T =3D void> as it does not permit implicit construction from E." I=
=20
think the last sentence's first clause is confused. I would write these two=
=20
sentences as: "Expected's syntactic sugar for failure(E) is=20
make_unexpected(E). Expected's syntactic sugar for success(T) is=20
make_expected(T). Both Expected and Result are implicitly constructible=20
from T."
Likewise in #10 I would think that=20
"std::make_unexpected<std::error_code>(GetLastError(),=20
std::system_category())" would be a fairer comparison.
Re narrow and wide observers: The general rule in my experience is that=20
things-using-punctuation are narrow-contract and things-using-English-names=
=20
are wide-contract. Thus wide optional::value(), wide vector::at(), narrow=
=20
optional::operator*(), narrow vector::operator[](). If Expected is=20
breaking this rule, then yeah, that sucks.
Section 3.2 "De-variant Expected?" mildly confuses me. You keep saying that=
=20
Expected<T,E> uses "variant storage" and that this is a bad thing for its=
=20
ABI. But then dissimilarity #7 shows the implementation of Result<T,E> and=
=20
I see a union there too! So, if you're using the term "variant storage" to=
=20
mean something different from "a union", then what do you mean by it? I've=
=20
implemented std::variant and Expected and I can tell you, (A), std::variant=
=20
is just a big union, and (B), nobody should be implementing Expected (or=20
std::optional) *literally* in terms of a header dependency on <variant>.=20
Both std::variant and Expected involve unions at some level, sure; but it=
=20
seems from the paper that Result<T,E> *also* involves a union.
Line 610 of the code in the appendix has a "Pxxxx" that maybe should be=20
filled in at this point?
HTH,
Arthur
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/f3a9a0ec-2060-4513-90ee-864e742e49c8%40isocpp.or=
g.
------=_Part_5894_765124750.1506985445358
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Saturday, September 23, 2017 at 6:55:16 PM UTC-7, Niall=
Douglas wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-=
left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr=
"><div>Dear std-proposals,</div><div><br></div><div>You may remember me ask=
ing a few weeks ago about how best to balance a summary of a peer review fo=
r WG21 consumption. Please find attached:</div><div><br></div>D0762R0 draft=
1: result<T, E> and expected<T, E>: Summary of the Boost.Outco=
me peer review</div></blockquote><div><br></div><div>Thanks for this paper!=
</div><div><br></div><div>I find it confusing that the paper uses the words=
"Outcome" and "Result" interchangeably or at least ind=
istinguishably to the layman. I infer that the thing called Boost::Outcome =
is being proposed for standardization as Std::Result? I assume there are go=
od pedantic reasons for saying "Outcome" sometimes and "Resu=
lt" other times, but it's needlessly confusing to me IMHO.</div><d=
iv><br></div><div>In the list of dissimilarities, I find:<br><br>> Resul=
t places these strict requirements on E: <br>> (a) std::is_base_of_v<=
std::error_code, E> must be true; OR<br>> (b) std::is_base_of_v<st=
d::exception_ptr, E> must be true; OR [...]<br><br></div><div>If the use=
r is actually inheriting from either std::error_code or std::exception_ptr,=
they are in a state of sin. Those types are <i>not</i> supposed to be clas=
sically polymorphic, and inheriting from them will only lead to slicing and=
bitter tears. Would anything of value be lost if you replaced "is_bas=
e_of" with "is_same", here?</div><div><br></div><div>Dissimi=
larity #2 (implicit constructors) seems like a clear win for Expected. Impl=
icit construction (especially from integral types) is the root of all evil.=
</div><div><br></div><div>Dissimilarity #5 says "nor would it be appro=
priate for many choices of type E." This needs explanation/support. Ot=
herwise it seems like just a QoI defect against Expected.</div><div><br></d=
iv><div>Dissimilarity #9 says=C2=A0"Expected=E2=80=99s type sugar is u=
nexpected_type<E> which maps almost identically onto failure<E>=
.. Expected has no corollary to success<T =3D void> as it does not per=
mit implicit construction from E." =C2=A0I think the last sentence'=
;s first clause is confused. I would write these two sentences as: "Ex=
pected's syntactic sugar for failure(E) is make_unexpected(E). Expected=
's syntactic sugar for success(T) is make_expected(T). Both Expected an=
d Result are implicitly constructible from T."</div><div>Likewise in #=
10 I would think that "std::make_unexpected<std::error_code>(Get=
LastError(), std::system_category())" would be a fairer comparison.</d=
iv><div><br></div><div>Re narrow and wide observers: The general rule in my=
experience is that things-using-punctuation are narrow-contract and things=
-using-English-names are wide-contract. Thus wide optional::value(), wide v=
ector::at(), narrow optional::operator*(), narrow vector::operator[](). =C2=
=A0If Expected is breaking this rule, then yeah, that sucks.</div><div><br>=
</div><div>Section 3.2 "De-variant Expected?" mildly confuses me.=
You keep saying that Expected<T,E> uses "variant storage" =
and that this is a bad thing for its ABI. But then dissimilarity #7 shows t=
he implementation of Result<T,E> and I see a union there too! =C2=A0S=
o, if you're using the term "variant storage" to mean somethi=
ng different from "a union", then what do you mean by it? =C2=A0I=
've implemented std::variant and Expected and I can tell you, (A), std:=
:variant is just a big union, and (B), nobody should be implementing Expect=
ed (or std::optional)=C2=A0<i>literally</i> in terms of a header dependency=
on <variant>. Both std::variant and Expected involve unions at some =
level, sure; but it seems from the paper that Result<T,E> <i>also</i>=
involves a union.</div><div><br></div><div>Line 610 of the code in the app=
endix has a "Pxxxx" that maybe should be filled in at this point?=
</div><div><br></div><div>HTH,</div><div>Arthur</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/f3a9a0ec-2060-4513-90ee-864e742e49c8%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f3a9a0ec-2060-4513-90ee-864e742e49c8=
%40isocpp.org</a>.<br />
------=_Part_5894_765124750.1506985445358--
------=_Part_5893_196893658.1506985445358--
.
Author: Niall Douglas <nialldouglas14@gmail.com>
Date: Mon, 2 Oct 2017 16:16:33 -0700 (PDT)
Raw View
------=_Part_2861_1499511670.1506986193993
Content-Type: multipart/alternative;
boundary="----=_Part_2862_832418667.1506986193993"
------=_Part_2862_832418667.1506986193993
Content-Type: text/plain; charset="UTF-8"
On Monday, October 2, 2017 at 9:24:43 PM UTC+1, Jens Maurer wrote:
>
> On 09/24/2017 03:55 AM, Niall Douglas wrote:
> > D0762R0 draft 1: result<T, E> and expected<T, E>: Summary of the
> Boost.Outcome peer review
>
> Thanks.
>
Firstly, thank you very much for taking the time to make such detailed
commentary. I won't reply to the specifics as I received sufficient
feedback on that edition of the paper that I was recommended to throw it
away and try again for a third time at a complete rewrite. You should be
aware that your feedback matched others on WG21, except you were much more
polite about it. So thank you.
I will however comment on the wider points you made, the ones which would
apply to any paper I submit.
>
> I would appreciate a paragraph that introduces the whole topic of "T or
> E".
> Why would I need it at all? My guess is "consider a function that returns
> a value T on success and otherwise some error indication E (which might be
> an error_code or an exception type)".
>
It's a can of worms that one. I rewrote the tutorial for Outcome v1 three
times, and still the Boost peer review panned it. My lousy attempts were
that bad that Andrezj volunteered to write the v2 Outcome tutorial to keep
me away from it, and you can see his work to date
at https://ned14.github.io/outcome/tutorial/unchecked/
So I'll be honest, anything I write on that will be more confusing than if
I wrote nothing. I'll defer to Vicente's earlier Expected papers for
rationale. The version he's sending to the October mailing, BTW, is
basically the final pre-LWG edition, it is now about implementation
specifics, not rationale for the addition at all.
> (Citing the std::filesystem library with its funny duplicate interface
> functions may or may not be helpful.)
>
That's another can of worms which gets some people very angry indeed. I
won't bore you with the details here.
>
> 1.2 item 10: "unexpected_type" seems to be a particularly obtuse
> naming choice when reading the expression here.
>
That's Expected. Be aware that the Toronto meeting renamed it to
`unexpected<E>` now. And it's gained template deduction guides like Outcome
has for `success<T>` and `failure<E>`.
>
> Regardless of whether E is constrained (similar to "result"), the behavior
> prescribed in item 11 seems reasonable. Oh, and std::error_code has
> an "ok" value; can we just return that instead of throwing
> bad_result_access,
> or is that too non-orthogonal?
>
Yeah, I'm actually in agreement on that. But the Boost peer review was not.
Also, technically speaking, a default constructed error code is not an ok
value. Nowhere in the standard does it actually guarantee that. Nor can it,
because perhaps on some OS's system category the code 0 is not an ok value,
and is in fact something very bad.
(yes the standard is unhelpfully ambiguous on that, and it's why a
constexpr null category would make so much more sense for a default
initialised error code. Then we can *guarantee* that that is a "no error
here" state)
>
> 2.1 "Result is specifically designed..." The argument then talks about
> "compile-time overhead for variant storage with strong never-empty
> guarantees" For someone not well-versed in the variant wars, could
> you please explain (in the paper)? This is all templates in any case,
> right? (also mentioned in 3.2)
>
I'll see what I can do about this. But even with explanation, some don't
see the issue. Vicente for example thinks the compiler load for strong
never empty variant storage to not be a problem. I say it does, but my
proof is not the use of an Expected implementation, but rather when I
wrapped std::variant into an Outcome which isn't the same thing because
std::variant is really quite unusually hard on the compiler.
And even then, it all depends on your personal weighting of the importance
of lightweightness of interface files vs header files. And that encompasses
a huge range of opinion, none of which is wrong per se. Though most on SG14
would tend in one direction on that.
>
> 2.2 second paragraph: "just use expected": We will either have
> result or expected in the standard, not both, so "just use expected"
> is not an option. And no, make_error_code(enum) should not usually
> throw an exception; that would be very surprising (the
> standard-provided functions are all noexcept). The third
> argument is the compelling one ("the mapping from E to exceptions is
> the task of some middle layer; if you don't like the default,
> implement your own way of doing it"). This argument should be first.
>
Cool, thanks.
>
> One of Bjarne's concerns is "make it hard to ignore errors". How is
> that reflected in either design, in particular for T=void?
>
Outcome is specifically designed to be used primarily in function returns,
so it is able to make stronger assurances that errors cannot be easily
ignored.
Expected is specifically designed as a primitive on top of which you
construct other stuff. That makes it hard to make such strong assurances.
I personally speaking think that WG21 should standardise *layers* of
implementation for these objects, not some one-size-fits-all single object
like Expected which can never really deliver good practice on its own. But
I'm told the committee don't want that. So the best I can do is submit a
paper saying "please don't do X, Y and Z which the Boost peer review agreed
to be a design mistake relative to other choices", and hope that what gets
standardised doesn't wreck things too badly for future developments.
The docs don't show it yet, but Outcome v2 is precisely such a layered
design (so was v1, but different layers boost-dev didn't care for). You
have:
- unchecked<T, E> - no runtime checking for correct usage at all
- checked<T, E> - throws bad_result_access_with<E> or bad_result_access
if used incorrectly
- result<T, E> - different default behaviours when used incorrectly
depending on user's choice of type E
- outcome<T, E, P> - result but E carries payload P
- outcome<T, EC, E> - result but can be T or EC or E or EC + E. This
neatly sidesteps the std::filesystem loss-of-context API problem.
All these have well defined interoperation semantics and strong ABI
guarantees so big codebases can safely use Outcome in their public API.
Indeed, C code can speak many of these objects, and Outcome provides a C
macro API.
Expected slots somewhere in between unchecked<T, E> and checked<T, E>
because Expected has a wide value observer but narrow observers for
everything else which I find to be a severe design mistake which nobody
should consider after the Optional experience. But clearly a majority on
WG21 do not agree with me.
>
> In short, I'm glad to learn that the differences between expected
> and result are fairly small, once expected moves away from the
> misguided emulation of std::optional (with operator* and friends).
>
> If Expected looked like unchecked<T, E> from Outcome, I'd consider that a
great foundation stone on top of which to build other stuff. Though perhaps
a bit too simple to be used on its own.
But all that said, this stuff can be Conceptualised into generic constructs
and logic, and that ought to be the long term goal for all this stuff with
us taking a least risk approach to threatening that right now. Vicente has
some early ideas on that, I won't share them here, but they are quite
thought provoking.
Niall
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/aebb6cf4-7095-4258-8868-d6eaf287ddd4%40isocpp.org.
------=_Part_2862_832418667.1506986193993
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Monday, October 2, 2017 at 9:24:43 PM UTC+1, Jens Maure=
r wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0=
..8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On 09/24/2017 03:55 AM=
, Niall Douglas wrote:
<br>> D0762R0 draft 1: result<T, E> and expected<T, E>: Summ=
ary of the Boost.Outcome peer review
<br>
<br>Thanks.
<br></blockquote><div><br></div><div>Firstly, thank you very much for takin=
g the time to make such detailed commentary. I won't reply to the speci=
fics as I received sufficient feedback on that edition of the paper that I =
was recommended to throw it away and try again for a third time at a comple=
te rewrite. You should be aware that your feedback matched others on WG21, =
except you were much more polite about it. So thank you.</div><div><br></di=
v><div>I will however comment on the wider points you made, the ones which =
would apply to any paper I submit.</div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #cc=
c solid;padding-left: 1ex;">
<br>I would appreciate a paragraph that introduces the whole topic of "=
;T or E".
<br>Why would I need it at all? =C2=A0My guess is "consider a function=
that returns
<br>a value T on success and otherwise some error indication E (which might=
be
<br>an error_code or an exception type)".
<br></blockquote><div><br></div><div>It's a can of worms that one. I re=
wrote the tutorial for Outcome v1 three times, and still the Boost peer rev=
iew panned it. My lousy attempts were that bad that Andrezj volunteered to =
write the v2 Outcome tutorial to keep me away from it, and you can see his =
work to date at=C2=A0https://ned14.github.io/outcome/tutorial/unchecked/</d=
iv><div><br></div><div>So I'll be honest, anything I write on that will=
be more confusing than if I wrote nothing. I'll defer to Vicente's=
earlier Expected papers for rationale. The version he's sending to the=
October mailing, BTW, is basically the final pre-LWG edition, it is now ab=
out implementation specifics, not rationale for the addition at all.</div><=
div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin=
-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">(Citing the st=
d::filesystem library with its funny duplicate interface
<br>functions may or may not be helpful.)
<br></blockquote><div><br></div><div>That's another can of worms which =
gets some people very angry indeed. I won't bore you with the details h=
ere.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margi=
n: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><br=
>1.2 item 10: "unexpected_type" seems to be a particularly obtuse
<br>naming choice when reading the expression here.
<br></blockquote><div><br></div><div>That's Expected. Be aware that the=
Toronto meeting renamed it to `unexpected<E>` now. And it's gain=
ed template deduction guides like Outcome has for `success<T>` and `f=
ailure<E>`.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-le=
ft: 1ex;"><br>Regardless of whether E is constrained (similar to "resu=
lt"), the behavior
<br>prescribed in item 11 seems reasonable. =C2=A0Oh, and std::error_code h=
as
<br>an "ok" value; can we just return that instead of throwing ba=
d_result_access,
<br>or is that too non-orthogonal?
<br></blockquote><div><br></div><div>Yeah, I'm actually in agreement on=
that. But the Boost peer review was not.</div><div><br></div><div>Also, te=
chnically speaking, a default constructed error code is not an ok value. No=
where in the standard does it actually guarantee that. Nor can it, because =
perhaps on some OS's system category the code 0 is not an ok value, and=
is in fact something very bad.</div><div><br></div><div>(yes the standard =
is unhelpfully ambiguous on that, and it's why a constexpr null categor=
y would make so much more sense for a default initialised error code. Then =
we can <b>guarantee</b>=C2=A0that that is a "no error here" state=
)</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin: =
0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>2.1 "Result is specifically designed..." The argument then ta=
lks about
<br>"compile-time overhead for variant storage with strong never-empty
<br>guarantees" For someone not well-versed in the variant wars, could
<br>you please explain (in the paper)? =C2=A0This is all templates in any c=
ase,
<br>right? =C2=A0(also mentioned in 3.2)
<br></blockquote><div><br></div><div>I'll see what I can do about this.=
But even with explanation, some don't see the issue. Vicente for examp=
le thinks the compiler load for strong never empty variant storage to not b=
e a problem. I say it does, but my proof is not the use of an Expected impl=
ementation, but rather when I wrapped std::variant into an Outcome which is=
n't the same thing because std::variant is really quite unusually hard =
on the compiler.</div><div><br></div><div>And even then, it all depends on =
your personal weighting of the importance of lightweightness of interface f=
iles vs header files. And that encompasses a huge range of opinion, none of=
which is wrong per se. Though most on SG14 would tend in one direction on =
that.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"marg=
in: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>2.2 second paragraph: "just use expected": We will either hav=
e
<br>result or expected in the standard, not both, so "just use expecte=
d"
<br>is not an option. =C2=A0And no, make_error_code(enum) should not usuall=
y
<br>throw an exception; that would be very surprising (the
<br>standard-provided functions are all noexcept). =C2=A0The third
<br>argument is the compelling one ("the mapping from E to exceptions =
is
<br>the task of some middle layer; if you don't like the default,
<br>implement your own way of doing it"). =C2=A0This argument should b=
e first.
<br></blockquote><div><br></div><div>Cool, thanks.</div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;borde=
r-left: 1px #ccc solid;padding-left: 1ex;">
<br>One of Bjarne's concerns is "make it hard to ignore errors&quo=
t;. =C2=A0How is
<br>that reflected in either design, in particular for T=3Dvoid?
<br></blockquote><div><br></div><div>Outcome is specifically designed to be=
used primarily in function returns, so it is able to make stronger assuran=
ces that errors cannot be easily ignored.</div><div><br></div><div>Expected=
is specifically designed as a primitive on top of which you construct othe=
r stuff. That makes it hard to make such strong assurances.</div><div><br><=
/div><div>I personally speaking think that WG21 should standardise <i>layer=
s</i>=C2=A0of implementation for these objects, not some one-size-fits-all =
single object like Expected which can never really deliver good practice on=
its own. But I'm told the committee don't want that. So the best I=
can do is submit a paper saying "please don't do X, Y and Z which=
the Boost peer review agreed to be a design mistake relative to other choi=
ces", and hope that what gets standardised doesn't wreck things to=
o badly for future developments.</div><div><br></div><div>The docs don'=
t show it yet, but Outcome v2 is precisely such a layered design (so was v1=
, but different layers boost-dev didn't care for). You have:</div><div>=
<br></div><div><ul><li>unchecked<T, E> - no runtime checking for corr=
ect usage at all</li><li>checked<T, E> - throws bad_result_access_wit=
h<E> or bad_result_access if used incorrectly</li><li>result<T, E&=
gt; - different default behaviours when used incorrectly depending on user&=
#39;s choice of type E</li><li>outcome<T, E, P> - result but E carrie=
s payload P</li><li>outcome<T, EC, E> - result but can be T or EC or =
E or EC + E. This neatly sidesteps the std::filesystem loss-of-context API =
problem.</li></ul><div>All these have well defined interoperation semantics=
and strong ABI guarantees so big codebases can safely use Outcome in their=
public API. Indeed, C code can speak many of these objects, and Outcome pr=
ovides a C macro API.</div><div><br></div><div>Expected slots somewhere in =
between unchecked<T, E> and checked<T, E> because Expected has =
a wide value observer but narrow observers for everything else which I find=
to be a severe design mistake which nobody should consider after the Optio=
nal experience. But clearly a majority on WG21 do not agree with me.</div><=
/div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;=
margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>In short, I'm glad to learn that the differences between expected
<br>and result are fairly small, once expected moves away from the
<br>misguided emulation of std::optional (with operator* and friends).
<br>
<br></blockquote><div>If Expected looked like unchecked<T, E> from Ou=
tcome, I'd consider that a great foundation stone on top of which to bu=
ild other stuff. Though perhaps a bit too simple to be used on its own.</di=
v><div><br></div><div>But all that said, this stuff can be Conceptualised i=
nto generic constructs and logic, and that ought to be the long term goal f=
or all this stuff with us taking a least risk approach to threatening that =
right now. Vicente has some early ideas on that, I won't share them her=
e, but they are quite thought provoking.</div><div><br></div><div>Niall</di=
v><div><br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/aebb6cf4-7095-4258-8868-d6eaf287ddd4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/aebb6cf4-7095-4258-8868-d6eaf287ddd4=
%40isocpp.org</a>.<br />
------=_Part_2862_832418667.1506986193993--
------=_Part_2861_1499511670.1506986193993--
.
Author: Niall Douglas <nialldouglas14@gmail.com>
Date: Mon, 2 Oct 2017 16:42:45 -0700 (PDT)
Raw View
------=_Part_5927_422531282.1506987766023
Content-Type: multipart/alternative;
boundary="----=_Part_5928_174503977.1506987766023"
------=_Part_5928_174503977.1506987766023
Content-Type: text/plain; charset="UTF-8"
Also thank you for the detailed response. As just explained, that paper is
now dustbinned due to other WG21 feedback, but in response to the general
points made:
> If the user is actually inheriting from either std::error_code or
> std::exception_ptr, they are in a state of sin. Those types are *not*
> supposed to be classically polymorphic, and inheriting from them will only
> lead to slicing and bitter tears. Would anything of value be lost if you
> replaced "is_base_of" with "is_same", here?
>
Alas subclassing error code with additional payload happens frequently
enough precisely because error code can't carry payload, and we often need
it to. Indeed Outcome v1 supplied an error_code_extended which subclassed
error_code. You may be surprised to learn that the Boost peer review liked
that quite a lot indeed, and I will receive flak in the second peer review
for dropping it in v2.
>
> Dissimilarity #2 (implicit constructors) seems like a clear win for
> Expected. Implicit construction (especially from integral types) is the
> root of all evil.
>
The Boost peer review went into this in unbelievable depth. And we came out
on the other side with a set of constraints which the consensus believed
would prevent the problems which say std::variant has.
So Outcome replicates std::variant's constructor design, but it is far more
constrained than std::variant.
To test these constraints, I replaced v1 Outcome with v2 in an existing
large code base, plus wrote lots of new code using v2 Outcome to give it a
thorough kicking. Precisely once did unexpected surprise occur with the
constraints given by the Boost peer review, and I have poked a single hole
for that one use case which may or may not be felt to be acceptable in the
second peer review.
I'm going to claim that implicit construction for this specific use case
with those constraints is safe. And therefore Expected is being needlessly,
and wastefully, over cautious.
>
> Dissimilarity #5 says "nor would it be appropriate for many choices of
> type E." This needs explanation/support. Otherwise it seems like just a QoI
> defect against Expected.
>
Yeah Vicente raised that one too. The problem is we cannot inspect a type
to see if it's marked [[nodiscard]].
>
> Re narrow and wide observers: The general rule in my experience is that
> things-using-punctuation are narrow-contract and things-using-English-names
> are wide-contract. Thus wide optional::value(), wide vector::at(), narrow
> optional::operator*(), narrow vector::operator[](). If Expected is
> breaking this rule, then yeah, that sucks.
>
That rule needs to go die somewhere. In the Boost peer review, we
eventually arrived at a new rule which was that all-narrow or all-wide with
clearly distinct naming is the right path forwards. Mixed wide-narrow leads
to broken badly written code which is non-obviously broken and badly
written.
>
> Section 3.2 "De-variant Expected?" mildly confuses me. You keep saying
> that Expected<T,E> uses "variant storage" and that this is a bad thing for
> its ABI. But then dissimilarity #7 shows the implementation of Result<T,E>
> and I see a union there too! So, if you're using the term "variant
> storage" to mean something different from "a union", then what do you mean
> by it? I've implemented std::variant and Expected and I can tell you, (A),
> std::variant is just a big union,
>
A conforming std::variant does a ton load more than be just a big union.
And a strong never empty guaranteed variant storage like Expected provides
means a ton load more again implementation code, much of which is complex
for the compiler to instantiate i.e. lots of SFINAE and concept matching.
You've got potential double buffering in there, you've got to preserve
triviality as well, plus alignment requirements must be met.
I too have implemented this for v1 Outcome. It is highly non-trivial,
either for the programmer or the compiler.
> and (B), nobody should be implementing Expected (or std::optional)
> *literally* in terms of a header dependency on <variant>.
>
Vicente said the same thing.
I replied: "why not?"
I would also mention [1]
https://isocpp.org/blog/2017/07/what-should-the-iso-cpp-standards-committee-be-doing
which would strongly suggest this:
1. If you are adding a feature which uses 98% of an existing feature, then
the standard should *require *use of that existing feature.
2. If you don't require it, then you are either saying that the existing
feature has something wrong with it, or your new feature has something
wrong with it. Or you hate the C++ ecosystem. It's one of these three.
3. By requiring it you force existing features to be broken up into well
defined implementation layers. This is a very, very good thing which must
be encouraged to achieve [1].
But I appreciate that almost nobody on WG21 shares this viewpoint, and
historically the standard doesn't dictate implementation. I'm saying it's
time it began to (in terms of its own standard library).
Niall
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/ba560292-2b30-44ff-8a37-96c95c2abd24%40isocpp.org.
------=_Part_5928_174503977.1506987766023
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Also thank you for the detailed response. As just exp=
lained, that paper is now dustbinned due to other WG21 feedback, but in res=
ponse to the general points made:</div><div>=C2=A0<br></div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #=
ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div></div><div>If the user =
is actually inheriting from either std::error_code or std::exception_ptr, t=
hey are in a state of sin. Those types are <i>not</i> supposed to be classi=
cally polymorphic, and inheriting from them will only lead to slicing and b=
itter tears. Would anything of value be lost if you replaced "is_base_=
of" with "is_same", here?</div></div></blockquote><div><br><=
/div><div>Alas subclassing error code with additional payload happens frequ=
ently enough precisely because error code can't carry payload, and we o=
ften need it to. Indeed Outcome v1 supplied an error_code_extended which su=
bclassed error_code. You may be surprised to learn that the Boost peer revi=
ew liked that quite a lot indeed, and I will receive flak in the second pee=
r review for dropping it in v2.</div><div>=C2=A0</div><blockquote class=3D"=
gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc so=
lid;padding-left: 1ex;"><div dir=3D"ltr"><div><br></div><div>Dissimilarity =
#2 (implicit constructors) seems like a clear win for Expected. Implicit co=
nstruction (especially from integral types) is the root of all evil.</div><=
/div></blockquote><div><br></div><div>The Boost peer review went into this =
in unbelievable depth. And we came out on the other side with a set of cons=
traints which the consensus believed would prevent the problems which say s=
td::variant has.</div><div><br></div><div>So Outcome replicates std::varian=
t's constructor design, but it is far more constrained than std::varian=
t.</div><div><br></div><div>To test these constraints, I replaced v1 Outcom=
e with v2 in an existing large code base, plus wrote lots of new code using=
v2 Outcome to give it a thorough kicking. Precisely once did unexpected su=
rprise occur with the constraints given by the Boost peer review, and I hav=
e poked a single hole for that one use case which may or may not be felt to=
be acceptable in the second peer review.</div><div><br></div><div>I'm =
going to claim that implicit construction for this specific use case with t=
hose constraints is safe. And therefore Expected is being needlessly, and w=
astefully, over cautious.</div><div>=C2=A0</div><blockquote class=3D"gmail_=
quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pa=
dding-left: 1ex;"><div dir=3D"ltr"><div><br></div><div>Dissimilarity #5 say=
s "nor would it be appropriate for many choices of type E." This =
needs explanation/support. Otherwise it seems like just a QoI defect agains=
t Expected.</div></div></blockquote><div><br></div><div>Yeah Vicente raised=
that one too. The problem is we cannot inspect a type to see if it's m=
arked [[nodiscard]].</div><div>=C2=A0</div><blockquote class=3D"gmail_quote=
" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding=
-left: 1ex;"><div dir=3D"ltr"><div><br></div><div>Re narrow and wide observ=
ers: The general rule in my experience is that things-using-punctuation are=
narrow-contract and things-using-English-names are wide-contract. Thus wid=
e optional::value(), wide vector::at(), narrow optional::operator*(), narro=
w vector::operator[](). =C2=A0If Expected is breaking this rule, then yeah,=
that sucks.</div></div></blockquote><div><br></div><div>That rule needs to=
go die somewhere. In the Boost peer review, we eventually arrived at a new=
rule which was that all-narrow or all-wide with clearly distinct naming is=
the right path forwards. Mixed wide-narrow leads to broken badly written c=
ode which is non-obviously broken and badly written.</div><div>=C2=A0</div>=
<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bor=
der-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div><br></di=
v><div>Section 3.2 "De-variant Expected?" mildly confuses me. You=
keep saying that Expected<T,E> uses "variant storage" and =
that this is a bad thing for its ABI. But then dissimilarity #7 shows the i=
mplementation of Result<T,E> and I see a union there too! =C2=A0So, i=
f you're using the term "variant storage" to mean something d=
ifferent from "a union", then what do you mean by it? =C2=A0I'=
;ve implemented std::variant and Expected and I can tell you, (A), std::var=
iant is just a big union,</div></div></blockquote><div><br></div><div>A con=
forming std::variant does a ton load more than be just a big union. And a s=
trong never empty guaranteed variant storage like Expected provides means a=
ton load more again implementation code, much of which is complex for the =
compiler to instantiate i.e. lots of SFINAE and concept matching. You'v=
e got potential double buffering in there, you've got to preserve trivi=
ality as well, plus alignment requirements must be met.</div><div><br></div=
><div>I too have implemented this for v1 Outcome. It is highly non-trivial,=
either for the programmer or the compiler.</div><div>=C2=A0</div><blockquo=
te class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left:=
1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div> and (B), nobody =
should be implementing Expected (or std::optional)=C2=A0<i>literally</i> in=
terms of a header dependency on <variant>.</div></div></blockquote><=
div><br></div><div>Vicente said the same thing.</div><div><br></div><div>I =
replied: "why not?"</div><div><br></div><div>I would also mention=
[1] https://isocpp.org/blog/2017/07/what-should-the-iso-cpp-standards-comm=
ittee-be-doing which would strongly suggest this:</div><div><br></div><div>=
1. If you are adding a feature which uses 98% of an existing feature, then =
the standard should <b>require </b>use of that existing feature.</div><div>=
<br></div><div>2. If you don't require it, then you are either saying t=
hat the existing feature has something wrong with it, or your new feature h=
as something wrong with it. Or you hate the C++ ecosystem. It's one of =
these three.</div><div><br></div><div>3. By requiring it you force existing=
features to be broken up into well defined implementation layers. This is =
a very, very good thing which must be encouraged to achieve [1].</div><div>=
=C2=A0</div><div>But I appreciate that almost nobody on WG21 shares this vi=
ewpoint, and historically the standard doesn't dictate implementation. =
I'm saying it's time it began to (in terms of its own standard libr=
ary).</div><div><br></div><div>Niall</div><div>=C2=A0</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/ba560292-2b30-44ff-8a37-96c95c2abd24%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/ba560292-2b30-44ff-8a37-96c95c2abd24=
%40isocpp.org</a>.<br />
------=_Part_5928_174503977.1506987766023--
------=_Part_5927_422531282.1506987766023--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Mon, 2 Oct 2017 19:43:22 -0700 (PDT)
Raw View
------=_Part_5929_1988271860.1506998602831
Content-Type: multipart/alternative;
boundary="----=_Part_5930_450684669.1506998602871"
------=_Part_5930_450684669.1506998602871
Content-Type: text/plain; charset="UTF-8"
On Monday, October 2, 2017 at 7:42:46 PM UTC-4, Niall Douglas wrote:
>
> Also thank you for the detailed response. As just explained, that paper is
> now dustbinned due to other WG21 feedback, but in response to the general
> points made:
>
>
>> If the user is actually inheriting from either std::error_code or
>> std::exception_ptr, they are in a state of sin. Those types are *not*
>> supposed to be classically polymorphic, and inheriting from them will only
>> lead to slicing and bitter tears. Would anything of value be lost if you
>> replaced "is_base_of" with "is_same", here?
>>
>
> Alas subclassing error code with additional payload happens frequently
> enough precisely because error code can't carry payload, and we often need
> it to.
>
That doesn't justify *deriving* from it. A member would be just as
effective, as would providing implicit conversion to `error_code` if that's
the sort of interface someone wants to use.
And deriving from *exception_ptr* is even more wrong.
Yet another reason to prefer `expected`: it doesn't encourage you to use
poor interfaces.
Indeed Outcome v1 supplied an error_code_extended which subclassed
> error_code. You may be surprised to learn that the Boost peer review liked
> that quite a lot indeed, and I will receive flak in the second peer review
> for dropping it in v2.
>
>
>> Re narrow and wide observers: The general rule in my experience is that
>> things-using-punctuation are narrow-contract and things-using-English-names
>> are wide-contract. Thus wide optional::value(), wide vector::at(), narrow
>> optional::operator*(), narrow vector::operator[](). If Expected is
>> breaking this rule, then yeah, that sucks.
>>
>
> That rule needs to go die somewhere.
>
.... why? I hadn't even realized that this rule exists, and yet as I look at
it, it makes perfect sense. The short, simple, C-like form is the form that
doesn't throw. The longer, more verbose form is the form that throws. It's
a simple and obvious rule, which C++ programmers already have to know,
since the many C constructs that already exist abide by it. If you take a
naked pointer and use `*` on it, you don't get an exception if its a NULL
pointer. If you use `[]` on it, you don't get bounds checking. C++ objects
that mimic such types should work the same way.
Also, operators are more likely to be found in complex expressions than
simple function calls. And throwing exceptions from within complex
expressions can be dangerous, due to indeterminate order of evaluation. So
even there it makes sense.
This is a good rule, and `expected`'s interface ought to abide by it (where
reasonable).
In the Boost peer review, we eventually arrived at a new rule which was
> that all-narrow or all-wide with clearly distinct naming is the right path
> forwards. Mixed wide-narrow leads to broken badly written code which is
> non-obviously broken and badly written.
>
It also leads to code where you only check for errors *once*, rather than
every time you access something.
Section 3.2 "De-variant Expected?" mildly confuses me. You keep saying that
>> Expected<T,E> uses "variant storage" and that this is a bad thing for its
>> ABI. But then dissimilarity #7 shows the implementation of Result<T,E> and
>> I see a union there too! So, if you're using the term "variant storage" to
>> mean something different from "a union", then what do you mean by it? I've
>> implemented std::variant and Expected and I can tell you, (A), std::variant
>> is just a big union,
>>
>
> A conforming std::variant does a ton load more than be just a big union.
>
He was talking about at the ABI level. His point is that the ABI for a
Result<T, E> and the ABI for Expected<T, E> is the same: they both store a
union and they both store a value which tells which union member is active.
And a `variant<T, E>` also stores a union and a value that tells which
union member is active.
`Result` uses "variant storage" just as much as `Expected`.
And a strong never empty guaranteed variant storage like Expected provides
> means a ton load more again implementation code, much of which is complex
> for the compiler to instantiate i.e. lots of SFINAE and concept matching.
> You've got potential double buffering in there,
>
P0110 shows that you don't have to double-buffer to get the strong never
empty guarantee. The proposal already requires, if you do
assignment/emplacement, that `E` is nothrow move constructible. That allows
you to avoid double buffering.
That's not to say that the code isn't complex. But there is no potential
for double buffering.
you've got to preserve triviality as well, plus alignment requirements must
> be met.
>
Are you saying that Result<T, E> doesn't preserve triviality and alignment?
I too have implemented this for v1 Outcome. It is highly non-trivial,
> either for the programmer or the compiler.
>
> and (B), nobody should be implementing Expected (or std::optional)
>> *literally* in terms of a header dependency on <variant>.
>>
>
> Vicente said the same thing.
>
> I replied: "why not?"
>
Because that's not how specifications work. That's really the only answer I
can give you.
I would also mention [1]
> https://isocpp.org/blog/2017/07/what-should-the-iso-cpp-standards-committee-be-doing
> which would strongly suggest this:
>
I see nothing in that paper which "strongly suggests" anything of the sort.
1. If you are adding a feature which uses 98% of an existing feature, then
> the standard should *require *use of that existing feature.
>
> 2. If you don't require it, then you are either saying that the existing
> feature has something wrong with it, or your new feature has something
> wrong with it. Or you hate the C++ ecosystem. It's one of these three.
>
Or it's because that's not how specifications work. Because *that's not how
specifications work*.
Specifications define visible behavior. The programmer writes something
against a specification. Implementations provide a translation layer
between the user's writing and the actual machine, in accord with the
behavior defined by the specification. And thus, the user can see the
visible behavior, based on their writing against the specification.
Whether `optional` is implemented in terms of `variant` is *not* something
which constitutes "visible behavior". As such, it is not the right of the
standard to require such a thing.
3. By requiring it you force existing features to be broken up into well
> defined implementation layers. This is a very, very good thing which must
> be encouraged to achieve [1].
>
Nonsense. None of the ideals outlined in that paper explicitly or
implicitly require having "well defined implementation layers". The
stability goals can be achieved by the implementation, not by standard fiat.
But I appreciate that almost nobody on WG21 shares this viewpoint, and
> historically the standard doesn't dictate implementation. I'm saying it's
> time it began to (in terms of its own standard library).
>
The moment the standard starts requiring a specific implementation is the
moment it stops being a standard and starts being an implementation of some
standard. The committee doesn't "historically" dictate implementations
because *it's not their job*.
>
> Niall
>
>
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/f90d8cd7-d12c-44c4-8f4f-78ebe10ab344%40isocpp.org.
------=_Part_5930_450684669.1506998602871
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Monday, October 2, 2017 at 7:42:46 PM UTC-4, Niall Doug=
las wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left:=
0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><di=
v>Also thank you for the detailed response. As just explained, that paper i=
s now dustbinned due to other WG21 feedback, but in response to the general=
points made:</div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:=
1ex"><div dir=3D"ltr"><div></div><div>If the user is actually inheriting fr=
om either std::error_code or std::exception_ptr, they are in a state of sin=
.. Those types are <i>not</i> supposed to be classically polymorphic, and in=
heriting from them will only lead to slicing and bitter tears. Would anythi=
ng of value be lost if you replaced "is_base_of" with "is_sa=
me", here?</div></div></blockquote><div><br></div><div>Alas subclassin=
g error code with additional payload happens frequently enough precisely be=
cause error code can't carry payload, and we often need it to.</div></d=
iv></blockquote><div><br></div><div>That doesn't justify <i>deriving</i=
> from it. A member would be just as effective, as would providing implicit=
conversion to `error_code` if that's the sort of interface someone wan=
ts to use.</div><div><br></div><div></div><div>And deriving from <i>excepti=
on_ptr</i> is even more wrong.</div><div><br></div><div>Yet another reason =
to prefer `expected`: it doesn't encourage you to use poor interfaces.<=
/div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin: 0;ma=
rgin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr"><div>Indeed Outcome v1 supplied an error_code_extended which subcl=
assed error_code. You may be surprised to learn that the Boost peer review =
liked that quite a lot indeed, and I will receive flak in the second peer r=
eview for dropping it in v2.</div><div>=C2=A0</div><div></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div dir=3D"ltr"><div></div><div>Re narrow and w=
ide observers: The general rule in my experience is that things-using-punct=
uation are narrow-contract and things-using-English-names are wide-contract=
.. Thus wide optional::value(), wide vector::at(), narrow optional::operator=
*(), narrow vector::operator[](). =C2=A0If Expected is breaking this rule, =
then yeah, that sucks.</div></div></blockquote><div><br></div><div>That rul=
e needs to go die somewhere.</div></div></blockquote><div><br></div><div>..=
.. why? I hadn't even realized that this rule exists, and yet as I look =
at it, it makes perfect sense. The short, simple, C-like form is the form t=
hat doesn't throw. The longer, more verbose form is the form that throw=
s. It's a simple and obvious rule, which C++ programmers already have t=
o know, since the many C constructs that already exist abide by it. If you =
take a naked pointer and use `*` on it, you don't get an exception if i=
ts a NULL pointer. If you use `[]` on it, you don't get bounds checking=
.. C++ objects that mimic such types should work the same way.<br></div><div=
><br></div><div>Also, operators are more likely to be found in complex expr=
essions than simple function calls. And throwing exceptions from within com=
plex expressions can be dangerous, due to indeterminate order of evaluation=
.. So even there it makes sense.</div><div><br></div><div>This is a good rul=
e, and `expected`'s interface ought to abide by it (where reasonable).<=
br></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin: =
0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div d=
ir=3D"ltr"><div>In the Boost peer review, we eventually arrived at a new ru=
le which was that all-narrow or all-wide with clearly distinct naming is th=
e right path forwards. Mixed wide-narrow leads to broken badly written code=
which is non-obviously broken and badly written.</div></div></blockquote><=
div><br></div><div>It also leads to code where you only check for errors <i=
>once</i>, rather than every time you access something.<br></div><div><br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8e=
x;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div></div><div=
>Section 3.2 "De-variant Expected?" mildly confuses me. You keep =
saying that Expected<T,E> uses "variant storage" and that t=
his is a bad thing for its ABI. But then dissimilarity #7 shows the impleme=
ntation of Result<T,E> and I see a union there too! =C2=A0So, if you&=
#39;re using the term "variant storage" to mean something differe=
nt from "a union", then what do you mean by it? =C2=A0I've im=
plemented std::variant and Expected and I can tell you, (A), std::variant i=
s just a big union,</div></div></blockquote><div><br></div><div>A conformin=
g std::variant does a ton load more than be just a big union.</div></div></=
blockquote><div><br></div><div>He was talking about at the ABI level. His p=
oint is that the ABI for a Result<T, E> and the ABI for Expected<T=
, E> is the same: they both store a union and they both store a value wh=
ich tells which union member is active. And a `variant<T, E>` also st=
ores a union and a value that tells which union member is active.</div><div=
><br></div><div>`Result` uses "variant storage" just as much as `=
Expected`.<br></div><div><br></div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"><div dir=3D"ltr"><div> And a strong never empty guaranteed variant st=
orage like Expected provides means a ton load more again implementation cod=
e, much of which is complex for the compiler to instantiate i.e. lots of SF=
INAE and concept matching. You've got potential double buffering in the=
re,</div></div></blockquote><div><br></div><div>P0110 shows that you don=
9;t have to double-buffer to get the strong never empty guarantee. The prop=
osal already requires, if you do assignment/emplacement, that `E` is nothro=
w move constructible. That allows you to avoid double buffering.</div><div>=
<br></div><div>That's not to say that the code isn't complex. But t=
here is no potential for double buffering.<br></div><div><br></div><blockqu=
ote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left=
: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div>you've got t=
o preserve triviality as well, plus alignment requirements must be met.</di=
v></div></blockquote><div><br></div><div>Are you saying that Result<T, E=
> doesn't preserve triviality and alignment?<br></div><div><br></div=
><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bo=
rder-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div></div><=
div>I too have implemented this for v1 Outcome. It is highly non-trivial, e=
ither for the programmer or the compiler.</div><div><br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #c=
cc solid;padding-left:1ex"><div dir=3D"ltr"><div> and (B), nobody should be=
implementing Expected (or std::optional)=C2=A0<i>literally</i> in terms of=
a header dependency on <variant>.</div></div></blockquote><div><br><=
/div><div>Vicente said the same thing.</div><div><br></div><div>I replied: =
"why not?"</div></div></blockquote><div><br></div><div>Because th=
at's not how specifications work. That's really the only answer I c=
an give you.<br></div><div><br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left:=
1ex;"><div dir=3D"ltr"><div></div><div>I would also mention [1] <a href=3D=
"https://isocpp.org/blog/2017/07/what-should-the-iso-cpp-standards-committe=
e-be-doing" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&=
#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fisocpp.org%2Fblog%2F2017%=
2F07%2Fwhat-should-the-iso-cpp-standards-committee-be-doing\x26sa\x3dD\x26s=
ntz\x3d1\x26usg\x3dAFQjCNHzSn_71zZcXBJdL_VhknxvdzA_jw';return true;" on=
click=3D"this.href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fiso=
cpp.org%2Fblog%2F2017%2F07%2Fwhat-should-the-iso-cpp-standards-committee-be=
-doing\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHzSn_71zZcXBJdL_VhknxvdzA_jw=
';return true;">https://isocpp.org/blog/2017/<wbr>07/what-should-the-is=
o-cpp-<wbr>standards-committee-be-doing</a> which would strongly suggest th=
is:</div></div></blockquote><div><br></div><div>I see nothing in that paper=
which "strongly suggests" anything of the sort.<br></div><div><b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0=
..8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div>=
</div><div>1. If you are adding a feature which uses 98% of an existing fea=
ture, then the standard should <b>require </b>use of that existing feature.=
</div><div><br></div><div>2. If you don't require it, then you are eith=
er saying that the existing feature has something wrong with it, or your ne=
w feature has something wrong with it. Or you hate the C++ ecosystem. It=
9;s one of these three.</div></div></blockquote><div><br></div><div>Or it&#=
39;s because that's not how specifications work. Because <i>that's =
not how specifications work</i>.</div><div><br></div><div>Specifications de=
fine visible behavior. The programmer writes something against a specificat=
ion. Implementations provide a translation layer between the user's wri=
ting and the actual machine, in accord with the behavior defined by the spe=
cification. And thus, the user can see the visible behavior, based on their=
writing against the specification.<br></div><div><br></div><div>Whether `o=
ptional` is implemented in terms of `variant` is <i>not</i> something which=
constitutes "visible behavior". As such, it is not the right of =
the standard to require such a thing.<br></div><div><br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px=
#ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div></div><div>3. By requ=
iring it you force existing features to be broken up into well defined impl=
ementation layers. This is a very, very good thing which must be encouraged=
to achieve [1].</div></div></blockquote><div><br></div><div>Nonsense. None=
of the ideals outlined in that paper explicitly or implicitly require havi=
ng "well defined implementation layers". The stability goals can =
be achieved by the implementation, not by standard fiat.<br></div><div><br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8=
ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div></=
div><div>But I appreciate that almost nobody on WG21 shares this viewpoint,=
and historically the standard doesn't dictate implementation. I'm =
saying it's time it began to (in terms of its own standard library).</d=
iv></div></blockquote><div><br></div><div>The moment the standard starts re=
quiring a specific implementation is the moment it stops being a standard a=
nd starts being an implementation of some standard. The committee doesn'=
;t "historically" dictate implementations because <i>it's not=
their job</i>.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" sty=
le=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left=
: 1ex;"><div dir=3D"ltr"><div><br></div><div>Niall</div><div>=C2=A0</div></=
div></blockquote><style>HTML {margin: 0px !important; border: medium none !=
important;}
..dragdrop-handle {cursor: move; -moz-user-select: none;}
..dragdrop-draggable { }
..dragdrop-dragging { }
..dragdrop-positioner {border: 1px dashed rgb(30, 144, 255); margin: 0px !im=
portant; z-index: 100;}
..dragdrop-flow-panel-positioner {color: rgb(30, 144, 255); display: inline;=
text-align: center; vertical-align: middle;}
..dragdrop-proxy {background-color: rgb(119, 170, 255);}
..dragdrop-selected ,.dragdrop-dragging ,.dragdrop-proxy {opacity: 0.3;}
..dragdrop-movable-panel {z-index: 200; margin: 0px !important; border: medi=
um none !important;}
..gb_5a {display: none !important;}
..gb_6a {visibility: hidden;}
#gbsfw {min-width: 400px; overflow: visible;}
..gb_Xb ,#gbsfw.gb_g {display: block; outline: medium none;}
#gbsfw.gb_pa iframe {display: none;}
..gb_Zb {padding: 118px 0px; text-align: center;}
..gb_0b {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/gb/images/a/f5c=
dd88b65.png") no-repeat scroll center 0px; color: rgb(170, 170, 170); font-=
size: 13px; line-height: 20px; padding-top: 76px;}
..gb_0b a {color: rgb(66, 133, 244); text-decoration: none;}
..gb_Zc {display: inline-block; padding: 0px 0px 0px 15px; vertical-align: m=
iddle;}
..gb_Zc:first-child ,#gbsfw:first-child + .gb_Zc {padding-left: 0px;}
..gb_Fc {position: relative;}
..gb_b {display: inline-block; outline: medium none; vertical-align: middle;=
border-radius: 2px; box-sizing: border-box; height: 30px; width: 30px; col=
or: rgb(0, 0, 0); cursor: pointer; text-decoration: none;}
#gb#gb a.gb_b {color: rgb(0, 0, 0); cursor: pointer; text-decoration: none;=
}
..gb_lb {border-color: transparent transparent rgb(255, 255, 255); border-st=
yle: dashed dashed solid; border-width: 0px 8.5px 8.5px; display: none; pos=
ition: absolute; left: 6.5px; top: 37px; z-index: 1; height: 0px; width: 0p=
x; animation: 0.2s ease 0s normal none 1 running gb__a;}
..gb_mb {border-color: transparent transparent rgba(0, 0, 0, 0.2); border-st=
yle: dashed dashed solid; border-width: 0px 8.5px 8.5px; display: none; pos=
ition: absolute; left: 6.5px; z-index: 1; height: 0px; width: 0px; animatio=
n: 0.2s ease 0s normal none 1 running gb__a; top: 36px;}
..gb_fa {background: rgb(255, 255, 255) none repeat scroll 0% 0%; border: 1p=
x solid rgba(0, 0, 0, 0.2); color: rgb(0, 0, 0); box-shadow: 0px 2px 10px r=
gba(0, 0, 0, 0.2); display: none; outline: medium none; overflow: hidden; p=
osition: absolute; right: 0px; top: 44px; animation: 0.2s ease 0s normal no=
ne 1 running gb__a; border-radius: 2px; -moz-user-select: text;}
..gb_Zc.gb_g .gb_lb ,.gb_Zc.gb_g .gb_mb ,.gb_Zc.gb_g .gb_fa ,.gb_g.gb_fa {di=
splay: block;}
..gb_Zc.gb_g.gb_kf .gb_lb ,.gb_Zc.gb_g.gb_kf .gb_mb {display: none;}
..gb_lf {position: absolute; right: 0px; top: 44px; z-index: -1;}
..gb_9a .gb_lb ,.gb_9a .gb_mb ,.gb_9a .gb_fa {margin-top: -10px;}
..gb_Ib .gb_mb {border-width: 1px 0px 0px 1px; border-style: solid none none=
solid; border-color: rgba(0, 0, 0, 0.2) currentcolor currentcolor rgba(0, =
0, 0, 0.2); -moz-border-top-colors: none; -moz-border-right-colors: none; -=
moz-border-bottom-colors: none; -moz-border-left-colors: none; border-image=
: none; height: 14px; width: 14px; transform: rotate(45deg);}
..gb_Ib .gb_lb {border-width: 1px 0px 0px 1px; border-style: solid none none=
solid; -moz-border-top-colors: none; -moz-border-right-colors: none; -moz-=
border-bottom-colors: none; -moz-border-left-colors: none; border-image: no=
ne; height: 14px; width: 14px; transform: rotate(45deg); border-color: rgb(=
255, 255, 255); background: rgb(255, 255, 255) none repeat scroll 0% 0%;}
..gb_da .gb_b {background-position: -35px -276px; opacity: 0.55;}
..gb_ea .gb_da .gb_b {background-position: -35px -276px;}
..gb_X .gb_da .gb_b {background-position: -35px -2010px; opacity: 1;}
..gb_fa.gb_ga {min-height: 196px; overflow-y: auto; width: 320px;}
..gb_ha {transition: height 0.2s ease-in-out 0s;}
..gb_ia {background: rgb(255, 255, 255) none repeat scroll 0% 0%; margin: 0p=
x; min-height: 100px; padding: 28px 27px 28px 28px; text-align: left; white=
-space: normal; width: 265px;}
..gb_ja {background: rgb(245, 245, 245) none repeat scroll 0% 0%; cursor: po=
inter; height: 40px; overflow: hidden;}
..gb_ka {position: relative;}
..gb_ja {display: block; line-height: 40px; text-align: center; width: 320px=
;}
..gb_ka {display: block; line-height: 40px; text-align: center;}
..gb_ka.gb_la {line-height: 0;}
..gb_ja ,.gb_ja:visited ,.gb_ja:active ,.gb_ka ,.gb_ka:visited {color: rgb(1=
15, 115, 115); text-decoration: none;}
..gb_ka:active {color: rgb(115, 115, 115);}
#gb a.gb_ja ,#gb a.gb_ja:visited ,#gb a.gb_ja:active ,#gb a.gb_ka ,#gb a.gb=
_ka:visited {color: rgb(115, 115, 115); text-decoration: none;}
#gb a.gb_ka:active {color: rgb(115, 115, 115);}
..gb_ka ,.gb_ia {display: none;}
..gb_ba ,.gb_ba + .gb_ka ,.gb_ma .gb_ka ,.gb_ma .gb_ia {display: block;}
..gb_ka:hover ,.gb_ka:active ,#gb a.gb_ka:hover ,#gb a.gb_ka:active {text-de=
coration: underline;}
..gb_ka {border-bottom: 1px solid rgb(235, 235, 235); left: 28px; width: 264=
px;}
..gb_ma .gb_ja {display: none;}
..gb_ka:last-child {border-bottom-width: 0px;}
..gb_na .gb_O {display: initial;}
..gb_na.gb_oa {height: 100px; text-align: center;}
..gb_na.gb_oa img {padding: 34px 0px; height: 32px; width: 32px;}
..gb_na .gb_2 {background-image: url("//ssl.gstatic.com/gb/images/v1_e3444bc=
5.png"); background-size: 92px 2731px; background-position: 0px -1725px;}
..gb_na .gb_2 + img {border: 0px none; margin: 8px; height: 48px; width: 48p=
x;}
..gb_na div.gb_pa {background: rgb(255, 255, 170) none repeat scroll 0% 0%; =
border-radius: 5px; padding: 5px; text-align: center;}
..gb_na.gb_qa ,.gb_na.gb_ra {padding-bottom: 0px;}
..gb_na.gb_sa ,.gb_na.gb_ra {padding-top: 0px;}
..gb_na.gb_ra a ,.gb_na.gb_sa a {top: 0px;}
..gb_ta .gb_ja {margin-top: 0px; position: static;}
..gb_ua {display: inline-block;}
..gb_va {margin: -12px 28px 28px; position: relative; width: 264px; border-r=
adius: 2px; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1), 0px 0px 1px rgba(0,=
0, 0, 0.1);}
..gb_4 {background-image: url("//ssl.gstatic.com/gb/images/v1_e3444bc5.png")=
; background-size: 92px 2731px; display: inline-block; margin: 8px; vertica=
l-align: middle; height: 64px; width: 64px;}
..gb_wa {color: rgb(38, 38, 38); display: inline-block; font: 13px/18px Aria=
l,sans-serif; margin-right: 80px; padding: 10px 10px 10px 0px; vertical-ali=
gn: middle; white-space: normal;}
..gb_xa {font: 16px/24px Arial,sans-serif;}
..gb_ya ,#gb#gb .gb_ya {color: rgb(66, 127, 237); text-decoration: none;}
..gb_ya:hover ,#gb#gb .gb_ya:hover {text-decoration: underline;}
..gb_za .gb_ia {position: relative;}
..gb_za .gb_O {position: absolute; top: 28px; left: 28px;}
..gb_ja.gb_Aa {display: none; height: 0px;}
..gb_N .gb_da .gb_b::before ,.gb_N.gb_ea .gb_da .gb_b::before {left: -35px; =
top: -276px;}
..gb_N.gb_X .gb_da .gb_b::before {left: -35px; top: -2010px;}
..gb_Ib .gb_ja {position: relative;}
..gb_da .gb_b:hover ,.gb_da .gb_b:focus {opacity: 0.85;}
..gb_X .gb_da .gb_b:hover ,.gb_X .gb_da .gb_b:focus {opacity: 1;}
#gb#gb a.gb_O {color: rgb(64, 64, 64); text-decoration: none;}
#gb#gb a.gb_P ,#gb#gb span.gb_P {text-decoration: none;}
#gb#gb a.gb_P ,#gb#gb span.gb_P {color: rgb(0, 0, 0);}
..gb_P {opacity: 0.75;}
#gb#gb a.gb_P:hover ,#gb#gb a.gb_P:focus {opacity: 0.85; text-decoration: u=
nderline;}
..gb_Q.gb_R {display: none; padding-left: 15px; vertical-align: middle;}
..gb_Q.gb_R:first-child {padding-left: 0px;}
..gb_S.gb_R {display: inline-block;}
..gb_Q span {opacity: 0.55; -moz-user-select: text;}
..gb_T .gb_S.gb_R {flex: 0 1 auto; display: flex;}
..gb_U .gb_S.gb_R {display: none;}
..gb_Q .gb_P {display: inline-block; line-height: 24px; outline: medium none=
; vertical-align: middle;}
..gb_S .gb_P {display: none;}
..gb_V .gb_S .gb_P {min-width: 0px;}
..gb_W .gb_S .gb_P {width: 0px !important;}
#gb#gb.gb_X a.gb_P ,#gb#gb.gb_X span.gb_P ,#gb#gb .gb_X a.gb_P ,#gb#gb .gb_=
X span.gb_P {color: rgb(255, 255, 255);}
#gb#gb.gb_X span.gb_P ,#gb#gb .gb_X span.gb_P {opacity: 0.7;}
..gb_M.gb_M {background-size: 64px 64px;}
#gb2 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/3a1e625196=
..png");}
..gb_N #gb2 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/3a1e6=
25196.png");}
#gb22 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/3daf4c1f8=
8.png");}
..gb_N #gb22 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/3daf=
4c1f88.png");}
#gb45 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/f420d06f6=
6.png");}
..gb_N #gb45 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/f420=
d06f66.png");}
#gb72 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/78b3d46de=
1.png");}
..gb_N #gb72 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/78b3=
d46de1.png");}
#gb117 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/142da275=
78.png");}
..gb_N #gb117 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/142=
da27578.png");}
#gb136 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/911e3628=
e6.png");}
..gb_N #gb136 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/911=
e3628e6.png");}
#gb166 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/41679a9e=
c5.png");}
..gb_N #gb166 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/416=
79a9ec5.png");}
#gb171 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/4244245d=
7e.png");}
..gb_N #gb171 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/424=
4245d7e.png");}
#gb177 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/4653513b=
7d.png");}
..gb_N #gb177 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/465=
3513b7d.png");}
#gb206 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/ad330d84=
59.png");}
..gb_N #gb206 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/ad3=
30d8459.png");}
#gb207 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/2c21041e=
16.png");}
..gb_N #gb207 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/2c2=
1041e16.png");}
#gb211 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/c03dda0b=
34.png");}
..gb_N #gb211 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/c03=
dda0b34.png");}
#gb217 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/71060be5=
b3.png");}
..gb_N #gb217 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/710=
60be5b3.png");}
#gb228 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/74aa55e0=
c2.png");}
..gb_N #gb228 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/74a=
a55e0c2.png");}
#gb249 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/afa40f6e=
42.png");}
..gb_N #gb249 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/afa=
40f6e42.png");}
#gb260 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/ea554714=
e7.png");}
..gb_N #gb260 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/ea5=
54714e7.png");}
#gb261 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/0b26f6f8=
e4.png");}
..gb_N #gb261 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/0b2=
6f6f8e4.png");}
#gb108 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/dfbeb247=
85.png");}
..gb_N #gb108 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/dfb=
eb24785.png");}
#gb60 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/85bb99a34=
1.png");}
..gb_N #gb60 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/85bb=
99a341.png");}
#gb175 .gb_M {background-image: url("//ssl.gstatic.com/gb/images/a/eacd033c=
28.png");}
..gb_N #gb175 .gb_M::before {content: url("//ssl.gstatic.com/gb/images/a/eac=
d033c28.png");}
..gb_Z {padding: 1px; display: inline-block; vertical-align: top; color: bla=
ck; z-index: 999; height: 98px; width: 86px;}
..gb_Z a {text-decoration: none;}
..gb_Z[aria-grabbed=3D"true"] {visibility: hidden;}
..gb_Z:hover {z-index: 1001;}
..gb_Z:hover a {border: 1px solid rgb(229, 229, 229); border-radius: 2px; ma=
rgin: 7px 1px;}
..gb_Z.gb_0 a {border: 1px solid rgb(229, 229, 229); box-shadow: 0px 1px 2px=
rgba(0, 0, 0, 0.1); background: rgb(255, 255, 255) none repeat scroll 0% 0=
%; cursor: grabbing; margin: -1px; visibility: visible; z-index: 1001;}
..gb_1 {opacity: 0.5;}
..gb_Z.gb_0 a {color: rgb(64, 64, 64) !important; cursor: grabbing; font: 13=
px/27px Arial,sans-serif; text-decoration: none !important;}
..gb_O {color: rgb(64, 64, 64); display: inline-block; font-size: 13px; marg=
in: 8px 2px; text-align: center; outline: medium none;}
..gb_O .gb_2 ,.gb_O .gb_M {display: inline-block; vertical-align: top; heigh=
t: 64px; width: 64px;}
..gb_3 {display: block; line-height: 20px; overflow: hidden; white-space: no=
wrap; width: 84px; text-overflow: ellipsis;}
..gb_Z:hover .gb_O {z-index: 1;}
..gb_Z:hover .gb_3 {background: rgba(255, 255, 255, 0.9) none repeat scroll =
0% 0%; white-space: normal; overflow-wrap: break-word;}
..gb_O .gb_2 {background-image: url("//ssl.gstatic.com/gb/images/v1_e3444bc5=
..png"); background-size: 92px 2731px;}
..gb_N .gb_O .gb_2 ,.gb_N .gb_4.gb_2 {background-image: none; overflow: hidd=
en; position: relative;}
..gb_N .gb_O .gb_2::before ,.gb_N .gb_4.gb_2::before {content: url("//ssl.gs=
tatic.com/gb/images/v1_e3444bc5.png"); position: absolute;}
..gb_N .gb_M {background-image: none !important; position: relative;}
..gb_N .gb_M::before {left: 0px; position: absolute; top: 0px;}
..gb_5 .gb_O:focus ,#gb#gb .gb_5 a.gb_O:focus {text-decoration: underline;}
..gb_Z.gb_6[aria-grabbed=3D"true"] {visibility: visible;}
..gb_7 ,.gb_8 {position: relative; top: 27px; visibility: hidden;}
..gb_9 ,.gb_aa {left: 37px; visibility: hidden;}
..gb_7 {float: left; width: 0px; height: 0px; border-top: 5px solid transpar=
ent; border-bottom: 5px solid transparent; border-right: 5px solid rgb(66, =
115, 219);}
..gb_8 {float: right; width: 0px; height: 0px; border-top: 5px solid transpa=
rent; border-bottom: 5px solid transparent; border-left: 5px solid rgb(66, =
115, 219);}
..gb_9 {position: absolute; top: 0px; width: 0px; height: 0px; border-left: =
5px solid transparent; border-right: 5px solid transparent; border-bottom: =
5px solid rgb(66, 115, 219);}
..gb_aa {position: absolute; top: 59px; width: 0px; height: 0px; border-left=
: 5px solid transparent; border-right: 5px solid transparent; border-top: 5=
px solid rgb(66, 115, 219);}
ul.gb_ba li.gb_6:not(:first-child) .gb_7 ,ul.gb_ba li.gb_6:not(:nth-child(-=
n+3)) .gb_9 ,ul.gb_ba li.gb_6 .gb_8 ,ul.gb_ba li.gb_6 .gb_aa ,ul.gb_ca li.g=
b_6 .gb_7 ,ul.gb_ca li.gb_6 .gb_9 ,ul.gb_ca li.gb_6:not(:last-child) .gb_8 =
,ul.gb_ca li.gb_6:not(:nth-last-child(-n+3)) .gb_aa {visibility: visible;}
a.gb_Ba {border: medium none; color: rgb(66, 133, 244); cursor: default; fo=
nt-weight: bold; outline: medium none; position: relative; text-align: cent=
er; text-decoration: none; text-transform: uppercase; white-space: nowrap; =
-moz-user-select: none;}
a.gb_Ba:hover::after ,a.gb_Ba:focus::after {background-color: rgba(0, 0, 0,=
0.12); content: ""; height: 100%; left: 0px; position: absolute; top: 0px;=
width: 100%;}
a.gb_Ba:hover ,a.gb_Ba:focus {text-decoration: none;}
a.gb_Ba:active {background-color: rgba(153, 153, 153, 0.4); text-decoration=
: none;}
a.gb_Ca {background-color: rgb(66, 133, 244); color: rgb(255, 255, 255);}
a.gb_Ca:active {background-color: rgb(0, 67, 178);}
..gb_Da {box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.16);}
..gb_Ba ,.gb_Ca ,.gb_Ea ,.gb_Fa {display: inline-block; line-height: 28px; p=
adding: 0px 12px; border-radius: 2px;}
..gb_Ea {background: rgb(248, 248, 248) none repeat scroll 0% 0%; border: 1p=
x solid rgb(198, 198, 198);}
..gb_Fa {background: rgb(248, 248, 248) none repeat scroll 0% 0%;}
..gb_Ea ,#gb a.gb_Ea.gb_Ea ,.gb_Fa {color: rgb(102, 102, 102); cursor: defau=
lt; text-decoration: none;}
#gb a.gb_Fa.gb_Fa {cursor: default; text-decoration: none;}
..gb_Fa {border: 1px solid rgb(66, 133, 244); font-weight: bold; outline: me=
dium none; background: rgba(0, 0, 0, 0) -moz-linear-gradient(center top , r=
gb(67, 135, 253), rgb(70, 131, 234)) repeat scroll 0% 0%;}
#gb a.gb_Fa.gb_Fa {color: rgb(255, 255, 255);}
..gb_Fa:hover {box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.15);}
..gb_Fa:active {box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.15) inset; backgroun=
d: rgba(0, 0, 0, 0) -moz-linear-gradient(center top , rgb(60, 122, 228), rg=
b(63, 118, 211)) repeat scroll 0% 0%;}
..gb_mf {display: inline-block; line-height: normal; position: relative; z-i=
ndex: 987;}
..gb_7a {background-size: 32px 32px; border-radius: 50%; display: block; mar=
gin: -1px; overflow: hidden; position: relative; height: 32px; width: 32px;=
z-index: 0;}
..gb_7a:hover ,.gb_7a:focus {box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.15);}
..gb_7a:active {box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.15) inset;}
..gb_7a:active::after {background: rgba(0, 0, 0, 0.1) none repeat scroll 0% =
0%; border-radius: 50%; content: ""; display: block; height: 100%;}
..gb_8a {cursor: pointer; line-height: 30px; min-width: 30px; opacity: 0.75;=
overflow: hidden; vertical-align: middle; text-overflow: ellipsis;}
..gb_b.gb_8a {width: auto;}
..gb_8a:hover ,.gb_8a:focus {opacity: 0.85;}
..gb_9a .gb_8a ,.gb_9a .gb_ab {line-height: 26px;}
#gb#gb.gb_9a a.gb_8a ,.gb_9a .gb_ab {font-size: 11px; height: auto;}
..gb_bb {border-top: 4px solid rgb(0, 0, 0); border-left: 4px dashed transpa=
rent; border-right: 4px dashed transparent; display: inline-block; margin-l=
eft: 6px; opacity: 0.75; vertical-align: middle;}
..gb_cb:hover .gb_bb {opacity: 0.85;}
..gb_X .gb_8a ,.gb_X .gb_bb {opacity: 1;}
#gb#gb.gb_X.gb_X a.gb_8a ,#gb#gb .gb_X.gb_X a.gb_8a {color: rgb(255, 255, 2=
55);}
..gb_X.gb_X .gb_bb {border-top-color: rgb(255, 255, 255); opacity: 1;}
..gb_ea .gb_7a:hover ,.gb_X .gb_7a:hover ,.gb_ea .gb_7a:focus ,.gb_X .gb_7a:=
focus {box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.15), 0px 1px 2px rgba(0, 0, =
0, 0.2);}
..gb_db .gb_eb ,.gb_fb .gb_eb {position: absolute; right: 1px;}
..gb_eb.gb_R ,.gb_gb.gb_R ,.gb_cb.gb_R {flex: 0 1 auto;}
..gb_hb.gb_W .gb_8a {width: 30px !important;}
..gb_ib.gb_6a {display: none;}
..gb_jb.gb_5a {display: none;}
..gb_jb {background-color: rgb(204, 204, 204); height: 3px; overflow: hidden=
;}
..gb_kb {background-color: rgb(244, 180, 0); height: 100%; width: 50%; anima=
tion: 1.5s linear 0s normal none infinite running progressmove;}
..gb_8a ~ .gb_lb ,.gb_8a ~ .gb_mb {left: auto; right: 6.5px;}
..gb_nb {outline: medium none;}
..gb_ob ,#gb a.gb_ob.gb_ob ,.gb_pb a ,#gb .gb_pb.gb_pb a {color: rgb(51, 102=
, 204); text-decoration: none;}
..gb_ob:active ,#gb a.gb_ob:active ,.gb_ob:hover ,#gb a.gb_ob:hover ,.gb_pb =
a:active ,#gb .gb_pb a:active ,.gb_pb a:hover ,#gb .gb_pb a:hover {text-dec=
oration: underline;}
..gb_qb {margin: 20px;}
..gb_rb ,.gb_sb {display: inline-block; vertical-align: top;}
..gb_rb {margin-right: 20px; position: relative;}
..gb_tb {border-radius: 50%; overflow: hidden;}
..gb_ub {background-size: 96px 96px; border: medium none; vertical-align: to=
p; height: 96px; width: 96px;}
..gb_ib {background: rgba(78, 144, 254, 0.7) none repeat scroll 0% 0%; botto=
m: 0px; color: rgb(255, 255, 255); font-size: 9px; font-weight: bold; left:=
0px; line-height: 9px; position: absolute; padding: 7px 0px; text-align: c=
enter; width: 96px;}
..gb_tb .gb_ib {background: rgba(0, 0, 0, 0.54) none repeat scroll 0% 0%;}
..gb_vb {font-weight: bold; margin: -4px 0px 1px;}
..gb_xb {color: rgb(102, 102, 102);}
..gb_pb {color: rgb(204, 204, 204); margin: 6px 0px;}
..gb_pb a {margin: 0px 10px;}
..gb_pb a:first-child {margin-left: 0px;}
..gb_pb a:last-child {margin-right: 0px;}
..gb_sb .gb_yb {background: rgb(77, 144, 254) none repeat scroll 0% 0%; bord=
er-color: rgb(48, 121, 237); font-weight: bold; margin: 10px 0px 0px; color=
: rgb(255, 255, 255);}
#gb .gb_sb a.gb_yb.gb_yb {color: rgb(255, 255, 255);}
..gb_sb .gb_yb:hover {background: rgb(53, 122, 232) none repeat scroll 0% 0%=
; border-color: rgb(47, 91, 183);}
..gb_zb.gb_oa {border-top: medium none;}
..gb_zb {background: rgb(245, 245, 245) none repeat scroll 0% 0%; border-top=
: 1px solid rgba(0, 0, 0, 0.2); border-color: rgba(0, 0, 0, 0.2); padding: =
10px 0px; width: 100%; display: table;}
..gb_zb .gb_yb {margin: 0px 20px;}
..gb_zb > div {display: table-cell; text-align: right;}
..gb_zb > div:first-child {text-align: left;}
..gb_zb .gb_Ab {display: block; text-align: center;}
..gb_Bb .gb_lb {border-bottom-color: rgb(254, 249, 219);}
..gb_Cb {background: rgb(254, 249, 219) none repeat scroll 0% 0%; font-size:=
11px; padding: 10px 20px; white-space: normal;}
..gb_Cb b ,.gb_ob {white-space: nowrap;}
..gb_Fb {background: rgb(245, 245, 245) none repeat scroll 0% 0%; border-top=
: 1px solid rgba(0, 0, 0, 0.2); max-height: 230px; overflow: auto;}
..gb_Hb {border-top: 1px solid rgba(0, 0, 0, 0.2); display: block; padding: =
10px 20px; position: relative; white-space: nowrap;}
..gb_Ib .gb_Hb:focus .gb_Jb {outline: 1px dotted rgb(255, 255, 255);}
..gb_Hb:hover {background: rgb(238, 238, 238) none repeat scroll 0% 0%;}
..gb_Hb[selected=3D"true"] {overflow: hidden;}
..gb_Hb[selected=3D"true"] > .gb_Kb {background-color: rgba(117, 117, 117, 0=
..9);}
..gb_Hb[selected=3D"true"] > .gb_Lb {display: block; position: absolute; z-i=
ndex: 2;}
..gb_Lb::-moz-focus-inner {border: 0px none;}
..gb_Lb {background-color: transparent; border: medium none; color: rgb(255,=
255, 255); display: none; font-family: Roboto,Arial,sans-serif; font-weigh=
t: 400; font-size: 14px; height: 36px; min-width: 86px; text-align: center;=
top: 16px; width: auto;}
..gb_Hb[selected=3D"true"] > .gb_Lb:focus {background-color: rgba(0, 0, 0, 0=
..24); border-radius: 2px; outline: 0px none;}
..gb_Hb[selected=3D"true"] > .gb_Lb:hover ,.gb_Hb[selected=3D"true"] > .gb_L=
b:focus:hover {background-color: rgb(86, 86, 86); border-radius: 2px;}
..gb_Hb[selected=3D"true"] > .gb_Lb:active {border-radius: 2px; background-c=
olor: rgb(33, 33, 33);}
..gb_Mb {left: 0px; margin-left: 5%;}
..gb_Nb {margin-right: 5%; right: 0px;}
..gb_Hb:first-child ,.gb_Ob:first-child + .gb_Hb {border-top: 0px none;}
..gb_Ob {display: none;}
..gb_Pb {cursor: default;}
..gb_Pb:hover {background: transparent none repeat scroll 0% 0%;}
..gb_Qb {border: medium none; vertical-align: top; height: 48px; width: 48px=
;}
..gb_Jb {display: inline-block; margin: 6px 0px 0px 10px;}
..gb_Pb .gb_Qb ,.gb_Pb .gb_Jb {opacity: 0.4;}
..gb_Rb {color: rgb(0, 0, 0);}
..gb_Pb .gb_Rb {color: rgb(102, 102, 102);}
..gb_Sb {color: rgb(102, 102, 102);}
..gb_Tb {color: rgb(102, 102, 102); font-style: italic;}
..gb_Kb {background-color: transparent; height: 100%; left: 0px; position: a=
bsolute; text-align: center; top: 0px; width: 100%; z-index: 1;}
..gb_Lb:hover {background-color: rgba(100, 100, 100, 0.4);}
..gb_Ub {background: rgb(245, 245, 245) none repeat scroll 0% 0%; border-top=
: 1px solid rgba(0, 0, 0, 0.2); display: block; padding: 10px 20px;}
..gb_Vb {background-position: -35px -449px; display: inline-block; margin: 1=
px 0px; vertical-align: middle; height: 25px; width: 25px;}
..gb_N .gb_Vb::before {left: -35px; top: -449px;}
..gb_Wb {color: rgb(66, 127, 237); display: inline-block; padding: 0px 25px =
0px 10px; vertical-align: middle; white-space: normal;}
..gb_Ub:hover .gb_Wb {text-decoration: underline;}
..gb_zb .gb_yb:hover {box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1); border-col=
or: rgb(198, 198, 198); color: rgb(34, 34, 34); background-color: rgb(255, =
255, 255); background-image: -moz-linear-gradient(center top , rgb(255, 255=
, 255), rgb(248, 248, 248));}
..gb_og {color: rgb(0, 0, 0); font: 13px/27px Arial,sans-serif; left: 0px; m=
in-width: 1117px; position: absolute; top: 0px; -moz-user-select: none; wid=
th: 100%;}
..gb_uf {font: 13px/27px Arial,sans-serif; position: relative; height: 60px;=
width: 100%;}
..gb_9a .gb_uf {height: 28px;}
#gba {height: 60px;}
#gba.gb_9a {height: 28px;}
#gba.gb_pg {height: 90px;}
#gba.gb_qg {height: 132px;}
#gba.gb_pg.gb_9a {height: 58px;}
..gb_uf > .gb_R {height: 60px; line-height: 58px; vertical-align: middle;}
..gb_9a .gb_uf > .gb_R {height: 28px; line-height: 26px;}
..gb_uf::before {background: rgb(229, 229, 229) none repeat scroll 0% 0%; bo=
ttom: 0px; content: ""; display: none; height: 1px; left: 0px; position: ab=
solute; right: 0px;}
..gb_uf {background: rgb(241, 241, 241) none repeat scroll 0% 0%;}
..gb_rg .gb_uf {background: rgb(255, 255, 255) none repeat scroll 0% 0%;}
..gb_rg .gb_uf::before ,.gb_9a .gb_uf::before {display: none;}
..gb_ea .gb_uf ,.gb_X .gb_uf ,.gb_9a .gb_uf {background: transparent none re=
peat scroll 0% 0%;}
..gb_ea .gb_uf::before {background: rgba(0, 0, 0, 0.12) none repeat scroll 0=
% 0%;}
..gb_X .gb_uf::before {background: rgba(255, 255, 255, 0.2) none repeat scro=
ll 0% 0%;}
..gb_R {display: inline-block; flex: 0 0 auto;}
..gb_R.gb_sg {float: right; order: 1;}
..gb_tg {white-space: nowrap;}
..gb_T .gb_tg {display: flex;}
..gb_tg ,.gb_R {margin-left: 0px !important; margin-right: 0px !important;}
..gb_6b {background-image: url("//ssl.gstatic.com/gb/images/v1_e3444bc5.png"=
); background-size: 92px 2731px;}
..gb_hb:not(.gb_N) .gb_7a::before ,.gb_hb:not(.gb_N) .gb_ub::before {content=
: none;}
..gb_N .gb_4b .gb_6b::before {left: 0px; top: -1139px;}
..gb_N.gb_X .gb_4b .gb_6b::before {left: 0px; top: -790px;}
..gb_N.gb_ea .gb_4b .gb_6b::before {left: 0px; top: -1454px;}
..gb_N .gb_Wa {background-image: none !important;}
..gb_N .gb_7b {visibility: visible;}
..gb_Ib .gb_8d span {background: transparent none repeat scroll 0% 0%;}
..gb_1b {min-width: 152px; overflow: hidden; position: relative; z-index: 98=
7;}
..gb_2b {position: absolute; padding: 0px 30px;}
..gb_3b .gb_2b {right: 100%; margin-right: -152px;}
..gb_4b {display: inline-block; outline: medium none; vertical-align: middle=
;}
..gb_5b .gb_4b {position: relative; top: 2px;}
..gb_4b .gb_6b ,.gb_Wa {display: block;}
..gb_7b {border: medium none; display: block; visibility: hidden;}
..gb_4b .gb_6b {background-position: 0px -1139px; height: 33px; width: 92px;=
}
..gb_Wa {background-repeat: no-repeat;}
..gb_X .gb_4b .gb_6b {background-position: 0px -790px;}
..gb_ea .gb_4b .gb_6b {background-position: 0px -1454px; opacity: 0.54;}
..gb_wc {background-position: 0px -1177px; opacity: 0.55; height: 100%; widt=
h: 100%;}
..gb_b:hover .gb_wc ,.gb_b:focus .gb_wc {opacity: 0.85;}
..gb_xc .gb_wc {background-position: -35px -1212px;}
..gb_yc {background-color: rgb(203, 68, 55); border-radius: 8px; font: bold =
11px/16px Arial; color: rgb(255, 255, 255); min-width: 14px; padding: 0px 1=
px; position: absolute; right: 0px; text-align: center; text-shadow: 0px 1p=
x 0px rgba(0, 0, 0, 0.1); top: 0px; visibility: hidden; z-index: 990;}
..gb_zc .gb_yc ,.gb_zc .gb_Ac ,.gb_zc .gb_Ac.gb_Bc {visibility: visible;}
..gb_Ac {padding: 0px 2px; visibility: hidden;}
..gb_Cc:not(.gb_Dc) .gb_mb ,.gb_Cc:not(.gb_Dc) .gb_lb {left: 3px;}
..gb_yc.gb_Ec {animation: 0.6s ease-in-out 1s normal both 1 running gb__nb; =
perspective-origin: right top; transform: scale(1, 1); transform-origin: ri=
ght top 0px;}
..gb_Ec .gb_Ac {visibility: visible;}
..gb_ea .gb_b .gb_wc {background-position: 0px -276px; opacity: 0.7;}
..gb_ea .gb_xc .gb_wc {background-position: 0px -1212px;}
..gb_ea .gb_b:hover .gb_wc ,.gb_ea .gb_b:focus .gb_wc {opacity: 0.85;}
..gb_X .gb_b .gb_wc {background-position: -35px -966px; opacity: 1;}
..gb_X .gb_xc .gb_wc {background-position: -56px -2321px;}
..gb_ea .gb_yc ,.gb_X .gb_yc {border: medium none;}
..gb_Cc .gb_Fc {font-size: 14px; font-weight: bold; top: 0px; right: 0px;}
..gb_Cc .gb_b {display: inline-block; vertical-align: middle; box-sizing: bo=
rder-box; height: 30px; width: 30px;}
..gb_Cc .gb_lb {border-bottom-color: rgb(229, 229, 229);}
..gb_Hc {background-color: rgba(0, 0, 0, 0.55); color: rgb(255, 255, 255); f=
ont-size: 12px; font-weight: bold; line-height: 20px; margin: 5px; padding:=
0px 2px; text-align: center; box-sizing: border-box; border-radius: 50%; h=
eight: 20px; width: 20px;}
..gb_Hc.gb_Ic {background-position: -70px -2010px;}
..gb_Hc.gb_Jc {background-position: 0px 0px;}
..gb_b:hover .gb_Hc ,.gb_b:focus .gb_Hc {background-color: rgba(0, 0, 0, 0.8=
5);}
#gbsfw.gb_Kc {background: rgb(229, 229, 229) none repeat scroll 0% 0%; bord=
er-color: rgb(204, 204, 204);}
..gb_ea .gb_Hc {background-color: rgba(0, 0, 0, 0.7);}
..gb_X .gb_Hc.gb_Hc ,.gb_X .gb_zc .gb_Hc.gb_Hc ,.gb_X .gb_zc .gb_b:hover .gb=
_Hc ,.gb_X .gb_zc .gb_b:focus .gb_Hc {background-color: rgb(255, 255, 255);=
color: rgb(64, 64, 64);}
..gb_X .gb_Hc.gb_Ic {background-position: -69px -2460px;}
..gb_X .gb_Hc.gb_Jc {background-position: 0px -583px;}
..gb_zc .gb_Hc.gb_Hc {background-color: rgb(219, 68, 55); color: rgb(255, 25=
5, 255);}
..gb_zc .gb_b:hover .gb_Hc ,.gb_zc .gb_b:focus .gb_Hc {background-color: rgb=
(165, 39, 20);}
..gb_N .gb_wc::before {left: 0px; top: -1177px;}
..gb_N .gb_xc .gb_wc::before {left: -35px; top: -1212px;}
..gb_N.gb_ea .gb_b .gb_wc::before {left: 0px; top: -276px;}
..gb_N.gb_ea .gb_xc .gb_wc::before {left: 0px; top: -1212px;}
..gb_N.gb_X .gb_b .gb_wc::before {left: -35px; top: -966px;}
..gb_N.gb_X .gb_xc .gb_wc::before {left: -56px; top: -2321px;}
..gb_Ib .gb_Hc {border: 1px solid rgb(255, 255, 255); color: rgb(255, 255, 2=
55);}
..gb_Ib.gb_ea .gb_Hc {border-color: rgb(0, 0, 0); color: rgb(0, 0, 0);}
..gb_N .gb_Hc.gb_Ic::before ,.gb_Ib.gb_N.gb_X .gb_Hc.gb_Ic::before {left: -7=
0px; top: -2010px;}
..gb_N .gb_Hc.gb_Jc::before ,.gb_Ib.gb_N.gb_X .gb_Hc.gb_Jc::before {left: 0p=
x; top: 0px;}
..gb_N.gb_X .gb_Hc.gb_Ic::before ,.gb_Ib.gb_N.gb_ea .gb_Hc.gb_Ic::before {le=
ft: -69px; top: -2460px;}
..gb_N.gb_X .gb_Hc.gb_Jc::before ,.gb_Ib.gb_N.gb_ea .gb_Hc.gb_Jc::before {le=
ft: 0px; top: -583px;}
..gb_nd {color: rgb(255, 255, 255); font-size: 13px; font-weight: bold; heig=
ht: 25px; line-height: 19px; padding-top: 5px; padding-left: 12px; position=
: relative; background-color: rgb(77, 144, 254);}
..gb_nd .gb_od {color: rgb(255, 255, 255); cursor: default; font-size: 22px;=
font-weight: normal; position: absolute; right: 12px; top: 5px;}
..gb_nd .gb_8c ,.gb_nd .gb_pd {color: rgb(255, 255, 255); display: inline-bl=
ock; font-size: 11px; margin-left: 16px; padding: 0px 8px; white-space: now=
rap;}
..gb_qd {background: rgba(0, 0, 0, 0) -moz-linear-gradient(center top , rgba=
(0, 0, 0, 0.16), rgba(0, 0, 0, 0.2)) repeat scroll 0% 0%; border-radius: 2p=
x; border: 1px solid rgba(0, 0, 0, 0.1); cursor: default !important; text-d=
ecoration: none !important;}
..gb_qd:hover {background: rgba(0, 0, 0, 0) -moz-linear-gradient(center top =
, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0.2)) repeat scroll 0% 0%; border: 1px=
solid rgba(0, 0, 0, 0.2); box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1);}
..gb_qd:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset;}
..gb_Zc.gb_0c {padding: 0px;}
..gb_0c .gb_fa {padding: 26px 26px 22px 13px; background: rgb(255, 255, 255)=
none repeat scroll 0% 0%;}
..gb_1c.gb_0c .gb_fa {background: rgb(77, 144, 254) none repeat scroll 0% 0%=
;}
a.gb_2c {color: rgb(102, 102, 102) !important; font-size: 22px; height: 9px=
; opacity: 0.8; position: absolute; right: 14px; top: 4px; text-decoration:=
none !important; width: 9px;}
..gb_1c a.gb_2c {color: rgb(193, 209, 244) !important;}
a.gb_2c:hover ,a.gb_2c:active {opacity: 1;}
..gb_3c {padding: 0px; width: 258px; white-space: normal; display: table;}
..gb_4c .gb_fa {top: 36px; border: 0px none; padding: 16px; box-shadow: 4px =
4px 12px rgba(0, 0, 0, 0.4);}
..gb_4c .gb_3c {width: 328px;}
..gb_4c .gb_Fa ,.gb_4c .gb_5c ,.gb_4c .gb_Xc ,.gb_4c .gb_Ba ,.gb_6c {line-he=
ight: normal; font-family: Roboto,RobotoDraft,Helvetica,Arial,sans-serif;}
..gb_4c .gb_Fa ,.gb_4c .gb_5c ,.gb_4c .gb_Ba {font-weight: 500;}
..gb_4c .gb_Fa ,.gb_4c .gb_Ba {border: 0px none; padding: 10px 8px;}
..gb_0c .gb_Fa:active {outline: medium none; box-shadow: 0px 4px 5px rgba(0,=
0, 0, 0.16);}
..gb_4c .gb_5c {color: rgb(34, 34, 34); margin-bottom: 8px;}
..gb_4c .gb_Xc {color: rgb(128, 128, 128); font-size: 14px;}
..gb_7c {text-align: right; font-size: 14px; padding-bottom: 0px; white-spac=
e: nowrap;}
..gb_7c .gb_8c {margin-left: 8px;}
..gb_7c .gb_9c.gb_8c img {background-color: inherit; border-radius: initial;=
height: 1.5em; margin: -0.25em 10px -0.25em 2px; vertical-align: text-top;=
width: 1.5em;}
..gb_4c .gb_3c .gb_ad .gb_9c {border: 2px solid transparent;}
..gb_4c .gb_3c .gb_ad .gb_9c:focus {border-color: rgb(187, 204, 255);}
..gb_4c .gb_3c .gb_ad .gb_9c:focus::after ,.gb_4c .gb_3c .gb_ad .gb_9c:hover=
::after {background-color: transparent;}
..gb_6c {background-color: rgb(64, 64, 64); color: rgb(255, 255, 255); paddi=
ng: 16px; position: absolute; top: 36px; min-width: 328px; max-width: 650px=
; right: 0px; border-radius: 2px; box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.=
4);}
..gb_6c a ,.gb_6c a:visited {color: rgb(94, 151, 246); text-decoration: none=
;}
..gb_bd {text-transform: uppercase;}
..gb_cd {padding-left: 50px;}
..gb_1c .gb_3c {width: 200px;}
..gb_5c {color: rgb(51, 51, 51); font-size: 16px; line-height: 20px; margin:=
0px 0px 16px;}
..gb_1c .gb_5c {color: rgb(255, 255, 255);}
..gb_Xc {color: rgb(102, 102, 102); line-height: 17px; margin: 0px 0px 5px;}
..gb_1c .gb_Xc {color: rgb(255, 255, 255);}
..gb_dd {text-decoration: none; color: rgb(94, 151, 246);}
..gb_dd:visited {color: rgb(94, 151, 246);}
..gb_dd:hover ,.gb_dd:active {text-decoration: underline;}
..gb_ed {position: absolute; background: transparent none repeat scroll 0% 0=
%; top: -999px; z-index: -1; visibility: hidden; margin-top: 1px; margin-le=
ft: 1px;}
#gb .gb_0c {margin: 0px;}
..gb_0c .gb_yb {background: rgb(77, 144, 254) none repeat scroll 0% 0%; bord=
er-color: rgb(48, 121, 237); margin-top: 15px;}
..gb_4c .gb_Fa {background: rgb(66, 133, 244) none repeat scroll 0% 0%;}
#gb .gb_0c a.gb_yb.gb_yb {color: rgb(255, 255, 255);}
..gb_0c .gb_yb:hover {background: rgb(53, 122, 232) none repeat scroll 0% 0%=
; border-color: rgb(47, 91, 183);}
..gb_fd .gb_Fc .gb_lb {border-bottom-color: rgb(255, 255, 255); display: blo=
ck;}
..gb_gd .gb_Fc .gb_lb {border-bottom-color: rgb(77, 144, 254); display: bloc=
k;}
..gb_fd .gb_Fc .gb_mb ,.gb_gd .gb_Fc .gb_mb {display: block;}
..gb_hd ,.gb_ad {display: table-cell;}
..gb_hd {vertical-align: middle;}
..gb_4c .gb_hd {vertical-align: top;}
..gb_ad {padding-left: 13px; width: 100%;}
..gb_4c .gb_ad {padding-left: 20px;}
..gb_id {display: inline-block; padding: 1em 0px 0px; position: relative; wi=
dth: 100%;}
..gb_jd {color: rgb(255, 0, 0); font-style: italic; margin: 0px; padding-lef=
t: 46px;}
..gb_id .gb_kd {float: right; margin: -20px 0px; width: calc(100% - 46px);}
..gb_ld svg {fill: grey;}
..gb_ld.gb_md svg {fill: rgb(66, 133, 244);}
..gb_id .gb_kd label::after {background-color: rgb(66, 133, 244);}
..gb_ld {display: inline; float: right; margin-right: 22px; position: relati=
ve; top: -4px;}
..gb_nf {margin-bottom: 32px; font-size: small;}
..gb_nf .gb_of {margin-right: 5px;}
..gb_nf .gb_pf {color: red;}
..gb_Nc {display: none;}
..gb_Nc.gb_g {display: block;}
..gb_Oc {background-color: rgb(255, 255, 255); box-shadow: 0px 1px 0px rgba(=
0, 0, 0, 0.08); color: rgb(0, 0, 0); position: relative; z-index: 986;}
..gb_Pc {height: 40px; padding: 16px 24px; white-space: nowrap;}
..gb_Qc {position: fixed; bottom: 16px; padding: 16px; right: 16px; white-sp=
ace: normal; width: 328px; transition: width 0.2s ease 0s, bottom 0.2s ease=
0s, right 0.2s ease 0s; border-radius: 2px; box-shadow: 0px 5px 5px -3px r=
gba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px r=
gba(0, 0, 0, 0.12);}
..gb_Oc .gb_yb {border: 0px none; font-weight: 500; font-size: 14px; line-he=
ight: 36px; min-width: 32px; padding: 0px 16px; vertical-align: middle;}
..gb_Oc .gb_yb::before {content: ""; height: 6px; left: 0px; position: absol=
ute; top: -6px; width: 100%;}
..gb_Oc .gb_yb::after {bottom: -6px; content: ""; height: 6px; left: 0px; po=
sition: absolute; width: 100%;}
..gb_Oc .gb_yb + .gb_yb {margin-left: 8px;}
..gb_Rc {height: 48px; padding: 4px; margin: -8px 0px 0px -8px;}
..gb_Qc .gb_Rc {float: left; margin: -4px;}
..gb_Sc {font-family: Roboto,RobotoDraft,Helvetica,Arial,sans-serif; overflo=
w: hidden; vertical-align: top;}
..gb_Pc .gb_Sc {display: inline-block; padding-left: 8px; width: 640px;}
..gb_Qc .gb_Sc {display: block; margin-left: 56px; padding-bottom: 16px;}
..gb_Tc {background-color: inherit;}
..gb_Pc .gb_Tc {display: inline-block; position: absolute; top: 18px; right:=
24px;}
..gb_Qc .gb_Tc {text-align: right; padding-right: 24px; padding-top: 6px;}
..gb_Tc .gb_Uc {height: 1.5em; margin: -0.25em 10px -0.25em 0px; vertical-al=
ign: text-top; width: 1.5em;}
..gb_Vc {line-height: 20px; font-size: 16px; font-weight: 700; color: rgba(0=
, 0, 0, 0.87);}
..gb_Qc .gb_Vc {color: rgba(0, 0, 0, 0.87); font-size: 16px; line-height: 20=
px; padding-top: 8px;}
..gb_Pc .gb_Vc ,.gb_Pc .gb_Wc {width: 640px;}
..gb_Wc .gb_Xc ,.gb_Wc {line-height: 20px; font-size: 13px; font-weight: 400=
; color: rgba(0, 0, 0, 0.54);}
..gb_Qc .gb_Wc .gb_Xc {font-size: 14px;}
..gb_Qc .gb_Wc {padding-top: 12px;}
..gb_Qc .gb_Wc a {color: rgb(66, 133, 244);}
..gb_qf {position: relative; width: 650px; z-index: 986;}
#gbq2 {padding-top: 15px;}
..gb_T .gb_qf {min-width: 200px; flex: 0 2 auto;}
..gb_V ~ .gb_qf {min-width: 0px;}
..gb_T #gbqf {margin-right: 0px; display: flex;}
..gb_T .gbqff {min-width: 0px; flex: 1 1 auto;}
..gb_N .gbqfi::before {left: 0px; top: -2321px;}
..gb_Ib .gbqfb:focus .gbqfi {outline: 1px dotted rgb(255, 255, 255);}
#gbq2 {display: block;}
#gbqf {display: block; margin: 0px 60px 0px 0px; white-space: nowrap;}
..gbqff {border: medium none; display: inline-block; margin: 0px; padding: 0=
px; vertical-align: top; width: 100%;}
..gbqfqw ,#gbqfb ,.gbqfwa {vertical-align: top;}
#gbqfaa ,#gbqfab ,#gbqfqwb {position: absolute;}
#gbqfaa {left: 0px;}
#gbqfab {right: 0px;}
..gbqfqwb ,.gbqfqwc {right: 0px; left: 0px; height: 100%;}
..gbqfqwb {padding: 0px 8px;}
#gbqfbw {display: inline-block; vertical-align: top;}
#gbqfb {border: 1px solid transparent; border-bottom-left-radius: 0px; bord=
er-top-left-radius: 0px; height: 30px; margin: 0px; outline: medium none; p=
adding: 0px; width: 60px; box-shadow: none; box-sizing: border-box; backgro=
und: rgba(0, 0, 0, 0) -moz-linear-gradient(center top , rgb(67, 135, 253), =
rgb(70, 131, 234)) repeat scroll 0% 0%;}
#gbqfb:hover {box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1);}
#gbqfb:focus {box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;}
#gbqfb:hover:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) inset, 0=
px 1px 1px rgba(0, 0, 0, 0.1);}
#gbqfb:active:active {border: 1px solid transparent; box-shadow: 0px 2px 0p=
x rgba(0, 0, 0, 0.15) inset; background: rgba(0, 0, 0, 0) -moz-linear-gradi=
ent(center top , rgb(60, 122, 228), rgb(63, 118, 211)) repeat scroll 0% 0%;=
}
..gbqfi {background-position: 0px -2321px; display: inline-block; margin: -1=
px; height: 30px; width: 30px;}
..gbqfqw {background: rgb(255, 255, 255) none repeat scroll 0% 0% padding-bo=
x; border-width: 1px 0px 1px 1px; border-style: solid; -moz-border-top-colo=
rs: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; =
-moz-border-left-colors: none; border-image: none; border-color: rgba(0, 0,=
0, 0.15); height: 30px; box-sizing: border-box;}
#gbfwc .gbqfqw {border-right-width: 1px;}
#gbqfqw {position: relative;}
..gbqfqw.gbqfqw:hover {border-color: rgba(0, 0, 0, 0.3);}
..gbqfwa {display: inline-block; width: 100%;}
..gbqfwb {width: 40%;}
..gbqfwc {width: 60%;}
..gbqfwb .gbqfqw {margin-left: 10px;}
..gbqfqw.gbqfqw:active ,.gbqfqw.gbqfqwf.gbqfqwf {border-color: rgb(66, 133, =
244);}
#gbqfq ,#gbqfqb ,#gbqfqc {background: transparent none repeat scroll 0% 0%;=
border: medium none; height: 20px; margin-top: 4px; padding: 0px; vertical=
-align: top; width: 100%;}
#gbqfq:focus ,#gbqfqb:focus ,#gbqfqc:focus {outline: medium none;}
..gbqfif ,.gbqfsf {color: rgb(34, 34, 34); font: 16px arial,sans-serif;}
#gbqfbwa {display: none; text-align: center; height: 0px;}
#gbqfbwa .gbqfba {margin: 16px 8px;}
#gbqfsa ,#gbqfsb {font: bold 11px/27px Arial,sans-serif !important; vertica=
l-align: top;}
..gb_ea .gbqfqw.gbqfqw ,.gb_X .gbqfqw.gbqfqw {border-color: rgb(255, 255, 25=
5); box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);}
..gb_ea #gbqfb ,.gb_X #gbqfb {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);}
..gb_ea #gbqfb:hover ,.gb_X #gbqfb:hover {box-shadow: 0px 1px 1px rgba(0, 0,=
0, 0.1), 0px 1px 2px rgba(0, 0, 0, 0.2);}
..gb_ea #gbqfb:active ,.gb_X #gbqfb:active {box-shadow: 0px 2px 0px rgba(0, =
0, 0, 0.15) inset, 0px 1px 2px rgba(0, 0, 0, 0.2);}
..gbqfb ,.gbqfba ,.gbqfbb {cursor: default !important; display: inline-block=
; font-weight: bold; height: 29px; line-height: 29px; min-width: 54px; padd=
ing: 0px 8px; text-align: center; text-decoration: none !important; border-=
radius: 2px; -moz-user-select: none;}
..gbqfba:focus {border: 1px solid rgb(77, 144, 254); outline: medium none; b=
ox-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;}
..gbqfba:hover {border-color: rgb(198, 198, 198); color: rgb(34, 34, 34) !im=
portant; box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1); background: rgba(0, 0,=
0, 0) -moz-linear-gradient(center top , rgb(248, 248, 248), rgb(241, 241, =
241)) repeat scroll 0% 0%;}
..gbqfba:hover:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) inset, =
0px 1px 1px rgba(0, 0, 0, 0.1);}
..gbqfb::-moz-focus-inner {border: 0px none;}
..gbqfba::-moz-focus-inner {border: 0px none;}
..gbqfba {border: 1px solid rgba(0, 0, 0, 0.1); color: rgb(68, 68, 68) !impo=
rtant; font-size: 11px; background: rgba(0, 0, 0, 0) -moz-linear-gradient(c=
enter top , rgb(245, 245, 245), rgb(241, 241, 241)) repeat scroll 0% 0%;}
..gbqfba:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;}
..gb_rf .gb_b {background-position: 0px -1699px; opacity: 0.55; height: 30px=
; width: 30px;}
..gb_rf .gb_b:hover ,.gb_rf .gb_b:focus {opacity: 0.85;}
..gb_rf .gb_lb {border-bottom-color: rgb(245, 245, 245);}
#gbsfw.gb_sf {background: rgb(245, 245, 245) none repeat scroll 0% 0%; bord=
er-color: rgb(204, 204, 204);}
..gb_X .gb_rf .gb_b {background-position: -35px -1699px; opacity: 1;}
..gb_ea .gb_rf .gb_b {background-position: 0px -966px; opacity: 0.7;}
..gb_ea .gb_rf .gb_b:hover ,.gb_ea .gb_rf .gb_b:focus {opacity: 0.85;}
..gb_N .gb_rf .gb_b::before {left: 0px; top: -1699px;}
..gb_N.gb_ea .gb_rf .gb_b::before {left: 0px; top: -966px;}
..gb_N.gb_X .gb_rf .gb_b::before {left: -35px; top: -1699px;}
..gb_Sf {width: 480px;}
..gb_Tf {background: rgba(0, 0, 0, 0.04) none repeat scroll 0% 0%; border-bo=
ttom-right-radius: 0px; line-height: 30px; position: relative; text-align: =
center; width: 100%;}
..gb_Tf:hover {background: rgba(0, 0, 0, 0.08) none repeat scroll 0% 0%;}
..gb_Tf .gb_Uf {margin: 0px 10px;}
..gb_Vf {position: relative; z-index: 1;}
..gb_Wf {background: rgb(238, 238, 238) none repeat scroll 0% 0%; border-bot=
tom: 1px solid rgb(227, 227, 227); border-left: 1px solid rgb(227, 227, 227=
); display: inline-block; line-height: 32px; text-align: center; width: 160=
px;}
..gb_Vf .gb_Wf:first-child {border-left: medium none;}
..gb_Vf .gb_g {background: rgb(255, 255, 255) none repeat scroll 0% 0%; bord=
er-bottom: medium none;}
..gb_Xf {display: none; text-align: center;}
..gb_Xf.gb_g {display: block;}
..gb_Zf {color: inherit; display: inline-block; padding: 15px; text-decorati=
on: none;}
..gb_0f {background-clip: content-box; background-origin: content-box; displ=
ay: inherit; height: 64px; width: 64px;}
..gb_1f {display: block; text-align: center;}
..gb_2f {border-top: medium none; top: 78px; z-index: 1; border-radius: 0px =
0px 2px 2px;}
..gb_3f {display: inline-block; vertical-align: middle;}
..gb_4f {display: inline-block; vertical-align: middle; background-size: 100=
% auto; height: 20px; width: 20px;}
..gb_5f {background-image: url("//ssl.gstatic.com/gb/images/a/5a1c013d3d.png=
");}
..gb_6f {background-image: url("//ssl.gstatic.com/gb/images/a/de580e5330.png=
");}
..gb_7f {background-image: url("//ssl.gstatic.com/gb/images/a/451603daf6.png=
");}
..gb_3f {margin-left: 4px;}
..gb_8f {margin: 5px; width: 470px;}
..gb_9f {border: medium none; display: block; margin: 0px 5px; outline: medi=
um none; padding: 0px 5px; height: 30px; width: 450px;}
..gb_ag {border-width: 1px medium medium; border-style: solid none none; bor=
der-color: rgb(227, 227, 227) currentcolor currentcolor; -moz-border-top-co=
lors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none=
; -moz-border-left-colors: none; border-image: none; display: block; margin=
: 0px 5px; outline: medium none; padding: 0px 5px; height: 30px; width: 450=
px;}
..gb_bg {border-color: rgb(227, 227, 227); display: block; font: inherit; ma=
rgin: 0px 5px; outline: medium none; padding: 5px; text-align: left; height=
: 320px; width: 450px;}
..gb_cg ,.gb_dg {border: 1px solid rgb(227, 227, 227); border-radius: 2px; c=
ursor: pointer; line-height: 27px; margin: 5px; padding: 0px 8px; width: 54=
px;}
..gb_cg {float: left;}
..gb_dg {float: right;}
..gb_hb {min-width: 255px; padding-left: 30px; padding-right: 30px; position=
: relative; text-align: right; z-index: 986; align-items: center; justify-c=
ontent: flex-end; -moz-user-select: none;}
..gb_9a .gb_hb {min-width: 0px;}
..gb_hb.gb_R {flex: 1 1 auto;}
..gb_uc {line-height: normal; position: relative; text-align: left;}
..gb_uc.gb_R ,.gb_ce.gb_R ,.gb_ab.gb_R {flex: 0 1 auto;}
..gb_eg ,.gb_fg {display: inline-block; padding: 0px 0px 0px 15px; position:=
relative; vertical-align: middle;}
..gb_ce {line-height: normal; padding-right: 15px;}
..gb_hb .gb_ce.gb_U {padding-right: 0px;}
..gb_ab {color: rgb(64, 64, 64); line-height: 30px; min-width: 30px; overflo=
w: hidden; vertical-align: middle; text-overflow: ellipsis;}
#gb.gb_9a.gb_9a .gb_Lf ,#gb.gb_9a.gb_9a .gb_uc > .gb_fg .gb_Mf {background:=
rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: medium none; color: rgb=
(51, 102, 204); cursor: pointer; filter: none; font-size: 11px; line-height=
: 26px; padding: 0px; box-shadow: none;}
#gb.gb_9a.gb_X .gb_Lf ,#gb.gb_9a.gb_X .gb_uc > .gb_fg .gb_Mf {color: rgb(25=
5, 255, 255);}
..gb_9a .gb_Lf {text-transform: uppercase;}
..gb_hb.gb_V {padding-left: 0px; padding-right: 29px;}
..gb_hb.gb_gg {max-width: 400px;}
..gb_hg {background-clip: content-box; background-origin: content-box; opaci=
ty: 0.27; padding: 22px; height: 16px; width: 16px;}
..gb_hg.gb_R {display: none;}
..gb_hg:hover ,.gb_hg:focus {opacity: 0.55;}
..gb_ig {background-position: -69px -2252px;}
..gb_jg {background-position: -35px -2321px; padding-left: 30px; padding-rig=
ht: 14px; position: absolute; right: 0px; top: 0px; z-index: 990;}
..gb_db:not(.gb_fb) .gb_jg ,.gb_V .gb_ig {display: inline-block;}
..gb_db .gb_ig {padding-left: 30px; padding-right: 0px; width: 0px;}
..gb_db:not(.gb_fb) .gb_kg {display: none;}
..gb_hb.gb_R.gb_V ,.gb_V:not(.gb_fb) .gb_uc {flex: 0 0 auto;}
..gb_hg ,.gb_V .gb_ce ,.gb_fb .gb_uc {overflow: hidden;}
..gb_db .gb_ce {padding-right: 0px;}
..gb_V .gb_uc {padding: 1px 1px 1px 0px;}
..gb_db .gb_uc {width: 75px;}
..gb_hb.gb_lg ,.gb_hb.gb_lg .gb_ig ,.gb_hb.gb_lg .gb_ig::before ,.gb_hb.gb_l=
g .gb_ce ,.gb_hb.gb_lg .gb_uc {transition: width 0.5s ease-in-out 0s, min-w=
idth 0.5s ease-in-out 0s, max-width 0.5s ease-in-out 0s, padding 0.5s ease-=
in-out 0s, left 0.5s ease-in-out 0s;}
..gb_T .gb_hb {min-width: 0px;}
..gb_hb.gb_W ,.gb_hb.gb_W .gb_uc ,.gb_hb.gb_mg ,.gb_hb.gb_mg .gb_uc {min-wid=
th: 0px !important;}
..gb_hb.gb_W ,.gb_hb.gb_W .gb_R {flex: 0 0 auto !important;}
..gb_hb.gb_W .gb_ab {width: 30px !important;}
..gb_ng {margin-right: 32px;}
..gb_6a {display: none;}
..gb_N .gb_ig::before {clip: rect(2252px, 85px, 2268px, 69px); left: -47px; =
top: -2230px;}
..gb_N .gb_6b.gb_jg {position: absolute;}
..gb_N .gb_jg::before {clip: rect(2321px, 51px, 2337px, 35px); left: -5px; t=
op: -2299px;}
..gb_N .gb_db .gb_ig::before {left: -39px;}
..gb_N .gb_6b ,.gb_N .gbii ,.gb_N .gbip {background-image: none; overflow: h=
idden; position: relative;}
..gb_N .gb_6b::before {content: url("//ssl.gstatic.com/gb/images/v1_e3444bc5=
..png"); position: absolute;}
..gb_Ib a:focus {outline: 1px dotted rgb(255, 255, 255) !important;}
sentinel { }
#gbq .gbgt-hvr ,#gbq .gbgt:focus {background-color: transparent; background=
-image: none;}
#gbq1.gbqfh {display: none;}
..gbxx {display: none !important;}
#gbq {line-height: normal; position: relative; top: 0px; white-space: nowra=
p;}
#gbq {left: 0px; width: 100%;}
#gbq2 {top: 0px; z-index: 986;}
#gbq4 {display: inline-block; max-height: 29px; overflow: hidden; position:=
relative;}
#gbq2.gbqfh {z-index: 985;}
#gbq2.gbqfh {margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin=
-left: 0px !important; padding-top: 0px; position: relative; top: 310px;}
..gbqfh #gbqf {margin: auto; min-width: 534px; padding: 0px !important;}
..gbqfh #gbqfbw {display: none;}
..gbqfh #gbqfbwa {display: block;}
..gbqfh #gbqf {max-width: 512px; min-width: 200px;}
..gbqfh .gbqfqw {border-right-width: 1px;}
..gbii::before {content: url("https://lh3.googleusercontent.com/-D_q2LHjgmDw=
/AAAAAAAAAAI/AAAAAAAAAAA/ACnBePZNKkVYfVjOzriuNcfl8bfet745YQ/s32-c-mo/photo.=
jpg");}
..gbip::before {content: url("https://lh3.googleusercontent.com/-D_q2LHjgmDw=
/AAAAAAAAAAI/AAAAAAAAAAA/ACnBePZNKkVYfVjOzriuNcfl8bfet745YQ/s96-c-mo/photo.=
jpg");}
..gbii {background-image: url("https://lh3.googleusercontent.com/-D_q2LHjgmD=
w/AAAAAAAAAAI/AAAAAAAAAAA/ACnBePZNKkVYfVjOzriuNcfl8bfet745YQ/s32-c-mo/photo=
..jpg");}
..gbip {background-image: url("https://lh3.googleusercontent.com/-D_q2LHjgmD=
w/AAAAAAAAAAI/AAAAAAAAAAA/ACnBePZNKkVYfVjOzriuNcfl8bfet745YQ/s96-c-mo/photo=
..jpg");}
..gb_va .gb_2::before {left: 0px; top: -1070px;}
#gb192 .gb_2::before {left: 0px; top: -1492px;}
#gb1 .gb_2::before {left: -25px; top: 0px;}
#gb8 .gb_2::before {left: 0px; top: -1630px;}
#gb36 .gb_2::before {left: 0px; top: -2183px;}
#gb78 .gb_2::before {left: 0px; top: -69px;}
#gb5 .gb_2::before {left: 0px; top: -138px;}
#gb23 .gb_2::before {left: 0px; top: -207px;}
#gb49 .gb_2::before {left: 0px; top: -1247px;}
#gb24 .gb_2::before {left: 0px; top: -1734px;}
#gb119 .gb_2::before {left: 0px; top: -828px;}
#gb51 .gb_2::before {left: 0px; top: -2598px;}
#gb31 .gb_2::before {left: 0px; top: -1941px;}
#gb6 .gb_2::before {left: 0px; top: -2529px;}
#gb212 .gb_2::before {left: 0px; top: -897px;}
#gb27 .gb_2::before {left: 0px; top: -514px;}
#gb25 .gb_2::before {left: 0px; top: -1803px;}
#gb10 .gb_2::before {left: 0px; top: -1001px;}
#gb30 .gb_2::before {left: 0px; top: -1316px;}
#gb53 .gb_2::before {left: 0px; top: -652px;}
#gb300 .gb_2::before {left: -25px; top: -583px;}
#gb265 .gb_2::before {left: 0px; top: -380px;}
..F0XO1GC-e-b {bottom: 24px; left: 24px; position: fixed; z-index: 2000;}
..F0XO1GC-e-b .F0XO1GC-e-a {background: rgb(50, 50, 50) none repeat scroll 0=
% 0%; border-radius: 2px; color: white; display: inline-block; font-size: 1=
4px; max-width: 568px; min-width: 288px; padding: 16px 24px 12px; will-chan=
ge: transform;}
..F0XO1GC-e-b .F0XO1GC-e-a > div {vertical-align: middle; display: inline-bl=
ock; max-width: 450px;}
..F0XO1GC-e-b .F0XO1GC-e-a > div > div {overflow: hidden; text-overflow: ell=
ipsis;}
..F0XO1GC-e-b .F0XO1GC-e-a .F0XO1GC-e-i {color: rgb(161, 194, 250); text-tra=
nsform: uppercase;}
..F0XO1GC-e-b.F0XO1GC-e-d .F0XO1GC-e-c {float: right; opacity: 0.8; padding-=
left: 10px;}
..F0XO1GC-e-b.F0XO1GC-e-d .F0XO1GC-e-c:hover {opacity: 1;}
..F0XO1GC-e-g {transition: opacity 4s ease 0s;}
..F0XO1GC-e-j {transition: opacity 6s ease 0s;}
..F0XO1GC-e-e {opacity: 0;}
body.F0XO1GC-e-m .F0XO1GC-e-b.F0XO1GC-e-f {display: none;}
..F0XO1GC-g-b {background-color: rgb(235, 238, 248); padding: 4px; color: rg=
b(34, 34, 34); box-shadow: 0px 4px 10px rgb(139, 139, 139);}
..F0XO1GC-g-a {height: 14px; width: 6px; overflow: hidden; background: rgba(=
0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAOCAYA=
AAAMn20lAAAAHUlEQVR42mNYsGDBahBmgAI4H6cE6WAk2LETmwQApE1Rb+RF60MAAAAASUVORK5=
CYII=3D") no-repeat scroll 0px 0px; display: inline-block;}
..gux-dropdown-c {background-color: rgb(249, 249, 249); border-width: 1px; b=
order-style: solid; border-color: rgb(229, 229, 229) rgb(229, 229, 229) rgb=
(179, 179, 179);}
..gux-dropdown-b {border-bottom: 1px solid rgb(229, 229, 229); margin-left: =
2px;}
..gux-combo-item {color: rgb(51, 51, 51); cursor: pointer; padding: 3px 8px;=
}
..gux-combo-item-disabled {color: rgb(102, 102, 102);}
..gux-combo-item-selected ,.gux-combo-item-selection {background-color: rgb(=
221, 221, 221);}
..gux-combo-item-current {background-color: rgb(238, 238, 238); font-weight:=
bold;}
..gux-combo-item-has-child {background-image: url("data:image/png;base64,iVB=
ORw0KGgoAAAANSUhEUgAAAAcAAAAHAQMAAAD+nMWQAAAABlBMVEX///9mZmaO7mygAAAAAXRSTl=
MAQObYZgAAABxJREFUeF4FwTEBAAAMAiCiGMHTY/1zDUTNmcoDCSIBTWrzi7sAAAAASUVORK5CY=
II=3D");}
..gux-combo-item-has-child {background-repeat: no-repeat; background-positio=
n: 97% 50%; padding-right: 20px;}
..gux-combo-item-separator {margin: 3px 0px; border-top: 1px solid rgb(207, =
207, 207);}
..F0XO1GC-l-a {overflow: auto; max-height: 400px; min-width: 150px;}
html ,body ,div ,span ,applet ,object ,body {margin: 0px; padding: 0px; bor=
der: 0px none;}
iframe {margin: 0px; padding: 0px;}
h1 ,h2 ,h3 ,h4 ,h5 ,h6 ,p ,pre ,a ,abbr ,acronym ,address ,big ,cite ,code =
,del ,dfn ,em ,font ,img ,ins ,kbd ,q ,s ,samp ,small ,strike ,strong ,sub =
,sup ,tt ,var ,dl ,dt ,dd ,fieldset ,form ,label ,legend ,table ,caption ,t=
body ,tfoot ,thead ,tr ,th ,td {margin: 0px; padding: 0px; border: 0px none=
;}
body {background: white none repeat scroll 0% 0%;}
table {border-collapse: separate; border-spacing: 0px;}
caption ,th ,td {font-weight: normal;}
input::-moz-focus-inner {border: 0px none;}
body {font-family: "Arial","Helvetica",sans-serif; color: rgb(34, 34, 34); =
font-size: 13px; height: 100%; background-color: rgb(255, 255, 255);}
html {height: 100%; background-color: rgb(255, 255, 255);}
body {overflow-y: hidden; overflow-x: auto;}
..F0XO1GC-b-q {position: fixed; overflow: hidden; width: 100%; height: 100%;=
}
h1 ,h2 ,h3 ,h4 ,h5 {font-size: 16px; line-height: 24px; font-weight: normal=
; color: rgb(34, 34, 34);}
li {line-height: 17px;}
a {text-decoration: none; color: rgb(17, 85, 204); cursor: pointer;}
a:visited {color: rgb(102, 17, 204);}
a:active {color: rgb(209, 72, 54);}
iframe {border: 0px none;}
strong {font-weight: bold; color: rgb(34, 34, 34);}
em {font-style: italic;}
input[type=3D"text"] ,input[type=3D"password"] ,textarea ,.editable ,body {=
border-width: 1px; border-style: solid; border-color: rgb(192, 192, 192) rg=
b(217, 217, 217) rgb(217, 217, 217); -moz-border-top-colors: none; -moz-bor=
der-right-colors: none; -moz-border-bottom-colors: none; -moz-border-left-c=
olors: none; border-image: none; vertical-align: top; box-sizing: border-bo=
x; border-radius: 1px;}
input[type=3D"text"] ,input[type=3D"password"] {background-color: rgb(255, =
255, 255); color: rgb(34, 34, 34); display: inline-block; height: 29px; lin=
e-height: 27px; padding-left: 8px;}
textarea ,.editable ,body {padding: 5px;}
input[type=3D"text"]:hover ,input[type=3D"password"]:hover ,textarea:hover =
,.editable:hover {border-width: 1px; border-style: solid; border-color: rgb=
(160, 160, 160) rgb(185, 185, 185) rgb(185, 185, 185); -moz-border-top-colo=
rs: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; =
-moz-border-left-colors: none; border-image: none; box-shadow: 0px 1px 2px =
rgba(0, 0, 0, 0.1) inset;}
input[type=3D"text"]:focus ,input[type=3D"password"]:focus ,textarea:focus =
,.editable:focus {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset; outline=
: medium none; border: 1px solid rgb(77, 144, 254);}
input[disabled] ,input[disabled]:hover ,textarea[disabled] ,textarea[disabl=
ed]:hover {border-width: 1px; border-style: solid; border-color: rgb(192, 1=
92, 192) rgb(217, 217, 217) rgb(217, 217, 217); -moz-border-top-colors: non=
e; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-bo=
rder-left-colors: none; border-image: none; box-shadow: none;}
..F0XO1GC-b-V ,.F0XO1GC-b-V:hover ,.F0XO1GC-b-V:focus {border: 1px solid rgb=
(221, 75, 57) !important;}
..F0XO1GC-b-R {color: rgb(221, 75, 57);}
..F0XO1GC-b-Hb textarea ,.F0XO1GC-b-Hb input[type=3D"text"] {width: 100%; ma=
x-width: 600px;}
..F0XO1GC-b-Hb textarea {height: 100px;}
..F0XO1GC-b-Jb:first-child {border-top: medium none;}
..F0XO1GC-b-Jb:last-child {border-bottom: 1px solid rgb(235, 235, 235);}
..F0XO1GC-b-Jb {border-top: 1px solid rgb(235, 235, 235); padding: 20px 0px;=
clear: both;}
..F0XO1GC-b-N .F0XO1GC-b-Jb {padding: 12px 0px;}
..F0XO1GC-b-O .F0XO1GC-b-Jb ,body .F0XO1GC-b-Jb {padding: 7px 0px;}
..F0XO1GC-b-Jb p {line-height: 13px;}
..F0XO1GC-b-Ib {padding-bottom: 0px; border: medium none;}
..F0XO1GC-b-Fb {display: block; float: left; width: 185px; font-weight: bold=
;}
..F0XO1GC-b-Fb a {font-size: 11px;}
..F0XO1GC-b-Gb {font-size: 11px; color: rgb(102, 102, 102); font-weight: nor=
mal;}
..F0XO1GC-b-Eb {margin-left: 210px;}
#gbqfq {border: medium none !important; box-shadow: none !important; line-h=
eight: normal !important;}
..F0XO1GC-b-w {position: absolute; width: 100%; text-align: center; height: =
0px;}
..F0XO1GC-b-w .gux-confirm-panel-c {display: inline-block; box-shadow: 0px 2=
px 4px rgba(0, 0, 0, 0.2);}
..gux-confirm-panel-r1 ,.gux-confirm-panel-r2 ,.gux-confirm-panel-r3 ,.gux-c=
onfirm-panel-r4 {display: none;}
..gux-confirm-panel-c {padding: 7px 16px !important; background: rgb(249, 23=
7, 190) none repeat scroll 0% 0% !important; border: 1px solid rgb(240, 195=
, 109); border-radius: 2px; line-height: 16px; font-size: 11px; position: r=
elative;}
..gux-confirm-panel-c a ,.gux-confirm-panel-c a:visited {color: rgb(51, 51, =
51); text-decoration: underline;}
..gux-confirm-panel-c a:hover {color: rgb(32, 32, 32);}
..gux-confirm-panel-message {color: inherit !important; font-weight: inherit=
!important;}
..F0XO1GC-b-y {text-align: center; padding: 16px;}
..F0XO1GC-b-y .gux-confirm-panel-c {display: inline-block;}
..F0XO1GC-b-o {position: relative; overflow: hidden; height: 58px; border-bo=
ttom: 1px solid rgb(235, 235, 235);}
..F0XO1GC-b-O .F0XO1GC-b-o ,body .F0XO1GC-b-o {min-height: 44px; height: 44p=
x;}
..F0XO1GC-b-p {font-size: 20px; position: absolute; left: 44px; top: 18px;}
..F0XO1GC-b-N .F0XO1GC-b-p {left: 28px;}
..F0XO1GC-b-O .F0XO1GC-b-p ,body .F0XO1GC-b-p {font-size: 16px; left: 16px; =
top: 11px;}
..F0XO1GC-b-dc .F0XO1GC-b-p ,body .F0XO1GC-b-p {left: 30px;}
..F0XO1GC-b-p ,.F0XO1GC-b-p a ,.F0XO1GC-b-p a:hover ,.F0XO1GC-b-p a:visited =
{color: rgb(221, 75, 57);}
..F0XO1GC-b-n {position: relative; font-size: 20px; font-weight: normal; col=
or: rgb(34, 34, 34); white-space: nowrap; overflow: hidden; margin-top: 14p=
x; min-height: 30px; margin-right: 44px;}
..F0XO1GC-b-N .F0XO1GC-b-n {margin-right: 28px;}
..F0XO1GC-b-O .F0XO1GC-b-n ,body .F0XO1GC-b-n {margin-top: 8px; margin-right=
: 16px;}
..F0XO1GC-b-dc .F0XO1GC-b-n ,body .F0XO1GC-b-n {margin-right: 30px;}
..F0XO1GC-b-m {position: absolute; left: 50px; top: 40px; font-size: 10px; p=
adding: 1px;}
..F0XO1GC-b-X {color: rgb(102, 102, 102);}
..F0XO1GC-b-W {background-color: rgb(249, 237, 190); border-radius: 6px;}
..F0XO1GC-b-W a {color: rgb(34, 34, 34); padding: 7px;}
..F0XO1GC-b-N .F0XO1GC-b-m {left: 34px;}
..F0XO1GC-b-O .F0XO1GC-b-m ,body .F0XO1GC-b-m {font-size: 8px; left: 21px; t=
op: 31px;}
..F0XO1GC-b-dc .F0XO1GC-b-m ,body .F0XO1GC-b-m {left: 36px;}
..F0XO1GC-b-Yb {display: inline-block; font-size: 16px; line-height: 24px; f=
ont-weight: normal; color: rgb(34, 34, 34);}
..F0XO1GC-b-Yb:focus {outline: medium none;}
..F0XO1GC-b-xb {height: 16px; margin-top: 4px;}
..F0XO1GC-b-yb {margin-right: 10px;}
..F0XO1GC-b-Rb {height: 32px; position: relative;}
..F0XO1GC-b-E {padding: 16px 44px 16px 0px;}
..F0XO1GC-b-N .F0XO1GC-b-E {padding: 16px 28px 16px 0px;}
..F0XO1GC-b-O .F0XO1GC-b-E ,body .F0XO1GC-b-E {padding: 7px 16px 7px 0px;}
..F0XO1GC-b-dc .F0XO1GC-b-E ,body .F0XO1GC-b-E {padding-right: 30px;}
..F0XO1GC-b-t {font-weight: bold; white-space: nowrap; margin-right: 4px; ve=
rtical-align: middle;}
..F0XO1GC-b-Zb {display: inline-block; width: 17px; z-index: 10; cursor: poi=
nter; text-align: center; position: relative;}
..F0XO1GC-b-j {display: inline-block;}
..F0XO1GC-b-Y {cursor: pointer; position: absolute; right: 5px; top: 5px;}
..F0XO1GC-b-Bb {font-size: 11px; color: rgb(102, 102, 102);}
..F0XO1GC-b-Cb {color: rgb(102, 102, 102);}
..F0XO1GC-b-jb ,.F0XO1GC-b-Mb ,.F0XO1GC-b-sb {color: rgb(17, 85, 204); text-=
decoration: none; cursor: pointer; white-space: nowrap;}
..F0XO1GC-b-Mb {font-size: 11px;}
..F0XO1GC-b-sb {padding-left: 8px;}
..F0XO1GC-b-wb[role=3D"listbox"] {z-index: 10000;}
..F0XO1GC-b-k {padding-right: 18px;}
..F0XO1GC-b-nb {font-weight: bold; cursor: pointer;}
#gbar ,#guser {padding-top: 4px !important;}
#gbar {padding-left: 8px;}
#guser {padding-right: 5px;}
..gwt-PopupGlass ,.gwt-PopupPanelGlass ,.modal-dialog-bg {background-color: =
rgb(255, 255, 255); opacity: 0.75; z-index: 1020; position: absolute; top: =
0px; bottom: 0px; left: 0px; right: 0px;}
..gwt-PopupPanel ,.gwt-SuggestBoxPopup ,.modal-dialog ,.F0XO1GC-b-i {z-index=
: 1021;}
..gwt-SuggestBoxPopup ,.gwt-PopupPanel ,.modal-dialog {background: rgb(255, =
255, 255) none repeat scroll 0% 0%; transition: opacity 0.218s ease 0s;}
..gwt-SuggestBoxPopup ,.F0XO1GC-b-i {min-width: 384px; padding: 0px; box-sha=
dow: 0px 2px 4px rgba(0, 0, 0, 0.2);}
..gwt-PopupPanel ,.modal-dialog {box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.2)=
;}
..gwt-SuggestBoxPopup ,.gwt-PopupPanel ,.modal-dialog ,.F0XO1GC-b-i {outline=
: medium none; border: 1px solid rgb(204, 204, 204);}
..gwt-SuggestBoxPopup table {width: 100%;}
..gwt-SuggestBoxPopup .item {font-size: 13px; line-height: 30px; color: rgb(=
51, 51, 51); padding: 2px 44px 2px 16px;}
..gwt-SuggestBoxPopup .item-selected {background-color: rgb(238, 238, 238);}
..gwt-SuggestBoxPopup .menuSeparatorInner {height: 1px; background-color: rg=
b(235, 235, 235);}
..gux-comboPopup {z-index: 1022;}
..F0XO1GC-b-a {margin-right: 1em; cursor: pointer; padding: 4px 5px 4px 0px;=
display: inline-block; vertical-align: middle; color: rgb(102, 102, 102);}
..F0XO1GC-b-e {cursor: pointer; padding: 4px 5px 4px 0px; display: inline-bl=
ock; vertical-align: middle; color: rgb(102, 102, 102);}
..F0XO1GC-b-a:hover ,.F0XO1GC-b-e:hover {color: rgb(51, 51, 51);}
..F0XO1GC-b-a span ,.F0XO1GC-b-e span {white-space: nowrap; vertical-align: =
middle;}
..F0XO1GC-b-c {vertical-align: middle; margin-right: 2px; float: left; posit=
ion: relative; top: -2px; opacity: 0.667;}
..F0XO1GC-b-a:hover .F0XO1GC-b-c ,.F0XO1GC-b-e:hover .F0XO1GC-b-c {opacity: =
1;}
..F0XO1GC-b-d {padding-right: 1em;}
..F0XO1GC-b-b ,.F0XO1GC-b-b span {text-decoration: none; color: rgb(119, 119=
, 119);}
..F0XO1GC-b-Lb {height: 16px; width: 14px; overflow: hidden; background: rgb=
a(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCA=
YAAAAmlE46AAAAlklEQVR42mNQVFRcoKik+J8kDNTDQLImKKaaxgtKSkoNIAxkfwBhJP4FnBpBC=
higAKYBmU99jcDQ2qCgouCgoKBgAHMeGh9v4HwAKQQZgsZfgFejgrJCgIKSQgEKX1khgWbRQbxG=
sDOUFQ9A4w1VAUgcCwbpgYU2A1Qzsl8RkvgAksYPoABhIBbAnAsKegZSADjySdAEAJYO2XLdKlu=
NAAAAAElFTkSuQmCC") no-repeat scroll 0px 0px;}
..F0XO1GC-b-Db > a .F0XO1GC-b-Lb ,body > a .F0XO1GC-b-Lb {height: 16px; widt=
h: 14px; overflow: hidden; background: rgba(0, 0, 0, 0) url("data:image/png=
;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAAkUlEQVR42mO4722xAIj=
/k4gXMJChCYyppvHCfR+LBjD2tvgAxgj+BdwagQoYoACmAYVPfY3elhuAChzue1kZwJ2HyscbOB=
/ACkGGoPBRow1To69lAFBTAQrfyyKBZtFBgkaQM7wsDkDjDVUBSBw7TmCABzdEM7ImhCQ+gKTxA=
yhAGIgFcOcCg56BFACONxI0AQA7poY7kpopQwAAAABJRU5ErkJggg=3D=3D") no-repeat scr=
oll 0px 0px;}
..F0XO1GC-b-T {height: 13px; width: 13px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/gif;base64,R0lGODlhDQANAKIAAP///+/v7+vr68rKyr6=
+vpqammVlZQAAACH5BAEHAAMALAAAAAANAA0AAAM2ODpU/oWsUQK4N5RZrvkGsC0d9onNYwKhY4=
le7GBdiIml+GLCfKWQSO42UgxpnN2lNwFCJIsEADs=3D") no-repeat scroll 0px 0px; di=
splay: inline-block; margin-left: 4px;}
..gwt-HintingTextBox-hinting {color: rgb(136, 136, 136);}
..F0XO1GC-b-ab {color: rgb(170, 170, 170) !important;}
..F0XO1GC-b-tb {white-space: nowrap; display: inline;}
..F0XO1GC-b-U {color: red; vertical-align: baseline; font-size: 0.83em; posi=
tion: relative; top: -0.4em;}
..F0XO1GC-b-Kb {border: 0px none; overflow: hidden;}
..F0XO1GC-b-K {position: relative; top: -1px; border-style: solid dashed das=
hed; border-color: rgb(51, 102, 204) transparent transparent; display: inli=
ne-block; font-size: 0px; height: 0px; line-height: 0; width: 0px; border-w=
idth: 3px 3px 0px; padding-top: 1px; left: 4px;}
..F0XO1GC-b-x {text-align: center;}
..F0XO1GC-b-bc {width: 90%; left: 5% !important; z-index: 1020;}
..F0XO1GC-b-cc {color: rgb(255, 255, 255); background-color: rgb(0, 0, 0); o=
pacity: 0.9; border-radius: 10px; padding: 1em; width: 100%;}
..F0XO1GC-b-Qb {white-space: nowrap; padding: 0px 2px; font-size: 11px;}
..F0XO1GC-b-Qb img {position: relative; top: 1px; right: 2px; vertical-align=
: bottom;}
..F0XO1GC-b-l ,.F0XO1GC-b-qb {color: rgb(64, 178, 91);}
..F0XO1GC-b-L {color: rgb(238, 68, 68);}
..F0XO1GC-b-r {color: rgb(238, 68, 68); font-size: 13px;}
..F0XO1GC-b-s {font-size: 13px; padding-left: 2em;}
..F0XO1GC-b-S ,.F0XO1GC-b-fb ,.F0XO1GC-b-mb {color: rgb(238, 68, 68);}
..F0XO1GC-b-lb {display: inline-block;}
..F0XO1GC-b-lb img {vertical-align: bottom;}
..F0XO1GC-b-eb {border-top: 1px solid rgb(235, 235, 235); margin-top: 9px; m=
argin-bottom: 10px;}
..gux-comboPopup ,.ac-renderer {transition: opacity 0.218s ease 0s; box-shad=
ow: 0px 2px 4px rgba(0, 0, 0, 0.2);}
..gux-dropdown-c ,.ac-renderer {background-color: rgb(255, 255, 255); outlin=
e: 1px solid rgba(0, 0, 0, 0.2); padding: 6px 0px; white-space: nowrap;}
..gux-dropdown-c {box-shadow: none;}
..ac-renderer {position: absolute;}
..F0XO1GC-b-gb {padding-left: 32px !important;}
..gux-dropdown-c ,.ac-renderer {border: 1px solid rgb(204, 204, 204);}
..gux-combo-item ,.ac-renderer > div {display: block; padding: 6px 44px 6px =
16px; position: relative; color: rgb(51, 51, 51); font-size: 13px; font-wei=
ght: normal; cursor: pointer; line-height: 17px; transition: background 0.1=
3s ease 0s;}
..F0XO1GC-b-N .gux-combo-item ,.F0XO1GC-b-N .ac-renderer > div {padding: 4px=
28px 4px 16px;}
..F0XO1GC-b-O .gux-combo-item ,.F0XO1GC-b-O .ac-renderer > div ,body .gux-co=
mbo-item ,body .ac-renderer > div {padding: 2px 16px;}
..F0XO1GC-b-dc .gux-combo-item ,.F0XO1GC-b-dc .ac-render > div ,body .gux-co=
mbo-item ,body .ac-render > div {padding-right: 30px;}
..gux-combo-item:focus {outline: medium none !important;}
..gux-combo-item img {opacity: 0.667;}
..gux-combo-item:hover img {opacity: 1;}
..gux-combo-item-selected ,.gux-combo-item-selection ,.ac-active {background=
-color: rgb(241, 241, 241); color: rgb(34, 34, 34); outline: medium none !i=
mportant;}
..gux-combo-item-separator {border-top: 1px solid rgb(235, 235, 235); margin=
-top: 6px; margin-bottom: 6px;}
..gux-combo-item-disabled {color: rgb(153, 153, 153);}
..gux-combo-item-disabled img {opacity: 0.667;}
..F0XO1GC-b-J {overflow: hidden; background: rgba(0, 0, 0, 0) url("data:imag=
e/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAYAAAAvZezQAAAAIklEQVR42mOIjI=
z8z4AMQAIogjABuCCyAFgQpwoUM5AtAQDYECCh1fwQRAAAAABJRU5ErkJggg=3D=3D") no-rep=
eat scroll 0px 0px; display: inline-block; width: 5px; height: 7px; transit=
ion: all 0.218s ease 0s; transform: rotate(90deg); opacity: 0.8;}
..F0XO1GC-b-Db .F0XO1GC-b-J ,body .F0XO1GC-b-J {height: 7px; width: 4px; ove=
rflow: hidden; background: rgba(0, 0, 0, 0) url("data:image/png;base64,iVBO=
Rw0KGgoAAAANSUhEUgAAAAQAAAAHCAYAAAAvZezQAAAAIklEQVR42mO46235nwEZgARQBGECcEF=
kAbAgThUoZiBbAgAyXiYBmRq/2AAAAABJRU5ErkJggg=3D=3D") no-repeat scroll 0px 0p=
x;}
..F0XO1GC-b-C .F0XO1GC-b-J {transform: rotate(0deg);}
..F0XO1GC-b-C .F0XO1GC-b-J {transform: rotate(0deg);}
..F0XO1GC-b-C .F0XO1GC-b-J {transform: rotate(0deg);}
..F0XO1GC-b-C .F0XO1GC-b-J { }
..F0XO1GC-b-F {overflow-y: scroll !important;}
..F0XO1GC-b-G {padding-right: 28px;}
..F0XO1GC-b-N .F0XO1GC-b-G {padding-right: 12px;}
..F0XO1GC-b-O .F0XO1GC-b-G ,body .F0XO1GC-b-G {padding-right: 0px;}
..F0XO1GC-b-dc .F0XO1GC-b-G ,body .F0XO1GC-b-G {padding-right: 14px;}
..F0XO1GC-b-ob {padding: 16px 28px 16px 0px;}
..F0XO1GC-b-N .F0XO1GC-b-ob {padding: 16px 12px 16px 0px;}
..F0XO1GC-b-O .F0XO1GC-b-ob ,body .F0XO1GC-b-ob {padding: 7px 0px;}
..F0XO1GC-b-v {position: absolute; right: 44px; top: 3px; font-size: 11px; c=
olor: rgb(136, 136, 136);}
..F0XO1GC-b-v a ,.F0XO1GC-b-v a:visited {color: rgb(136, 170, 238);}
..F0XO1GC-b-v a:hover {color: rgb(17, 85, 204);}
..F0XO1GC-b-Ab {position: relative;}
..F0XO1GC-b-Nb ,.F0XO1GC-b-Nb .F0XO1GC-b-q {background-color: rgb(245, 245, =
245);}
..gwt-TabBar {border-bottom: 1px solid rgb(204, 204, 204);}
..gwt-TabBarItem {min-width: 54px; text-align: center; color: rgb(102, 102, =
102); font-size: 11px; font-weight: bold; height: 27px; padding: 0px 8px; l=
ine-height: 27px; margin-bottom: -1px; border: 1px solid transparent; curso=
r: default; border-top-left-radius: 2px; border-top-right-radius: 2px;}
..gwt-TabBarItem:hover {color: rgb(34, 34, 34);}
..gwt-TabBarItem:focus {outline: medium none; color: rgb(51, 51, 51);}
..gwt-TabBarItem:active {color: rgb(51, 51, 51);}
..gwt-TabBarItem-selected {color: rgb(32, 32, 32); background-color: rgb(255=
, 255, 255); border-width: 1px; border-style: solid; border-color: rgb(204,=
204, 204) rgb(204, 204, 204) rgb(255, 255, 255); -moz-border-top-colors: n=
one; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-=
border-left-colors: none; border-image: none;}
..gwt-TabBarFirst-wrapper {display: none;}
..gwt-ScrollTable td {height: 40px; line-height: 40px; padding: 0px 8px; bor=
der-bottom: 1px solid rgb(235, 235, 234); overflow: hidden; text-overflow: =
ellipsis; white-space: nowrap;}
..F0XO1GC-b-N .gwt-ScrollTable td {height: 34px; line-height: 34px;}
..F0XO1GC-b-O .gwt-ScrollTable td ,body .gwt-ScrollTable td {height: 30px; l=
ine-height: 30px;}
..gwt-ScrollTable .headerTable td {color: rgb(102, 102, 102); cursor: defaul=
t; border-bottom: 1px solid rgb(204, 204, 204);}
..gwt-ScrollTable .headerTable td:hover {color: rgb(34, 34, 34);}
..gwt-ScrollTable .headerTable td:active {color: rgb(51, 51, 51);}
..F0XO1GC-b-P {padding: 12px;}
..F0XO1GC-b-zb {position: absolute; left: -10000px;}
..F0XO1GC-b-u {display: block;}
..F0XO1GC-b-kb {height: 16px; width: 16px; overflow: hidden; background: rgb=
a(0, 0, 0, 0) url("data:image/gif;base64,R0lGODlhEAAQAPeQANHR0fX19aampvDw8O=
/v7+zs7CgoKGBgYPf395iYmMPDw4CAgDMzM8LCwtbW1vv7+4SEhIWFhbe3t6Ojo25ubltbW+vr6=
+fn51paWjs7O0VFRXx8fKKiopubm7m5uUNDQ97e3pKSkqqqqvHx8W1tbc3NzTk5OYyMjEtLS4+P=
jzAwMKSkpO3t7ebm5ri4uG9vb5qamlhYWAkJCcjIyMzMzBgYGAUFBUpKStPT0zExMWRkZLq6ur6=
+vq+vr09PTzY2NgEBAfr6+vT09BkZGR0dHUdHR1ZWVmdnZ8/Pz9nZ2RYWFlNTU7a2tpmZma2trZ=
GRkUZGRsTExOPj4729vaioqAICAk1NTeDg4KmpqaGhoenp6SkpKcXFxR4eHtzc3EhISKCgoO7u7=
rKysl5eXp6eni8vL7W1tSMjI1JSUsfHx3p6eioqKiEhIeHh4T09PVBQUOXl5bOzs0lJSc7OzsrK=
ymZmZvPz88vLy2hoaEFBQT8/P3t7e9/f3z4+PpeXlx8fHxAQEAgICMbGxqysrOrq6jo6OvLy8tv=
b20BAQFVVVdTU1OLi4qurq8HBwf39/QAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAACQACwAAAAA=
EAAQAAAIfgAhCRzogYGJBgMTQoqy4A4kA48eZVAoUFCZR3kOqYioAZKjAY4GRogoI4GCDyhKQAo=
ggMBABz6GjGlBMUDIgYR6FKCoEEGHCQ94KkwRkYNQSAAaQRr5KMHRpJAKnAgx4qjVq44CCLWZkI=
AArQpZuhz48SYAAALLHm2k9OrVgAAh+QQJAACQACwAAAAAEAAQAAAIfgAhCRzoAMMBEAMTKqzw6=
BGFIGCWCAgyMA0FGoZINNzwRMkjJVgGxnj0RsKFBRAsGGj46MBAMVDMWEiYZQ2QLRIGXsBSQCEk=
EVZ2+BzqsxEAogIBNBJoFCkkpU6jShXoKADRAI4SEhBgVWEAAQQSOhqQ9elRSGPLDm20dCrSgAA=
h+QQJAACQACwAAAAAEAAQAAAIfQAhCRyIoMOEBwMTKkzx6BEHSA0WzEnoaIAjSBEaJqDz41EhRQ=
MJCAgAqcCJECP2VGkIY6Ajkgq9GKmBgY/Cm5C09GCBE6cHBiYaQGoEoCckAw0zDC3aU0VDDUYHK=
viAokTUni97BrgYcuTNAAIIULQoEADTilxxNmp0tW1AACH5BAkAAJAALAAAAAAQABAAAAh+ACEJ=
HEiwoEGBjRodFOhogCOBAABAYqHgBRKCBAQEKLiizyM8BB1tLCiFSpEpCwu2EFEgZUEHGA6AgNR=
I4sIKjx5RoGnzIImcG1wKvLAAggWhMHKsCDmS4BM2j7qIGJixqUADOR8dGNjwIaSIkLIQeXRGws=
KEAgcdceFVKMGAACH5BAkAAJAALAAAAAAQABAAAAh9ACEJHEiwoEGBjRodFOhogCOBAAAwdEiQg=
IAABgMIIEDQEcaDAR4uHElSIIIOEx5AaiRxYYpHjzisbHkwAswEJSEVOBFiRMkoL3B0/Ehwhp5A=
iIQKtIjRAwMTDdRUgdlkYMOHBmBmuILGRqJFB1XA1ADpihM4CxV8QFHCYEAAIfkECQAAkAAsAAA=
AABAAEAAACHsAIQkcSLCgQYGNGh0U6GiAI4EAADB0SJCAgAAGAwggQNARxoMBHi4cSfJgI4kjAS=
iEdJKkypILE+RYYdDODiEDYQx5ZEAAwTA8YtAYeOORUSgOMBwAMcHNozoDBdR4tEVCBaMUWsTRo=
WDgA0ZHJEAiYXQDzAsLIFgwGBAAIfkECQAAkAAsAAAAABAAEAAACH0AIQkcSLCgQYGNGh0U6GiA=
I4EAADB0SJCAgAAGAwggQNARxoMBHi4c6YGBiQYjBxp49CjDSAAKVbDU8FKhgg8oSqQkOOMFkp2=
QuPyQ8SVJRpGQILCU4QdBhwkPIGnkKDCJHBsVtKRgyQFSQ6SQ2jiRAikCywRAC5wIMcJgQAAh+Q=
QFAACQACwAAAAAEAAQAAAIfAAhCRxIsKBABGSWUHEEqVEjgwKbAHpERAAkAAAEOhrAUOCNRyCLF=
AwggMBAAX+AMHBhMEBHgSKsMIFI0AGGAyBoEqwAkoJOAA9JgNzw8+GFBRAs6Cw4wAWCpQMbGZkh=
pOVLSDEe+ZhJkKTJgVN08GBxMSOkjVcLOoTKNiAAOw=3D=3D") no-repeat scroll 0px 0px=
;}
..F0XO1GC-b-A {padding-left: 8px;}
..gux-combo-item .F0XO1GC-b-A {padding-left: 21px;}
..F0XO1GC-b-z {height: 21px; width: 21px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAY=
AAACpF6WWAAAAjElEQVR42mNgGAWDFUgCMTs1DTQH4klA7EwtA+2BeAkQR1HLwEAgngnEZUDMRK=
lhrECcDjUwhxqu4wbiSqiBpVALSAJTgNgfiFmgfDEgboYaWAfEnOS4yhFqQBUQWwBxH5QPMpiXE=
u+mQg2C4U4gFqI0DEFebIIa2APE0tRKOrJQAxWonQ05R0uiYQgAWowSH34q/8EAAAAASUVORK5C=
YII=3D") no-repeat scroll 0px 0px; position: relative; display: inline-bloc=
k; top: 5px; left: 3px;}
..gux-combo-item .F0XO1GC-b-z {top: -4px; left: -8px; vertical-align: bottom=
; height: 15px;}
..F0XO1GC-b-B {overflow-y: hidden !important;}
..F0XO1GC-b-B:hover {overflow-y: auto;}
input.F0XO1GC-b-hb {border: 1px solid rgb(221, 75, 57) !important; color: r=
gb(221, 75, 57) !important;}
..F0XO1GC-b-Q ,.F0XO1GC-b-Q strong {color: rgb(221, 75, 57);}
..F0XO1GC-b-f {cursor: pointer;}
..F0XO1GC-b-f img {opacity: 0.667; margin: 12px 6px 11px;}
..F0XO1GC-b-f:hover img {opacity: 1;}
..F0XO1GC-b-i .popupContent {margin: 12px;}
..F0XO1GC-b-i label {display: block; margin-bottom: 4px; color: rgb(102, 102=
, 102);}
..F0XO1GC-b-i input[type=3D"text"] {height: 24px; line-height: 24px; width: =
99%;}
..F0XO1GC-b-g {position: absolute; right: 14px; bottom: 18px;}
..F0XO1GC-b-h {margin-bottom: 8px;}
..datePicker {padding: 16px; outline: 1px solid rgba(0, 0, 0, 0.2); opacity:=
0; width: 144px; position: absolute; left: -9999px; top: 6px; z-index: 3; =
background: rgb(255, 255, 255) none repeat scroll 0% 0%; box-shadow: 0px 2p=
x 4px rgba(0, 0, 0, 0.2); border-radius: 2px; transition: all 0.13s linear =
0s;}
..dateBoxPopup {background-color: white; z-index: 1023;}
..gwt-DatePicker {border: 1px solid rgb(162, 187, 221); cursor: default;}
..gwt-DatePicker td ,.datePickerMonthSelector td:focus {outline: medium none=
;}
..datePickerDays {width: 100%; background: white none repeat scroll 0% 0%;}
..datePickerWeekendLabel ,.datePickerWeekdayLabel {min-width: 20px; width: 2=
0px; height: 20px; line-height: 20px; padding-left: 3px; padding-right: 3px=
; font-size: 11px; text-align: center; color: rgb(102, 102, 102); cursor: d=
efault;}
..datePickerDay {min-width: 20px; width: 20px; height: 20px; line-height: 20=
px; padding-left: 3px; padding-right: 3px; font-size: 11px; text-align: cen=
ter; color: rgb(102, 102, 102); cursor: pointer;}
..datePickerDayIsToday {border: 1px solid black;}
..datePickerDayIsFiller {color: rgb(204, 204, 204);}
..datePickerDayIsValue {background: rgb(170, 204, 238) none repeat scroll 0%=
0%;}
..datePickerDayIsDisabled {color: rgb(170, 170, 170); font-style: italic;}
..datePickerDayIsHighlighted ,.datePickerPreviousButton-up-hovering ,.datePi=
ckerNextButton-up-hovering {background: rgb(238, 238, 238) none repeat scro=
ll 0% 0%; color: rgb(51, 51, 51);}
..datePickerDayIsValueAndHighlighted {background: rgb(187, 221, 217) none re=
peat scroll 0% 0%;}
..datePickerMonthSelector {width: 100%;}
td.datePickerMonth {text-align: center; white-space: nowrap; font-size: 13p=
x; color: rgb(102, 102, 102); padding-left: 4px;}
..datePickerPreviousButton ,.datePickerNextButton {font-size: 120%; line-hei=
ght: 1em; cursor: pointer; padding: 0px 4px;}
..F0XO1GC-b-pb { }
..F0XO1GC-b-rb {position: absolute; left: -10000px; top: auto; width: 1px; h=
eight: 1px; overflow: hidden;}
..iph-dialog {z-index: 1010 !important;}
..F0XO1GC-b-H {background-color: rgb(255, 255, 255);}
..F0XO1GC-b-Vb {z-index: 1999;}
..F0XO1GC-b-Vb > div {background-color: rgb(125, 164, 253) !important; borde=
r: 1px solid rgb(125, 164, 253) !important;}
..F0XO1GC-b-bb {height: 16px; width: 16px; overflow: hidden; background: rgb=
a(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCA=
IAAACQkWg2AAAAqklEQVQoz2P4TyJgoIKGCZu2IyN8GiAqfqICNG0MyKohKp5+Q0FAcPXlW7ged=
A1AFXuuPU2YsB2Cbr37AhQ5+fAxuga4aiACqlt+/BaQUb/8GJANETx46w5ED0LDvbfvkV0CNBtZ=
w6azF9E13HjxElk1xElwESwaTtx/BJdGU41dw56rN9HCB58GqKvevMNqA1w1ugagBBBhmo1dAzy=
mISrgCGdMk5OWiAEA3zqvClm2uDoAAAAASUVORK5CYII=3D") no-repeat scroll 0px 0px;=
display: inline-block; position: relative; top: 3px; left: 3px;}
..F0XO1GC-b-db {background-color: rgba(255, 255, 255, 0); outline-style: non=
e; box-shadow: 0px 0px rgba(255, 255, 255, 0);}
..F0XO1GC-b-cb {overflow: hidden; padding: 10px; background-color: rgb(249, =
237, 190); border: 1px solid rgb(240, 195, 109); border-radius: 10px;}
..F0XO1GC-b-vb {margin-right: 15px;}
..F0XO1GC-b-Ub {font-weight: bold; color: rgb(119, 119, 119); margin: 10px;}
..F0XO1GC-b-ub {font-style: italic;}
..F0XO1GC-d-C {cursor: pointer; font-size: 13px; display: block;}
..F0XO1GC-d-x {position: relative; margin: 0px;}
..F0XO1GC-d-y {padding: 16px 0px 16px 28px;}
..F0XO1GC-b-N .F0XO1GC-d-y {padding: 16px 0px 16px 12px;}
..F0XO1GC-b-O .F0XO1GC-d-y ,body .F0XO1GC-d-y {padding: 7px 0px;}
..F0XO1GC-b-dc .F0XO1GC-d-y ,body .F0XO1GC-d-y {padding-left: 14px;}
..F0XO1GC-d-w {font-size: 13px; padding: 0px; margin: 0px; position: relativ=
e;}
..F0XO1GC-d-b {padding-bottom: 5px;}
..F0XO1GC-d-w div a {display: block; overflow: hidden; white-space: nowrap; =
text-decoration: none; color: rgb(51, 51, 51); cursor: pointer; font-size: =
13px; line-height: 30px; padding-left: 16px;}
..F0XO1GC-d-C a ,.F0XO1GC-d-C a:visited {display: block; overflow: hidden; p=
osition: relative; white-space: nowrap; text-decoration: none; color: rgb(5=
1, 51, 51); cursor: pointer; font-size: 13px; line-height: 30px; padding-le=
ft: 16px;}
..F0XO1GC-b-N .F0XO1GC-d-w div a ,.F0XO1GC-b-N .F0XO1GC-d-C a {line-height: =
24px;}
..F0XO1GC-b-O .F0XO1GC-d-w div a ,.F0XO1GC-b-O .F0XO1GC-d-C a ,body .F0XO1GC=
-d-w div a ,body .F0XO1GC-d-C a {line-height: 20px;}
..F0XO1GC-d-B ,.F0XO1GC-d-B .F0XO1GC-d-B {margin-left: 12px;}
..F0XO1GC-d-B .F0XO1GC-d-m a {padding-left: 4px;}
..F0XO1GC-d-w div a {position: relative;}
..F0XO1GC-d-d {position: absolute; top: 5px; bottom: 5px; left: 0px; right: =
0px;}
..F0XO1GC-d-w div.F0XO1GC-d-m a:hover ,.F0XO1GC-d-w div.F0XO1GC-d-c a:hover =
{color: rgb(34, 34, 34); background-color: rgb(238, 238, 238);}
..F0XO1GC-b-Db > div > a span ,.F0XO1GC-b-Db > a span ,body > div > a span ,=
body > a span {color: rgb(209, 72, 54);}
..F0XO1GC-b-Z {background-color: rgb(238, 238, 238);}
..F0XO1GC-d-w div.F0XO1GC-d-c {cursor: default;}
..F0XO1GC-b-C .F0XO1GC-d-B {display: none;}
..F0XO1GC-d-p {display: block; overflow: hidden; text-overflow: ellipsis; pa=
dding-left: 12px;}
..F0XO1GC-d-p > h3 {display: inline;}
..F0XO1GC-d-p > * {font-size: 13px;}
..F0XO1GC-d-c > a .F0XO1GC-d-p {cursor: default;}
..F0XO1GC-d-w div.F0XO1GC-d-t > a .F0XO1GC-d-p {padding-left: 0px;}
..F0XO1GC-d-B div.F0XO1GC-d-t > a .F0XO1GC-d-p {padding-left: 4px;}
..F0XO1GC-d-g {vertical-align: middle; line-height: 1px; cursor: default;}
..F0XO1GC-d-g span {cursor: default;}
..F0XO1GC-d-D {display: inline-block; width: 17px; height: 20px; position: a=
bsolute; top: 4px; left: 0px; margin-left: -1px; z-index: 10; cursor: point=
er; text-align: center;}
..F0XO1GC-d-D:hover {background-color: rgb(238, 238, 238);}
..F0XO1GC-b-N .F0XO1GC-d-D {top: 2px;}
..F0XO1GC-b-O .F0XO1GC-d-D ,body .F0XO1GC-d-D {top: 0px;}
..F0XO1GC-d-e {height: 16px; width: 16px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAY=
AAAAf8/9hAAAAKUlEQVR42mNgoBQoKin+x4HfKygoGFBiAHGGEDCAIB41YNSA4WIApQAAAJwgHb=
r2Zo8AAAAASUVORK5CYII=3D") no-repeat scroll 0px 0px;}
..F0XO1GC-b-Db .F0XO1GC-d-e ,body .F0XO1GC-d-e {height: 16px; width: 16px; o=
verflow: hidden; background: rgba(0, 0, 0, 0) url("data:image/png;base64,iV=
BORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKklEQVR42mNgoBTc97b4jx2bv7/vZ=
WVAgQFEGoLfAMJ41IBRA4aLAZQCAIrl74OY+yI3AAAAAElFTkSuQmCC") no-repeat scroll =
0px 0px;}
..F0XO1GC-d-t .F0XO1GC-d-e {display: none;}
..F0XO1GC-d-t > div > a .F0XO1GC-d-p {padding-left: 0px;}
..F0XO1GC-d-z {height: 15px; width: 15px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAY=
AAAA71pVKAAAAsUlEQVR42q2SARHCMAxFKwEJ+RlCkIAEpCABCUiYBCRMQiXUQUlKAr1jWW93y9=
2/rV3z8pc0pZUgolPaE8x8B6OIqqno3hAkBxdPAPBsYmTbW0KAVayY8OoP6btBqj6jqmq1RHR3E=
CXH5M4ZnelyeLLaziPbq9+F/IiqDxvWuvobVVabZjV/Zw7MNNE1BniVXp+Zz74WwG3zwmhjmuwf=
tWIPHAL+gJJwKCDtDQfohHT9BkZLZOpNaW74AAAAAElFTkSuQmCC") no-repeat scroll 0px=
0px;}
..F0XO1GC-b-Db .F0XO1GC-d-z ,body .F0XO1GC-d-z {height: 15px; width: 15px; o=
verflow: hidden; background: rgba(0, 0, 0, 0) url("data:image/png;base64,iV=
BORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAr0lEQVR42mNgwALuBzgIMJAC7vtYN=
Nz3tvgAxP+h+ANYjJBBQIUX4Bq8LRZA8QOo2AWcBkBt/H/fy+IAsiIQG2oIyIAFuGz9AMY4TIe5=
AJdm3CYju8zHwoHqmj+AnUbA2Vjl73tZTsBlO+EAg4QqLKoegJ0JceoDRJxbbrjvaxmAz4AFSAk=
EhheANcL4XhYJhFKaAxhD/QiyEcVAQgZghotFAlUNYCAVwA0AxhCIDwC5ScL3UWrGqQAAAABJRU=
5ErkJggg=3D=3D") no-repeat scroll 0px 0px;}
..F0XO1GC-d-i {position: absolute; top: 7px; opacity: 0.7; left: 4px;}
..F0XO1GC-b-N .F0XO1GC-d-i {top: 4px;}
..F0XO1GC-b-O .F0XO1GC-d-i ,body .F0XO1GC-d-i {top: 2px;}
..F0XO1GC-d-w div.F0XO1GC-d-m a:hover .F0XO1GC-d-i ,.F0XO1GC-d-f:hover .F0XO=
1GC-d-i ,.F0XO1GC-b-Db .F0XO1GC-d-i ,body .F0XO1GC-d-i {opacity: 1;}
..F0XO1GC-d-f .F0XO1GC-d-i {left: 16px;}
..F0XO1GC-d-m ,.F0XO1GC-d-c {position: relative;}
..F0XO1GC-d-q {padding-right: 20px;}
..F0XO1GC-d-n {display: block; float: right; position: relative; top: 7px; m=
argin-left: 3px; font-size: 11px; color: rgb(102, 102, 102) !important; bac=
kground-color: rgb(238, 238, 238); padding: 2px 3px; line-height: 12px; fon=
t-weight: normal;}
..F0XO1GC-b-N .F0XO1GC-d-n {top: 5px;}
..F0XO1GC-b-O .F0XO1GC-d-n ,body .F0XO1GC-d-n {top: 2px;}
..F0XO1GC-d-m a:hover .F0XO1GC-d-n ,.F0XO1GC-d-c a:hover .F0XO1GC-d-n {backg=
round-color: rgb(204, 204, 204); color: rgb(51, 51, 51) !important;}
..F0XO1GC-d-j {display: none;}
..F0XO1GC-d-m:hover .F0XO1GC-d-j ,.F0XO1GC-d-f:hover .F0XO1GC-d-j ,.F0XO1GC-=
d-a {display: inline;}
..F0XO1GC-d-m .F0XO1GC-d-v ,.F0XO1GC-d-c .F0XO1GC-d-v {top: 8px; right: 3px;=
z-index: 2; position: absolute; height: 13px; width: 13px; overflow: hidde=
n;}
..F0XO1GC-b-N .F0XO1GC-d-m .F0XO1GC-d-v ,.F0XO1GC-b-N .F0XO1GC-d-c .F0XO1GC-=
d-v {top: 6px;}
..F0XO1GC-b-O .F0XO1GC-d-m .F0XO1GC-d-v ,.F0XO1GC-b-O .F0XO1GC-d-c .F0XO1GC-=
d-v ,body .F0XO1GC-d-m .F0XO1GC-d-v ,body .F0XO1GC-d-c .F0XO1GC-d-v {top: 4=
px;}
..F0XO1GC-d-v input {border: 0px none; padding: 0px; outline: medium none;}
a.F0XO1GC-d-u {height: 13px; width: 13px; overflow: hidden; background: rgb=
a(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCA=
YAAABy6+R8AAAAN0lEQVR42mN49+7d/6dPnxKNQeoZQAxSAEj9UNJ05swZnBivTfg04HUeLg0E/=
YRNw1AJcnLSHgATt4m3KInFEAAAAABJRU5ErkJggg=3D=3D") no-repeat scroll 0px 0px;=
}
a.F0XO1GC-d-u:hover ,.F0XO1GC-d-a a.F0XO1GC-d-u {height: 13px; width: 13px;=
overflow: hidden; background: rgba(0, 0, 0, 0) url("data:image/png;base64,=
iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAOklEQVR42mO4fv36/2PHjhGNQeo=
ZQIx3794RjUHqh5KmyMhInBivTfg04HUeLg0E/YRNw1AJcnLSHgBW6U4stsXoZgAAAABJRU5Erk=
Jggg=3D=3D") no-repeat scroll 0px 0px;}
a.F0XO1GC-d-u {display: inline-block; padding: 0px !important;}
..F0XO1GC-d-E {font-weight: bold;}
..F0XO1GC-d-r {padding: 4px 8px;}
..F0XO1GC-d-r div {background-color: rgb(249, 237, 190); border: 2px solid r=
gb(249, 237, 190); color: rgb(34, 34, 34); padding: 4px; line-height: 16px;=
border-radius: 6px; text-align: center;}
div.dragdrop-dropTarget-engage .F0XO1GC-d-g {border: 1px solid red;}
..dragdrop-flow-panel-positioner {display: block; height: 2px; background-co=
lor: rgb(34, 34, 34); vertical-align: baseline !important;}
..F0XO1GC-d-f {position: relative; outline-style: none;}
..dragdrop-dropTarget-engage > .F0XO1GC-d-f a {background-color: rgb(136, 13=
6, 136);}
..F0XO1GC-d-s div.dragdrop-dropTarget-engage {border: 2px solid rgb(34, 34, =
34);}
..F0XO1GC-d-l {outline-style: none; margin-bottom: 9px;}
..F0XO1GC-d-h {font-size: 11px; color: rgb(68, 68, 68); text-align: center; =
padding: 16px 0px 20px 16px;}
..F0XO1GC-d-h a {white-space: nowrap;}
..F0XO1GC-d-h a:visited {color: rgb(17, 85, 204);}
..F0XO1GC-d-F {background-color: rgb(250, 250, 210) !important;}
..F0XO1GC-d-k {border-top: 1px solid rgb(235, 235, 235); margin-top: 4px; ma=
rgin-bottom: 10px;}
..F0XO1GC-c-d {color: rgb(184, 184, 184);}
..F0XO1GC-c-a {color: rgb(17, 85, 204); text-decoration: none; cursor: point=
er; white-space: nowrap;}
..F0XO1GC-c-b ,.F0XO1GC-c-b:visited ,.F0XO1GC-c-b:focus {color: rgb(184, 184=
, 184); text-decoration: none; cursor: text; outline: medium none;}
..F0XO1GC-A-a {position: relative; top: 3px; height: 15px; width: 15px;}
..F0XO1GC-w-a {width: 100%; margin-right: 0px; height: 8px; position: absolu=
te; top: 0px; left: 0px; opacity: 0; border-top: 1px solid rgb(235, 235, 23=
5);}
..F0XO1GC-m-c {text-align: left; border-bottom: 1px solid rgb(153, 153, 153)=
; font-size: 150%; padding-bottom: 4px;}
..F0XO1GC-m-g .F0XO1GC-m-d {width: 100%;}
..F0XO1GC-m-d th {text-align: left; padding-top: 16px;}
..F0XO1GC-m-d .F0XO1GC-m-a {vertical-align: top;}
..F0XO1GC-m-d .F0XO1GC-m-e {text-align: right; font-weight: bold; white-spac=
e: nowrap; padding-right: 0.3em;}
..F0XO1GC-m-d .F0XO1GC-m-b {font-size: 70%;}
..F0XO1GC-m-d .F0XO1GC-m-f {text-align: left;}
..F0XO1GC-m-g .F0XO1GC-m-a {width: 50%;}
..F0XO1GC-m-g .F0XO1GC-m-e ,.F0XO1GC-m-g th {color: rgb(221, 221, 0);}
..F0XO1GC-m-g .F0XO1GC-m-b ,.F0XO1GC-m-g td {color: rgb(255, 255, 255);}
..F0XO1GC-m-g th {font-weight: bold; padding: 16px 4px 4px;}
..F0XO1GC-m-g td {padding: 4px;}
..F0XO1GC-n-a {cursor: pointer; font-size: 11px; font-weight: bold; text-ali=
gn: center; margin-right: 16px; white-space: nowrap; height: 27px; line-hei=
ght: 27px; min-width: 54px; outline: 0px none; padding: 0px 8px; border-rad=
ius: 2px; display: inline-block;}
..F0XO1GC-c-c .F0XO1GC-n-a {min-width: 26px !important; margin-right: 10px;}
..chrome-theme .F0XO1GC-n-a {border-radius: 3px; font-size: 12px; font-weigh=
t: 700; padding: 0px 17px; text-align: center; text-decoration: none !impor=
tant;}
..F0XO1GC-n-a:hover {border: 1px solid rgb(198, 198, 198); box-shadow: 0px 1=
px 1px rgba(0, 0, 0, 0.1);}
..chrome-theme .F0XO1GC-n-a:hover {box-shadow: none;}
..F0XO1GC-n-j {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;}
..F0XO1GC-n-a img.F0XO1GC-n-d {vertical-align: middle; margin-top: -2px; opa=
city: 0.667;}
..F0XO1GC-n-j img.F0XO1GC-n-d ,.F0XO1GC-n-c img.F0XO1GC-n-d ,.F0XO1GC-n-a:ho=
ver img.F0XO1GC-n-d {opacity: 1;}
..F0XO1GC-n-h {min-width: 34px; padding: 0px 4px;}
..F0XO1GC-n-b {cursor: default; opacity: 0.5; pointer-events: none;}
..F0XO1GC-n-f {border-right-color: transparent; margin-right: 0px;}
..F0XO1GC-n-g {border-radius: 0px; margin-left: -1px; margin-right: -1px;}
..F0XO1GC-n-i {border-left-color: transparent; margin-left: 0px;}
..F0XO1GC-n-f {border-radius: 2px 0px 0px 2px;}
..F0XO1GC-n-f { }
..F0XO1GC-n-f {border-radius: 2px 0px 0px 2px;}
..F0XO1GC-n-i {border-radius: 0px 2px 2px 0px;}
..F0XO1GC-n-i { }
..F0XO1GC-n-i {border-radius: 0px 2px 2px 0px;}
..F0XO1GC-n-i {margin-left: -1px;}
..chrome-theme .F0XO1GC-n-f {border-radius: 3px 0px 0px 3px;}
..chrome-theme .F0XO1GC-n-f { }
..chrome-theme .F0XO1GC-n-f {border-radius: 3px 0px 0px 3px;}
..chrome-theme .F0XO1GC-n-i {border-radius: 0px 3px 3px 0px;}
..chrome-theme .F0XO1GC-n-i { }
..chrome-theme .F0XO1GC-n-i {border-radius: 0px 3px 3px 0px;}
..chrome-theme .F0XO1GC-n-i {margin-left: -1px;}
..jfk-button-standard {color: rgb(102, 102, 102); border: 1px solid rgba(0, =
0, 0, 0.1); background-color: rgb(245, 245, 245); background-image: -moz-li=
near-gradient(center top , rgb(245, 245, 245), rgb(241, 241, 241));}
..jfk-button-standard:hover {border: 1px solid rgb(198, 198, 198); color: rg=
b(51, 51, 51); background-color: rgb(248, 248, 248); background-image: -moz=
-linear-gradient(center top , rgb(248, 248, 248), rgb(241, 241, 241));}
..jfk-button-standard:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) ins=
et;}
..jfk-button-standard:focus {outline: medium none; border: 1px solid rgb(77,=
144, 254); z-index: 4;}
..chrome-theme .jfk-button-standard:focus {border: 1px solid rgb(170, 170, 1=
70);}
..jfk-button-standard.F0XO1GC-n-j {background-color: rgb(238, 238, 238); bor=
der: 1px solid rgb(204, 204, 204); color: rgb(51, 51, 51); background-image=
: -moz-linear-gradient(center top , rgb(238, 238, 238), rgb(224, 224, 224))=
;}
..jfk-button-standard.F0XO1GC-n-b {background: rgb(255, 255, 255) none repea=
t scroll 0% 0%; border: 1px solid rgba(0, 0, 0, 0.05); color: rgb(184, 184,=
184);}
..F0XO1GC-k-b {height: 4px; width: 7px; overflow: hidden; background: rgba(0=
, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAA=
ABCxiV9AAAAG0lEQVR42mOIjIz8jwszgABOCRjAKYGsAJkPAKT/IKHcRfUJAAAAAElFTkSuQmCC=
") no-repeat scroll 0px 0px; display: inline-block; margin-left: 7px; margi=
n-bottom: 1px; opacity: 0.8;}
..F0XO1GC-k-c:hover .F0XO1GC-k-b {opacity: 1;}
..F0XO1GC-f-F ,.F0XO1GC-f-x {position: relative;}
..F0XO1GC-f-q {height: 68px; background-color: rgb(245, 245, 245); padding: =
0px 44px; vertical-align: middle; border-top: 1px solid rgb(229, 229, 229);=
border-bottom: 1px solid rgb(229, 229, 229); position: relative;}
..F0XO1GC-b-N .F0XO1GC-f-q {padding: 0px 28px;}
..F0XO1GC-b-O .F0XO1GC-f-q ,body .F0XO1GC-f-q {height: 44px; padding: 0px 16=
px;}
..F0XO1GC-b-dc .F0XO1GC-f-q ,body .F0XO1GC-f-q {padding-right: 30px; padding=
-left: 30px;}
..F0XO1GC-f-p {position: absolute; left: 44px;}
..F0XO1GC-b-N .F0XO1GC-f-p {left: 28px;}
..F0XO1GC-b-O .F0XO1GC-f-p ,body .F0XO1GC-f-p {left: 16px; height: 60px; top=
: -7px;}
..F0XO1GC-b-dc .F0XO1GC-f-p ,body .F0XO1GC-f-p {left: 30px;}
..F0XO1GC-f-D {height: 68px; position: absolute; left: 220px; right: 0px;}
..F0XO1GC-b-N .F0XO1GC-f-D {left: 204px;}
..F0XO1GC-b-O .F0XO1GC-f-D ,body .F0XO1GC-f-D {left: 176px; height: 44px;}
..F0XO1GC-b-dc .F0XO1GC-f-D ,body .F0XO1GC-f-D {left: 204px;}
..F0XO1GC-f-E {padding: 12px 8px;}
..F0XO1GC-f-G ,.F0XO1GC-f-G > * ,body > * {outline: medium none !important;}
..F0XO1GC-f-v {width: 198px; position: absolute; left: 0px;}
..F0XO1GC-f-l {margin-left: 220px;}
..F0XO1GC-f-l:focus {outline: medium none;}
..F0XO1GC-f-f {position: absolute; top: 7px; left: 244px; cursor: pointer; z=
-index: 2;}
..F0XO1GC-f-j .F0XO1GC-f-v {display: none;}
..F0XO1GC-f-j .F0XO1GC-f-e {margin-left: 24px !important;}
..F0XO1GC-f-j .F0XO1GC-f-d {margin-left: 220px !important;}
..F0XO1GC-f-j .F0XO1GC-f-f {left: 0px;}
..F0XO1GC-f-o .F0XO1GC-f-q ,.F0XO1GC-f-o .F0XO1GC-f-v ,.F0XO1GC-f-o .F0XO1GC=
-b-p {display: none;}
..F0XO1GC-f-o .F0XO1GC-f-l {margin-left: 24px !important;}
..F0XO1GC-f-o .F0XO1GC-b-o ,.F0XO1GC-f-o .F0XO1GC-b-G {padding-right: 8px;}
..F0XO1GC-f-o .F0XO1GC-f-x {position: relative;}
..F0XO1GC-f-o .F0XO1GC-f-x .F0XO1GC-f-l {margin-left: 0px !important; positi=
on: absolute; top: 0px; bottom: 0px; right: 0px; left: 24px !important;}
..F0XO1GC-f-o .F0XO1GC-b-D {position: relative;}
..F0XO1GC-f-o .F0XO1GC-f-n {display: none !important;}
#gb.F0XO1GC-f-o ,#gba.F0XO1GC-f-o {display: none;}
..F0XO1GC-f-y {padding: 5px;}
..F0XO1GC-f-z {outline: medium none; border: medium none;}
..F0XO1GC-f-z img {outline: medium none; border: medium none; margin-top: 8p=
x;}
..F0XO1GC-f-A {position: absolute; width: 8px; top: 0px; bottom: 0px; right:=
-20px; cursor: col-resize;}
..F0XO1GC-f-A .F0XO1GC-f-C {display: block; position: absolute; left: 5px; t=
op: 0px; bottom: 0px; border-left: 1px solid rgb(235, 235, 235);}
..F0XO1GC-f-B .F0XO1GC-f-C {border-left: 1px solid rgb(235, 235, 235);}
..F0XO1GC-f-A .F0XO1GC-f-i {visibility: visible !important;}
..F0XO1GC-b-w {top: -15px;}
..F0XO1GC-f-q .F0XO1GC-b-w {top: 54px;}
html ,body ,#gb ,#gbx1 {min-width: 700px;}
html {overflow-x: auto; overflow-y: hidden;}
body {overflow: visible;}
..F0XO1GC-f-b {overflow: hidden; min-height: 30px;}
..F0XO1GC-f-w {position: absolute; right: 0px; top: 0px; padding-left: 16px;=
}
..F0XO1GC-f-w > div > div {display: inline-block; margin-right: 0px; margin-=
left: 16px;}
..F0XO1GC-c-c .F0XO1GC-f-w > div > div {margin-left: 10px; margin-right: 0px=
;}
..F0XO1GC-f-w > div > div:first-child {margin-left: 0px;}
..F0XO1GC-f-g {transform: rotate(180deg); vertical-align: middle;}
..F0XO1GC-f-m {transform: rotate(0deg); vertical-align: middle;}
..F0XO1GC-f-h {border: 1px solid rgb(235, 235, 235); padding: 4px; cursor: p=
ointer !important;}
..F0XO1GC-b-O .F0XO1GC-f-h ,body .F0XO1GC-f-h {padding: 3px 3px 4px;}
..F0XO1GC-f-h:hover {background-color: rgb(238, 238, 238);}
..F0XO1GC-f-i:hover {visibility: visible;}
..F0XO1GC-f-i {visibility: hidden; position: absolute; right: 2px; top: 0px;=
bottom: 0px; padding: 8px 0px 8px 8px;}
..F0XO1GC-f-n {display: none; position: absolute; padding: 8px 0px;}
..F0XO1GC-f-j .F0XO1GC-f-n {display: block;}
..F0XO1GC-b-N .F0XO1GC-f-i {padding: 7px 0px 7px 7px;}
..F0XO1GC-b-O .F0XO1GC-f-i ,body .F0XO1GC-f-i {padding: 6px 0px 6px 6px;}
..F0XO1GC-b-N .F0XO1GC-f-n {padding: 7px 0px;}
..F0XO1GC-b-O .F0XO1GC-f-n ,body .F0XO1GC-f-n {padding: 6px 0px;}
..F0XO1GC-r-d {padding-right: 144px; white-space: nowrap;}
..F0XO1GC-r-e {margin: 19px 16px 0px 0px; white-space: nowrap; min-width: 38=
4px; max-width: 512px; width: 100%; display: inline-block; position: relati=
ve; height: 29px; line-height: 27px; vertical-align: top;}
..F0XO1GC-b-O .F0XO1GC-r-e ,body .F0XO1GC-r-e {margin-top: 7px;}
..F0XO1GC-r-e input[type=3D"text"] {position: absolute; left: 0px; right: 0p=
x; width: 100%;}
..F0XO1GC-r-b {max-height: 250px; overflow-y: auto; overflow-x: hidden; whit=
e-space: nowrap;}
..F0XO1GC-r-b .F0XO1GC-r-c {padding-left: 20px;}
..suggestPopupContent {cursor: pointer;}
..suggestPopupContent .F0XO1GC-r-g {margin-left: 5px; color: rgb(0, 0, 0);}
..F0XO1GC-r-i {position: relative;}
..F0XO1GC-r-h {position: relative; float: left; margin: 8px 6px 0px 0px;}
..F0XO1GC-r-f {margin-top: 19px; vertical-align: top;}
..F0XO1GC-b-O .F0XO1GC-r-f ,body .F0XO1GC-r-f {margin-top: 7px;}
..F0XO1GC-r-f img {opacity: 1 !important;}
..F0XO1GC-r-a {cursor: pointer; position: absolute; right: 2px; text-align: =
center;}
..F0XO1GC-r-a img {opacity: 0.667; margin: 0px 6px 2px;}
..F0XO1GC-r-a:hover img {opacity: 1;}
..F0XO1GC-j-t {background-color: white; border: medium none; outline: medium=
none; padding: 0px;}
..F0XO1GC-j-m {font-size: 16px; line-height: 24px; color: rgb(34, 34, 34); f=
ont-weight: normal; margin-bottom: 8px;}
..F0XO1GC-b-wb .F0XO1GC-j-m ,.F0XO1GC-j-t .F0XO1GC-j-m ,.F0XO1GC-b-O .F0XO1G=
C-b-wb .F0XO1GC-j-m ,.F0XO1GC-b-N .F0XO1GC-b-wb .F0XO1GC-j-m ,.F0XO1GC-b-M =
..F0XO1GC-b-wb .F0XO1GC-j-m ,body .F0XO1GC-b-wb .F0XO1GC-j-m {background-col=
or: rgb(66, 133, 244); color: rgb(255, 255, 255); height: 36px; padding: 0p=
x; margin: 0px;}
..F0XO1GC-b-O .F0XO1GC-j-m ,body .F0XO1GC-j-m {padding: 20px 16px 0px;}
..F0XO1GC-j-e {overflow-y: auto; overflow-x: hidden; position: relative; max=
-width: 600px; min-width: 250px; font-size: 13px; line-height: 17px;}
..F0XO1GC-b-O .F0XO1GC-b-wb .F0XO1GC-j-f ,.F0XO1GC-b-N .F0XO1GC-b-wb .F0XO1G=
C-j-f ,.F0XO1GC-b-M .F0XO1GC-b-wb .F0XO1GC-j-f ,.F0XO1GC-b-wb .F0XO1GC-j-f =
,body .F0XO1GC-b-wb .F0XO1GC-j-f {margin: 0px;}
..F0XO1GC-j-f {margin: 24px;}
..F0XO1GC-b-O .F0XO1GC-j-f ,body .F0XO1GC-j-f {margin: 12px;}
..F0XO1GC-j-f .F0XO1GC-j-q {font-weight: bold;}
..F0XO1GC-j-f .F0XO1GC-j-n {color: rgb(102, 102, 102); margin-bottom: 12px; =
margin-left: 22px;}
..F0XO1GC-j-f .F0XO1GC-j-o {margin-top: 12px;}
..F0XO1GC-j-r {height: 24px; width: 24px;}
..F0XO1GC-j-j ,.F0XO1GC-j-h {display: table-cell;}
..F0XO1GC-j-i {margin: 24px;}
..F0XO1GC-j-g {margin-top: 24px; text-align: left;}
..F0XO1GC-j-h > .F0XO1GC-j-g {margin: 48px 24px 24px;}
..F0XO1GC-j-y.F0XO1GC-j-w .F0XO1GC-j-g {margin-top: 24px;}
..F0XO1GC-j-x .F0XO1GC-j-f {margin-top: 0px;}
..F0XO1GC-j-w .F0XO1GC-j-f {margin-bottom: 0px;}
..F0XO1GC-j-p .F0XO1GC-j-e {overflow: visible; max-width: none; padding: 0px=
;}
..F0XO1GC-j-u .F0XO1GC-j-c {display: none;}
..F0XO1GC-j-c {cursor: pointer; right: 10px; position: absolute; top: 6px;}
..F0XO1GC-b-wb .F0XO1GC-j-c ,.F0XO1GC-j-s .F0XO1GC-j-c {line-height: 36px; t=
op: 8px; vertical-align: text-bottom;}
..F0XO1GC-j-c img:hover {background-color: rgb(123, 170, 247);}
..F0XO1GC-j-s {background-color: rgb(66, 133, 244); bottom: 0px; height: 36p=
x; position: fixed; right: 25px; width: 260px; z-index: 1;}
..F0XO1GC-j-t .F0XO1GC-j-l ,.F0XO1GC-b-wb .F0XO1GC-j-l ,.F0XO1GC-j-s .F0XO1G=
C-j-l {color: rgb(255, 255, 255); font-family: "Roboto",Arial,sans-serif; f=
ont-size: 16px; font-weight: normal; line-height: 36px; padding-left: 15px;=
text-align: left;}
..F0XO1GC-b-i .F0XO1GC-j-c {top: 5px; right: 5px;}
..F0XO1GC-b-i .F0XO1GC-j-c img {display: block;}
..F0XO1GC-j-f .F0XO1GC-k-c ,.F0XO1GC-j-f .F0XO1GC-k-c:focus {background-imag=
e: none; background-repeat: repeat; background-attachment: scroll; backgrou=
nd-clip: border-box; background-origin: padding-box; background-position: 0=
% 0%; background-size: auto auto; background-color: inherit; border: 1px so=
lid rgba(0, 0, 0, 0); box-shadow: none; color: inherit; font-size: 13px; pa=
dding: 0px 3px; opacity: 0.6;}
..F0XO1GC-j-f .F0XO1GC-k-c:hover {background-color: lightgray;}
..F0XO1GC-v-a {height: 21px; width: 21px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAY=
AAACpF6WWAAAAjElEQVR42mNgGAWDFUgCMTs1DTQH4klA7EwtA+2BeAkQR1HLwEAgngnEZUDMRK=
lhrECcDjUwhxqu4wbiSqiBpVALSAJTgNgfiFmgfDEgboYaWAfEnOS4yhFqQBUQWwBxH5QPMpiXE=
u+mQg2C4U4gFqI0DEFebIIa2APE0tRKOrJQAxWonQ05R0uiYQgAWowSH34q/8EAAAAASUVORK5C=
YII=3D") no-repeat scroll 0px 0px; position: absolute; left: 3px;}
..gux-combo-item.F0XO1GC-v-b {padding-left: 28px;}
..goog-button-base {cursor: default; font: 0.846em/1 Arial,sans-serif; lette=
r-spacing: normal; margin: 0px 1px; outline: medium none; text-align: cente=
r; text-indent: 0px; text-transform: none; vertical-align: baseline; white-=
space: nowrap; word-spacing: normal;}
..goog-button-base-outer-box {border-top: 1px solid rgb(187, 187, 187); bord=
er-bottom: 1px solid rgb(170, 170, 170);}
..goog-button-base-inner-box {background: rgb(227, 227, 227) none repeat scr=
oll 0% 0%; border-left: 1px solid rgb(187, 187, 187); border-right: 1px sol=
id rgb(170, 170, 170); margin: 0px -1px;}
..goog-button-base-pos {height: 100%; position: relative;}
..goog-button-base-top-shadow {background: rgb(249, 249, 249) none repeat sc=
roll 0% 0%; border-bottom: 0.23em solid rgb(238, 238, 238); height: 0.692em=
; left: 0px; overflow: hidden; position: absolute; right: 0px; top: 0px;}
..goog-button-base-content {color: rgb(51, 51, 51); line-height: 1.7em; posi=
tion: relative; padding: 0px 0.545em; text-align: center;}
..goog-button-base-hover .goog-button-base-content ,.goog-button-base-focuse=
d .goog-button-base-content {color: rgb(0, 0, 0);}
..goog-button-base-hover .goog-button-base-outer-box ,.goog-button-base-hove=
r .goog-button-base-inner-box ,.goog-button-base-focused .goog-button-base-=
outer-box ,.goog-button-base-focused .goog-button-base-inner-box {border-co=
lor: rgb(136, 136, 136);}
..goog-button-base-active .goog-button-base-inner-box ,.goog-button-base-ope=
n .goog-button-base-inner-box {background: rgb(249, 249, 249) none repeat s=
croll 0% 0%;}
..goog-button-base-active .goog-button-base-top-shadow ,.goog-button-base-op=
en .goog-button-base-top-shadow {background: rgb(227, 227, 227) none repeat=
scroll 0% 0%;}
..goog-button-base-active .goog-button-base-content ,.goog-button-base-open =
..goog-button-base-content {color: rgb(0, 0, 0);}
..goog-button-base-primary .goog-button-base-content {font-weight: bold; col=
or: rgb(0, 0, 0);}
..goog-button-base-disabled {cursor: default;}
..goog-button-base-disabled .goog-button-base-inner-box {background: rgb(238=
, 238, 238) none repeat scroll 0% 0%;}
..goog-button-base-disabled .goog-button-base-top-shadow {background: rgb(23=
8, 238, 238) none repeat scroll 0% 0%; border-color: rgb(238, 238, 238);}
..goog-button-base-disabled .goog-button-base-content {color: rgb(153, 153, =
153);}
..goog-button-base-collapse-right ,.goog-button-base-collapse-right .goog-bu=
tton-base-inner-box {margin-right: 0px;}
..goog-button-base-collapse-left {margin-left: 0px;}
..goog-button-base-collapse-left .goog-button-base-inner-box {margin-left: 0=
px; border-left: 1px solid rgb(255, 255, 255);}
..goog-button-base-hover.goog-button-base-collapse-left ,.goog-button-base-f=
ocused.goog-button-base-collapse-left {border-left: 1px solid rgb(136, 136,=
136); margin-left: -1px; z-index: 1;}
..goog-button-base-selected .goog-button-base-outer-box ,.goog-button-base-s=
elected .goog-button-base-inner-box {background-color: rgb(119, 119, 119); =
border-color: rgb(136, 136, 136);}
..goog-button-base-selected .goog-button-base-top-shadow {border-bottom-colo=
r: rgb(136, 136, 136); background-color: rgb(153, 153, 153);}
..goog-button-base-selected .goog-button-base-content {color: rgb(238, 238, =
238);}
..goog-button-base-collapse-left.goog-button-base-selected .goog-button-base=
-inner-box {border-left: 1px solid rgb(85, 85, 85);}
..F0XO1GC-q-e {background-color: rgb(42, 42, 42); border: 1px solid rgb(255,=
255, 255); color: rgb(255, 255, 255); display: block; position: absolute; =
padding: 5px 7px; z-index: 10; white-space: nowrap;}
..F0XO1GC-q-g {z-index: 1021;}
..F0XO1GC-q-e strong {color: rgb(255, 255, 255);}
..F0XO1GC-q-e::before ,.F0XO1GC-q-e::after {border-style: solid; content: ""=
; display: block; height: 0px; position: absolute; width: 0px;}
..F0XO1GC-q-e.F0XO1GC-q-f::before ,.F0XO1GC-q-e.F0XO1GC-q-h::before ,.F0XO1G=
C-q-e.F0XO1GC-q-i::before ,.F0XO1GC-q-e.F0XO1GC-q-d::before {bottom: auto; =
margin-top: -7px; top: 50%;}
..F0XO1GC-q-e.F0XO1GC-q-f::after ,.F0XO1GC-q-e.F0XO1GC-q-h::after ,.F0XO1GC-=
q-e.F0XO1GC-q-i::after ,.F0XO1GC-q-e.F0XO1GC-q-d::after {bottom: auto; marg=
in-top: -6px; top: 50%;}
..F0XO1GC-q-e.F0XO1GC-q-l::before ,.F0XO1GC-q-e.F0XO1GC-q-c::before ,.F0XO1G=
C-q-e.F0XO1GC-q-l::after ,.F0XO1GC-q-e.F0XO1GC-q-c::after {left: 80% !impor=
tant;}
..F0XO1GC-q-e.F0XO1GC-q-k::before ,.F0XO1GC-q-e.F0XO1GC-q-b::before ,.F0XO1G=
C-q-e.F0XO1GC-q-k::after ,.F0XO1GC-q-e.F0XO1GC-q-b::after {left: 20% !impor=
tant;}
..F0XO1GC-q-e.F0XO1GC-q-j::before ,.F0XO1GC-q-e.F0XO1GC-q-a::before {left: 5=
0%; margin-left: -7px; right: auto;}
..F0XO1GC-q-e.F0XO1GC-q-j::after ,.F0XO1GC-q-e.F0XO1GC-q-a::after {left: 50%=
; margin-left: -6px; right: auto;}
..F0XO1GC-q-e.F0XO1GC-q-j::before {border-color: rgb(255, 255, 255) transpar=
ent; border-width: 8px 7px 0px; bottom: -8px;}
..F0XO1GC-q-e.F0XO1GC-q-j::after {border-color: rgb(42, 42, 42) transparent;=
border-width: 7px 6px 0px; bottom: -7px;}
..F0XO1GC-q-e.F0XO1GC-q-a::before {border-color: rgb(255, 255, 255) transpar=
ent; border-width: 0px 7px 8px; top: -8px;}
..F0XO1GC-q-e.F0XO1GC-q-a::after {border-color: rgb(42, 42, 42) transparent;=
border-width: 0px 6px 7px; top: -7px;}
..F0XO1GC-q-e.F0XO1GC-q-f::before {border-color: transparent rgb(255, 255, 2=
55); border-width: 7px 0px 7px 8px; right: -8px;}
..F0XO1GC-q-e.F0XO1GC-q-f::after {border-color: transparent rgb(42, 42, 42);=
border-width: 6px 0px 6px 7px; right: -7px;}
..F0XO1GC-q-e.F0XO1GC-q-h::before {border-color: transparent rgb(255, 255, 2=
55); border-width: 7px 8px 7px 0px; left: -8px;}
..F0XO1GC-q-e.F0XO1GC-q-h::after {border-color: transparent rgb(42, 42, 42);=
border-width: 6px 7px 6px 0px; left: -7px;}
..F0XO1GC-q-e.F0XO1GC-q-i::before {border-color: transparent rgb(255, 255, 2=
55); border-width: 7px 0px 7px 8px; right: -8px;}
..F0XO1GC-q-e.F0XO1GC-q-i::after {border-color: transparent rgb(42, 42, 42);=
border-width: 6px 0px 6px 7px; right: -7px;}
..F0XO1GC-q-e.F0XO1GC-q-d::before {border-color: transparent rgb(255, 255, 2=
55); border-width: 7px 8px 7px 0px; left: -8px;}
..F0XO1GC-q-e.F0XO1GC-q-d::after {border-color: transparent rgb(42, 42, 42);=
border-width: 6px 7px 6px 0px; left: -7px;}
..F0XO1GC-x-a .F0XO1GC-x-d {float: left;}
..F0XO1GC-x-a .F0XO1GC-x-e {float: right;}
..F0XO1GC-x-a .F0XO1GC-x-e td:last-child div {margin-right: 0px;}
..F0XO1GC-x-b {line-height: 24px; margin-bottom: 14px;}
..F0XO1GC-b-O .F0XO1GC-x-b ,body .F0XO1GC-x-b {line-height: 17px; margin-bot=
tom: 8px;}
..F0XO1GC-o-j {width: 100%; position: relative;}
..F0XO1GC-o-j td {border-bottom: 1px solid rgb(235, 235, 235); line-height: =
17px; vertical-align: top;}
..F0XO1GC-o-j td a ,.F0XO1GC-o-j td a:hover ,.F0XO1GC-o-j td a:visited {font=
-size: 16px; font-weight: normal; color: rgb(17, 85, 204);}
..F0XO1GC-o-k {margin-right: 44px;}
..F0XO1GC-o-j .highlighted td {background-color: rgb(242, 242, 242);}
..F0XO1GC-o-o {width: 20px; min-width: 20px; padding-right: 4px; padding-lef=
t: 4px;}
..F0XO1GC-o-g {white-space: nowrap;}
..F0XO1GC-o-r {width: 14ex;}
..F0XO1GC-o-h {width: 40ex; overflow: hidden;}
..F0XO1GC-o-i {width: 16ex; overflow: hidden;}
..F0XO1GC-o-a {margin: 8px 0px;}
..F0XO1GC-o-n {float: left; margin-right: 6px; margin-top: -3px;}
..F0XO1GC-o-c {margin-top: 4px; margin-left: 30px;}
..F0XO1GC-o-s {line-height: 17px; max-height: 34px; overflow: hidden;}
..F0XO1GC-o-q {font-weight: bold;}
..F0XO1GC-o-t {border-bottom: 1px solid rgb(221, 221, 221);}
..F0XO1GC-o-e {padding: 8px 0px 0px;}
..F0XO1GC-o-l {font-size: 11px !important;}
..F0XO1GC-o-b {max-width: 10em;}
..F0XO1GC-Z-b {margin: 0px 4px; padding: 8px 0px; line-height: 50px; clear: =
both; color: rgb(34, 34, 34); vertical-align: middle; white-space: nowrap;}
..F0XO1GC-Z-c {display: inline; padding-left: 20px;}
..F0XO1GC-Z-h {padding-top: 1px; overflow: hidden; margin-right: 10px; min-w=
idth: 15em;}
..F0XO1GC-Z-g {font-weight: bold; padding-bottom: 4px;}
..F0XO1GC-Z-a {float: left; margin: 0px 8px; position: relative; top: 8px;}
..F0XO1GC-Z-d a ,.F0XO1GC-Z-d a:hover ,.F0XO1GC-Z-d a:visited {font-size: 13=
px !important;}
..F0XO1GC-Z-d {padding-left: 8px;}
..F0XO1GC-H-d {display: inline-block; height: 13px; padding: 5px; text-align=
: center; width: 13px; cursor: pointer;}
..F0XO1GC-H-d .F0XO1GC-H-c {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/ui/v1/star/star2.png") no-repeat scroll 0% 0%; height: 13px; width: 13p=
x;}
..F0XO1GC-H-b .F0XO1GC-H-c {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/ui/v1/star/star2.png") no-repeat scroll 0% 0%;}
..F0XO1GC-H-a .F0XO1GC-H-c {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/ui/v1/star/star-lit.png") no-repeat scroll 0% 0%;}
..F0XO1GC-Gb-a {color: gray; display: inline;}
..F0XO1GC-Gb-a ul {list-style-type: none; padding-left: 5px; display: inline=
;}
..F0XO1GC-Gb-a li {display: inline;}
..F0XO1GC-Gb-a li::after {content: "-"; padding: 0px 10px;}
..F0XO1GC-Gb-a li:last-child::after {content: "";}
..F0XO1GC-p-U {position: relative; margin-left: 12px;}
..F0XO1GC-p-c {width: 100%;}
..F0XO1GC-p-c .goog-button-base {margin-right: 4px;}
..F0XO1GC-p-c .goog-button-base-collapse-right {margin-right: 0px;}
..F0XO1GC-p-c .goog-button-base {vertical-align: middle;}
..F0XO1GC-p-q {padding: 0px 0px 5px;}
..F0XO1GC-p-r {position: relative; border-bottom: 1px solid rgb(235, 235, 23=
5); line-height: 27px;}
..embed .F0XO1GC-p-r.F0XO1GC-p-t {margin: 16px 30px 0px 0px; padding: 0px 0p=
x 4px 12px !important;}
..F0XO1GC-p-r.F0XO1GC-p-t {margin: 16px 44px 0px 0px; padding: 0px 0px 4px !=
important;}
..chrome-theme .F0XO1GC-p-r.F0XO1GC-p-t {margin: 16px 0px 0px !important;}
..F0XO1GC-b-N .F0XO1GC-p-r.F0XO1GC-p-t {margin: 8px 28px 0px 0px;}
..F0XO1GC-b-O .F0XO1GC-p-r.F0XO1GC-p-t ,body .F0XO1GC-p-r.F0XO1GC-p-t {margi=
n: 4px 16px 0px 0px;}
..F0XO1GC-b-dc .F0XO1GC-p-r.F0XO1GC-p-t ,body .F0XO1GC-p-r.F0XO1GC-p-t {marg=
in-right: 30px;}
..F0XO1GC-p-r.F0XO1GC-p-t .jfk-button-standard ,.F0XO1GC-p-r.F0XO1GC-p-t .jf=
k-button-default {height: 19px; line-height: 19px; position: relative; vert=
ical-align: top;}
..F0XO1GC-p-r.F0XO1GC-p-t .jfk-button-action {height: 19px; line-height: 19p=
x; position: relative; vertical-align: top; top: -4px;}
..F0XO1GC-p-s {overflow: hidden;}
..F0XO1GC-p-U > img {margin: 0px 0px 0px 8px;}
..F0XO1GC-p-P ,.F0XO1GC-p-t .F0XO1GC-p-x a ,.F0XO1GC-p-t .F0XO1GC-p-x span {=
white-space: nowrap; text-align: right; color: rgb(102, 102, 102);}
..F0XO1GC-p-F {text-align: center; padding-top: 25px; display: block;}
..F0XO1GC-p-V td {height: 20px; vertical-align: middle; border-bottom: 1px s=
olid rgb(221, 221, 221); cursor: pointer;}
..F0XO1GC-p-o td {border-bottom: 1px solid rgb(221, 221, 221); cursor: point=
er;}
..F0XO1GC-p-Y .F0XO1GC-p-B {font-weight: bold;}
..F0XO1GC-p-B {text-align: right; color: rgb(51, 51, 51);}
a.F0XO1GC-p-Q ,a.F0XO1GC-p-Q:visited {color: rgb(34, 34, 34); text-decorati=
on: none;}
..F0XO1GC-p-Y a.F0XO1GC-p-Q ,.F0XO1GC-p-Y a.F0XO1GC-p-Q:visited {color: rgb(=
34, 34, 34); font-weight: bold;}
..F0XO1GC-p-V td:first-child ,.F0XO1GC-p-o td:first-child {border-left: 2px =
solid transparent;}
..F0XO1GC-p-V tr.selected td:first-child ,.F0XO1GC-p-o tr.selected td:first-=
child {border-left: 2px solid rgb(77, 144, 240);}
..F0XO1GC-p-V tr ,.F0XO1GC-p-o tr {background-color: rgba(255, 255, 255, 0.8=
);}
tr.F0XO1GC-p-M {background-color: rgba(0, 0, 0, 0.06);}
..F0XO1GC-p-X tr.F0XO1GC-p-M {background-color: rgba(0, 0, 0, 0.04);}
..F0XO1GC-p-K {text-align: left; color: rgb(51, 51, 51);}
..F0XO1GC-p-t .F0XO1GC-p-K {padding-right: 30px;}
..F0XO1GC-b-N .F0XO1GC-p-t .F0XO1GC-p-K {padding-right: 15px;}
..F0XO1GC-b-O .F0XO1GC-p-t .F0XO1GC-p-K ,body .F0XO1GC-p-t .F0XO1GC-p-K {pad=
ding-right: 5px;}
..F0XO1GC-b-dc .F0XO1GC-p-t .F0XO1GC-p-K ,body .F0XO1GC-p-t .F0XO1GC-p-K {pa=
dding-right: 15px;}
..F0XO1GC-p-V {width: 100%; border-collapse: collapse;}
..F0XO1GC-p-V td {white-space: nowrap; overflow: hidden; padding: 8px;}
..F0XO1GC-b-N .F0XO1GC-p-V td {padding: 6px;}
..F0XO1GC-b-O .F0XO1GC-p-V td ,body .F0XO1GC-p-V td {padding: 2px;}
..F0XO1GC-p-o {table-layout: fixed; width: 100%; border-collapse: collapse;}
..F0XO1GC-p-W {margin: 0px 3px; vertical-align: middle;}
td.F0XO1GC-p-k {vertical-align: middle; cursor: default;}
..F0XO1GC-p-o .F0XO1GC-p-j {margin-left: 8px;}
..F0XO1GC-p-l {width: 0px;}
..F0XO1GC-p-o .F0XO1GC-p-l {width: 32px;}
..F0XO1GC-p-R {width: 70%;}
..F0XO1GC-p-t .F0XO1GC-p-R {width: 100%;}
..F0XO1GC-p-D .F0XO1GC-p-R {width: 60%;}
..F0XO1GC-p-N {width: 25%;}
..F0XO1GC-p-L {width: 0px;}
..F0XO1GC-p-g {width: 30%;}
..F0XO1GC-p-C {width: 0px;}
..F0XO1GC-p-D .F0XO1GC-p-C {width: 15%;}
..F0XO1GC-p-V .F0XO1GC-p-O {vertical-align: middle;}
..F0XO1GC-p-o .F0XO1GC-p-O {vertical-align: top; position: relative; top: -5=
px;}
..F0XO1GC-p-r .F0XO1GC-p-O {padding: 0px 8px 2px 0px !important;}
..F0XO1GC-p-m {position: relative;}
..F0XO1GC-p-A {height: 21px; width: 21px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAY=
AAACpF6WWAAAAIklEQVR42mNgGAVDEvQgYXQ+ITwMDB0N09EwHbFhOgooBwCZskTp2WFt1gAAAA=
BJRU5ErkJggg=3D=3D") no-repeat scroll 0px 0px;}
..F0XO1GC-p-z {height: 21px; width: 21px; overflow: hidden; background: rgba=
(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAY=
AAACpF6WWAAAAHklEQVR42mNgGAVDEjRQgEddOurSUZcOXZeOAsoBAK8dLQFgl6QWAAAAAElFTk=
SuQmCC") no-repeat scroll 0px 0px;}
..F0XO1GC-p-d {margin-right: 2px; margin-left: 4px; vertical-align: middle; =
position: relative;}
..F0XO1GC-p-d img {vertical-align: middle;}
..F0XO1GC-p-Z {border-bottom: 1px solid rgb(221, 221, 221);}
..F0XO1GC-p-a {color: rgb(102, 102, 102) !important; font-weight: normal !im=
portant;}
..F0XO1GC-p-b {margin-left: 5px; margin-right: 2px;}
..F0XO1GC-p-n {color: rgb(119, 119, 187) !important; margin-left: 4px; white=
-space: nowrap; vertical-align: middle;}
..F0XO1GC-p-y {min-width: 260px;}
..F0XO1GC-p-S {padding-top: 16px;}
..F0XO1GC-p-G {border-bottom: 1px solid rgb(235, 235, 235); text-align: cent=
er;}
..F0XO1GC-p-G > div {margin: 4px; text-align: center; padding: 7px 16px; bac=
kground-color: rgb(249, 237, 190); border: 1px solid rgb(240, 195, 109); di=
splay: inline-block; border-radius: 2px; font-size: 11px; line-height: 16px=
; cursor: pointer;}
..F0XO1GC-p-G a {text-decoration: none; cursor: pointer; color: rgb(51, 51, =
51);}
..F0XO1GC-p-G a:hover {color: rgb(32, 32, 32);}
..F0XO1GC-p-e {position: relative; min-width: 100px;}
..F0XO1GC-p-f {overflow: hidden; position: absolute; top: -9px; left: 0px; r=
ight: 8px; text-overflow: ellipsis; padding: 1px 8px; border-left: 1px dott=
ed rgb(221, 221, 221);}
..F0XO1GC-p-I {display: inline-block; color: rgb(153, 153, 153); margin-left=
: 4px;}
..F0XO1GC-p-h {margin-left: 4px;}
..F0XO1GC-p-J {display: inline-block;}
..F0XO1GC-p-i {border-top: 1px solid rgb(235, 235, 235); padding-top: 8px; m=
argin-top: 8px;}
..F0XO1GC-p-H {top: 3px; line-height: 17px; vertical-align: baseline;}
..F0XO1GC-p-H > img {opacity: 0.667;}
..F0XO1GC-p-H > img:hover {opacity: 1;}
..F0XO1GC-p-x {float: right; padding-right: 28px;}
..F0XO1GC-p-t .F0XO1GC-p-x {float: none; padding-right: 0px; display: inline=
-block;}
..F0XO1GC-p-t .F0XO1GC-p-x > div {padding-right: 8px;}
..chrome-theme .F0XO1GC-p-U {margin-left: 0px;}
..chrome-theme .F0XO1GC-p-Z {display: none;}
..F0XO1GC-p-E {border-top: 1px solid rgb(235, 235, 235); padding-top: 10px;}
..F0XO1GC-p-E h3 {padding-bottom: 10px;}
..F0XO1GC-p-E .jfk-button-action {margin-top: 10px;}
..F0XO1GC-ab-h {float: left;}
..F0XO1GC-ab-c {display: inline-block;}
..F0XO1GC-ab-a {float: right; display: inline-block;}
..F0XO1GC-ab-f {font-size: 18px;}
..F0XO1GC-ab-g {color: rgb(102, 102, 102);}
..F0XO1GC-ab-f ,.F0XO1GC-ab-g ,.F0XO1GC-ab-e {margin-right: 8px;}
..F0XO1GC-ab-a ,.F0XO1GC-ab-a:visited {color: rgb(17, 85, 204); line-height:=
27px;}
..F0XO1GC-ab-b {line-height: 27px;}
..F0XO1GC-ab-k {vertical-align: baseline; display: inline-block;}
..F0XO1GC-ab-k div {line-height: 15px !important;}
..F0XO1GC-ab-j {height: 15px; vertical-align: baseline;}
..F0XO1GC-ab-i {position: relative; top: -1px;}
..F0XO1GC-ab-l {line-height: 17px;}
..F0XO1GC-ab-m {float: right;}
..F0XO1GC-ab-n {line-height: 17px; vertical-align: baseline;}
..F0XO1GC-ab-d {clear: both;}
..F0XO1GC-G-a {border: 1px solid transparent; color: rgb(255, 255, 255); bac=
kground-color: rgb(209, 72, 54); background-image: -moz-linear-gradient(cen=
ter top , rgb(221, 75, 57), rgb(209, 72, 54)); text-shadow: 0px 1px rgba(0,=
0, 0, 0.1); text-transform: uppercase;}
..chrome-theme .F0XO1GC-G-a {background-color: rgb(3, 112, 234); background-=
image: -webkit-linear-gradient(top, rgb(0, 141, 253) 0%, rgb(3, 112, 234) 1=
00%); border: 1px solid rgb(7, 107, 210); text-shadow: 1px 1px 1px rgb(7, 1=
07, 210); text-transform: none;}
..F0XO1GC-G-a:hover {border-width: 1px; border-style: solid; border-color: r=
gb(176, 40, 26) rgb(176, 40, 26) rgb(175, 48, 31); -moz-border-top-colors: =
none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz=
-border-left-colors: none; border-image: none; background-color: rgb(197, 5=
5, 39); background-image: -moz-linear-gradient(center top , rgb(221, 75, 57=
), rgb(197, 55, 39)); box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2);}
..F0XO1GC-G-a:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) inset; o=
utline: 0px none rgba(0, 0, 0, 0);}
..chrome-theme .F0XO1GC-G-a:focus {box-shadow: none; outline: medium none !i=
mportant; border: 1px solid rgb(6, 73, 144);}
..F0XO1GC-G-a:active {background-color: rgb(176, 40, 26); border: 1px solid =
rgb(153, 42, 27); background-image: -moz-linear-gradient(center top , rgb(2=
21, 75, 57), rgb(176, 40, 26)); box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) =
inset;}
..chrome-theme .F0XO1GC-G-a:hover ,.chrome-theme .F0XO1GC-G-a:active {backgr=
ound-color: rgb(3, 112, 234); border: 1px solid rgb(7, 107, 210); backgroun=
d-image: -webkit-linear-gradient(top, rgb(0, 141, 253) 30%, rgb(3, 112, 234=
) 100%);}
..F0XO1GC-G-a.F0XO1GC-n-b {background: rgb(209, 72, 54) none repeat scroll 0=
% 0%;}
..gux-menu-button {background: rgba(0, 0, 0, 0) url("data:image/png;base64,i=
VBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ=
bWFnZVJlYWR5ccllPAAAAwBQTFRFZmZm////AgICAwMDBAQEBQUFBgYGBwcHCAgICQkJCgoKCws=
LDAwMDQ0NDg4ODw8PEBAQEREREhISExMTFBQUFRUVFhYWFxcXGBgYGRkZGhoaGxsbHBwcHR0dHh=
4eHx8fICAgISEhIiIiIyMjJCQkJSUlJiYmJycnKCgoKSkpKioqKysrLCwsLS0tLi4uLy8vMDAwM=
TExMjIyMzMzNDQ0NTU1NjY2Nzc3ODg4OTk5Ojo6Ozs7PDw8PT09Pj4+Pz8/QEBAQUFBQkJCQ0ND=
RERERUVFRkZGR0dHSEhISUlJSkpKS0tLTExMTU1NTk5OT09PUFBQUVFRUlJSU1NTVFRUVVVVVlZ=
WV1dXWFhYWVlZWlpaW1tbXFxcXV1dXl5eX19fYGBgYWFhYmJiY2NjZGRkZWVlZmZmZ2dnaGhoaW=
lpampqa2trbGxsbW1tbm5ub29vcHBwcXFxcnJyc3NzdHR0dXV1dnZ2d3d3eHh4eXl5enp6e3t7f=
Hx8fX19fn5+f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIyMjY2Njo6O=
j4+PkJCQkZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnZ2dnp6en5+foKCgoaG=
hoqKio6OjpKSkpaWlpqamp6enqKioqampqqqqq6urrKysra2trq6ur6+vsLCwsbGxsrKys7OztL=
S0tbW1tra2t7e3uLi4ubm5urq6u7u7vLy8vb29vr6+v7+/wMDAwcHBwsLCw8PDxMTExcXFxsbGx=
8fHyMjIycnJysrKy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW19fX2NjY2dnZ=
2tra29vb3Nzc3d3d3t7e39/f4ODg4eHh4uLi4+Pj5OTk5eXl5ubm5+fn6Ojo6enp6urq6+vr7Oz=
s7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb29/f3+Pj4+fn5+vr6+/v7/Pz8/f39/v7+//=
//AADF2QAAAAJ0Uk5T/wDltzBKAAAAH0lEQVR42mJghAAGGJ0GAQyMYAokDqLA8mlI6gACDAC8p=
AaCn/ezogAAAABJRU5ErkJggg=3D=3D") no-repeat scroll right 50%; padding-right=
: 12px; text-align: left;}
..gux-menu-button-disabled {background: rgba(0, 0, 0, 0) url("data:image/png=
;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAAGXRFWHRTb2Z0d2FyZQB=
BZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFmZmZ////AgICAwMDBAQEBQUFBgYGBwcHCAgICQ=
kJCgoKCwsLDAwMDQ0NDg4ODw8PEBAQEREREhISExMTFBQUFRUVFhYWFxcXGBgYGRkZGhoaGxsbH=
BwcHR0dHh4eHx8fICAgISEhIiIiIyMjJCQkJSUlJiYmJycnKCgoKSkpKioqKysrLCwsLS0tLi4u=
Ly8vMDAwMTExMjIyMzMzNDQ0NTU1NjY2Nzc3ODg4OTk5Ojo6Ozs7PDw8PT09Pj4+Pz8/QEBAQUF=
BQkJCQ0NDRERERUVFRkZGR0dHSEhISUlJSkpKS0tLTExMTU1NTk5OT09PUFBQUVFRUlJSU1NTVF=
RUVVVVVlZWV1dXWFhYWVlZWlpaW1tbXFxcXV1dXl5eX19fYGBgYWFhYmJiY2NjZGRkZWVlZmZmZ=
2dnaGhoaWlpampqa2trbGxsbW1tbm5ub29vcHBwcXFxcnJyc3NzdHR0dXV1dnZ2d3d3eHh4eXl5=
enp6e3t7fHx8fX19fn5+f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIy=
MjY2Njo6Oj4+PkJCQkZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnZ2dnp6en5=
+foKCgoaGhoqKio6OjpKSkpaWlpqamp6enqKioqampqqqqq6urrKysra2trq6ur6+vsLCwsbGxs=
rKys7OztLS0tbW1tra2t7e3uLi4ubm5urq6u7u7vLy8vb29vr6+v7+/wMDAwcHBwsLCw8PDxMTE=
xcXFxsbGx8fHyMjIycnJysrKy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW19f=
X2NjY2dnZ2tra29vb3Nzc3d3d3t7e39/f4ODg4eHh4uLi4+Pj5OTk5eXl5ubm5+fn6Ojo6enp6u=
rq6+vr7Ozs7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb29/f3+Pj4+fn5+vr6+/v7/Pz8/=
f39/v7+////uBOGsAAAAAJ0Uk5T/wDltzBKAAAAH0lEQVR42mJghAAGGD0TAhgYwRRIHESB5Wci=
qQMIMAAZIwmyA+lVoQAAAABJRU5ErkJggg=3D=3D") no-repeat scroll right 50%; padd=
ing-right: 12px;}
..gux-menu-button-selected {background: rgba(0, 0, 0, 0) url("data:image/png=
;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAAGXRFWHRTb2Z0d2FyZQB=
BZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFZmZm////AgICAwMDBAQEBQUFBgYGBwcHCAgICQ=
kJCgoKCwsLDAwMDQ0NDg4ODw8PEBAQEREREhISExMTFBQUFRUVFhYWFxcXGBgYGRkZGhoaGxsbH=
BwcHR0dHh4eHx8fICAgISEhIiIiIyMjJCQkJSUlJiYmJycnKCgoKSkpKioqKysrLCwsLS0tLi4u=
Ly8vMDAwMTExMjIyMzMzNDQ0NTU1NjY2Nzc3ODg4OTk5Ojo6Ozs7PDw8PT09Pj4+Pz8/QEBAQUF=
BQkJCQ0NDRERERUVFRkZGR0dHSEhISUlJSkpKS0tLTExMTU1NTk5OT09PUFBQUVFRUlJSU1NTVF=
RUVVVVVlZWV1dXWFhYWVlZWlpaW1tbXFxcXV1dXl5eX19fYGBgYWFhYmJiY2NjZGRkZWVlZmZmZ=
2dnaGhoaWlpampqa2trbGxsbW1tbm5ub29vcHBwcXFxcnJyc3NzdHR0dXV1dnZ2d3d3eHh4eXl5=
enp6e3t7fHx8fX19fn5+f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIy=
MjY2Njo6Oj4+PkJCQkZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnZ2dnp6en5=
+foKCgoaGhoqKio6OjpKSkpaWlpqamp6enqKioqampqqqqq6urrKysra2trq6ur6+vsLCwsbGxs=
rKys7OztLS0tbW1tra2t7e3uLi4ubm5urq6u7u7vLy8vb29vr6+v7+/wMDAwcHBwsLCw8PDxMTE=
xcXFxsbGx8fHyMjIycnJysrKy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW19f=
X2NjY2dnZ2tra29vb3Nzc3d3d3t7e39/f4ODg4eHh4uLi4+Pj5OTk5eXl5ubm5+fn6Ojo6enp6u=
rq6+vr7Ozs7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb29/f3+Pj4+fn5+vr6+/v7/Pz8/=
f39/v7+////AADF2QAAAAJ0Uk5T/wDltzBKAAAAH0lEQVR42mJghAAGGP0fAhgYwRRIHESB5f8j=
qQMIMADSAxASsJSVyQAAAABJRU5ErkJggg=3D=3D") no-repeat scroll right 50%; padd=
ing-right: 12px;}
..goog-inline-block {position: relative; display: inline-block;}
..F0XO1GC-L-f {text-indent: 32px;}
..F0XO1GC-L-d {text-indent: 17px;}
..F0XO1GC-L-e li {line-height: 19px; white-space: nowrap;}
..F0XO1GC-L-e li > div {cursor: pointer; overflow: hidden; text-overflow: el=
lipsis; padding: 4px 0px 4px 8px;}
..F0XO1GC-L-e li > div:hover {background-color: rgb(238, 238, 238);}
..F0XO1GC-L-e ul {list-style: outside none none; margin-left: -12px; margin-=
top: 0px;}
..F0XO1GC-L-e {list-style: outside none none;}
..F0XO1GC-L-e .F0XO1GC-L-g {color: rgb(66, 133, 244); font-weight: bold;}
..F0XO1GC-L-b {outline-style: none; padding: 5px; min-width: 400px;}
..F0XO1GC-L-c.F0XO1GC-L-b {padding: 0px;}
..F0XO1GC-L-c.F0XO1GC-L-b tr:first-child .gwt-Label {border-bottom: 1px soli=
d rgb(204, 204, 204); color: rgb(102, 102, 102); padding: 18px 15px 15px;}
..F0XO1GC-L-b .F0XO1GC-L-a {position: relative; left: 5px;}
..F0XO1GC-L-c.F0XO1GC-L-b .F0XO1GC-L-a {left: 0px; max-height: 400px; paddin=
g-left: 15px;}
..F0XO1GC-L-c.F0XO1GC-L-b tr:last-child .F0XO1GC-L-h {border-top: 1px solid =
rgb(204, 204, 204); padding: 15px;}
..F0XO1GC-F-a {background-color: rgba(255, 255, 255, 0.65); border: 1px soli=
d rgb(198, 198, 198); border-radius: 1px; height: 13px; margin: 0px 1px; ou=
tline: medium none; vertical-align: text-bottom; width: 13px; display: inli=
ne-block; position: relative;}
..F0XO1GC-F-h {display: block; position: absolute; width: 15px; height: 15px=
; top: -2px; left: 1px;}
..F0XO1GC-F-c .F0XO1GC-F-h {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/ui/v1/menu/checkmark.png") no-repeat scroll -5px -3px;}
..F0XO1GC-F-k .F0XO1GC-F-h {opacity: 0.3;}
..F0XO1GC-F-b {background-color: rgb(235, 235, 235);}
..F0XO1GC-F-f {border: 1px solid rgb(102, 102, 102); box-shadow: 0px 1px 1px=
rgba(0, 0, 0, 0.1) inset;}
..F0XO1GC-F-e {border: 1px solid rgb(77, 144, 254);}
..F0XO1GC-F-k .F0XO1GC-F-a {background-color: rgba(255, 255, 255, 0.45); bor=
der: 1px solid rgb(241, 241, 241);}
..F0XO1GC-F-g .F0XO1GC-F-h {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/ui/v1/menu/checkmark-partial.png") no-repeat scroll -5px -3px;}
..F0XO1GC-F-i {margin-left: 5px;}
..F0XO1GC-F-k .F0XO1GC-F-i {color: rgb(184, 184, 184);}
..F0XO1GC-F-j {cursor: default; outline: medium none; line-height: 24px;}
..F0XO1GC-cc-a {padding-bottom: 7px;}
..F0XO1GC-cc-a input[type=3D"text"] {width: 75px;}
..F0XO1GC-V-a {margin: 0px 1px; vertical-align: text-bottom; display: inline=
-block; position: relative; outline: medium none;}
..F0XO1GC-V-h {background: rgba(255, 255, 255, 0) none repeat scroll 0% 0%; =
border: 1px solid rgb(198, 198, 198); border-radius: 50%; box-sizing: borde=
r-box; height: 15px; margin: 0px; outline: medium none; text-align: left; w=
idth: 15px; display: block;}
..F0XO1GC-V-c .F0XO1GC-V-h {background: rgba(255, 255, 255, 0) none repeat s=
croll 0% 0%;}
..F0XO1GC-V-c .F0XO1GC-V-h::after {background: rgb(96, 96, 96) none repeat s=
croll 0% 0%; border-radius: 50%; content: ""; display: block; height: 7px; =
left: 3px; position: relative; top: 3px; width: 7px;}
..F0XO1GC-V-b .F0XO1GC-V-h {background: rgb(235, 235, 235) none repeat scrol=
l 0% 0%; border-color: rgb(198, 198, 198);}
..F0XO1GC-V-f .F0XO1GC-V-h {border-color: rgb(102, 102, 102); box-shadow: 0p=
x 1px 1px rgba(0, 0, 0, 0.1) inset;}
..F0XO1GC-V-e .F0XO1GC-V-h {border: 1px solid rgb(77, 144, 254); background:=
rgba(255, 255, 255, 0) none repeat scroll 0% 0%;}
..F0XO1GC-V-e.F0XO1GC-V-c .F0XO1GC-V-h {background: rgba(255, 255, 255, 0) n=
one repeat scroll 0% 0%;}
..F0XO1GC-V-k .F0XO1GC-V-h {border: 1px solid rgb(241, 241, 241); background=
: rgba(255, 255, 255, 0) none repeat scroll 0% 0%;}
..F0XO1GC-V-k.F0XO1GC-V-c .F0XO1GC-V-h {background: rgba(255, 255, 255, 0) n=
one repeat scroll 0% 0%;}
..F0XO1GC-V-i {margin-left: 5px;}
..F0XO1GC-V-k .F0XO1GC-V-i {color: rgb(184, 184, 184);}
..F0XO1GC-V-j {cursor: default; outline: medium none; line-height: 24px;}
..F0XO1GC-Ub-c > div {float: left;}
..F0XO1GC-Ub-c > div + div {margin-left: 4px;}
..F0XO1GC-Ub-a {color: rgb(153, 153, 153);}
..F0XO1GC-Ub-b {display: block; clear: both; color: rgb(153, 153, 153); font=
-size: 11px; line-height: 11px;}
..gux-confirm-panel-r1 {background-color: rgb(255, 238, 136); border-left: 1=
px solid rgb(255, 253, 240); border-right: 1px solid rgb(255, 253, 240); ma=
rgin: 0px 1px; padding-top: 1px;}
..gux-confirm-panel-r2 {background-color: rgb(255, 238, 136); border-left: 1=
px solid rgb(255, 253, 240); border-right: 1px solid rgb(255, 253, 240); pa=
dding-top: 1px;}
..gux-confirm-panel-c {background-color: rgb(255, 238, 136); padding: 2px 15=
px;}
..gux-confirm-panel-message {color: rgb(0, 0, 0); font-weight: bold;}
..F0XO1GC-rb-w {padding: 10px; position: relative; height: 34px;}
..F0XO1GC-b-N .F0XO1GC-rb-w {padding: 8px;}
..F0XO1GC-b-O .F0XO1GC-rb-w ,body .F0XO1GC-rb-w {padding: 4px;}
..F0XO1GC-rb-j .F0XO1GC-rb-w {height: 51px;}
..F0XO1GC-rb-w + .F0XO1GC-rb-w {border-top: medium none;}
..F0XO1GC-rb-h {position: absolute; top: 10px; bottom: 10px; left: 86px; rig=
ht: 114px;}
..F0XO1GC-p-w .F0XO1GC-b-Qb {font-size: 13px;}
..F0XO1GC-p-w .F0XO1GC-rb-h {right: 164px; left: 56px !important;}
..F0XO1GC-b-N .F0XO1GC-p-w .F0XO1GC-rb-h {right: 164px; left: 50px !importan=
t;}
..F0XO1GC-b-O .F0XO1GC-p-w .F0XO1GC-rb-h ,body .F0XO1GC-p-w .F0XO1GC-rb-h {r=
ight: 164px; left: 44px !important;}
..F0XO1GC-b-N .F0XO1GC-rb-h {top: 8px; bottom: 8px; left: 78px;}
..F0XO1GC-b-O .F0XO1GC-rb-h ,body .F0XO1GC-rb-h {top: 4px; bottom: 4px; left=
: 70px;}
..F0XO1GC-rb-q {position: absolute; top: 4px; left: 54px;}
..F0XO1GC-b-N .F0XO1GC-rb-q {top: 2px; left: 48px;}
..F0XO1GC-b-O .F0XO1GC-rb-q ,body .F0XO1GC-rb-q {top: 0px; left: 42px;}
..F0XO1GC-rb-e {position: absolute; left: 10px;}
..F0XO1GC-b-N .F0XO1GC-rb-e {left: 8px;}
..F0XO1GC-b-O .F0XO1GC-rb-e ,body .F0XO1GC-rb-e {left: 4px;}
..F0XO1GC-rb-p ,.F0XO1GC-rb-u ,.F0XO1GC-rb-c {position: absolute; overflow: =
hidden; left: 0px; right: 0px;}
..F0XO1GC-rb-u {top: -2px;}
..F0XO1GC-rb-c ,.F0XO1GC-rb-p {top: 17px; color: rgb(102, 102, 102); white-s=
pace: nowrap;}
..F0XO1GC-rb-j .F0XO1GC-rb-c {top: 34px;}
..F0XO1GC-rb-t {display: block; overflow: hidden; text-overflow: ellipsis; w=
hite-space: nowrap;}
..F0XO1GC-rb-s.F0XO1GC-rb-o {font-weight: normal;}
..F0XO1GC-rb-v {float: right; margin-left: 4px; margin-right: 8px;}
..F0XO1GC-p-X .F0XO1GC-rb-c {color: rgb(136, 136, 136); white-space: nowrap;=
}
..F0XO1GC-p-X .F0XO1GC-rb-u {right: 38px;}
..F0XO1GC-rb-d {overflow: hidden; text-overflow: ellipsis;}
..F0XO1GC-rb-d > span img {vertical-align: middle; position: relative; top: =
-2px;}
..F0XO1GC-rb-b {color: rgb(51, 51, 51); display: inline-block;}
..F0XO1GC-rb-n {position: absolute; top: 10px; bottom: 10px; right: 10px; wi=
dth: 90px; overflow: hidden; border-left: 1px dotted rgb(216, 216, 216); pa=
dding-left: 8px;}
..F0XO1GC-b-N .F0XO1GC-rb-n {top: 8px; bottom: 8px; right: 8px;}
..F0XO1GC-b-O .F0XO1GC-rb-n ,body .F0XO1GC-rb-n {top: 4px; bottom: 4px; righ=
t: 4px;}
..F0XO1GC-rb-f {position: absolute; top: 10px; bottom: 10px; right: 110px; o=
verflow: hidden; padding-left: 8px;}
..F0XO1GC-b-N .F0XO1GC-rb-f {top: 8px; bottom: 8px; right: 108px;}
..F0XO1GC-b-O .F0XO1GC-rb-f ,body .F0XO1GC-rb-f {top: 4px; bottom: 4px; righ=
t: 104px;}
..F0XO1GC-rb-g {position: absolute; bottom: 10px; right: 10px; padding-left:=
8px; color: rgb(136, 136, 136);}
..F0XO1GC-b-N .F0XO1GC-rb-g {bottom: 8px; right: 8px;}
..F0XO1GC-b-O .F0XO1GC-rb-g ,body .F0XO1GC-rb-g {bottom: 4px; right: 4px;}
..F0XO1GC-rb-y {width: 16px; height: 16px; overflow: hidden;}
..F0XO1GC-rb-x {width: 16px; height: 16px; overflow: hidden; position: absol=
ute; left: 58px; top: 28px;}
..F0XO1GC-b-N .F0XO1GC-rb-x {left: 52px; top: 26px;}
..F0XO1GC-b-O .F0XO1GC-rb-x ,body .F0XO1GC-rb-x {left: 46px; top: 22px;}
..F0XO1GC-rb-r::before {content: " - ";}
..F0XO1GC-rb-z {font-weight: normal; margin-left: 4px;}
..F0XO1GC-rb-k {padding: 8px; position: relative;}
..F0XO1GC-b-N .F0XO1GC-rb-k {padding: 6px;}
..F0XO1GC-b-O .F0XO1GC-rb-k ,body .F0XO1GC-rb-k {padding: 4px;}
..F0XO1GC-rb-a {display: block; position: absolute; left: 58px;}
..F0XO1GC-rb-l {color: rgb(102, 102, 102); display: inline; margin-left: 78p=
x;}
..F0XO1GC-rb-m {color: rgb(170, 170, 170); display: inline;}
..F0XO1GC-nc-b {color: rgb(119, 119, 119); text-align: center; padding: 4px;=
}
..F0XO1GC-nc-a {color: rgb(5, 71, 192);}
..F0XO1GC-jb-c {display: inline; white-space: nowrap; padding: 0px 2px;}
..F0XO1GC-jb-a {color: rgb(238, 68, 68); font-size: 13px;}
..F0XO1GC-jb-b {font-size: 13px;}
..F0XO1GC-mb-k {height: 5px; width: 100%; background-color: rgb(187, 204, 25=
5);}
..F0XO1GC-mb-q {overflow: hidden;}
..F0XO1GC-mb-J {padding: 5px; overflow: hidden;}
..F0XO1GC-mb-x {border-bottom: 1px solid rgb(235, 235, 235); padding-top: 8p=
x; padding-bottom: 8px;}
..F0XO1GC-mb-ab .F0XO1GC-mb-y ,body .F0XO1GC-mb-y {padding-right: 20px;}
..F0XO1GC-mb-z {float: right;}
..F0XO1GC-mb-Z {display: inline;}
..F0XO1GC-mb-u {white-space: nowrap; font-weight: normal; float: right; font=
-size: 13px; color: rgb(102, 102, 102);}
..F0XO1GC-mb-v ,.F0XO1GC-mb-v:hover ,.F0XO1GC-mb-v:visited {text-decoration:=
none; color: rgb(136, 136, 136); cursor: default;}
..chrome-theme .F0XO1GC-mb-u {display: none;}
..F0XO1GC-mb-M {margin-right: 16px;}
..F0XO1GC-mb-cb {font-weight: bold;}
..F0XO1GC-nb-W.F0XO1GC-mb-o {border-top: 1px solid rgb(221, 221, 221);}
..F0XO1GC-nb-W.F0XO1GC-mb-l {border-bottom: 1px solid rgb(221, 221, 221);}
..F0XO1GC-mb-N ,.F0XO1GC-mb-P {padding-bottom: 5px; min-width: 100%;}
..F0XO1GC-mb-K {padding: 5px;}
..F0XO1GC-mb-Y {font-size: 18px;}
..F0XO1GC-mb-bb {font-size: 18px; background-color: rgb(235, 238, 248);}
..F0XO1GC-mb-V {white-space: nowrap;}
..F0XO1GC-mb-ab .F0XO1GC-mb-V ,body .F0XO1GC-mb-V {display: inline-block; ve=
rtical-align: baseline; margin-top: 4px;}
..F0XO1GC-mb-n {color: rgb(34, 34, 34); font-weight: normal;}
..F0XO1GC-mb-fb {vertical-align: middle; margin-right: 1.5em;}
..F0XO1GC-mb-eb {color: black; text-decoration: none; cursor: default; font-=
weight: bold;}
..F0XO1GC-mb-gb {color: rgb(34, 0, 204); cursor: pointer; font-weight: bold;=
}
..F0XO1GC-mb-db {color: rgb(34, 0, 204); cursor: pointer; white-space: nowra=
p; display: inline-block; vertical-align: bottom;}
..F0XO1GC-mb-ab .F0XO1GC-mb-db ,body .F0XO1GC-mb-db {position: relative; top=
: 1px;}
..F0XO1GC-mb-db span {margin-right: 2px;}
..F0XO1GC-mb-db img {opacity: 0.667;}
..F0XO1GC-mb-db img:hover {opacity: 1;}
..F0XO1GC-mb-A ,.F0XO1GC-mb-E {position: relative;}
..F0XO1GC-mb-E > .F0XO1GC-nb-W {margin-top: 20px;}
..F0XO1GC-mb-E > .F0XO1GC-nb-v {margin-top: 2px;}
..F0XO1GC-mb-C {padding-left: 20px; padding-top: 0px; margin-top: 2px;}
..F0XO1GC-mb-B {position: absolute; top: 1px; left: 10px; cursor: pointer;}
..F0XO1GC-mb-W {display: inline-block; position: relative;}
..F0XO1GC-mb-W .gwt-TabBarItem {cursor: pointer; font-weight: normal; positi=
on: relative; top: 1px; padding: 5px 10px; margin: 0px 3px; outline: medium=
none; background-color: rgb(245, 245, 245); border: 1px solid rgb(245, 245=
, 245);}
..F0XO1GC-mb-W .gwt-TabBarItem-selected {color: rgb(0, 0, 0); text-decoratio=
n: none; cursor: default; font-weight: bold; background-color: rgb(255, 255=
, 255); border-width: 1px; border-style: solid; border-color: rgb(235, 235,=
235) rgb(235, 235, 235) rgb(255, 255, 255); -moz-border-top-colors: none; =
-moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-borde=
r-left-colors: none; border-image: none;}
..F0XO1GC-mb-I {width: 100%;}
..F0XO1GC-mb-Q {margin: 16px 0px; border-bottom: 1px solid rgb(235, 235, 235=
);}
..F0XO1GC-mb-L {margin: 0px 3px; vertical-align: middle;}
..F0XO1GC-mb-S {padding: 5px;}
..F0XO1GC-mb-R {padding-bottom: 10px;}
..F0XO1GC-mb-U {font-size: 14px; font-weight: bold;}
..F0XO1GC-mb-T {font-weight: bold;}
..F0XO1GC-mb-a {position: relative; border: 1px solid rgb(235, 235, 235); di=
splay: inline-block; margin: 5px; padding: 5px 0px 0px 5px;}
..F0XO1GC-mb-b {position: absolute; color: rgb(102, 102, 102); left: 5px; bo=
ttom: 5px;}
..F0XO1GC-mb-r {margin-left: 10px;}
..F0XO1GC-mb-j {font-weight: bold; text-decoration: underline; cursor: point=
er;}
..F0XO1GC-mb-i {margin: 0px 5px; position: relative; border: 2px solid rgb(2=
04, 204, 204); padding: 2px 2px 2px 8px; line-height: 1.5em; background-col=
or: rgb(255, 255, 255);}
..F0XO1GC-mb-H {margin-left: 18px; position: relative;}
..F0XO1GC-mb-G {position: relative;}
..F0XO1GC-mb-F {position: absolute; top: 0px; left: 0px; cursor: pointer;}
..F0XO1GC-mb-p {padding: 8px 16px; color: rgb(34, 0, 204); background-color:=
rgb(255, 238, 136); border: 1px solid rgb(188, 188, 188); position: absolu=
te; bottom: 4px; right: 4px;}
..F0XO1GC-mb-p .F0XO1GC-mb-h {margin-left: 4px; color: rgb(128, 128, 128); c=
ursor: pointer; text-decoration: underline;}
..F0XO1GC-mb-O ,.F0XO1GC-mb-d {border-top: 1px solid rgb(221, 221, 221); pad=
ding: 4px;}
..F0XO1GC-mb-ab .F0XO1GC-mb-O ,body .F0XO1GC-mb-O {border: 0px none; padding=
: 4px 8px; background-color: rgb(77, 144, 254); border-radius: 10px;}
..F0XO1GC-mb-ab .F0XO1GC-mb-O.F0XO1GC-mb-d ,body .F0XO1GC-mb-O.F0XO1GC-mb-d =
{border-bottom: 0px none; padding: 4px 8px; background-color: rgb(61, 148, =
0); color: white; border-radius: 10px;}
..F0XO1GC-mb-ab .F0XO1GC-mb-O span ,.F0XO1GC-mb-ab .F0XO1GC-mb-d span ,body =
..F0XO1GC-mb-O span ,body .F0XO1GC-mb-d span {font-size: 16px; font-weight: =
normal;}
..F0XO1GC-mb-O span ,.F0XO1GC-mb-d span {font-weight: bold;}
..F0XO1GC-mb-O span {color: rgb(102, 102, 102);}
..F0XO1GC-mb-d span {color: rgb(75, 195, 87);}
..F0XO1GC-mb-ab .F0XO1GC-mb-O span ,.F0XO1GC-mb-ab .F0XO1GC-mb-d span ,body =
..F0XO1GC-mb-O span ,body .F0XO1GC-mb-d span {color: white;}
..F0XO1GC-mb-g ,.F0XO1GC-mb-t ,.F0XO1GC-mb-e {display: inline-block;}
..F0XO1GC-mb-t {vertical-align: top; overflow: hidden; padding-left: 8px !im=
portant;}
..F0XO1GC-mb-ab .F0XO1GC-mb-t ,body .F0XO1GC-mb-t {position: relative; top: =
1px;}
..F0XO1GC-mb-s {text-align: right; padding-bottom: 10px;}
..F0XO1GC-mb-c {text-align: center;}
..F0XO1GC-mb-w img {height: 20px;}
..F0XO1GC-kb-c {display: inline; white-space: nowrap; padding: 0px 2px;}
..F0XO1GC-kb-b {color: rgb(238, 68, 68); font-size: 13px;}
..F0XO1GC-kb-a {font-size: 13px;}
..F0XO1GC-lb-a {color: rgb(102, 102, 102);}
..F0XO1GC-lb-e {border-radius: 2px; height: 22px;}
..F0XO1GC-lb-e > span {position: relative; top: -2px;}
..F0XO1GC-lb-d {z-index: 1021; padding: 10px; display: block; box-shadow: 0p=
x 2px 4px rgba(0, 0, 0, 0.2); outline: medium none; border: 1px solid rgb(2=
04, 204, 204);}
..F0XO1GC-lb-b {text-align: center; margin-bottom: 15px;}
..F0XO1GC-lb-c div {display: inline-block;}
..F0XO1GC-lb-c * {padding-left: 5px; padding-right: 5px;}
..F0XO1GC-nb-W {position: relative; border-top: 1px solid transparent; borde=
r-bottom: 1px solid transparent; border-left: 1px solid transparent; margin=
-right: 0px; padding-right: 0px;}
..F0XO1GC-nb-F {margin-right: 0px;}
..F0XO1GC-nb-X {border-left: 1px solid rgb(77, 144, 240);}
..F0XO1GC-nb-X:focus {outline: medium none;}
..F0XO1GC-nb-Y {padding: 4px 0px;}
..F0XO1GC-nb-V {padding-top: 4px; padding-bottom: 4px; background-position: =
0px 9px;}
..F0XO1GC-b-Nb .F0XO1GC-nb-Y ,.F0XO1GC-b-Nb .F0XO1GC-nb-V {background-color:=
rgb(255, 255, 255);}
..F0XO1GC-nb-O {width: 100%;}
..F0XO1GC-nb-P {color: rgb(34, 34, 34); line-height: normal;}
..F0XO1GC-nb-P p {line-height: normal; margin: 1em 0px;}
..F0XO1GC-nb-p {width: 34px; padding: 5px;}
..F0XO1GC-nb-kb {border-bottom: 1px solid rgb(221, 221, 221); margin-bottom:=
8px;}
..F0XO1GC-nb-lb {margin-bottom: 8px;}
..F0XO1GC-nb-v {margin-top: 0px;}
..F0XO1GC-nb-w {padding: 2px 5px;}
..F0XO1GC-nb-w .F0XO1GC-nb-O {padding-bottom: 1px;}
..F0XO1GC-nb-a {position: relative; padding: 4px 0px;}
..F0XO1GC-nb-b {padding-left: 5px; margin-left: 39px; margin-right: 0px !imp=
ortant;}
..F0XO1GC-nb-c {display: inline-block;}
..F0XO1GC-nb-a .F0XO1GC-nb-jb {margin-right: 1em;}
..F0XO1GC-nb-G {vertical-align: inherit;}
..F0XO1GC-nb-G span {line-height: 27px; vertical-align: inherit;}
..F0XO1GC-nb-G img {top: 0px; vertical-align: top;}
..F0XO1GC-nb-d {float: right; text-align: right; line-height: 27px;}
..F0XO1GC-nb-d a {text-decoration: none; color: rgb(102, 136, 221); cursor: =
pointer; vertical-align: middle;}
..F0XO1GC-nb-U {font-size: 11px; float: right; line-height: 27px;}
..F0XO1GC-nb-O table {width: 100%;}
..F0XO1GC-nb-O td {vertical-align: top;}
..F0XO1GC-nb-Q {white-space: nowrap;}
..F0XO1GC-nb-R {height: 1.5em; cursor: pointer; padding-right: 5px; padding-=
bottom: 5px; padding-left: 5px; white-space: nowrap; overflow: hidden; padd=
ing-top: 6px !important;}
..F0XO1GC-nb-T {text-align: right;}
..F0XO1GC-nb-N {padding: 5px; vertical-align: middle;}
..F0XO1GC-nb-ab {white-space: pre-wrap; margin: 0px;}
..F0XO1GC-nb-H {background-color: rgb(211, 222, 255); padding: 5px;}
..F0XO1GC-nb-H input {width: 100%; display: block; border: 1px solid rgb(102=
, 136, 238); margin: 5px 0px;}
..F0XO1GC-nb-m {color: rgb(51, 51, 51); text-decoration: none; cursor: defau=
lt;}
..F0XO1GC-nb-m img {opacity: 1;}
..F0XO1GC-nb-hb ,.F0XO1GC-nb-D {padding: 4px 5px 3px 0px; white-space: nowra=
p;}
..F0XO1GC-nb-L {display: inline-block; margin-top: 4px;}
..F0XO1GC-nb-ib {display: inline-block;}
..F0XO1GC-nb-I {margin-left: -8px;}
..F0XO1GC-nb-J {margin-right: 0px;}
..F0XO1GC-nb-M {display: inline-block;}
..F0XO1GC-nb-K {margin-left: 13px;}
..F0XO1GC-nb-o {border-top: 1px solid rgb(221, 221, 221); padding: 5px; marg=
in-top: 5px;}
..F0XO1GC-nb-eb {color: rgb(136, 136, 136); height: 1.5em; overflow: hidden;=
line-height: 1.5em;}
..F0XO1GC-nb-w .F0XO1GC-nb-Q {line-height: 1.5em;}
..F0XO1GC-nb-fb {padding: 0px 4px; vertical-align: top;}
..F0XO1GC-nb-w .F0XO1GC-nb-Q {float: right; padding-right: 2px; padding-left=
: 8px;}
..F0XO1GC-nb-w .F0XO1GC-nb-z {float: right;}
..F0XO1GC-nb-w {cursor: pointer;}
..F0XO1GC-nb-v .F0XO1GC-nb-a ,.F0XO1GC-nb-v .F0XO1GC-nb-l {display: none;}
..F0XO1GC-nb-Z .gux-confirm-panel {padding: 4px; text-align: center;}
..F0XO1GC-nb-Z .F0XO1GC-nb-eb {padding: 4px;}
..F0XO1GC-nb-C {padding: 4px; text-align: center; background-color: rgb(239,=
239, 239);}
..F0XO1GC-nb-S {border-bottom: 1px solid rgb(221, 221, 221); margin-bottom: =
8px; padding-bottom: 8px;}
..F0XO1GC-nb-t {font-weight: bold;}
..F0XO1GC-nb-r {width: 15%; font-weight: bold;}
..F0XO1GC-nb-q {width: 85%;}
..F0XO1GC-nb-s {font-size: 12px; white-space: nowrap; text-decoration: under=
line; color: rgb(119, 136, 204); cursor: pointer;}
..F0XO1GC-nb-y {margin-top: 8px; border-top: 1px solid rgb(221, 221, 221);}
..F0XO1GC-nb-n {vertical-align: middle; margin-right: 5px; float: left;}
..F0XO1GC-nb-x .F0XO1GC-nb-gb ,body .F0XO1GC-nb-gb {float: left; margin: 0px=
10px;}
..F0XO1GC-nb-w .F0XO1GC-nb-gb ,.F0XO1GC-nb-x .F0XO1GC-nb-gb ,body .F0XO1GC-n=
b-gb {position: relative; top: -4px;}
..F0XO1GC-nb-e {float: right; white-space: nowrap; margin-top: 5px !importan=
t;}
..F0XO1GC-nb-i {display: inline-block; white-space: nowrap; text-align: cent=
er; height: 27px;}
..F0XO1GC-nb-f {padding: 0px;}
..F0XO1GC-nb-k {min-width: 0px; width: 13px; height: 27px; margin-right: 0px=
;}
..F0XO1GC-nb-k .F0XO1GC-k-b {margin-left: 0px;}
..F0XO1GC-nb-g span {margin-left: 24px; margin-right: 4px;}
..F0XO1GC-nb-g img {position: absolute; top: 4px; left: 12px;}
..F0XO1GC-nb-bb {display: inline-block;}
..chrome-theme .F0XO1GC-nb-P {color: rgb(119, 119, 119);}
..chrome-theme .F0XO1GC-nb-P a ,.chrome-theme .F0XO1GC-nb-P a:visited {color=
: rgb(0, 0, 0) !important; font-weight: 600 !important; text-decoration: no=
ne !important;}
..chrome-theme .F0XO1GC-nb-P a:hover ,.chrome-theme .F0XO1GC-nb-P a:active {=
color: rgb(51, 153, 255) !important;}
..F0XO1GC-nb-A {min-width: 34px;}
..F0XO1GC-nb-E {color: rgb(119, 119, 119);}
..F0XO1GC-nb-E > img {position: relative; top: 2px; padding-right: 4px;}
..F0XO1GC-nb-E > span {padding-right: 4px;}
..F0XO1GC-nb-u {padding-right: 4px; vertical-align: top;}
..F0XO1GC-nb-E .F0XO1GC-nb-u {vertical-align: baseline;}
..F0XO1GC-nb-E .F0XO1GC-D-c {vertical-align: middle !important;}
..F0XO1GC-nb-E .F0XO1GC-D-a {vertical-align: baseline;}
..F0XO1GC-Db-a {color: rgb(153, 153, 153); cursor: pointer; font-size: 9px;}
..F0XO1GC-Db-b {color: rgb(136, 136, 136);}
..F0XO1GC-ld-d {margin-left: auto; margin-right: auto;}
..F0XO1GC-ld-c {width: 100%; min-width: 400px;}
..F0XO1GC-ld-a {resize: vertical;}
..F0XO1GC-ld-b {font-weight: bold;}
..jfk-button-action {border: 1px solid rgb(48, 121, 237); color: rgb(255, 25=
5, 255); background-color: rgb(77, 144, 254); background-image: -moz-linear=
-gradient(center top , rgb(77, 144, 254), rgb(71, 135, 237));}
..chrome-theme .jfk-button-action {background-color: rgb(3, 112, 234); backg=
round-image: -webkit-linear-gradient(top, rgb(0, 141, 253) 0%, rgb(3, 112, =
234) 100%); border: 1px solid rgb(7, 107, 210); text-shadow: 1px 1px 1px rg=
b(7, 107, 210);}
..jfk-button-action:hover {color: rgb(255, 255, 255); border: 1px solid rgb(=
47, 91, 183); background-color: rgb(53, 122, 232); background-image: -moz-l=
inear-gradient(center top , rgb(77, 144, 254), rgb(53, 122, 232));}
..chrome-theme .jfk-button-action:hover {background-color: rgb(3, 112, 234);=
background-image: -webkit-linear-gradient(top, rgb(0, 141, 253) 30%, rgb(3=
, 112, 234) 100%); border: 1px solid rgb(7, 107, 210);}
..jfk-button-action:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset=
;}
..jfk-button-action:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) in=
set; outline: 0px none rgba(0, 0, 0, 0);}
..chrome-theme .jfk-button-action:focus {box-shadow: none; outline: medium n=
one !important; border: 1px solid rgb(6, 73, 144);}
..F0XO1GC-ed-a {padding-left: 5px; margin-left: 44px;}
..F0XO1GC-D-d {vertical-align: top; padding-left: 2px;}
..F0XO1GC-D-c {padding-left: 4px; vertical-align: top;}
..F0XO1GC-D-a {font-weight: bold; white-space: nowrap; vertical-align: top; =
cursor: default;}
..F0XO1GC-D-b {color: rgb(102, 102, 102); vertical-align: top; white-space: =
nowrap; margin-left: 4px;}
..F0XO1GC-pb-d {background-color: rgb(255, 255, 255); box-shadow: 0px 2px 4p=
x 0px rgba(0, 0, 0, 0.2); padding: 10px; z-index: 1021;}
..F0XO1GC-pb-b {padding-top: 5px; padding-bottom: 5px; font-size: 11px; colo=
r: rgb(102, 102, 102);}
..F0XO1GC-pb-g {width: 100%;}
..F0XO1GC-pb-e {display: block;}
..F0XO1GC-pb-c {display: block; width: 100%;}
..F0XO1GC-pb-f {display: block;}
..gwt-SuggestBoxPopup {overflow: auto !important; max-height: 240px; z-index=
: 1021;}
..F0XO1GC-b-N .gwt-SuggestBoxPopup {line-height: 26px !important;}
..F0XO1GC-b-O .gwt-SuggestBoxPopup ,body .gwt-SuggestBoxPopup {line-height: =
20px !important;}
..item {position: relative;}
..F0XO1GC-b-N .item {line-height: 26px !important;}
..F0XO1GC-b-O .item ,body .item {line-height: 20px !important;}
..item-selected {position: relative;}
td > strong {color: orange;}
..F0XO1GC-j-f .F0XO1GC-pb-d {box-shadow: none;}
..F0XO1GC-vb-p {padding: 8px;}
..F0XO1GC-vb-r {padding-bottom: 20px;}
..F0XO1GC-vb-a {padding: 16px 0px;}
..F0XO1GC-vb-a .goog-button-base {margin-right: 1em;}
..F0XO1GC-vb-z {width: 99%; display: block; border: 1px solid rgb(102, 136, =
238); margin: 5px 0px;}
..F0XO1GC-vb-A {padding-top: 8px;}
..F0XO1GC-vb-i .gwt-CheckBox {white-space: nowrap; padding-right: 1em; displ=
ay: inline-block;}
..F0XO1GC-vb-g {width: 25px; font-weight: bold; text-align: left; padding: 1=
0px 18px 0px 0px; vertical-align: top; white-space: nowrap; color: rgb(153,=
153, 153);}
..F0XO1GC-vb-h {width: 99%; border: 1px solid rgb(102, 136, 238); margin: 3p=
x 0px 3px 3px; font-size: 13px;}
..F0XO1GC-vb-f {color: rgb(136, 136, 136); font-size: 85%; text-decoration: =
none;}
..F0XO1GC-vb-k {background-color: white; max-width: 99%;}
..F0XO1GC-vb-q ,.F0XO1GC-vb-l ,.F0XO1GC-vb-E ,.F0XO1GC-vb-F ,body {min-heigh=
t: 200px; max-width: 100%; overflow: auto; outline: medium none; margin-bot=
tom: 4px;}
..F0XO1GC-vb-q {resize: none;}
..F0XO1GC-vb-E ,.F0XO1GC-vb-F ,body {height: 200px; resize: vertical;}
..F0XO1GC-vb-q ,.F0XO1GC-vb-F {padding: 4px;}
..F0XO1GC-vb-b {margin: 8px 0px;}
..F0XO1GC-vb-b td {vertical-align: middle;}
..F0XO1GC-vb-b a {cursor: pointer; padding: 0px 4px;}
..F0XO1GC-vb-j {white-space: nowrap;}
..F0XO1GC-vb-j a {text-decoration: underline;}
..F0XO1GC-vb-v {cursor: pointer; margin-left: 4px;}
..F0XO1GC-vb-e {padding-left: 10px;}
..F0XO1GC-vb-B {font-weight: bold; margin-bottom: 8px;}
..F0XO1GC-vb-w {margin-bottom: 5px; margin-right: 5px;}
..F0XO1GC-vb-x {max-width: 99%; overflow: hidden; transition: all 0.15s ease=
-in-out 0s;}
..F0XO1GC-vb-C {margin-bottom: 8px;}
..F0XO1GC-vb-o {color: rgb(136, 136, 136); text-decoration: none;}
..F0XO1GC-vb-y {font-weight: bold;}
..F0XO1GC-vb-n {border-bottom: 1px solid rgb(235, 235, 235); padding: 14px 0=
px 8px;}
..F0XO1GC-vb-c {display: inline-block; margin-right: 8px; position: relative=
; top: 6px;}
..F0XO1GC-vb-d {display: inline-block;}
..F0XO1GC-vb-D {font-weight: bold;}
..F0XO1GC-vb-u {display: inline-block; vertical-align: middle;}
..F0XO1GC-vb-t {padding-top: 3px;}
..F0XO1GC-vb-s {padding: 0px 5px 0px 15px;}
..F0XO1GC-vb-m {margin-right: 12px;}
..F0XO1GC-Uc-a {background: white none repeat scroll 0% 0%; min-width: 140px=
; overflow: hidden; white-space: nowrap;}
..F0XO1GC-Uc-c {background-color: white; border: medium none; font-size: 11p=
x; overflow: hidden; outline: medium none; margin: 2px 0px; width: 100%;}
..F0XO1GC-Uc-d {display: inline-block; margin: 0px; padding: 0px; width: 100=
%;}
..F0XO1GC-Lc-h {width: 99%; display: block; border: 1px solid rgb(102, 136, =
238); margin: 5px 0px;}
..F0XO1GC-Lc-d {font-size: 11px; color: rgb(136, 136, 136);}
..F0XO1GC-Lc-e {font-size: 11px; text-decoration: none; white-space: nowrap;=
}
..F0XO1GC-Lc-c {white-space: nowrap; padding-bottom: 2px;}
..F0XO1GC-Lc-a {color: rgb(136, 136, 136);}
..F0XO1GC-Lc-b {color: rgb(153, 0, 0); font-size: 11px;}
..F0XO1GC-Lc-g {height: 2em; overflow: hidden; margin-right: 10px; padding-b=
ottom: 5px;}
..F0XO1GC-Lc-f {line-height: 14px;}
..F0XO1GC-vc-a {font-style: italic;}
..jfk-button-default {color: rgb(255, 255, 255); text-shadow: 0px 1px rgba(0=
, 0, 0, 0.1); border: 1px solid rgb(41, 105, 29); background-color: rgb(61,=
148, 0); background-image: -moz-linear-gradient(center top , rgb(61, 148, =
0), rgb(57, 138, 0));}
..jfk-button-default:hover {border: 1px solid rgb(45, 98, 0); text-shadow: 0=
px 1px rgba(0, 0, 0, 0.3); background-color: rgb(54, 130, 0); background-im=
age: -moz-linear-gradient(center top , rgb(61, 148, 0), rgb(54, 130, 0));}
..jfk-button-default:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inse=
t;}
..jfk-button-default:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) i=
nset; outline: 0px none rgba(0, 0, 0, 0);}
..F0XO1GC-rc-c {display: inline-block; cursor: default; padding: 4px; positi=
on: relative;}
..F0XO1GC-rc-e {height: 18px; width: 18px; overflow: hidden; background: rgb=
a(0, 0, 0, 0) url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCA=
QAAAD8x0bcAAABG0lEQVR4AZXRP04CQRiG8ekIibFhgG4rK2WR8KfVwitAaL2BsXgCFB7AgkAoC=
SE0XsATcAJtjSWCsbIjwFCsb7JkJiEWuk/zFr9kk/nMvz/ytOmpNhYTCrPIjD3JIceUwjGK+WRD=
nyoZVWPAlhUlAqIosuBCK+KOeyKtmKXKBzRjgwjXrEnUmisMZXZMDkh6Tx8tXnkjUu+8YNQQh01=
Rm4QqWjxwg1GPOIyqk9BKUU8zg/GdseAZLbIkdH9DMd/MOfWoE35X8+iJL04Ou0FCM0UWx8CjSy=
p+j3DkhFBM2RKT7rlKV4Ud4/BOBVYsKaPNrUrJig+sR6oktGVInaxqMGIncn584DwTXDgwYywmo=
JClRZcOTXKYkOEP/QCM69uSuWj5UAAAAABJRU5ErkJggg=3D=3D") no-repeat scroll 0px =
0px;}
..F0XO1GC-rc-b {display: inline-block;}
..F0XO1GC-rc-c:hover > .F0XO1GC-rc-d ,.F0XO1GC-rc-c:focus > .F0XO1GC-rc-d {d=
isplay: block; z-index: 10;}
..F0XO1GC-rc-g .F0XO1GC-rc-d {right: 0px;}
..F0XO1GC-rc-d {background-color: white; border: 1px solid rgb(187, 187, 187=
); color: black; display: none; font-family: "Roboto",Arial,sans-serif; fon=
t-size: 13px; font-variant: normal; font-weight: normal; line-height: 17px;=
margin: 10px -10px; max-width: 300px; padding: 15px; position: absolute; w=
hite-space: normal; width: 290px;}
..F0XO1GC-rc-a {left: 9px; position: absolute; top: -9px;}
..F0XO1GC-rc-g .F0XO1GC-rc-a {left: inherit; right: 33px;}
..F0XO1GC-rc-h {border-width: 0px 9px 9px; border-style: solid; -moz-border-=
top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors=
: none; -moz-border-left-colors: none; border-image: none; border-color: rg=
b(187, 187, 187) transparent; display: block; left: 0px; position: absolute=
; top: 0px;}
..F0XO1GC-rc-f {border-width: 0px 9px 9px; border-style: solid; -moz-border-=
top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors=
: none; -moz-border-left-colors: none; border-image: none; border-color: wh=
ite transparent; display: block; left: 0px; position: absolute; top: 1px; z=
-index: 120;}
..F0XO1GC-Q-a {margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 20=
4, 204); padding-left: 1ex;}
..F0XO1GC-Q-b {margin: 0px 0.8ex; border-style: solid; border-color: rgb(204=
, 204, 204); -moz-border-top-colors: none; -moz-border-right-colors: none; =
-moz-border-bottom-colors: none; -moz-border-left-colors: none; border-imag=
e: none; border-width: 0px 1px; padding: 0px 1ex;}
..F0XO1GC-Q-c {position: relative; top: 5px; height: 16px; width: 16px; over=
flow: hidden; background: rgba(0, 0, 0, 0) url("data:image/png;base64,iVBOR=
w0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAsElEQVR42mNgGGzADYivA/EfII5DEo+H=
il0DYhd8BtyFKkwBYgEkcRA7HYj/AvFtfAb8B+JHeOQfA/E/XJKMUAPu4zHgAVQNIzZJRajkSTw=
GnIKqkUOXqAXid0D8Coh98RjgB1XzFogrkSVagPgz1P8eeAzwhIbDJyBuQJdUgTrvBB4DTkLVKN=
IkECmORgao7aCElIolISVDE9JdfAaAAvAWVCFyUo6DGnwTmtwHEQAAzwI0Qf4MSWYAAAAASUVOR=
K5CYII=3D") no-repeat scroll 0px 0px;}
..picker-framepane-root {position: absolute; width: 100%; height: 100%;}
* .picker-framepane-root ,body .picker-framepane-root {overflow: hidden;}
..picker-framepane-content {position: absolute; top: 0px; left: 0px; right: =
0px; bottom: 0px; overflow: hidden;}
* html .picker-framepane-content ,body .picker-framepane-content {position:=
relative; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; heigh=
t: 100%;}
..picker-framepane-top ,.picker-framepane-bottom {position: absolute; left: =
0px; right: 0px;}
* html .picker-framepane-top ,* html .picker-framepane-bottom ,body .picker=
-framepane-top ,body .picker-framepane-bottom {width: 100%;}
..picker-framepane-top {top: 0px;}
..picker-framepane-bottom {bottom: 0px;}
..picker-framepane-left ,.picker-framepane-right {overflow: auto; position: =
absolute; top: 0px; bottom: 0px;}
* html .picker-framepane-left ,* html .picker-framepane-right ,body .picker=
-framepane-left ,body .picker-framepane-right {height: 100%;}
..picker-framepane-left {left: 0px;}
..picker-framepane-right {right: 0px;}
..picker-actionpane-frame {background-color: rgb(255, 255, 255); border-top:=
1px solid rgb(229, 229, 229);}
..picker-actionpane-content {overflow: hidden;}
..picker-actionpane-frame .jfk-button {margin-top: 20px;}
..picker-actionpane-icon {margin-right: 8px; font-size: 13px; vertical-align=
: middle; background-image: url("//ssl.gstatic.com/docs/picker/images/apps_=
upload_icons-v1.gif") !important; background-position: center 0px; height: =
16px; width: 16px;}
..picker-actionpane-photomove-div {padding: 4px;}
..picker-actionpane-photomove {font-size: 13px; padding-left: 6px; vertical-=
align: bottom;}
:first-child + html .picker-navhidden .picker-actionpane-root {padding-left=
: 10px;}
..picker-navhidden.picker-chrome-none .picker-actionpane-root {bottom: 0px; =
left: 0px; right: 0px;}
..picker-chrome-none .picker-actionpane-content {margin-bottom: 5px;}
..picker-chrome-none .picker-framepane-hidden .picker-actionpane-content {ma=
rgin-bottom: 0px;}
* html .picker-actionpane-content ,body .picker-actionpane-content {padding=
-right: 6px; padding-bottom: 6px;}
..picker-actionpane-float-item {-moz-user-select: none; float: left; margin:=
0px 20px; height: 100%;}
..picker-people-picker .picker-actionpane-float-item {float: right;}
..picker-actionpane-uploading-message {padding: 8px 20px 0px 0px;}
..picker-actionpane-upload-status {color: rgb(68, 68, 68); font-size: 12px; =
max-width: 320px; padding: 17px 0px; position: absolute; right: 0px; top: 0=
px;}
..picker-actionpane-upload-status .picker-progress-bar.progress-bar-horizont=
al {height: 9px; border: 1px solid rgb(153, 153, 153); margin: 1px; padding=
: 1px; background: rgb(255, 255, 255) none repeat scroll 0% 0%; width: 100%=
; vertical-align: middle;}
..picker-actionpane-attachment-label {color: rgb(85, 85, 85); display: inlin=
e-block; font-size: 12px; margin-right: 10px;}
..picker-actionpane-attachment-type-float-item {float: right; margin: 20px;}
..picker-actionpane-attachment-type-float-item .jfk-button {vertical-align: =
middle; margin: 0px;}
..picker-segmentedbuttonbar .picker-actionpane-imagebutton-icon {display: in=
line-block; float: left; margin-top: 3px;}
..picker-segmentedbuttonbar .picker-actionpane-imagebutton-text {display: in=
line-block; font-size: 11px; line-height: 21px; margin-top: 3px;}
..picker-actionpane-frame .picker-segmentedbuttonbar {display: inline-block;=
outline: medium none; position: relative; z-index: 0;}
..picker-segmentedbuttonbar .jfk-button-standard.jfk-button-selected ,.picke=
r-segmentedbuttonbar .jfk-button-standard.jfk-button-clear-outline.jfk-butt=
on-selected {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset; background-c=
olor: rgb(238, 238, 238); background-image: -moz-linear-gradient(center top=
, rgb(238, 238, 238), rgb(224, 224, 224)); transition: all 0.1s ease 0s; b=
order: 1px solid rgb(204, 204, 204); color: rgb(51, 51, 51);}
..picker-actionpane-upload-status .progress-bar-horizontal .progress-bar-thu=
mb {height: 100%; background-repeat: repeat-x; background-size: 20px 10px; =
background-color: rgb(204, 204, 204); background-attachment: scroll; backgr=
ound-image: linear-gradient(315deg, transparent, transparent 33%, rgba(0, 0=
, 0, 0.12) 33%, rgba(0, 0, 0, 0.12) 66%, transparent 66%, transparent); ani=
mation-duration: 0.8s; animation-iteration-count: infinite; animation-timin=
g-function: linear;}
:first-child + html .picker-actionpane-float-item {float: right; margin: 0p=
x; padding-left: 4px;}
..picker-actionpane-frame .goog-imageless-button-content {padding: 6px 14px =
!important;}
..picker-actionpane-frame .goog-imageless-button {margin-left: 8px;}
:first-child + html .picker-actionpane-frame .goog-imageless-button {margin=
-left: 4px;}
..picker-actionpane-frame .goog-link-button {margin-top: 1px;}
..picker-actionpane-actionpanetext {float: right; font-size: 13px; margin: 2=
6px 37px 0px 0px; color: rgb(170, 170, 170);}
..picker-actionpane-upload-button-float-item {float: right;}
..picker-actionpane-upload-button {display: inline-block; float: right; marg=
in: 16px 23px;}
..picker-action-upload-button-img {margin-top: -3px; margin-right: 4px; vert=
ical-align: middle;}
..picker-main-overlay {position: absolute; background-color: rgb(255, 255, 2=
55); z-index: 2200; top: 0px; right: 0px; bottom: 0px; left: 0px; cursor: w=
ait;}
..picker-busy {opacity: 0.6; background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/docs/picker/images/loading-32-v1.gif") no-repeat scroll 50% 50%;}
..picker-gplus.picker-main-container {background-color: rgb(231, 231, 231);}
..picker-people-picker.picker-main-container {background-color: rgb(255, 255=
, 255);}
..picker-main-container .goog-link-button {color: rgb(17, 85, 204); text-dec=
oration: none; font-size: 13px; cursor: pointer; padding: 9px 2px; outline:=
medium none;}
..picker-main-container .goog-link-button-hover ,.picker-main-container .goo=
g-link-button-focused {text-decoration: underline;}
..picker-attributionbar-frame {background-color: rgb(255, 255, 255); border-=
top: 1px solid rgb(229, 229, 229); color: rgb(170, 170, 170); font-size: 11=
px; padding: 10px 20px; z-index: 2115;}
..picker-attributionbar-line {white-space: nowrap; overflow: hidden;}
..picker-actionpane-legal-text ,.picker-actionpane-notice {height: 100%; pad=
ding-right: 20px; cursor: default;}
..picker-actionpane-legal-text-td ,.picker-actionpane-notice-td {color: rgb(=
170, 170, 170); font-size: 13px; padding: 0px 20px 0px 10px; vertical-align=
: middle;}
..picker-actionpane-notice-link {cursor: pointer;}
..picker-actionpane-notice-error {color: rgb(204, 51, 51); font-size: 13px;}
..picker-actionpane-notice-warning {color: rgb(85, 85, 85); font-size: 11px;=
}
..picker-actionpane-notice-popup {font-size: 13px;}
..picker-actionpane-notice-popup .jfk-bubble-content-id {width: 300px;}
..picker-googlelogo-large {height: 44px; width: 120px;}
..picker-googlelogo-small {height: 20px; width: 52px;}
..picker-msgbar.jfk-butterBar {width: 75%; margin: auto; position: absolute;=
left: 0px; right: 0px; top: 10px; height: auto;}
..picker-msgbar.jfk-butterBar-shown {height: auto;}
..picker-msgbar.jfk-butterBar-warning .picker-link {color: rgb(255, 255, 255=
);}
..picker-main-container .goog-control {cursor: pointer;}
..picker-licensebar {color: rgb(68, 68, 68); font-size: 11px; margin-top: 7p=
x;}
..picker-loadingstatusbox {position: absolute; z-index: 100; padding: 2px 2p=
x 1px 4px; top: 50%; left: 50%; height: 32px; width: 32px; margin-top: -16p=
x; margin-left: -16px;}
..picker-loadingstatusbox-body {z-index: -1;}
..picker-photoupload-albumchooser-select {width: 242px; text-align: left; ma=
rgin: 0px; padding: 6px 10px;}
..picker-photoupload-albumchooser-select .goog-flat-menu-button-caption {wid=
th: 222px; padding: 0px 10px 0px 0px; overflow: hidden; text-overflow: elli=
psis; font-size: 11px; font-weight: bold; color: rgb(68, 68, 68); white-spa=
ce: nowrap; top: 1px; height: 16px;}
..picker-photoupload-albumchooser-select {height: 16px;}
..picker-photoupload-albumchooser-select .goog-flat-menu-button-caption ,.pi=
cker-photoupload-albumchooser-select .goog-flat-menu-button-dropdown ,.pick=
er-photoupload-albumchooser-select {line-height: normal;}
..picker-photoupload-albumchooser-select-menu {height: 180px; overflow: auto=
; z-index: 2200; width: 300px;}
..picker-photoupload-albumchooser-select-menu .goog-menuitem-content {text-o=
verflow: ellipsis; overflow: hidden;}
..picker-header-frame {padding: 17px 20px;}
..picker-header-content {border-top: 1px solid rgb(229, 229, 229);}
..picker-header-text {-moz-user-select: none; display: inline-block; font-si=
ze: 20px; vertical-align: top;}
..picker-header-icon {display: inline-block; margin: 0px 5px 5px 0px;}
..picker-dogfood-confidential-text {color: rgb(221, 75, 57); font-size: 13px=
; font-weight: bold; line-height: 25px; padding-left: 30px; text-transform:=
uppercase;}
..picker-header-close {line-height: 0; overflow: hidden; position: absolute;=
right: 11px; top: 20px;}
..picker-header-close .jfk-button-flat {cursor: pointer; height: inherit; ma=
rgin: 0px; width: inherit;}
..picker-debug-build-label {-moz-user-select: initial; background-color: rgb=
(255, 255, 255); color: rgb(153, 153, 153); font-size: 10px; position: abso=
lute; right: 10px; top: 0px;}
..picker-quotaview {padding: 21px; font-size: 13px;}
..picker-quotaview-div {margin-bottom: 10px;}
..picker-dropdown-menuitem {padding: 2px 7em 2px 30px; border: 0px none;}
..picker-dropdown-menuitem-header {color: rgb(153, 153, 153); cursor: defaul=
t; font-size: 11px; font-weight: bold; padding: 8px 7em 8px 30px; text-tran=
sform: uppercase;}
..picker-dropdown-menu {padding-bottom: 6px; width: 234px; z-index: 2108;}
..picker-url-input-frame {cursor: default; overflow: hidden; padding: 2px 10=
px 4px 8px; border-top: 1px solid rgb(229, 229, 229);}
..picker-url-input-text {font-size: 11px; color: rgb(68, 68, 68); margin: 5p=
x 0px 2px;}
..picker-url-input-box {border-width: 1px; border-style: solid; border-color=
: rgb(191, 191, 191) rgb(216, 216, 216) rgb(216, 216, 216); -moz-border-top=
-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: n=
one; -moz-border-left-colors: none; border-image: none; padding: 1px 0px; m=
argin: 1px 0px; font-size: 11px; width: 100%;}
..picker-url-input-box-selected {border: 2px solid rgb(77, 144, 254);}
..picker-urlview {padding: 14px 20px !important;}
..picker-urlview-header {color: rgb(68, 68, 68); font-size: 13px; font-weigh=
t: bold;}
..picker-urlview-input {width: 200px; border-width: 1px; border-style: solid=
; border-color: rgb(191, 191, 191) rgb(216, 216, 216) rgb(216, 216, 216); -=
moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-bo=
ttom-colors: none; -moz-border-left-colors: none; border-image: none; margi=
n: 1px 1px 2px 8px; padding: 3px;}
input.picker-urlview-selected {border: 2px solid rgb(77, 144, 254); margin:=
0px 0px 1px 7px;}
..picker-urlview-loading-icon {background-image: url("//ssl.gstatic.com/docs=
/picker/images/apps_upload_icons-v1.gif") !important; background-position: =
center 0px; height: 16px; width: 16px; margin-left: 5px; margin-bottom: 2px=
; vertical-align: middle; opacity: 0.5;}
..picker-urlview-success-icon {background-image: url("//ssl.gstatic.com/docs=
/picker/images/apps_upload_icons-v1.gif") !important; width: 16px; margin-l=
eft: 5px; vertical-align: middle; opacity: 0.5;}
..picker-urlview-error-icon {background-image: url("//ssl.gstatic.com/docs/p=
icker/images/apps_upload_icons-v1.gif") !important; height: 16px; width: 16=
px; margin-left: 5px; margin-bottom: 2px; vertical-align: middle; opacity: =
0.5;}
..picker-urlview-success-icon {background-position: center -16px; height: 13=
px; margin-bottom: 0px;}
..picker-urlview-error-icon {background-position: center -30px;}
..picker-urlview-preview {position: absolute; margin-top: 8px;}
..picker-urlview-preview-td {vertical-align: middle; text-align: center; col=
or: rgb(170, 170, 170); font-size: 12px;}
..picker-urlview-preview-content {font-size: 14px; margin: 10px 0px;}
..picker-urlview-error-td {color: rgb(204, 51, 51);}
..picker-web-control {border: 6px solid rgb(255, 255, 255); cursor: pointer;=
margin: -2px 8px 4px; overflow: hidden; padding: 6px;}
..picker-web-control-hover ,.picker-web-control-focused {border: 6px solid r=
gb(243, 243, 243); background: rgb(243, 243, 243) none repeat scroll 0% 0%;=
}
..picker-web-control-checked {border: 6px solid rgb(77, 144, 254); backgroun=
d: rgb(242, 247, 255) none repeat scroll 0% 0%;}
..picker-web-control-title {font-size: small; text-decoration: underline;}
..picker-web-control-content {font-size: small; color: rgb(68, 68, 68);}
..picker-web-control-url {font-size: small; color: green;}
..picker-learnmore {position: absolute; bottom: 9px; left: 16px;}
..picker-actionpane-frame .picker-learnmore {float: right; margin-top: 16px;=
position: static;}
..picker-actionpane-frame .picker-learnmore .goog-link-button {margin-right:=
20px; width: auto;}
..picker-learnmore .goog-link-button {width: 134px; vertical-align: middle;}
..picker-spr-questionmark {display: inline-block; margin-right: 5px; vertica=
l-align: middle;}
..picker-iconview-container {height: 100%;}
..picker-iconview-img {border: 1px solid rgb(221, 221, 221); margin-right: a=
uto; margin-left: auto; display: block; position: relative; top: 5%;}
..picker-main-container .jfk-tooltip {z-index: 2103;}
..picker-main-container .jfk-textinput ,.picker-main-container .jfk-button {=
transition: all 0.218s ease 0s;}
..picker-menu-container .goog-menu {z-index: 2112;}
..picker-offscreen {position: absolute; left: -10000px; top: -10000px;}
..picker-content {position: absolute; top: 0px; bottom: 0px; left: 0px; righ=
t: 0px; overflow: hidden;}
..picker-chrome-none .picker-content {left: 0px; right: 0px; bottom: 0px; bo=
rder-top: 0px none; border-left: 0px none; border-right: 0px none;}
..picker-chrome-none .picker-framepane-hidden .picker-actionpane-content .pi=
cker-content {border: 0px none;}
* html .picker-content ,body .picker-content {position: relative; bottom: 0=
px; left: 0px; right: 0px; top: 0px; height: 100%; width: 100%;}
:first-child + html .picker-content {left: 0px; bottom: 0px; right: 0px; to=
p: 0px; overflow-x: hidden;}
:first-child + html .picker-chrome-none .picker-content {left: 0px;}
..picker-dataview {overflow-y: auto;}
..picker-dataview-message {font-size: 13px; padding: 18px 0px 0px 7px; color=
: rgb(51, 51, 51); line-height: 150%;}
..picker-messagelist .picker-dataview-message {margin-left: 13px; padding-to=
p: 5px;}
..picker-combosearchmessagelist .pickercombosearch-content {margin: 20px 0px=
0px 20px;}
..picker-combosearchmessagelist .jfk-button-flat {cursor: pointer; font-size=
: inherit; font-weight: inherit; height: auto;}
..picker-combosearchmessagelist .picker-spr-life-photo-archive-large {margin=
-left: 50px;}
..picker-combosearchmessagelist .picker-searchbar-stock-photos-large {color:=
rgb(102, 102, 102); font-size: 18px; font-weight: bold; height: 27px; marg=
in: 10px 0px 0px 50px; position: absolute; text-align: left; vertical-align=
: middle; width: auto;}
..picker-listrenderer-table {width: 100%; table-layout: fixed; border-spacin=
g: 0px;}
..picker-listrenderer-table .picker-dataview-message {padding: 20px;}
..picker-list-control-tablerow {font-size: 13px; width: 100%; cursor: pointe=
r;}
..picker-list-control-tablerow-with-checkbox {outline: medium none;}
..picker-list-control-focused .jfk-checkbox {border: 1px solid rgb(77, 144, =
254);}
..picker-list-control-unselectable .picker-list-control-cell {color: rgb(204=
, 204, 204);}
..picker-list-control-unselectable .picker-list-control-icon {opacity: 0.3;}
..picker-list-control-checked {background-color: rgb(255, 255, 204);}
..picker-list-control-checkbox-cell {width: 42px; margin: 0px; padding-left:=
20px;}
..picker-list-control-icon-cell {width: 23px; padding-left: 8px;}
..picker-list-control-icon {display: block; margin-top: 4px; padding-bottom:=
3px; width: 16px; height: 16px;}
..picker-list-control-icon-img {max-height: 16px; max-width: 16px;}
..picker-list-control-name-cell {margin-left: 5px; overflow: hidden; padding=
-left: 7px;}
..picker-list-control-lastedited-cell {margin-left: 5px; overflow: hidden; p=
adding-left: 7px; width: 115px;}
..picker-list-control-cell {white-space: nowrap; text-overflow: ellipsis; bo=
rder-bottom: 1px solid rgb(229, 229, 229); padding-top: 4px; padding-bottom=
: 4px;}
..picker-navpane-horizontal-content .picker-list-control-cell {border-color:=
rgb(221, 221, 221);}
..picker-breadcrumbs-frame {cursor: default; overflow: hidden; margin-top: 1=
9px; margin-left: 18px;}
..picker-chrome-none .picker-breadcrumbs-frame {border: 0px none; margin-lef=
t: 0px;}
:first-child + html .picker-breadcrumbs-frame ,* html .picker-breadcrumbs-f=
rame ,body .picker-breadcrumbs-frame {margin-left: 0px; margin-right: 0px;}
* html .picker-breadcrumbs-content ,body .picker-breadcrumbs-content {paddi=
ng-bottom: 6px;}
..picker-breadcrumbs-table {color: rgb(85, 85, 85); font-size: 13px; positio=
n: relative; top: 1px; left: 1px;}
..picker-breadcrumbs-parent {padding-right: 3px; padding-left: 3px; padding-=
bottom: 3px; white-space: nowrap;}
..picker-breadcrumbs-clickable {cursor: pointer;}
..picker-breadcrumbs-triangle {white-space: nowrap;}
..picker-breadcrumbs-triangle1 {border-color: transparent transparent transp=
arent rgb(85, 85, 85); border-style: solid; border-width: 4px; margin: -2px=
2px 3px 6px; width: 0px; height: 0px; vertical-align: middle; line-height:=
0;}
..picker-breadcrumbs-child {font-weight: bold; white-space: nowrap; padding-=
right: 3px; padding-left: 3px; padding-bottom: 3px;}
..picker-butterbar {color: rgb(34, 34, 34); background-color: rgb(249, 237, =
190); font-size: 11px; padding: 3px 0px 0px; height: 17px; text-align: cent=
er; border: 1px solid rgb(240, 195, 109); border-radius: 2px;}
..picker-butterbar .picker-link {color: rgb(0, 0, 0);}
..picker-navhorizontal-new .picker-header-content {border-top: medium none;}
..picker-navhorizontal-new .picker-navpane-horizontal-frame {border-bottom: =
1px solid rgb(225, 225, 225); box-shadow: 0px 1px 5px 1px rgb(225, 225, 225=
); z-index: 1;}
..picker-navpane-horizontal-tab-bar-wrapper {background-color: rgb(245, 245,=
245); height: 50px; text-align: center;}
..picker-navhorizontal-new .picker-navpane-horizontal-tab-bar-wrapper {text-=
align: left;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-tab-bar {background: trans=
parent none repeat scroll 0% 0%; border-bottom: 0px none; display: inline-b=
lock; font-size: 12px; height: 50px; outline: medium none;}
..picker-navpane-horizontal-tab-bar-wrapper .picker-navpane-horizontal-tabco=
ntent {display: inline-block; font-size: 14px; vertical-align: middle;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-tab ,.picker-navpane-horiz=
ontal-tab-bar-wrapper .goog-menu-button {background: transparent none repea=
t scroll 0% 0%; border: medium none; color: rgb(34, 34, 34); float: left; h=
eight: 14px; margin: 0px 18px; padding: 16px 4px 7px; position: static;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-tab-bar-top {border: mediu=
m none !important; padding: 0px !important;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-tab-hover {background: tra=
nsparent none repeat scroll 0% 0%; border-bottom: 2px solid rgb(77, 144, 25=
4); color: rgb(38, 38, 38); cursor: pointer; padding-bottom: 18px;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-tab-selected {background: =
transparent none repeat scroll 0% 0% !important; border-width: 0px 0px 2px;=
border-style: none none solid; border-color: currentcolor currentcolor rgb=
(77, 144, 254); color: rgb(38, 38, 38); font-weight: bold; padding-bottom: =
18px;}
..picker-navpane-horizontal-tab-bar-wrapper .picker-navpane-horizontal-divid=
er {border-left: 1px solid rgb(34, 34, 34); cursor: default; margin: 10px 1=
0px 0px; padding: 7px 0px;}
..picker-navpane-horizontal-back-icon {display: inline-block; margin-right: =
1px; opacity: 0.8; vertical-align: middle;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-menu-button {font-size: 14=
px; outline: medium none;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-menu-button-hover ,.picker=
-navpane-horizontal-tab-bar-wrapper .goog-menu-button-open {border-bottom: =
2px solid rgb(77, 144, 254); color: rgb(38, 38, 38); cursor: pointer; paddi=
ng-bottom: 17px;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-menu-button.picker-horizon=
tal-navpane-more-selected {border-bottom: 2px solid rgb(77, 144, 254); colo=
r: rgb(38, 38, 38); cursor: pointer; font-weight: bold; padding-bottom: 17p=
x;}
..picker-navpane-horizontal-tab-bar-wrapper .goog-menu-button .picker-spr-ar=
row-dk-grey-down {opacity: 0.5; display: inline-block; margin: 0px 0px 2px =
5px;}
..picker-horizontal-navpane-more-menu {max-height: 50%; overflow-y: auto; z-=
index: 2200;}
..picker-navpane-horizontal-tab-bar-wrapper .picker-navpane-horizontal-paren=
t-tab {padding: 15px 2px 0px;}
..picker-navpane-horizontal-parent-tab.goog-tab-hover {padding-bottom: 19px;=
}
..picker-navpane-frame {background-color: rgb(255, 255, 255); border-right: =
1px solid rgb(229, 229, 229); overflow: visible; padding: 14px 0px 0px; z-i=
ndex: 2102;}
..picker-peoplesearchbar-showroom.picker-navpane-frame {background-color: rg=
b(245, 245, 245); border-right: 1px solid rgb(245, 245, 245);}
..picker-navpane-content {overflow: hidden; right: 0px;}
..picker-chrome-inline .picker-navpane-content {top: 10px;}
..picker-main-container .picker-navpane-frame .goog-tree-icon {width: 0px;}
..picker-main-container .picker-navpane-frame .picker-spr-arrow-dk-grey {cur=
sor: pointer; height: 7px; margin-bottom: 1px; margin-left: 2px; margin-rig=
ht: 6px; width: 4px;}
..picker-main-container .picker-navpane-frame .picker-spr-arrow-dk-grey-down=
{cursor: pointer; height: 4px; margin-right: 5px; width: 7px;}
..picker-main-container .picker-navpane-frame .picker-navpane-hascollapse .g=
oog-tree-expand-icon-blank {width: 12px;}
..picker-main-container .picker-navpaneitem .goog-tree-row .goog-tree-icon {=
left: 11px; position: relative;}
..picker-main-container .picker-navpane-frame .goog-tree-root.goog-tree-item=
{margin-top: -1px; outline: medium none; overflow: auto; padding: 2px 12px=
0px 0px;}
..picker-main-container .picker-navpaneitem .goog-tree-item-label {color: rg=
b(68, 68, 68); cursor: pointer; font-size: 13px; margin: 0px 20px 0px 0px; =
overflow: visible; white-space: normal; width: auto; z-index: 2103;}
..picker-main-container .goog-tree-item .picker-navpaneitem .selected {backg=
round-color: transparent; font-weight: normal;}
..picker-main-container .picker-navpane-frame .goog-tree-item .goog-tree-row=
{border-left: 5px solid transparent;}
..picker-main-container .picker-navpane-frame .goog-tree-root .picker-navpan=
eitem-active {border-left: 5px solid rgb(221, 75, 57); border-radius: 0px;}
..picker-main-container .picker-navpaneitem .goog-tree-item-label {margin-le=
ft: 11px;}
..picker-main-container .goog-tree-root .picker-navpaneitem-active .goog-tre=
e-item-label {color: rgb(207, 66, 54); font-weight: bold;}
..picker-main-container .picker-navpaneitem .goog-tree-row {height: auto; li=
ne-height: 90%; margin: 0px; padding: 3px 0px 6px; white-space: nowrap;}
..picker-main-container .picker-navpanedivider .goog-tree-row {line-height: =
0; margin: 0px 10px; padding: 10px 0px; white-space: nowrap;}
..picker-main-container .picker-navpane-frame .picker-navpanedivider .goog-t=
ree-expand-icon-blank ,.picker-main-container .picker-navpanedivider .picke=
r-navpanedivider-icon {height: 0px; position: absolute;}
..picker-main-container .picker-navpanedivider .picker-nav-hr {background-co=
lor: rgb(235, 235, 235); border-width: 0px; color: rgb(235, 235, 235); heig=
ht: 1px;}
..picker-main-container .goog-tree-item .picker-navpaneitem .picker-navpanei=
tem-root {margin-bottom: 1px; padding: 6px 0px 9px;}
..picker-main-container .goog-tree-item .picker-navpaneitem .picker-navpanei=
tem-hover ,.picker-main-container .focused .picker-navpaneitem .selected {b=
ackground-color: rgb(238, 238, 238);}
..picker-main-container .picker-navpane-frame .goog-tree-root .picker-navpan=
eitem .picker-navpaneitem-not-clickable {cursor: default;}
:first-child + html .picker-main-container .picker-navpane-frame .goog-tree=
-root .picker-navpaneitem .goog-tree-item-label {margin-right: 0px; padding=
-bottom: 4px;}
:first-child + html .picker-main-container .picker-navpaneitem .goog-tree-r=
ow {padding-bottom: 0px;}
:first-child + html .picker-main-container .goog-tree-item .picker-navpanei=
tem .picker-navpaneitem-root {padding-bottom: 5px;}
..picker-navpane-frame .picker-buildlabel {bottom: 0px; color: rgb(153, 153,=
153); font-size: 10px; left: 0px; padding: 5px; position: absolute;}
..picker-navpane-frame .picker-buildlabel-a {color: rgb(153, 153, 153);}
..picker-noticebar {font-size: 12px; padding: 7px 14px 15px; color: rgb(68, =
68, 68);}
..picker-progress-bar-spinner.progress-bar-horizontal {border: 0px none; bac=
kground: transparent url("//ssl.gstatic.com/docs/picker/images/loading-v1.g=
if") no-repeat scroll 0px 0px; height: 16px; width: 16px; margin: auto auto=
5px; opacity: 0.5;}
..picker-progress-bar-spinner .progress-bar-thumb {opacity: 0;}
..picker-progress-bar.progress-bar-horizontal {position: relative; border: 0=
px none; text-align: left; background: rgb(225, 225, 225) none repeat scrol=
l 0% 0%; vertical-align: top;}
..picker-main-container .progress-bar-thumb {transition: width 1s ease 0s;}
..picker-progress-bar .progress-bar-thumb {background: rgb(44, 117, 236) non=
e repeat scroll 0% 0%; height: 16px;}
..picker-jfk-tall-progressbar {border-width: 1px; border-style: solid; paddi=
ng: 1px;}
..picker-jfk-tall-progressbar .progress-bar-thumb {height: 8px;}
..picker-sspr-back-arrow-black {background: rgba(0, 0, 0, 0) url("//ssl.gsta=
tic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -129=
px; height: 21px; width: 21px;}
..picker-sspr-back-arrow-inverted {background: rgba(0, 0, 0, 0) url("//ssl.g=
static.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -=
562px; height: 21px; width: 21px;}
..picker-sspr-close-tab {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -150px; hei=
ght: 15px; width: 15px;}
..picker-sspr-drive-logo-black {background: rgba(0, 0, 0, 0) url("//ssl.gsta=
tic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -61p=
x; height: 20px; width: 20px;}
..picker-sspr-folder-new {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.co=
m/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -349px; he=
ight: 21px; width: 21px;}
..picker-sspr-forward-arrow-black {background: rgba(0, 0, 0, 0) url("//ssl.g=
static.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -=
436px; height: 21px; width: 21px;}
..picker-sspr-forward-arrow-inverted {background: rgba(0, 0, 0, 0) url("//ss=
l.gstatic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0p=
x -394px; height: 21px; width: 21px;}
..picker-sspr-group {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/doc=
s/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -481px; height:=
24px; width: 24px;}
..picker-sspr-group-white {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.c=
om/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -601px; h=
eight: 24px; width: 24px;}
..picker-sspr-help-black {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.co=
m/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -165px; he=
ight: 24px; width: 24px;}
..picker-sspr-help-white {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.co=
m/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -538px; he=
ight: 24px; width: 24px;}
..picker-sspr-inline-image {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -517px; =
height: 21px; width: 21px;}
..picker-sspr-launch {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/do=
cs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -625px; height=
: 18px; width: 18px;}
..picker-sspr-launch-inverted {background: rgba(0, 0, 0, 0) url("//ssl.gstat=
ic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -583p=
x; height: 18px; width: 18px;}
..picker-sspr-minpicker-back-button {background: rgba(0, 0, 0, 0) url("//ssl=
..gstatic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px=
-21px; height: 16px; width: 16px;}
..picker-sspr-minpicker-forward-button {background: rgba(0, 0, 0, 0) url("//=
ssl.gstatic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll =
0px -309px; height: 16px; width: 16px;}
..picker-sspr-my-drive-new-black {background: rgba(0, 0, 0, 0) url("//ssl.gs=
tatic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -4=
57px; height: 24px; width: 24px;}
..picker-sspr-my-drive-new-white {background: rgba(0, 0, 0, 0) url("//ssl.gs=
tatic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -2=
37px; height: 24px; width: 24px;}
..picker-sspr-mydrive {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/d=
ocs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -370px; heigh=
t: 24px; width: 24px;}
..picker-sspr-mydrive-white {background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -261px;=
height: 24px; width: 24px;}
..picker-sspr-open-link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -505px; hei=
ght: 12px; width: 12px;}
..picker-sspr-paper-clip {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.co=
m/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -415px; he=
ight: 21px; width: 21px;}
..picker-sspr-plus {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/docs=
/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -37px; height: 2=
4px; width: 24px;}
..picker-sspr-plus-inverted {background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -213px;=
height: 24px; width: 24px;}
..picker-sspr-search-icon {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.c=
om/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px 0px; heig=
ht: 21px; width: 21px;}
..picker-sspr-sort {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/docs=
/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -325px; height: =
24px; width: 24px;}
..picker-sspr-starred {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/d=
ocs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -81px; height=
: 24px; width: 24px;}
..picker-sspr-starred-white {background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -285px;=
height: 24px; width: 24px;}
..picker-sspr-team-drive-black {background: rgba(0, 0, 0, 0) url("//ssl.gsta=
tic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -105=
px; height: 24px; width: 24px;}
..picker-sspr-team-drive-white {background: rgba(0, 0, 0, 0) url("//ssl.gsta=
tic.com/docs/picker/images/onepick_sprite12.svg") no-repeat scroll 0px -189=
px; height: 24px; width: 24px;}
..picker-spr-add-people ,.picker-spr-added-check ,.picker-spr-arrow-back ,.p=
icker-spr-arrow-back-white ,.picker-spr-arrow-dk-grey ,.picker-spr-arrow-dk=
-grey-down ,.picker-spr-arrow-forward ,.picker-spr-arrow-forward-white ,.pi=
cker-spr-audience-acl-small-domain-public ,.picker-spr-audience-acl-small-e=
xtended-circles ,.picker-spr-audience-acl-small-limited ,.picker-spr-audien=
ce-acl-small-owner-only ,.picker-spr-audience-acl-small-public ,.picker-spr=
-back-folder-ltr ,.picker-spr-back-folder-rtl ,.picker-spr-black-close ,.pi=
cker-spr-check ,.picker-spr-checkbox-active ,.picker-spr-checkbox-selected =
,.picker-spr-checkbox-selected-blue ,.picker-spr-checkmark-checked ,.picker=
-spr-circle ,.picker-spr-circle-active ,.picker-spr-circle-big ,.picker-spr=
-circle-big-white ,.picker-spr-circle-hover ,.picker-spr-close-box-small-of=
f ,.picker-spr-close-box-small-on ,.picker-spr-close-box-tiny-black ,.picke=
r-spr-close-box-tiny-white ,.picker-spr-close-min ,.picker-spr-collection ,=
..picker-spr-drive-64 ,.picker-spr-drive-black-icon ,.picker-spr-drive-drag-=
upload-icon ,.picker-spr-drive-upload-icon ,.picker-spr-folder-shared-white=
,.picker-spr-folder-white ,.picker-spr-gmail ,.picker-spr-google-logo ,.pi=
cker-spr-google-logo-large ,.picker-spr-google-photos-20 ,.picker-spr-googl=
e-photos-24 ,.picker-spr-googleplus ,.picker-spr-grid-view ,.picker-spr-ic-=
dragfile-blue ,.picker-spr-ic-dragfile-bluepng ,.picker-spr-ic-dragfile-gre=
y ,.picker-spr-ic-dragphoto-blue ,.picker-spr-ic-dragphoto-grey ,.picker-sp=
r-ic-dragvideo-blue ,.picker-spr-ic-dragvideo-grey ,.picker-spr-ic-photos-1=
2 ,.picker-spr-ic-photos-20 ,.picker-spr-ic-remove ,.picker-spr-icon-autofi=
x-active ,.picker-spr-icon-computer ,.picker-spr-icon-cover-photo ,.picker-=
spr-icon-photos-delete ,.picker-spr-icon-photos-delete-white ,.picker-spr-i=
con-remove-active ,.picker-spr-icon-rotate-ccw-active ,.picker-spr-icon-rot=
ate-cw-active ,.picker-spr-icon-rotate-left-white ,.picker-spr-icon-rotate-=
right-white ,.picker-spr-icon-three-dots-active ,.picker-spr-icon-zoom-max =
,.picker-spr-icon-zoom-min ,.picker-spr-imagefilter-all-colors ,.picker-spr=
-imagefilter-monochrome ,.picker-spr-inline-image ,.picker-spr-large-plus-b=
lack ,.picker-spr-life-photo-archive ,.picker-spr-life-photo-archive-large =
,.picker-spr-list-view ,.picker-spr-maps-cancel-en ,.picker-spr-maps-next-d=
is ,.picker-spr-maps-next-en ,.picker-spr-maps-prev-dis ,.picker-spr-maps-p=
rev-en ,.picker-spr-mic ,.picker-spr-navpane-albums ,.picker-spr-navpane-al=
bums-selected ,.picker-spr-navpane-from-computer ,.picker-spr-navpane-from-=
computer-selected ,.picker-spr-navpane-gdrive ,.picker-spr-navpane-gdrive-s=
elected ,.picker-spr-navpane-instantupload ,.picker-spr-navpane-instantuplo=
ad-selected ,.picker-spr-navpane-url ,.picker-spr-navpane-webcam ,.picker-s=
pr-navpane-webcam-selected ,.picker-spr-navpane-youtube ,.picker-spr-new-fo=
lder ,.picker-spr-no-photo ,.picker-spr-no-photo-48 ,.picker-spr-no-photo-8=
4 ,.picker-spr-paper-clip ,.picker-spr-photo-discard ,.picker-spr-photo-ico=
n ,.picker-spr-photo-upload-cancel ,.picker-spr-picasa-rectangles ,.picker-=
spr-plus-black ,.picker-spr-plus-gray ,.picker-spr-profile-rotate-ccw ,.pic=
ker-spr-profile-rotate-cw ,.picker-spr-questionmark ,.picker-spr-rio-arrow-=
menu ,.picker-spr-rio-check-active ,.picker-spr-rio-check-checked ,.picker-=
spr-rio-checkmark-active ,.picker-spr-rio-checkmark-selected ,.picker-spr-r=
io-rotate ,.picker-spr-rio-trash ,.picker-spr-rio-upload ,.picker-spr-rio-u=
pload-big ,.picker-spr-sad-face ,.picker-spr-sort ,.picker-spr-sort-bar ,.p=
icker-spr-toolbar-gray-rotate-ccw ,.picker-spr-toolbar-gray-rotate-cw ,.pic=
ker-spr-toolbar-gray-trash ,.picker-spr-toolbar-white-rotate-ccw ,.picker-s=
pr-toolbar-white-rotate-cw ,.picker-spr-toolbar-white-trash ,.picker-spr-up=
load-arrow ,.picker-spr-upload-error ,.picker-spr-upload-retry ,.picker-spr=
-video-play-overlay ,.picker-spr-video-play-overlay-small ,.picker-spr-vide=
o-stars ,.picker-spr-video-stars-rtl ,.picker-spr-video-upload-icon ,.picke=
r-spr-white-checkmark ,.picker-spr-youtube {background: rgba(0, 0, 0, 0) ur=
l("//ssl.gstatic.com/docs/picker/images/picker_sprite-v107.png") no-repeat =
scroll 0% 0%;}
..picker-spr-add-people {background-position: -28px -230px; width: 27px; hei=
ght: 26px;}
..picker-spr-added-check {background-position: 0px -676px; width: 21px; heig=
ht: 21px;}
..picker-spr-arrow-back-white {background-position: -128px -1112px; width: 2=
1px; height: 21px;}
..picker-spr-arrow-back {background-position: -15px -1402px; width: 21px; he=
ight: 21px;}
..picker-spr-arrow-dk-grey-down {background-position: 0px -1240px; width: 7p=
x; height: 4px;}
..picker-spr-arrow-dk-grey {background-position: 0px -230px; width: 4px; hei=
ght: 7px;}
..picker-spr-arrow-forward-white {background-position: 0px -576px; width: 21=
px; height: 21px;}
..picker-spr-arrow-forward {background-position: -58px -676px; width: 21px; =
height: 21px;}
..picker-spr-audience-acl-small-domain-public {background-position: -110px -=
1402px; width: 12px; height: 12px;}
..picker-spr-audience-acl-small-extended-circles {background-position: -88px=
-1388px; width: 12px; height: 12px;}
..picker-spr-audience-acl-small-limited {background-position: -4px -310px; w=
idth: 12px; height: 12px;}
..picker-spr-audience-acl-small-owner-only {background-position: 0px -1112px=
; width: 12px; height: 12px;}
..picker-spr-audience-acl-small-public {background-position: 0px -985px; wid=
th: 12px; height: 12px;}
..picker-spr-back-folder-ltr {background-position: 0px -1012px; width: 21px;=
height: 21px;}
..picker-spr-back-folder-rtl {background-position: 0px -1304px; width: 21px;=
height: 21px;}
..picker-spr-black-close {background-position: -147px -244px; width: 11px; h=
eight: 11px;}
..picker-spr-checkbox-active {background-position: -15px -1140px; width: 24p=
x; height: 24px;}
..picker-spr-checkbox-selected-blue {background-position: 0px -1325px; width=
: 24px; height: 24px;}
..picker-spr-checkbox-selected {background-position: -46px -802px; width: 24=
px; height: 24px;}
..picker-spr-checkmark-checked {background-position: -19px -922px; width: 18=
px; height: 18px;}
..picker-spr-check {background-position: 0px -890px; width: 14px; height: 11=
px;}
..picker-spr-circle-active {background-position: 0px -1373px; width: 14px; h=
eight: 14px;}
..picker-spr-circle-big-white {background-position: -79px -676px; width: 26p=
x; height: 26px;}
..picker-spr-circle-big {background-position: -83px -1112px; width: 26px; he=
ight: 26px;}
..picker-spr-circle-hover {background-position: -147px -230px; width: 14px; =
height: 14px;}
..picker-spr-circle {background-position: -113px -64px; width: 14px; height:=
14px;}
..picker-spr-close-box-small-off {background-position: -79px -945px; width: =
15px; height: 15px;}
..picker-spr-close-box-small-on {background-position: -43px -676px; width: 1=
5px; height: 15px;}
..picker-spr-close-box-tiny-black {background-position: -19px -915px; width:=
7px; height: 7px;}
..picker-spr-close-box-tiny-white {background-position: -82px -985px; width:=
7px; height: 7px;}
..picker-spr-close-min {background-position: -105px -676px; width: 11px; hei=
ght: 11px;}
..picker-spr-collection {background-position: -21px -1077px; width: 16px; he=
ight: 13px;}
..picker-spr-drive-64 {background-position: -88px -1511px; width: 64px; heig=
ht: 64px;}
..picker-spr-drive-black-icon {background-position: -79px -960px; width: 21p=
x; height: 21px;}
..picker-spr-drive-drag-upload-icon {background-position: 0px -422px; width:=
35px; height: 45px;}
..picker-spr-drive-upload-icon {background-position: -149px -1112px; width: =
11px; height: 14px;}
..picker-spr-folder-shared-white {background-position: -4px -289px; width: 2=
1px; height: 21px;}
..picker-spr-folder-white {background-position: -32px -363px; width: 21px; h=
eight: 21px;}
..picker-spr-gmail {background-position: -72px -1388px; width: 16px; height:=
11px;}
..picker-spr-google-logo-large {background-position: -40px -826px; width: 11=
8px; height: 41px;}
..picker-spr-google-logo {background-position: -64px -915px; width: 61px; he=
ight: 28px;}
..picker-spr-google-photos-20 {background-position: -90px -802px; width: 20p=
x; height: 20px;}
..picker-spr-google-photos-24 {background-position: -4px -230px; width: 24px=
; height: 24px;}
..picker-spr-googleplus {background-position: -109px -390px; width: 48px; he=
ight: 48px;}
..picker-spr-grid-view {background-position: 0px -1140px; width: 15px; heigh=
t: 15px;}
..picker-spr-ic-dragfile-bluepng {background-position: 0px -130px; width: 10=
0px; height: 100px;}
..picker-spr-ic-dragfile-blue {background-position: -100px -130px; width: 64=
px; height: 64px;}
..picker-spr-ic-dragfile-grey {background-position: 0px -1447px; width: 64px=
; height: 64px;}
..picker-spr-ic-dragphoto-blue {background-position: -65px -278px; width: 64=
px; height: 64px;}
..picker-spr-ic-dragphoto-grey {background-position: -90px -1240px; width: 6=
4px; height: 64px;}
..picker-spr-ic-dragvideo-blue {background-position: 0px -1511px; width: 64p=
x; height: 64px;}
..picker-spr-ic-dragvideo-grey {background-position: 0px -702px; width: 100p=
x; height: 100px;}
..picker-spr-ic-photos-12 {background-position: -125px -915px; width: 12px; =
height: 12px;}
..picker-spr-ic-photos-20 {background-position: -70px -802px; width: 20px; h=
eight: 20px;}
..picker-spr-ic-remove {background-position: -24px -826px; width: 16px; heig=
ht: 16px;}
..picker-spr-icon-autofix-active {background-position: 0px -802px; width: 24=
px; height: 24px;}
..picker-spr-icon-computer {background-position: -21px -676px; width: 22px; =
height: 20px;}
..picker-spr-icon-cover-photo {background-position: -124px -702px; width: 14=
px; height: 21px;}
..picker-spr-icon-photos-delete-white {background-position: 0px -826px; widt=
h: 24px; height: 24px;}
..picker-spr-icon-photos-delete {background-position: -100px -702px; width: =
24px; height: 24px;}
..picker-spr-icon-remove-active {background-position: -100px -726px; width: =
24px; height: 24px;}
..picker-spr-icon-rotate-ccw-active {background-position: 0px 0px; width: 24=
px; height: 24px;}
..picker-spr-icon-rotate-cw-active {background-position: -64px -1511px; widt=
h: 24px; height: 24px;}
..picker-spr-icon-rotate-left-white {background-position: -43px -936px; widt=
h: 15px; height: 9px;}
..picker-spr-icon-rotate-right-white {background-position: 0px -1402px; widt=
h: 15px; height: 9px;}
..picker-spr-icon-three-dots-active {background-position: -104px 0px; width:=
24px; height: 24px;}
..picker-spr-icon-zoom-max {background-position: 0px -390px; width: 32px; he=
ight: 32px;}
..picker-spr-icon-zoom-min {background-position: 0px -342px; width: 32px; he=
ight: 32px;}
..picker-spr-imagefilter-all-colors {background-position: -21px -1304px; wid=
th: 19px; height: 19px;}
..picker-spr-imagefilter-monochrome {background-position: -109px -1112px; wi=
dth: 19px; height: 19px;}
..picker-spr-inline-image {background-position: -43px -915px; width: 21px; h=
eight: 21px;}
..picker-spr-large-plus-black {background-position: -87px -230px; width: 12p=
x; height: 12px;}
..picker-spr-life-photo-archive-large {background-position: 0px -945px; widt=
h: 79px; height: 40px;}
..picker-spr-life-photo-archive {background-position: -12px -1112px; width: =
55px; height: 28px;}
..picker-spr-list-view {background-position: -55px -262px; width: 15px; heig=
ht: 15px;}
..picker-spr-maps-cancel-en {background-position: 0px -883px; width: 7px; he=
ight: 7px;}
..picker-spr-maps-next-dis {background-position: -128px -867px; width: 6px; =
height: 11px;}
..picker-spr-maps-next-en {background-position: -37px -915px; width: 6px; he=
ight: 11px;}
..picker-spr-maps-prev-dis {background-position: -24px -32px; width: 6px; he=
ight: 11px;}
..picker-spr-maps-prev-en {background-position: -76px -985px; width: 6px; he=
ight: 11px;}
..picker-spr-mic {background-position: 0px -1349px; width: 9px; height: 14px=
;}
..picker-spr-navpane-albums-selected {background-position: -99px -230px; wid=
th: 48px; height: 48px;}
..picker-spr-navpane-albums {background-position: -100px -750px; width: 48px=
; height: 48px;}
..picker-spr-navpane-from-computer-selected {background-position: -109px -43=
8px; width: 30px; height: 28px;}
..picker-spr-navpane-from-computer {background-position: -21px -1049px; widt=
h: 30px; height: 28px;}
..picker-spr-navpane-gdrive-selected {background-position: -24px -1325px; wi=
dth: 48px; height: 48px;}
..picker-spr-navpane-gdrive {background-position: 0px -508px; width: 48px; h=
eight: 48px;}
..picker-spr-navpane-instantupload-selected {background-position: -56px 0px;=
width: 48px; height: 48px;}
..picker-spr-navpane-instantupload {background-position: -53px -342px; width=
: 48px; height: 48px;}
..picker-spr-navpane-url {background-position: -83px -64px; width: 30px; hei=
ght: 30px;}
..picker-spr-navpane-webcam-selected {background-position: 0px -1244px; widt=
h: 48px; height: 48px;}
..picker-spr-navpane-webcam {background-position: -101px -342px; width: 48px=
; height: 48px;}
..picker-spr-navpane-youtube {background-position: -21px -576px; width: 30px=
; height: 30px;}
..picker-spr-new-folder {background-position: -48px -1240px; width: 21px; he=
ight: 21px;}
..picker-spr-no-photo-48 {background-position: -80px -867px; width: 48px; he=
ight: 48px;}
..picker-spr-no-photo-84 {background-position: -72px -1304px; width: 84px; h=
eight: 84px;}
..picker-spr-no-photo {background-position: 0px -476px; width: 32px; height:=
32px;}
..picker-spr-paper-clip {background-position: -69px -1240px; width: 21px; he=
ight: 21px;}
..picker-spr-photo-discard {background-position: -41px -278px; width: 24px; =
height: 24px;}
..picker-spr-photo-icon {background-position: -105px -687px; width: 18px; he=
ight: 14px;}
..picker-spr-photo-upload-cancel {background-position: -41px -302px; width: =
10px; height: 10px;}
..picker-spr-picasa-rectangles {background-position: -19px -867px; width: 61=
px; height: 44px;}
..picker-spr-plus-black {background-position: -32px -342px; width: 21px; hei=
ght: 21px;}
..picker-spr-plus-gray {background-position: -148px -278px; width: 9px; heig=
ht: 9px;}
..picker-spr-profile-rotate-ccw {background-position: 0px -867px; width: 19p=
x; height: 16px;}
..picker-spr-profile-rotate-cw {background-position: -64px -1535px; width: 1=
9px; height: 16px;}
..picker-spr-questionmark {background-position: -123px -676px; width: 16px; =
height: 16px;}
..picker-spr-rio-arrow-menu {background-position: -83px -48px; width: 16px; =
height: 16px;}
..picker-spr-rio-check-active {background-position: -55px -230px; width: 32p=
x; height: 32px;}
..picker-spr-rio-check-checked {background-position: -24px 0px; width: 32px;=
height: 32px;}
..picker-spr-rio-checkmark-active {background-position: -137px -867px; width=
: 24px; height: 24px;}
..picker-spr-rio-checkmark-selected {background-position: -139px -676px; wid=
th: 24px; height: 24px;}
..picker-spr-rio-rotate {background-position: -25px -278px; width: 16px; hei=
ght: 16px;}
..picker-spr-rio-trash {background-position: -67px -1112px; width: 16px; hei=
ght: 16px;}
..picker-spr-rio-upload-big {background-position: -35px -390px; width: 74px;=
height: 86px;}
..picker-spr-rio-upload {background-position: -128px 0px; width: 25px; heigh=
t: 29px;}
..picker-spr-sad-face {background-position: -16px -48px; width: 67px; height=
: 58px;}
..picker-spr-sort-bar {background-position: -55px -1402px; width: 20px; heig=
ht: 20px;}
..picker-spr-sort {background-position: -139px -438px; width: 13px; height: =
18px;}
..picker-spr-toolbar-gray-rotate-ccw {background-position: -94px -945px; wid=
th: 19px; height: 14px;}
..picker-spr-toolbar-gray-rotate-cw {background-position: -36px -1402px; wid=
th: 19px; height: 14px;}
..picker-spr-toolbar-gray-trash {background-position: -75px -1402px; width: =
19px; height: 14px;}
..picker-spr-toolbar-white-rotate-ccw {background-position: -129px -278px; w=
idth: 19px; height: 14px;}
..picker-spr-toolbar-white-rotate-cw {background-position: 0px -915px; width=
: 19px; height: 14px;}
..picker-spr-toolbar-white-trash {background-position: 0px -850px; width: 19=
px; height: 14px;}
..picker-spr-upload-arrow {background-position: -4px -278px; width: 11px; he=
ight: 11px;}
..picker-spr-upload-error {background-position: 0px -48px; width: 16px; heig=
ht: 14px;}
..picker-spr-upload-retry {background-position: -100px -1388px; width: 14px;=
height: 14px;}
..picker-spr-video-play-overlay-small {background-position: -24px -802px; wi=
dth: 22px; height: 22px;}
..picker-spr-video-play-overlay {background-position: -21px -1012px; width: =
37px; height: 37px;}
..picker-spr-video-stars-rtl {background-position: 0px -106px; width: 110px;=
height: 24px;}
..picker-spr-video-stars {background-position: 0px -1423px; width: 110px; he=
ight: 24px;}
..picker-spr-video-upload-icon {background-position: -82px -992px; width: 22=
px; height: 14px;}
..picker-spr-white-checkmark {background-position: -64px -1551px; width: 12p=
x; height: 9px;}
..picker-spr-youtube {background-position: -12px -985px; width: 64px; height=
: 27px;}
..picker-searchbar {margin: 15px 0px 8px 20px;}
..picker-searchbar .jfk-button {background-image: none; vertical-align: midd=
le;}
..picker-searchbar .goog-menu {z-index: 2112;}
..picker-searchbar-input {font-size: 13px; text-align: left;}
..picker-searchbar-input-logo .picker-spr-google-logo {margin-right: 10px;}
..picker-searchbar .picker-searchbar-input-logo {position: relative;}
..picker-searchbar .picker-flat-menu-button {cursor: pointer; height: 14px; =
left: 221px; min-width: 0px; opacity: 0.5; padding: 11px 15px 0px 5px; posi=
tion: absolute; top: 6px;}
..picker-searchbar .picker-flat-menu-button.jfk-button-hover ,.picker-search=
bar .picker-flat-menu-button.jfk-button-focused {opacity: 1;}
..picker-searchbar-input-box.picker-searchbar-dropdownmenu-padding {width: 2=
10px; padding-right: 23px;}
..picker-searchbar .picker-flat-menu-button .picker-spr-arrow-dk-grey-down {=
position: absolute;}
..picker-searchbar-input-logo .picker-spr-life-photo-archive {margin: 0px 6p=
x 0px 2px;}
..picker-searchbar-input-item {vertical-align: bottom;}
..picker-searchbar-input-box {width: 225px; margin: 4px 15px 5px 0px; vertic=
al-align: middle;}
..picker-searchbar-logo .picker-searchbar-input-box {margin-top: 5px;}
..picker-searchbar-input-logo .picker-searchbar-stock-photos ,.goog-menuitem=
-content .picker-searchbar-stock-photos {text-align: left; color: rgb(102, =
102, 102); padding: 6px 4px 0px 0px; margin: 0px; width: auto; height: 22px=
; vertical-align: middle; font-size: 15px; font-weight: bold;}
..picker-searchbar-input-logo .goog-flat-menu-button-caption .picker-spr-goo=
gle-logo {margin: 2px 2px 2px 0px;}
..picker-searchbar-input-logo .goog-flat-menu-button-caption .picker-spr-lif=
e-photo-archive {margin: 2px 6px 2px 2px;}
..picker-searchbar-input-logo .goog-flat-menu-button-caption .picker-searchb=
ar-stock-photos {padding: 2px 0px 0px; height: 30px;}
..goog-menuitem.picker-searchbar-menuitem {padding-right: 13px; padding-left=
: 13px;}
..picker-searchbar-menuitem .goog-menuitem-content {margin-top: -2px;}
..picker-searchbar-input-logo .goog-flat-menu-button.picker-searchbar-combob=
ox-dropdown {border-bottom-right-radius: 0px; border-top-right-radius: 0px;=
height: 32px; margin: 0px; vertical-align: middle;}
..picker-searchbar-input-logo .goog-flat-menu-button.picker-searchbar-combob=
ox-dropdown.goog-flat-menu-button-focused {z-index: 2104;}
..picker-searchbar-combobox .picker-searchbar-input-box {padding-top: 4px; p=
adding-bottom: 3px; margin-left: -1px; position: relative; z-index: 2103;}
..picker-searchbar-combobox .jfk-button {height: 28px; padding-top: 4px;}
..picker-drive-view-switcher {display: inline-block; position: absolute; rig=
ht: 20px; top: 19px;}
..picker-drive-view-switcher-with-drive-sort {right: 58px;}
..picker-drive-view-switcher-button {opacity: 0.55; margin: 6px 12px;}
..picker-doctype-chip {background-color: rgb(218, 228, 246); border: 1px sol=
id rgb(218, 228, 246); border-radius: 2px; display: inline-block; height: 2=
3px; left: 22px; outline: medium none; position: absolute; top: 6px;}
..picker-videos-listview .picker-doctype-chip ,.picker-videos-grid .picker-d=
octype-chip {left: 2px;}
..picker-doctype-chip-label {display: inline-block; font-size: 12px; line-he=
ight: 23px; padding: 0px 3px; vertical-align: top;}
..picker-doctype-chip-dismiss {display: inline-block; padding: 8px 4px;}
..picker-dropdown-menu.picker-doctypes-dropdown-menu {max-height: 70%; width=
: 341px;}
..picker-navhorizontal-new .picker-dropdown-menu.picker-doctypes-dropdown-me=
nu {width: 441px;}
..picker-doctypes-dropdown-menu .picker-dropdown-menuitem-header {padding-bo=
ttom: 0px;}
..picker-dataview .picker-searchbar-input {position: relative;}
..picker-main-container .picker-dataview .picker-searchbar .picker-flat-menu=
-button {left: 321px;}
..picker-dataview .picker-searchbar-input-box.picker-searchbar-dropdownmenu-=
padding {width: 310px;}
..picker-dataview .picker-searchbar-input-box {width: 325px;}
..picker-bloggerinstructions-text {color: rgb(68, 68, 68); font-size: 11px; =
padding: 10px 15px 2px;}
..picker-docsortoptions-menu-button {display: inline-block; min-width: 22px;=
padding-right: 8px; position: absolute; right: 34px; top: 19px;}
..picker-docsortoptions-menu-button .goog-flat-menu-button-dropdown {display=
: none;}
..picker-docsortoptions-menu-button-content {height: 18px; margin: 4px 3px; =
opacity: 0.5;}
..picker-docsortoptions-selector {border-bottom: 1px solid rgb(229, 229, 229=
); padding-bottom: 4px; padding-top: 8px; position: relative;}
..picker-docsortoptions-title {color: rgb(170, 170, 170); cursor: pointer; d=
isplay: inline-block; font-size: 11px; font-weight: bold; margin-left: 70px=
; text-transform: uppercase; vertical-align: top;}
..picker-docsortoptions-label {color: rgb(170, 170, 170); display: inline-bl=
ock; font-size: 11px; font-weight: bold; position: absolute; right: 40px; t=
ext-transform: uppercase; vertical-align: top;}
..picker-docsortoptions-active.picker-docsortoptions-title ,.picker-docsorto=
ptions-active.picker-docsortoptions-label {color: rgb(221, 75, 57);}
..picker-docsortoptions-button {display: inline-block; position: absolute; r=
ight: 20px; vertical-align: top;}
..picker-docsortoptions-grid-view .picker-docsortoptions-label {display: inl=
ine-block; margin-left: 40px; position: static;}
..picker-docsortoptions-grid-view .picker-docsortoptions-button {display: in=
line-block; margin-left: 6px; position: static;}
..picker-dropdown-menu.picker-sort-dropdown-menu {max-width: 30%; width: ini=
tial;}
..picker-sort-dropdown-menu .goog-menuitem {min-width: 0px; padding-left: 20=
px;}
..picker-sort-dropdown-menu .goog-menuitem-content {overflow: hidden; text-o=
verflow: ellipsis;}
..picker-promo-table {position: absolute; top: 0px; left: 0px; height: 100%;=
width: 100%; border-spacing: 15px; margin-top: -15px;}
..picker-promo-logo {margin: 15px;}
..picker-promo-text {font-size: 13px; color: rgb(170, 170, 170); width: 420p=
x;}
..picker-promo-title {font-size: 13px; color: rgb(0, 0, 0); font-weight: bol=
d; margin-bottom: 10px; width: 420px;}
..picker-uploadbar {color: rgb(68, 68, 68); font-size: 11px; margin-bottom: =
15px; white-space: nowrap;}
..picker-uploadbar .jfk-button {margin: 15px 15px 5px;}
..picker-uploadbar .picker-spr-upload-arrow {margin-right: 6px;}
..picker-uploadbar-msg {padding: 4px 15px;}
..picker-uploadbar-separator {margin-top: 7px; border-top: 1px solid rgb(221=
, 221, 221);}
..picker-uploadbar-htmlfileinput {margin: 14px 14px 3px;}
..picker-main-container {position: absolute; height: 100%; width: 100%;}
..picker-modal-dialog {box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.2); -moz-use=
r-select: none; background: rgb(255, 255, 255) none repeat scroll 0% 0%; bo=
rder: 1px solid rgb(172, 172, 172); color: rgb(0, 0, 0); position: absolute=
; z-index: 2101; outline: medium none;}
..picker-modal-dialog-content {width: 705px; height: 370px; padding: 0px; ma=
rgin: 0px; position: relative;}
..picker-modal-dialog-bg {background: rgb(255, 255, 255) none repeat scroll =
0% 0%; left: 0px; position: absolute; top: 0px; z-index: 2100;}
..picker-modal-dialog-title {-moz-user-select: none; background: rgb(255, 25=
5, 255) none repeat scroll 0% 0%; color: rgb(0, 0, 0); cursor: move; font-s=
ize: 20px; padding: 6px 8px 15px; position: relative; vertical-align: middl=
e; border-top: 10px solid rgb(255, 255, 255); border-left: 10px solid rgb(2=
55, 255, 255); border-right: 10px solid rgb(255, 255, 255);}
..picker-modal-dialog-title-text {display: block; overflow: hidden; text-ove=
rflow: ellipsis; white-space: nowrap;}
..picker-modal-dialog-title-close {cursor: pointer; position: absolute; righ=
t: 0px; top: 10px; opacity: 0.7;}
..picker-modal-dialog-dogfood-confidential-text {color: rgb(221, 75, 57); fo=
nt-size: 13px; font-weight: bold; overflow: hidden; position: absolute; rig=
ht: 30px; top: 10px; text-transform: uppercase;}
..picker-modal-dialog-title-close-hover {opacity: 1;}
..picker-modal-dialog-buttons {display: none;}
..picker-modal-dialog-content {border: 0px none;}
..picker-main-container .goog-buttonset-default {font-weight: bold;}
div.picker-navpane-root {position: relative; left: 0px; right: 0px; width: =
auto;}
..picker-content {width: auto; height: auto;}
..picker-searchbar-input-box {font-size: 13px;}
..picker-form {margin: 0px; padding: 0px;}
..picker-main-container .goog-toolbar {border: 0px none; background: rgba(0,=
0, 0, 0) none repeat scroll 0px center;}
..picker-header-close {display: none;}
..picker-contactbin-chip-holder .picker-contactbin-input {width: 130px;}
..picker-album-control {border: 2px solid transparent; color: rgb(68, 68, 68=
); cursor: pointer; font-size: 11px; margin: 6px; position: relative; verti=
cal-align: top; outline: medium none;}
..picker-album-control-album-tile {box-shadow: 0px 1px 0px rgb(218, 218, 218=
); background-color: rgb(255, 255, 255); border: 1px solid rgb(229, 229, 22=
9); height: 158px; width: 163px;}
..picker-album-control:active ,.picker-album-control-checked {border: 2px so=
lid rgb(77, 144, 254);}
..picker-album-control-checked .picker-album-control-album-tile ,.picker-alb=
um-control-focused .picker-album-control-album-tile {box-shadow: none; bord=
er: 1px solid rgb(77, 144, 254);}
..picker-album-control-thumbs {height: 110px; width: 163px;}
..picker-album-control-thumb {border: medium none; height: 110px; padding: 0=
px; width: 163px;}
..picker-album-control-no-cover-thumb {background-color: rgb(238, 238, 238);=
opacity: 1 !important;}
..picker-album-control-title {margin: 0px; overflow: hidden; text-overflow: =
ellipsis; vertical-align: top; white-space: nowrap; width: 80%;}
..picker-album-control-photo-count-date {margin: 0px; overflow: hidden; text=
-overflow: ellipsis; vertical-align: top; white-space: nowrap; width: 80%; =
color: rgb(186, 186, 186); padding: 6px 0px 0px 7px;}
..picker-album-control-title {color: rgb(38, 38, 38); font-size: 13px; font-=
weight: bold; height: 20px; padding: 8px 10px 0px;}
..picker-album-control-photo-count {bottom: 9px; color: rgb(170, 170, 170); =
font-size: 11px; padding: 0px 10px; position: absolute;}
..picker-album-control-visibility .picker-spr-audience-acl-small-owner-only =
,.picker-album-control-visibility .picker-spr-audience-acl-small-limited ,.=
picker-album-control-visibility .picker-spr-audience-acl-small-extended-cir=
cles ,.picker-album-control-visibility .picker-spr-audience-acl-small-domai=
n-public ,.picker-album-control-visibility .picker-spr-audience-acl-small-p=
ublic {opacity: 0.4; bottom: 11px; display: inline-block; height: 12px; pos=
ition: absolute; right: 10px; vertical-align: top; width: 12px;}
..picker-album-control-thumbs .picker-spr-rio-checkmark-active ,.picker-albu=
m-control-thumbs .picker-spr-rio-checkmark-selected {display: inline-block;=
left: 5px; opacity: 0; position: absolute; top: 5px;}
..picker-album-control-hover .picker-spr-rio-checkmark-active ,.picker-album=
-control-focused .picker-spr-rio-checkmark-active {opacity: 0.7;}
..picker-album-control-checked .picker-spr-rio-checkmark-selected {opacity: =
1;}
..ozAppNoFocusOutline .picker-album-control {outline: 0px none;}
..picker-albumname .picker-photoupload-albumchooser {margin-right: 10px;}
..picker-albumname .picker-photoupload-albumchooser-select .goog-flat-menu-b=
utton-caption {overflow: hidden; text-overflow: ellipsis; white-space: nowr=
ap; width: 148px;}
..picker-albumname .picker-photoupload-albumchooser-select {margin-left: 2px=
; position: relative; top: -1px; width: 168px;}
..picker-camerasyncseparator {cursor: default; font-size: 12px; padding: 10p=
x 0px 7px;}
..picker-camerasyncseparator-checkbox {cursor: pointer; display: inline-bloc=
k; opacity: 0.3; transition: opacity 0.218s ease 0s; vertical-align: middle=
;}
..picker-camerasyncseparator-checkbox.picker-hover ,.picker-camerasyncsepara=
tor.picker-selected .picker-camerasyncseparator-checkbox {opacity: 1;}
..picker-camerasyncseparator.picker-selected .picker-camerasyncseparator-che=
ckbox.picker-hover {opacity: 0.8;}
..picker-camerasyncseparator-title {display: inline-block; font-size: 18px; =
padding: 2px 12px 0px 6px; vertical-align: middle;}
..picker-camerasyncseparator-details {display: inline-block; padding: 4px 12=
px 0px 0px; vertical-align: middle;}
..picker-camerasyncseparator-select-link {color: rgb(17, 85, 204); cursor: p=
ointer; display: inline-block; padding-top: 4px; vertical-align: middle;}
..picker-camerasyncseparator-select-link.picker-hover {text-decoration: unde=
rline;}
..picker-collection-control-title {color: rgb(68, 68, 68); display: inline-b=
lock; font-size: 14px; height: 16px; margin-bottom: 2px; margin-top: 10px; =
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
..picker-collection-control-totalitems ,.picker-collection-control-timestamp=
{color: rgb(170, 170, 170); display: inline-block; font-size: 11px; margin=
: 0px 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
..picker-collection-control-timestamp::before {color: rgb(170, 170, 170); co=
ntent: "*"; font-size: 5px; vertical-align: middle;}
..picker-collection-control .picker-photosgrid .picker-dataview-content {pad=
ding: 0px;}
..picker-collection-control .picker-content {height: 100%; position: relativ=
e; overflow: visible;}
..picker-collectionsgrid {padding-left: 18px;}
..picker-collection-control-border {opacity: 0; transition: opacity 0.218s e=
ase 0s; position: relative;}
..picker-collection-control-checked .picker-collection-control-border {borde=
r: 5px solid rgb(66, 133, 244); padding: 0px; max-height: 207px;}
..picker-collection-control {cursor: default; display: inline-block; margin:=
5px 10px 0px 0px; padding: 0px 10px; outline: medium none; text-align: lef=
t; vertical-align: middle;}
..picker-docscollection-control {position: relative; margin: 10px; cursor: p=
ointer;}
..picker-docscollection-control-preview-container {position: relative;}
..picker-docscollection-control-preview-content {border: 6px solid transpare=
nt; bottom: 0px; left: 31px; position: absolute;}
..picker-docscollection-control-checked .picker-docscollection-control-previ=
ew-content {border: 6px solid rgb(77, 144, 254);}
..picker-docscollection-control-hover .picker-docscollection-control-preview=
-content {background-color: rgb(252, 249, 204);}
..picker-docscollection-control-focused .picker-docscollection-control-previ=
ew-content {outline: 1px solid rgb(66, 133, 244);}
..picker-docscollection-control-preview {background: rgb(238, 238, 238) none=
repeat scroll 0% 0%; border: 1px solid rgb(206, 206, 206); height: 116px; =
outline: medium none; position: relative; width: 116px;}
..picker-docscollection-control-child-1 {position: absolute; border: 1px sol=
id rgb(206, 206, 206); width: 116px; height: 116px; left: 2px; top: 2px;}
..picker-docscollection-control-child-2 {position: absolute; border: 1px sol=
id rgb(206, 206, 206); width: 116px; height: 116px; left: 4px; top: 4px;}
..picker-docscollection-control-preview .picker-spr-collection {display: inl=
ine-block; position: absolute; left: 51px; top: 51px;}
..picker-docscollection-control .jfk-checkbox {background-color: rgb(252, 24=
9, 204); display: none; outline: 4px solid rgb(252, 249, 204); position: ab=
solute; top: 1px;}
..picker-docscollection-control .jfk-checkbox.jfk-checkbox-checked {backgrou=
nd-color: rgb(255, 255, 255); display: inline-block; outline: medium none;}
..picker-docscollection-control-hover .jfk-checkbox {display: inline-block;}
..picker-dataview.picker-docs-images-view {padding-top: 0px;}
..picker-docs-images-view .new-upload-box .picker-photo-control-placeholder =
{border: 0px none;}
..picker-docs-images-label {font-size: 12px; overflow: hidden; padding-botto=
m: 6px; padding-top: 6px; text-align: center; text-overflow: ellipsis; whit=
e-space: nowrap;}
..picker-docs-images-preview {position: relative;}
..picker-docs-images-preview-content {border: 6px solid transparent; bottom:=
0px; outline: medium none; position: absolute;}
..picker-docs-images-focused .picker-docs-images-preview-content {outline: 1=
px solid rgb(66, 133, 244);}
..picker-docs-images-checked .picker-docs-images-preview-content {border: 6p=
x solid rgb(77, 144, 254);}
..picker-docs-images-preview-content .jfk-checkbox {background-color: rgb(25=
2, 249, 204); display: none; outline: 4px solid rgb(252, 249, 204); positio=
n: absolute; top: 1px;}
..picker-docs-images-preview-content .jfk-checkbox.jfk-checkbox-checked {bac=
kground-color: rgb(255, 255, 255); display: inline-block; outline: medium n=
one;}
..picker-docs-images-hover .picker-docs-images-preview-content .jfk-checkbox=
{display: inline-block;}
..picker-docs-images-preview-placeholder {border: 1px solid rgb(229, 229, 22=
9); bottom: 0px; outline: medium none; position: absolute;}
..picker-docs-images-hover .picker-docs-images-preview-content {background-c=
olor: rgb(252, 249, 204);}
..picker-photo-control-unselectable.picker-docs-images-hover .picker-docs-im=
ages-preview-content {background-color: transparent;}
..picker-photo-control-unselectable.picker-docs-images-hover .jfk-checkbox {=
display: none;}
..picker-photo-control-unselectable.picker-docs-images-container {opacity: 0=
..3; position: relative;}
..picker-docs-images-container {margin: 10px;}
..picker-docs-images-preview .nub-loading {display: none;}
..picker-drive-view .picker-searchbar {border-bottom: 1px solid rgb(229, 229=
, 229); margin-bottom: 0px; margin-left: 0px; padding-bottom: 15px;}
..picker-main-container .picker-drive-view.picker-dataview .picker-searchbar=
.picker-flat-menu-button {left: 341px;}
..picker-drive-view .picker-searchbar-input-logo ,.picker-drive-view .picker=
-searchbar-input {padding-left: 20px;}
..picker-dataview.picker-drive-view {overflow-y: hidden;}
..picker-drive-view .picker-content-container {bottom: 0px; left: 0px; overf=
low-y: auto; position: absolute; right: 0px; top: 69px;}
..picker-docs-images-view .picker-dataview-content {padding-left: 13px; padd=
ing-top: 10px;}
..picker-caption-bubble .picker-edit-caption-instructions {color: rgb(0, 0, =
0); font-size: 13px; margin-top: 3px;}
..picker-caption-bubble .picker-edit-caption-popup {padding: 0px 16px 0px 0p=
x; border: 0px none; margin: 0px;}
..picker-caption-bubble {z-index: 2112 !important;}
..picker-edit-caption {z-index: 2109; position: absolute;}
..picker-crop-content .picker-edit-caption {margin-top: 8px;}
..picker-crop-content .picker-edit-caption-hint {margin-top: 2px;}
..picker-crop-content .picker-edit-caption-popup {margin: 1px 0px 2px;}
..picker-edit-caption-hint ,.picker-crop-content .picker-edit-caption-hover =
..picker-edit-caption-hint {color: rgb(17, 85, 204); font-size: 13px; width:=
100%; overflow: hidden; text-align: center; text-overflow: ellipsis; white=
-space: nowrap; position: absolute; cursor: pointer;}
..picker-crop-content .picker-edit-caption-hint {color: rgb(153, 153, 153);}
..picker-edit-caption-hint.picker-video-control-metadata {text-align: left; =
width: 100%; margin-left: 0px;}
..picker-edit-caption-hint .picker-video-control-title {color: rgb(17, 85, 2=
04);}
..picker-edit-caption-input {width: 100%; margin: 0px 0px 0px -2px;}
..picker-edit-caption-instructions {color: rgb(102, 102, 102); font-size: 10=
px; margin-top: 2px;}
..picker-edit-caption-popup {background: rgb(255, 255, 255) none repeat scro=
ll 0% 0%; padding: 4px; border: 1px solid rgb(102, 102, 102); margin: 0px 0=
px 2px;}
..picker-crop-content .picker-edit-caption-popup {border: 1px solid transpar=
ent;}
..picker-main-container .picker-edit-toolbar-overlay {background-attachment:=
scroll; background-clip: border-box; position: relative; z-index: 2106; fo=
nt: 12px Roboto,Arial,sans-serif; margin: 0px; outline: medium none; paddin=
g: 0px;}
..picker-main-container .picker-edit-toolbar-overlay-background-dark {positi=
on: absolute; z-index: 2107; background-color: rgb(0, 0, 0); opacity: 0.6; =
width: 100%; height: 100%;}
..picker-main-container .picker-edit-toolbar-overlay-container {position: re=
lative; z-index: 2108;}
..picker-edit-toolbar-manager {position: relative;}
..picker-edit-toolbar {cursor: default; position: relative; z-index: 2106; f=
ont: 12px Roboto,Arial,sans-serif; margin: 0px; outline: medium none; paddi=
ng: 2px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px=
none;}
..picker-edit-toolbar .goog-toolbar-button {margin: 0px; border: 0px none; p=
adding: 0px; font-family: Roboto,Arial,sans-serif; color: rgb(51, 51, 51); =
text-decoration: none; list-style: outside none none; vertical-align: middl=
e; cursor: default; outline: medium none; opacity: 0.8;}
..picker-edit-toolbar .goog-toolbar-button-outer-box ,.picker-edit-toolbar .=
goog-toolbar-button-inner-box {border: 0px none; vertical-align: top;}
..picker-edit-toolbar .goog-toolbar-button-outer-box {margin: 0px; padding: =
1px 0px;}
..picker-edit-toolbar .goog-toolbar-button-inner-box {margin: 0px -1px; padd=
ing: 3px 4px;}
* html .picker-edit-toolbar .goog-toolbar-button-inner-box ,body .picker-ed=
it-toolbar .goog-toolbar-button-inner-box {left: -1px;}
* html .picker-edit-toolbar .goog-toolbar-button-rtl .goog-toolbar-button-o=
uter-box ,body .picker-edit-toolbar .goog-toolbar-button-rtl .goog-toolbar-=
button-outer-box {left: -1px;}
* html .picker-edit-toolbar .goog-toolbar-button-rtl .goog-toolbar-button-i=
nner-box ,body .picker-edit-toolbar .goog-toolbar-button-rtl .goog-toolbar-=
button-inner-box {right: auto;}
:first-child + html .picker-edit-toolbar .goog-toolbar-button-inner-box {le=
ft: -1px;}
:first-child + html .picker-edit-toolbar .goog-toolbar-button-rtl .goog-too=
lbar-button-inner-box {left: 1px; right: auto;}
..picker-edit-toolbar .goog-toolbar-button-disabled {opacity: 0.3;}
..picker-edit-toolbar .goog-toolbar-button-disabled .goog-toolbar-button-out=
er-box ,.picker-edit-toolbar .goog-toolbar-button-disabled .goog-toolbar-bu=
tton-inner-box {color: rgb(51, 51, 51) !important; border-color: rgb(153, 1=
53, 153) !important;}
* html .picker-edit-toolbar .goog-toolbar-button-disabled ,:first-child + h=
tml .picker-edit-toolbar .goog-toolbar-button-disabled ,body .picker-edit-t=
oolbar .goog-toolbar-button-disabled {background-color: rgb(238, 238, 238);=
margin: 0px 1px; padding: 0px 1px;}
..picker-edit-toolbar .goog-toolbar-button-hover .goog-toolbar-button-outer-=
box ,.picker-edit-toolbar .goog-toolbar-button-active .goog-toolbar-button-=
outer-box ,.picker-edit-toolbar .goog-toolbar-button-checked .goog-toolbar-=
button-outer-box ,.picker-edit-toolbar .goog-toolbar-button-selected .goog-=
toolbar-button-outer-box {border-width: 1px 0px; border-style: solid; paddi=
ng: 0px;}
..picker-edit-toolbar .goog-toolbar-button-hover .goog-toolbar-button-inner-=
box ,.picker-edit-toolbar .goog-toolbar-button-active .goog-toolbar-button-=
inner-box ,.picker-edit-toolbar .goog-toolbar-button-checked .goog-toolbar-=
button-inner-box ,.picker-edit-toolbar .goog-toolbar-button-selected .goog-=
toolbar-button-inner-box {border-width: 0px 1px; border-style: solid; paddi=
ng: 3px;}
..picker-edit-toolbar .goog-toolbar-button-hover .goog-toolbar-button-outer-=
box ,.picker-edit-toolbar .goog-toolbar-button-hover .goog-toolbar-button-i=
nner-box {border-color: transparent !important;}
..picker-edit-toolbar .goog-toolbar-button-hover ,.picker-edit-toolbar .goog=
-toolbar-button-active ,.picker-edit-toolbar .goog-toolbar-button-checked ,=
..picker-edit-toolbar .goog-toolbar-button-selected {background-color: trans=
parent !important; opacity: 1;}
..picker-edit-toolbar .goog-toolbar-button-hover ,.picker-edit-toolbar .goog=
-toolbar-button-active ,.picker-edit-toolbar .goog-toolbar-button-checked ,=
..picker-edit-toolbar .goog-toolbar-button-selected {background: rgba(0, 0, =
0, 0) none repeat scroll 0% 0%;}
..picker-edit-toolbar .goog-toolbar-button-active .goog-toolbar-button-outer=
-box ,.picker-edit-toolbar .goog-toolbar-button-active .goog-toolbar-button=
-inner-box ,.picker-edit-toolbar .goog-toolbar-button-checked .goog-toolbar=
-button-outer-box ,.picker-edit-toolbar .goog-toolbar-button-checked .goog-=
toolbar-button-inner-box ,.picker-edit-toolbar .goog-toolbar-button-selecte=
d .goog-toolbar-button-outer-box ,.picker-edit-toolbar .goog-toolbar-button=
-selected .goog-toolbar-button-inner-box {border-color: transparent;}
..picker-edit-toolbar .goog-toolbar-button-collapse-right ,.picker-edit-tool=
bar .goog-toolbar-button-collapse-right .goog-toolbar-button-outer-box ,.pi=
cker-edit-toolbar .goog-toolbar-button-collapse-right .goog-toolbar-button-=
inner-box {margin-right: 0px;}
..picker-edit-toolbar .goog-toolbar-button-collapse-left ,.picker-edit-toolb=
ar .goog-toolbar-button-collapse-left .goog-toolbar-button-outer-box ,.pick=
er-edit-toolbar .goog-toolbar-button-collapse-left .goog-toolbar-button-inn=
er-box {margin-left: 0px;}
* html .picker-edit-toolbar .goog-toolbar-button-collapse-left .goog-toolba=
r-button-inner-box ,:first-child + html .picker-edit-toolbar .goog-toolbar-=
button-collapse-left .picker-edit-toolbar .goog-toolbar-button-inner-box ,b=
ody .picker-edit-toolbar .goog-toolbar-button-collapse-left .goog-toolbar-b=
utton-inner-box {left: 0px;}
..picker-edit-toolbar .goog-toolbar-menu-button {margin: 0px 2px; border: 0p=
x none; padding: 0px; font-family: Roboto,Arial,sans-serif; color: rgb(51, =
51, 51); text-decoration: none; list-style: outside none none; vertical-ali=
gn: middle; cursor: default; outline: medium none;}
..picker-edit-toolbar .goog-toolbar-menu-button-outer-box ,.picker-edit-tool=
bar .goog-toolbar-menu-button-inner-box {border: 0px none; vertical-align: =
top;}
..picker-edit-toolbar .goog-toolbar-menu-button-outer-box {margin: 0px; padd=
ing: 1px 0px;}
..picker-edit-toolbar .goog-toolbar-menu-button-inner-box {margin: 0px -1px;=
padding: 3px 4px;}
* html .picker-edit-toolbar .goog-toolbar-menu-button-inner-box ,body .pick=
er-edit-toolbar .goog-toolbar-menu-button-inner-box {left: -1px;}
* html .picker-edit-toolbar .goog-toolbar-menu-button-rtl .goog-toolbar-men=
u-button-outer-box ,body .picker-edit-toolbar .goog-toolbar-menu-button-rtl=
.goog-toolbar-menu-button-outer-box {left: -1px;}
* html .picker-edit-toolbar .goog-toolbar-menu-button-rtl .goog-toolbar-men=
u-button-inner-box ,body .picker-edit-toolbar .goog-toolbar-menu-button-rtl=
.goog-toolbar-menu-button-inner-box {right: auto;}
:first-child + html .picker-edit-toolbar .goog-toolbar-menu-button-inner-bo=
x {left: -1px;}
:first-child + html .picker-edit-toolbar .goog-toolbar-menu-button-rtl .pic=
ker-edit-toolbar .goog-toolbar-menu-button-inner-box {left: 1px; right: aut=
o;}
..picker-edit-toolbar .goog-toolbar-menu-button-disabled {opacity: 0.3;}
..picker-edit-toolbar .goog-toolbar-menu-button-disabled .goog-toolbar-menu-=
button-outer-box ,.picker-edit-toolbar .goog-toolbar-menu-button-disabled .=
goog-toolbar-menu-button-inner-box {color: rgb(51, 51, 51) !important; bord=
er-color: rgb(153, 153, 153) !important;}
* html .picker-edit-toolbar .goog-toolbar-menu-button-disabled ,:first-chil=
d + html .picker-edit-toolbar .goog-toolbar-menu-button-disabled ,body .pic=
ker-edit-toolbar .goog-toolbar-menu-button-disabled {background-color: rgb(=
238, 238, 238); margin: 0px 1px; padding: 0px 1px;}
..picker-edit-toolbar .goog-toolbar-menu-button-hover .goog-toolbar-menu-but=
ton-outer-box ,.picker-edit-toolbar .goog-toolbar-menu-button-active .goog-=
toolbar-menu-button-outer-box ,.picker-edit-toolbar .goog-toolbar-menu-butt=
on-open .goog-toolbar-menu-button-outer-box {border-width: 1px 0px; border-=
style: solid; padding: 0px;}
..picker-edit-toolbar .goog-toolbar-menu-button-hover .goog-toolbar-menu-but=
ton-inner-box ,.picker-edit-toolbar .goog-toolbar-menu-button-active .goog-=
toolbar-menu-button-inner-box ,.picker-edit-toolbar .goog-toolbar-menu-butt=
on-open .goog-toolbar-menu-button-inner-box {border-width: 0px 1px; border-=
style: solid; padding: 3px;}
..picker-edit-toolbar .goog-toolbar-menu-button-hover .goog-toolbar-menu-but=
ton-outer-box ,.picker-edit-toolbar .goog-toolbar-menu-button-hover .goog-t=
oolbar-menu-button-inner-box {border-color: rgb(192, 192, 192) !important;}
..picker-edit-toolbar .goog-toolbar-menu-button-active ,.picker-edit-toolbar=
.goog-toolbar-menu-button-open {background-color: rgb(238, 238, 238) !impo=
rtant;}
..picker-edit-toolbar .goog-toolbar-menu-button-active .goog-toolbar-menu-bu=
tton-outer-box ,.picker-edit-toolbar .goog-toolbar-menu-button-active .goog=
-toolbar-menu-button-inner-box ,.picker-edit-toolbar .goog-toolbar-menu-but=
ton-open .goog-toolbar-menu-button-outer-box ,.picker-edit-toolbar .goog-to=
olbar-menu-button-open .goog-toolbar-menu-button-inner-box {border-color: r=
gb(187, 187, 187);}
..picker-edit-toolbar .goog-toolbar-menu-button-caption {padding: 0px 4px 0p=
x 0px; vertical-align: middle;}
..picker-edit-toolbar .goog-toolbar-menu-button-dropdown {width: 7px; backgr=
ound: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/editortoolbar.png") no=
-repeat scroll -388px center; vertical-align: middle;}
..picker-edit-toolbar .goog-toolbar-separator {margin: 0px 2px; border-left:=
1px solid rgb(214, 214, 214); border-right: 1px solid rgb(247, 247, 247); =
padding: 0px; width: 0px; text-decoration: none; list-style: outside none n=
one; outline: medium none; vertical-align: middle; line-height: normal; fon=
t-size: 120%; overflow: hidden;}
..picker-edit-toolbar .goog-toolbar-select .goog-toolbar-menu-button-outer-b=
ox {border-width: 1px 0px; border-style: solid; padding: 0px;}
..picker-edit-toolbar .goog-toolbar-select .goog-toolbar-menu-button-inner-b=
ox {border-width: 0px 1px; border-style: solid; padding: 3px;}
..picker-edit-toolbar .goog-toolbar-select .goog-toolbar-menu-button-outer-b=
ox ,.picker-edit-toolbar .goog-toolbar-select .goog-toolbar-menu-button-inn=
er-box {border-color: rgb(191, 203, 223);}
..picker-actionpane-evph-message {position: absolute; top: 50%; height: 18px=
; margin-top: -9px; font-size: 13px; color: rgb(102, 102, 102);}
..picker-actionpane-evph-people {font-size: 13px; color: rgb(34, 34, 34); wi=
dth: 284px;}
..picker-actionpane-evph-people-title {font-weight: bold; padding-bottom: 8p=
x;}
..picker-actionpane-evph-people-img {border-radius: 2px; margin-right: 1px; =
border: 0px none;}
..picker-evph-people-jfk-bubble {z-index: 2200 !important;}
..picker-evph-plain-link {color: rgb(17, 85, 204); text-decoration: none; cu=
rsor: pointer;}
..picker-eventtheme-view .picker-listrenderer-table {margin: 15px 0px;}
..picker-eventtheme-border {position: relative; border: 1px solid rgb(204, 2=
04, 204);}
..picker-eventtheme-control-tablerow {outline: medium none;}
..picker-eventtheme-media {vertical-align: middle; cursor: pointer;}
..picker-eventtheme-control-tablerow.picker-list-control-checked {background=
-color: transparent;}
..picker-eventtheme {border: 6px solid transparent; margin: 5px 20px;}
..picker-list-control-checked.picker-list-control-focused .picker-eventtheme=
,.picker-list-control-checked .picker-eventtheme {border: 6px solid rgb(74=
, 151, 223);}
..picker-list-control-focused .picker-eventtheme-border {border: 1px solid r=
gb(77, 144, 254);}
..picker-flatphotosgrid .picker-flatphoto-control-wrapper.picker-featuredpho=
to-control {font-size: 12px; height: 170px; position: relative;}
..picker-featuredphoto-caption {overflow: hidden; position: absolute; text-a=
lign: left; text-overflow: ellipsis; white-space: nowrap;}
..picker-gmailfeaturedphoto-caption {bottom: 5px; box-sizing: border-box; ov=
erflow: hidden; position: absolute; text-overflow: ellipsis; white-space: n=
owrap; width: 100%;}
..picker-flatphotosgrid .picker-flatphoto-control-border {opacity: 0; transi=
tion: opacity 0.218s ease 0s; padding: 5px; position: relative;}
..picker-flatphoto-control-checked .picker-flatphoto-control-border {border:=
5px solid rgb(66, 133, 244); padding: 0px;}
..picker-flatphoto-control-focused .picker-flatphoto-control-border {outline=
: 1px solid rgb(66, 133, 244);}
..picker-flatphotosgrid .picker-flatphoto-control-wrapper {cursor: pointer; =
display: inline-block; margin: 10px; outline: medium none; text-align: cent=
er; vertical-align: middle;}
..picker-flatphotosgrid .picker-flatphoto-control-wrapper-with-description {=
position: relative;}
..picker-flatphoto-control-description {font-size: 12px; bottom: 5px; box-si=
zing: border-box; overflow: hidden; padding: 0px 5px; position: absolute; t=
ext-overflow: ellipsis; white-space: nowrap; width: 100%;}
..picker-flatphotosgrid .picker-flatphoto-control-thumbnail {max-height: 100=
%; max-width: 100%;}
..picker-flatphotosgrid .picker-flatphoto-control-hover .picker-flatphoto-co=
ntrol-check {opacity: 0.7;}
..picker-flatphotosgrid .picker-flatphoto-control-checked .picker-flatphoto-=
control-check {opacity: 1; top: 5px; left: 5px;}
..picker-flatphotosgrid .picker-flatphoto-control-check {opacity: 0; transit=
ion: opacity 0.218s ease 0s; position: absolute; top: 10px; left: 10px; z-i=
ndex: 2104;}
..picker-flatphotosgrid .picker-spr-rio-checkmark-selected {animation: 0.3s =
linear 0s normal none 1 running pickerPhotosSelectionOverlayCheckmarkSelect=
edTransition;}
..picker-flatphoto-control-unselectable {opacity: 0.3;}
..picker-flatphoto-control-unselectable .picker-flatphoto-control-check {dis=
play: none;}
..picker-flatphoto-message .picker-dataview-message {color: rgb(51, 51, 51);=
font-size: 16px; height: 16px; line-height: 16px; margin-top: -8px; positi=
on: absolute; text-align: center; top: 50%; width: 100%;}
..picker-highlightsphoto-control-border {opacity: 0; transition: opacity 0.2=
18s ease 0s; overflow: hidden;}
..picker-highlightsphoto-control-checked .picker-highlightsphoto-control-bor=
der {display: inline-block; position: relative;}
..picker-highlightsphoto-control-checked .picker-highlightsphoto-control-inn=
er-border {border: 3px solid rgb(66, 133, 244); display: inline-block; left=
: 0px; opacity: 1; position: absolute; top: 0px; z-index: 2104;}
..picker-highlightsphoto-control-focused {outline: medium none;}
..picker-highlightsphoto-control-focused .picker-highlightsphoto-control-bor=
der {outline: 1px solid rgb(66, 133, 244);}
..picker-highlightsphoto-control {cursor: pointer; display: inline-block; ve=
rtical-align: top;}
..picker-highlightsphoto-control-border {display: inline-block; margin: 1px;=
position: relative;}
..picker-highlightsphoto-control-inner-border {border: 3px solid transparent=
; display: none;}
..picker-highlightsphoto-control-hover {opacity: 0.7;}
..picker-highlightsphoto-control-checked {opacity: 1;}
..picker-highlightsphoto-control-hover .picker-highlightsphoto-control-check=
{opacity: 0.7;}
..picker-highlightsphoto-control-checked .picker-highlightsphoto-control-che=
ck {opacity: 1; left: 10px; top: 10px;}
..picker-highlightsphoto-control-check {transition: opacity 0.218s ease 0s; =
left: 10px; opacity: 0; position: absolute; top: 10px; z-index: 2104;}
..picker-highlightsphoto-control-unselectable {opacity: 0.3;}
..picker-highlightsphoto-control-unselectable .picker-highlightsphoto-contro=
l-check {display: none;}
..picker-momentscontrol-wrapper .picker-flatphoto-control-border {display: i=
nline-block; vertical-align: middle;}
..picker-momentscontrol-wrapper .picker-flatphoto-control-thumbnail {display=
: block;}
..picker-momentscontrol-wrapper.picker-flatphoto-control-wrapper {line-heigh=
t: 140px;}
..picker-momentchapter-title {color: rgb(85, 85, 85); font-size: 15px; font-=
weight: bold; padding: 20px 0px 0px 20px;}
..picker-collection-more-control {transition: background-color 130ms ease-in=
-out 0s; background-color: rgb(229, 229, 229); cursor: pointer; display: in=
line-block; margin: 1px; text-align: center; vertical-align: top; width: 40=
px;}
..picker-collection-more-control-content ,.picker-collection-more-control-im=
g {display: inline-block; margin: auto;}
..picker-collection-more-control-text {color: rgb(153, 153, 153); display: i=
nline-block; font-size: 12px; margin: 0px 2px; text-align: center; width: 3=
5px;}
..picker-collection-more-control-focused {outline: 1px solid rgb(66, 133, 24=
4);}
..picker-collection-more-control-hover {background-color: rgb(224, 224, 224)=
;}
..picker-noitemszone {height: 100%; left: 0px; position: absolute; text-alig=
n: center; top: 0px; width: 100%;}
..picker-noitemszone-container {text-align: center;}
..picker-noitemszone-text {color: rgb(170, 170, 170); font-size: 14px; font-=
weight: bold; margin: 20px 0px; text-align: center;}
..picker-noitemszone-title {color: rgb(170, 170, 170); font-size: 20pt; font=
-weight: bold; margin: 20px 0px; text-align: center;}
..picker-noitemszone-container .jfk-button {margin: 20px 0px;}
..picker-photo-album-control {border-bottom: 1px solid rgb(218, 218, 218); c=
ursor: pointer; font-size: 13px; left: -18px; outline: 0px none; padding: 2=
0px 25px; position: relative; top: -15px; width: 100%;}
..picker-photo-album-control-hover ,.picker-photo-album-control-focused {bac=
kground: rgb(243, 243, 243) none repeat scroll 0% 0%;}
..picker-photo-album-control-checked {background: rgb(77, 144, 254) none rep=
eat scroll 0% 0%; color: rgb(255, 255, 255);}
..picker-photo-album-control-title {padding-right: 10px;}
..picker-photo-album-control-new-album-label {padding-bottom: 8px;}
..picker-photo-album-control-name-edit {border-radius: 1px; box-sizing: bord=
er-box; border: 1px solid rgb(216, 216, 216); color: rgb(51, 51, 51); displ=
ay: inline-block; height: 29px; line-height: 20px; margin: 0px; padding: 8p=
x; width: 325px;}
..picker-photo-album-control-date {color: rgb(153, 153, 153); font-size: 12p=
x; padding-right: 5px;}
..picker-photo-album-control-checked .picker-photo-album-control-date {color=
: rgb(204, 204, 204);}
..picker-photo-album-control-caption {color: rgb(102, 102, 102); font-size: =
12px; padding-right: 8px;}
..picker-photo-album-control-checked .picker-photo-album-control-caption {co=
lor: rgb(204, 204, 204);}
..picker-photo-album-control-thumbs {height: 65px; overflow: hidden;}
..picker-photo-album-control-thumb {background-color: rgb(255, 255, 255); bo=
rder: 1px solid rgb(221, 221, 221); height: 48px; margin: 5px 8px 3px 1px; =
padding: 2px; width: 48px;}
..picker-photoalbumsview-actionpane-notice {cursor: default; float: right; h=
eight: 100%; margin-left: -30px;}
..picker-photoalbumsview-actionpane-notice .picker-actionpane-notice-td {col=
or: rgb(119, 119, 119); font-size: 11px; padding-right: 20px; text-align: r=
ight;}
..picker-curation-album-name-bar-album-select ,.picker-curation-album-name-b=
ar-album-select.goog-flat-menu-button-hover {background: rgb(255, 255, 255)=
none repeat scroll 0% 0%; height: 37px; line-height: 37px; margin-left: 15=
px; max-width: 300px; padding-left: 10px; text-align: left;}
..picker-curation-album-name-bar-album-select .goog-flat-menu-button-caption=
{max-width: 200px; overflow: hidden; padding: 0px 15px 0px 5px; text-overf=
low: ellipsis;}
..picker-curation-album-name-bar-album-select .goog-flat-menu-button-dropdow=
n {border: medium none; right: 10px; top: 10px;}
..picker-curation-album-name-bar .goog-menu {max-height: 300px; overflow-x: =
hidden; overflow-y: scroll; text-overflow: ellipsis; width: 280px; z-index:=
2115;}
..picker-curation-album-name-bar-empty-menu .goog-menu {height: 100px;}
..picker-curation-album-name-bar .picker-curation-album-name-bar-empty-menu =
..picker-loadingstatusbox {top: 70%; display: inline-block;}
..picker-curation-album-name-bar .picker-loadingstatusbox {display: none;}
..picker-curation-album-name-bar .picker-curation-album-name-bar-select-labe=
l-input {border-bottom: 1px solid rgb(204, 204, 204); margin-bottom: 4px; h=
eight: 36px; line-height: 36px;}
..picker-curation-album-name-bar .picker-curation-album-name-bar-select-labe=
l-input .jfk-textinput {box-shadow: none; border: medium none; padding: 0px=
16px; position: absolute; top: 0px; left: 0px; vertical-align: top; width:=
232px;}
..picker-curation-album-name-bar .goog-menuitem {padding: 6px 15px; width: 2=
32px;}
..picker-curation-album-name-bar .goog-menuitem-highlight {border-width: 0px=
;}
..picker-curation-album-name-bar .goog-menuitem-content {line-height: 24px; =
overflow: hidden; text-align: left; text-overflow: ellipsis; width: 250px;}
..picker-curation-album-name-bar-album-label-input {display: inline-block; m=
argin-left: 15px; position: relative;}
..picker-curation-album-name-bar-album-label-input .jfk-textinput {padding-r=
ight: 30px;}
..picker-curation-album-name-bar-album-label-input .picker-spr-black-close {=
opacity: 0.5; cursor: pointer; position: absolute; right: 14px; top: 28px;}
..picker-curation-order-dropdown-menu.goog-flat-menu-button-disabled {opacit=
y: 0.1;}
..picker-curation-view {height: 100%; position: absolute; top: 0px; bottom: =
0px; left: 0px; right: 0px;}
..picker-curation-grid-parent {position: absolute; top: 0px; bottom: 0px; le=
ft: 0px; right: 0px;}
..picker-curation-grid-wrapper {position: absolute; bottom: 0px; left: 0px; =
right: 0px;}
..picker-curation-bar {border-bottom: 1px solid rgb(229, 229, 229); line-hei=
ght: 64px; padding: 0px 20px;}
..picker-curation-bar .jfk-button ,.picker-curation-bar .goog-flat-button ,.=
picker-curation-bar .goog-flat-menu-button {cursor: pointer;}
..picker-curation-grid-wrapper {top: 71px; overflow-y: auto; overflow-x: hid=
den;}
..picker-curation-grid-parent {margin: 35px 15px 0px;}
..picker-curation-grid-parent .picker-dataview {overflow: visible; margin: 0=
px 0px 0px 20px; right: 20px;}
..picker-curation-hidden-input {position: absolute; top: -9999px; width: 1px=
; height: 1px;}
..picker-curation-bar .jfk-textinput {color: rgb(34, 34, 34); font-weight: b=
old; height: 37px; left: 20px; padding-bottom: 0px; padding-top: 0px; top: =
13px; width: 200px;}
..picker-curation-order-dropdown-menu {transition: all 0.218s ease 0s; backg=
round: rgb(241, 241, 241) none repeat scroll 0% 0%; border: 1px solid rgb(2=
16, 216, 216); height: 33px; line-height: 30px; vertical-align: middle; dis=
play: inline-block; margin-left: 20px;}
..picker-curation-order-dropdown-menu .goog-flat-menu-button-dropdown {borde=
r: medium none; display: inline-block; right: 10px; top: 10px;}
..picker-curation-bar {background: rgb(255, 255, 255) none repeat scroll 0% =
0%; height: 65px; text-align: right;}
..picker-curation-bar-left {position: absolute; text-align: left; z-index: 2=
120;}
..picker-curation-bar-toggles {border-radius: 2px; display: inline-block; he=
ight: 37px; line-height: 37px; margin-left: 20px; vertical-align: middle; b=
order: 1px solid rgb(216, 216, 216);}
..picker-curation-bar-toggles .goog-flat-button {opacity: 0.4; transition: a=
ll 0.218s ease 0s; background: rgb(255, 255, 255) none repeat scroll 0% 0%;=
margin: 0px; outline: medium none;}
..picker-curation-bar-toggles .goog-flat-button-checked {opacity: 1; backgro=
und: rgb(229, 229, 229) none repeat scroll 0% 0%;}
..picker-curation-bar-toggles .goog-flat-button.picker-curation-bar-large-th=
umb {padding: 9px;}
..picker-curation-bar-toggles .goog-flat-button.picker-curation-bar-small-th=
umb {padding: 13px;}
..picker-curation-upload-button-content {color: rgb(115, 115, 115); font-siz=
e: 13px; margin: 0px 4px;}
..picker-curation-view .picker-dropdown-menu.picker-curation-order-dropdown-=
menu {background: rgb(255, 255, 255) none repeat scroll 0% 0%; height: 37px=
; min-width: 37px; padding: 0px; text-align: center; vertical-align: middle=
; width: 37px; z-index: auto;}
..picker-curation-progress-parent {display: inline-block; vertical-align: mi=
ddle; transition: margin-top 0.218s ease 0s, opacity 0.218s ease 0s;}
..picker-curation-bar .picker-progress-bar {display: inline-block; font-size=
: 12px; vertical-align: middle;}
..picker-curation-bar .picker-curation-progress-label {display: inline-block=
; vertical-align: middle;}
..picker-curation-bar .picker-curation-progress-stop-upload ,.picker-curatio=
n-bar .jfk-textinput {display: inline-block; font-size: 12px; vertical-alig=
n: middle;}
..picker-curation-bar .picker-progress-bar {margin-left: 20px; width: 150px;=
}
..picker-curation-view .picker-progress-bar {border: 1px solid rgb(187, 187,=
187); background-color: rgb(229, 229, 229); box-shadow: 0px 0px 1px rgba(0=
, 0, 0, 0.2) inset;}
..picker-curation-view .progress-bar-thumb {border: 1px solid rgb(33, 117, 2=
55); background-color: rgb(77, 144, 254);}
..picker-curation-view .picker-progress-bar {height: 4px;}
..picker-curation-view .progress-bar-thumb {height: 4px; position: absolute;=
left: -1px; top: -1px;}
..picker-curation-bar .picker-curation-progress-label {margin-left: 10px; co=
lor: rgb(153, 153, 153); font-size: 12px;}
..picker-curation-bar .picker-curation-progress-stop-upload {margin-left: 10=
px; padding: 0px;}
..picker-curation-bar .jfk-button {transition: all 0.218s ease 0s; backgroun=
d: rgb(255, 255, 255) none repeat scroll 0% 0%; border: 1px solid rgb(216, =
216, 216); height: 38px; line-height: 37px; margin: 0px; position: static; =
right: 20px; top: 17px;}
..picker-curation-bar .picker-spr-icon-computer {display: inline-block; marg=
in-right: 8px; vertical-align: middle; opacity: 0.8;}
..picker-curation-bar .jfk-button.jfk-button-focused .picker-spr-icon-comput=
er ,.picker-curation-bar .jfk-button.jfk-button-active .picker-spr-icon-com=
puter ,.picker-curation-bar .jfk-button.jfk-button-hover .picker-spr-icon-c=
omputer {opacity: 1;}
..picker-curation-drop-notice-parent {color: rgb(153, 153, 153); cursor: def=
ault; font-weight: bold; font-size: 13px; height: 65px; margin: auto; line-=
height: 65px; text-align: center; top: 0px;}
..picker-curation-drop-notice-text {padding: 0px 10px;}
..picker-spr-icon-zoom-min ,.picker-spr-icon-zoom-max ,.picker-curation-albu=
m-name-bar {display: inline-block;}
..picker-spr-icon-zoom-max {margin-left: 10px;}
..picker-spr-icon-zoom-min {margin-right: 5px;}
..picker-curation-drag-selector {z-index: 2200; position: absolute; border: =
1px solid rgba(136, 190, 190, 0.3); background: rgba(136, 187, 255, 0.4) no=
ne repeat scroll 0% 0%; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2); border=
-radius: 2px; opacity: 0.8;}
..picker-curation-drag-scroll-mask {position: absolute; top: 0px; bottom: 0p=
x; left: 0px; right: 0px; opacity: 0; z-index: 2200;}
..picker-curation-drag-pile {position: absolute;}
..picker-curation-view .tt-photos-tagging-tcontent-button-container {display=
: none;}
..picker-curation-upload.picker-actionpane-frame {z-index: 2115; background-=
color: rgb(255, 255, 255);}
..picker-curation-drop-notice-parent .picker-actionpane-notice-td {border-ri=
ght: 128px solid transparent;}
..picker-curationview-autobackup-icon {height: 20px; margin: 8px; top: 14px;=
width: 20px;}
..picker-curationview-autobackup-promo {color: rgb(170, 170, 170); font-size=
: 13px; text-align: center; top: -53px; vertical-align: middle; width: 100%=
;}
..picker-curation-control {transition: border-color 0.2s ease 0s, margin 0.5=
s ease 0s, height 0.5s ease 0s, width 0.5s ease 0s, opacity 0.5s ease-out 0=
s, top 0.5s ease-out 0s, left 0.5s ease-out 0s, line-height 0.5s ease 0s, b=
ox-shadow 0.5s ease 0s; border-radius: 4px; outline: medium none; backgroun=
d-color: rgb(245, 245, 245); border-color: rgb(208, 208, 208); border-style=
: solid; border-width: 1px; overflow: hidden;}
..picker-curation-control.picker-curation-fast ,.picker-curation-control.pic=
ker-curation-fast .picker-curation-control-card ,.picker-curation-control.p=
icker-curation-fast-thumb .picker-curation-control-thumb-wrapper ,.picker-c=
uration-control.picker-curation-fast-thumb .picker-curation-control-thumb ,=
..picker-curation-control.picker-curation-fast-thumb .picker-curation-contro=
l-thumb-border ,.picker-curation-control.picker-curation-control-selected-r=
eordering .picker-curation-control-thumb-wrapper {transition: margin 0s eas=
e 0s, height 0s ease 0s, width 0s ease 0s, opacity 0.5s ease-out 0s, top 0s=
ease 0s, left 0s ease 0s;}
..picker-curation-control.picker-curation-fast .picker-curation-control-thum=
b-wrapper ,.picker-curation-control.picker-curation-fast .picker-curation-c=
ontrol-thumb ,.picker-curation-control.picker-curation-fast .picker-curatio=
n-control-thumb-border {transition: margin 0s ease 0s, height 0s ease 0s, w=
idth 0s ease 0s, opacity 0.5s ease-out 0s, top 0.5s ease 0s, left 0.5s ease=
0s;}
..picker-curation-control.picker-curation-control-rotating .picker-curation-=
control-thumb ,.picker-curation-control.picker-curation-control-rotating .p=
icker-curation-control-thumb-wrapper { }
..picker-curation-control.picker-curation-control-rotating .picker-curation-=
control-thumb-wrapper .picker-curation-control-thumb-border {transition: -w=
ebkit-transform 0.2s ease-in-out 0s;}
..picker-curation-control-card {transition: border-color 0.2s ease 0s, margi=
n 0.5s ease 0s, height 0.5s ease 0s, width 0.5s ease 0s, opacity 0.5s ease-=
out 0s, top 0.5s ease-out 0s, left 0.5s ease-out 0s, line-height 0.5s ease =
0s, box-shadow 0.5s ease 0s;}
..picker-curation-control ,.picker-curation-control-card ,.picker-curation-c=
ontrol-thumb-wrapper ,.picker-curation-control-upload-preview {position: ab=
solute;}
..picker-curation-control-thumb-wrapper {text-align: center; transition: bor=
der-color 0.2s ease 0s, margin 0.5s ease 0s, height 0.5s ease 0s, width 0.5=
s ease 0s, opacity 0.5s ease-out 0s, top 0.5s ease-out 0s, left 0.5s ease-o=
ut 0s, line-height 0.5s ease 0s, box-shadow 0.5s ease 0s; border-radius: 1p=
x; margin-top: -2px;}
..picker-curation-control-thumb {transition: border-color 0.2s ease 0s, marg=
in 0.5s ease 0s, height 0.5s ease 0s, width 0.5s ease 0s, opacity 0.5s ease=
-out 0s, top 0.5s ease-out 0s, left 0.5s ease-out 0s, line-height 0.5s ease=
0s, box-shadow 0.5s ease 0s; cursor: default; position: relative; line-hei=
ght: 0;}
..picker-curation-control-thumb-border {transition: border-color 0.2s ease 0=
s, margin 0.5s ease 0s, height 0.5s ease 0s, width 0.5s ease 0s, opacity 0.=
5s ease-out 0s, top 0.5s ease-out 0s, left 0.5s ease-out 0s, line-height 0.=
5s ease 0s, box-shadow 0.5s ease 0s; cursor: default; line-height: 0; posit=
ion: relative; display: inline-block; vertical-align: middle; background-co=
lor: rgb(255, 255, 255);}
..picker-curation-control-thumb-border-lines {transition: border-color 0.2s =
ease 0s; position: absolute; top: -3px; left: -3px; right: -3px; bottom: -3=
px; border: 2px solid transparent; z-index: 2107;}
..picker-curation-control-selected.picker-curation-control {border-color: rg=
b(77, 144, 254);}
..picker-curation-control-tag-adding-mode {position: absolute; display: inli=
ne-block; z-index: 2114;}
..picker-curation-control-toolbar {background: rgb(255, 255, 255) none repea=
t scroll 0% 0%; border-top: 1px solid rgb(208, 208, 208); overflow: hidden;=
cursor: default; line-height: 42px; height: 42px; position: absolute; bott=
om: 0px; width: 100%; outline: medium none;}
..picker-curation-control-small .picker-curation-control-toolbar {opacity: 0=
; transition: opacity 0.4s ease-out 0s, border-color 0.5s ease-in 0s, backg=
round-color 0.5s ease-in 0s; line-height: 0; height: 0px;}
..picker-curation-control-small.picker-curation-control-hover .picker-curati=
on-control-toolbar {opacity: 1; line-height: 42px; height: 42px;}
..picker-curation-control-caption-input.picker-curation-control-toolbar-disa=
bled ,.picker-curation-control-toolbar-icon.picker-curation-control-toolbar=
-rotate-disabled ,.picker-curation-control-toolbar-icon.picker-curation-con=
trol-toolbar-icon-hover.picker-curation-control-toolbar-rotate-disabled {op=
acity: 0; cursor: default; visibility: hidden;}
..picker-curation-control-hover .picker-curation-control-caption-input {opac=
ity: 1;}
..picker-curation-control-has-caption-focus .picker-curation-control-caption=
-input {opacity: 1; overflow: visible; color: rgb(51, 51, 51);}
..picker-curation-control-caption-input {transition: color 0.3s ease 0s, opa=
city 0.3s ease 0s, border-color 0.3s ease 0s, width 0.5s ease 0s, height 0.=
5s ease 0s, box-shadow 0.5s ease 0s; color: rgb(153, 153, 153); font-family=
: Roboto,Arial,sans-serif; font-size: 13px; border: 0px none; margin: auto;=
outline: medium none; overflow: hidden; padding: 0px 8px; resize: none; wi=
dth: 70%; height: 16px;}
..picker-curation-control-caption-input.picker-curation-control-disabled {ba=
ckground-color: transparent;}
..picker-curation-control-upload-preview {left: 0px; right: 0px; bottom: 0px=
; height: 40px; min-width: 40px;}
..picker-curation-control-upload-preview.picker-curation-control-upload-prev=
iew-empty {left: -156px; height: 40px; width: 312px;}
..picker-curation-control-upload-preview .picker-progress-bar {width: 50%; p=
osition: absolute; bottom: 24px; margin-top: -4px; left: 50%; margin-left: =
-25%;}
..picker-curation-view .picker-curation-control-upload-preview .picker-progr=
ess-bar ,.picker-curation-view .picker-curation-control-upload-preview .pro=
gress-bar-thumb {height: 2px;}
..picker-curation-control.picker-curation-control-nudge-left ,.picker-curati=
on-control.picker-curation-control-nudge-right {transition: margin 0.3s eas=
e 0s;}
..picker-curation-control.picker-curation-control-nudge-left {margin-left: -=
50px; z-index: 2104;}
..picker-curation-control.picker-curation-control-nudge-left .picker-curatio=
n-control-thumb {transition: color 0.3s ease 0s, opacity 0.3s ease 0s, bord=
er-color 0.3s ease 0s, width 0s ease 0s, height 0s ease 0s, box-shadow 0.5s=
ease 0s; box-shadow: -5px 0px 8px rgba(0, 0, 0, 0.3);}
..picker-curation-control.picker-curation-control-nudge-right {margin-left: =
50px; z-index: 2104;}
..picker-curation-control.picker-curation-control-nudge-right .picker-curati=
on-control-thumb {transition: color 0.3s ease 0s, opacity 0.3s ease 0s, bor=
der-color 0.3s ease 0s, width 0s ease 0s, height 0s ease 0s, box-shadow 0.5=
s ease 0s; box-shadow: 5px 0px 8px rgba(0, 0, 0, 0.3);}
..picker-curation-control.picker-curation-control-selected.picker-curation-c=
ontrol-nudge-left ,.picker-curation-control.picker-curation-control-selecte=
d.picker-curation-control-nudge-right {margin-left: 0px;}
..picker-curation-control.picker-curation-control-unselected-reordering {tra=
nsition: opacity 0.6s ease 0s, top 0.2s ease-out 0s, left 0.2s ease-out 0s,=
line-height 0.2s ease 0s;}
..picker-curation-control.picker-curation-control-unselected-reordering .pic=
ker-curation-control-thumb ,.picker-curation-control.picker-curation-contro=
l-unselected-reordering .picker-curation-control-thumb-wrapper {transition:=
top 0.3s ease-out 0s, left 0.3s ease-out 0s, line-height 0.3s ease 0s;}
..picker-curation-control.picker-curation-control-unselected-reordering.pick=
er-curation-control-changelines {opacity: 0;}
..picker-curation-control.picker-curation-control-selected-reordering {z-ind=
ex: 2103; transition: top 0.1s ease-out 0s, left 0.3s ease-out 0s;}
..picker-curation-control.picker-curation-control-selected-reordering.picker=
-curation-control-dropped {transition: none 0s ease 0s ;}
..picker-curation-control.picker-curation-control-dragging {opacity: 0; tran=
sition: opacity 0.2s ease-out 0s, top 0.5s ease-out 0s, left 0.5s ease-out =
0s, margin 0.2s ease-out 0s;}
..picker-curation-drag-control-img {position: absolute; bottom: 0px; left: 5=
0%; width: 100%; height: 100%; cursor: pointer; box-shadow: 0px 3px 25px rg=
ba(0, 0, 0, 0.6);}
..picker-curation-drag-control-img-box {position: relative;}
..picker-curation-drag-control-img ,.picker-curation-drag-control-img-box {z=
-index: 2106;}
..picker-curation-drag-control-img-box.picker-curation-drag-control-stack-1 =
{z-index: 2105; position: absolute; margin-top: 5px; margin-left: 5px; tran=
sform: rotate(7deg);}
..picker-curation-drag-control-img-box.picker-curation-drag-control-stack-2 =
{z-index: 2105; position: absolute; margin-top: -5px; margin-left: -5px; tr=
ansform: rotate(-10deg);}
..picker-curation-drag-control-count {position: absolute; height: 23px; line=
-height: 23px; border-radius: 3px; background: rgb(77, 144, 254) none repea=
t scroll 0% 0%; color: rgb(255, 255, 255); text-align: center; font-size: 1=
3px; font-weight: bold; top: 0px; margin-top: -15px; left: 50%; margin-left=
: -36px; width: 72px; z-index: 2109; box-shadow: 0px 2px 20px rgba(0, 0, 0,=
0.8);}
..picker-curation-control-toolbar.jfk-bubble {z-index: 2113 !important; line=
-height: 0; margin: 0px; padding: 0px; min-width: 124px;}
..picker-curation-control-error-bubble.jfk-bubble {z-index: 2112 !important;=
}
..picker-curation-control-toolbar-top-buttons {border-left: 1px dashed rgb(2=
21, 221, 221); overflow: hidden; position: absolute; cursor: default; top: =
0px; right: 0px; display: inline;}
..picker-curation-control-small .picker-curation-control-toolbar-top-buttons=
{border: 0px none; text-align: center; width: 100%; z-index: 2108;}
..picker-curation-control-toolbar-icon {cursor: pointer; display: inline-blo=
ck; opacity: 0.4; transition: color 0.3s ease 0s, opacity 0.13s ease 0s, bo=
rder-color 0.3s ease 0s, width 0s ease 0s, height 0s ease 0s, box-shadow 0.=
5s ease 0s; margin: 0px 7px; vertical-align: middle;}
..picker-curation-control-toolbar.picker-curation-control-toolbar-is-cover .=
picker-curation-control-toolbar-icon.picker-spr-checkbox-active {opacity: 0=
;}
..picker-curation-control-toolbar-top-buttons .picker-curation-control-toolb=
ar-icon-hover {opacity: 0.7;}
..picker-curation-control-toolbar-icon.picker-curation-control-toolbar-icon-=
active {opacity: 1;}
..tt-photos-ttagoverlay .tt-photos-tagging-bubble {font-size: 10px; line-hei=
ght: 1em; padding: 8px; z-index: 2108 !important;}
..picker-curation-control .tt-photos-tagging-acl-msg {margin-top: 2px;}
..picker-curation-control .tt-photos-tagging-bubble-spinner {margin-left: 2p=
x;}
..picker-main-container .tacotown-autocomplete-box {z-index: 2115;}
..picker-curation-control .tt-photos-tagging-tcontent-remove-button {backgro=
und: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/docs/picker/images/dialog_clos=
e_small.gif") no-repeat scroll 0% 0% padding-box content-box; height: 15px;=
margin-bottom: -3px; width: 15px;}
..picker-curation-control .tt-photos-ttagoverlay-cursor.tt-photos-ttagoverla=
y-tagged .tt-photos-ttagoverlay-cursor-ring-inner ,.picker-curation-control=
.tt-photos-ttagoverlay-cursor.tt-photos-ttagoverlay-tagged .tt-photos-ttag=
overlay-cursor-ring-outer ,.picker-curation-control .tt-photos-ttr-ring .tt=
-photos-ttr-ring-inner ,.picker-curation-control .tt-photos-ttr-ring .tt-ph=
otos-ttr-ring-outer {border-width: 6px;}
..picker-curation-control .tt-photos-ttagoverlay-cursor.tt-photos-ttagoverla=
y-tagged .tt-photos-ttagoverlay-cursor-ring ,.picker-curation-control .tt-p=
hotos-ttr-ring .tt-photos-ttr-ring-inner ,.picker-curation-control .tt-phot=
os-ttr-ring .tt-photos-ttr-ring-outer {bottom: -6px; left: -6px; right: -6p=
x; top: -6px;}
..picker-curation-control-is-cover.picker-curation-control-small .picker-cur=
ation-control-cover-selected ,.picker-curation-control-small.picker-curatio=
n-control-hover .picker-curation-control-cover ,.picker-curation-control-is=
-cover.picker-curation-control-hover .picker-curation-control-cover ,.picke=
r-curation-control-error-holder ,.picker-curation-control-thumb ,.picker-cu=
ration-control-loaded .picker-curation-control-upload-preview ,.picker-cura=
tion-control-cancel .picker-curation-control-upload-preview ,.picker-curati=
on-control-error .picker-curation-control-upload-preview ,.picker-curation-=
control-small .picker-curation-control-caption-container ,.picker-curation-=
control-caption-input.picker-curation-control-toolbar-disabled ,.picker-cur=
ation-control-toolbar-icon.picker-curation-control-toolbar-rotate-disabled =
,.picker-curation-control-toolbar-icon.picker-curation-control-toolbar-icon=
-hover.picker-curation-control-toolbar-rotate-disabled {display: none;}
..picker-curation-control-caption-container ,.picker-curation-control-error =
..picker-curation-control-error-holder ,.picker-curation-control-loaded .pic=
ker-curation-control-thumb {display: inline;}
..picker-curation-control-cover {background-color: rgb(38, 38, 38);}
..picker-curation-control-hover .picker-curation-control-cover {opacity: 0.7=
; z-index: 2108;}
..picker-curation-control-tag-adding-mode .picker-curation-control-cover {op=
acity: 0.7;}
..picker-curation-control-cover-selected {background-color: rgb(77, 144, 254=
);}
..picker-curation-control-hover .picker-curation-control-is-hover-cover.pick=
er-curation-control-cover ,.picker-curation-control-is-hover-cover.picker-c=
uration-control-cover ,.picker-curation-control-is-cover .picker-curation-c=
ontrol-cover-selected {opacity: 1;}
..picker-curation-control-cover-selected .picker-spr-checkmark-checked {disp=
lay: inline-block; margin: 5px; vertical-align: middle;}
..picker-curation-control-cover-selected .picker-curation-control-cover-text=
{padding-left: 0px;}
..picker-curation-control-cover ,.picker-curation-control-tag-adding-mode.pi=
cker-curation-control-is-cover .picker-curation-control-cover ,.picker-cura=
tion-control-cover-selected {border-radius: 5px; opacity: 0; bottom: 10px; =
cursor: pointer; display: inline-block; left: 10px; position: absolute;}
..picker-curation-control-cover-text {color: rgb(255, 255, 255); display: in=
line-block; font-size: 13px; font-weight: bold; line-height: 13px; padding:=
8px;}
..picker-curation-control.picker-curation-control-loaded.picker-curation-con=
trol-small.picker-curation-control-hover {transition: opacity 0.4s ease-out=
0s, border-color 0.5s ease-in 0s, background-color 0.5s ease-in 0s; backgr=
ound-color: rgb(245, 245, 245); border-color: rgb(208, 208, 208);}
..picker-curation-control.picker-curation-control-loaded.picker-curation-con=
trol-small.picker-curation-control-selected {background-color: rgb(245, 245=
, 245); border-color: rgb(77, 144, 254);}
..picker-curation-control.picker-curation-control-loaded.picker-curation-con=
trol-small {background-color: transparent; border: 1px solid transparent;}
..picker-curation-control-error-holder {z-index: 2111; bottom: 0px; left: 0p=
x; position: absolute; right: 0px; text-align: center; top: 0px;}
..picker-curation-control-retry ,.picker-curation-control-error-delete {marg=
in: 5px; color: rgb(17, 85, 204); cursor: pointer;}
..picker-curation-control-error-separator {color: rgb(204, 204, 204);}
..picker-curation-control-error-icon {display: inline-block; height: 66px; l=
eft: 50%; margin-top: -33px; margin-left: -33px; position: absolute; top: 5=
0%; width: 66px; vertical-align: middle; transition: all 0.5s ease 0s; back=
ground-repeat: no-repeat;}
..picker-curation-control-error-text {font-size: 11px; text-align: center; w=
idth: 110px;}
..picker-curation-control-small .picker-curation-control-error-icon {height:=
14px; margin-left: -7px; margin-top: -7px; width: 14px;}
..picker-curation-control-preview-background {background-color: rgb(255, 255=
, 255); bottom: 0px; left: 0px; position: absolute; right: 0px; top: 0px;}
..picker-photo-control-thumbframe .picker-photo-control-description {width: =
auto; position: static; margin: 0px 5px;}
..picker-photo-control-thumbframe .picker-photo-control-bottom-controls {wid=
th: 158px;}
..picker-photo-control-attribution {cursor: pointer;}
..picker-photo-control-thumbframe .picker-video-play-icon {position: absolut=
e; left: 60px; top: 40px;}
..new-upload-box .picker-photo-control-thumbframe .picker-video-play-icon {t=
op: 60px;}
..picker-photo-control-thumbframe .picker-video-filename {width: 158px;}
..picker-photo-control-thumbframe .picker-photo-control-preview.picker-proce=
ssing-video {width: 158px; height: 158px;}
..picker-photo-control-thumbframe .picker-video-processing-box {height: 158p=
x;}
..picker-photo-control-thumbframe .picker-photo-control-preview.picker-proce=
ssing-video ,.picker-dataview-content .picker-photo-control ,.picker-datavi=
ew-content .picker-photo-control-focused.picker-photo-control ,.picker-data=
view-content .picker-photosuploadview .picker-photo-control.picker-photo-co=
ntrol-focused ,.picker-dataview-content .picker-photosgrid-edit .picker-pho=
to-control.picker-photo-control-focused {border: 0px none transparent;}
..picker-photo-control-thumbframe .picker-photo-control-preview.picker-proce=
ssing-video {background-color: transparent;}
..picker-photo-control-thumbframe .picker-photo-control-description {height:=
auto;}
..picker-albumname-album-cell {font-size: 13px;}
..picker-albumname-label {margin-right: 5px;}
..picker-albumname-input {margin: 0px 10px 1px 2px; width: 172px;}
..picker-albumname .goog-link-button {padding: 6px 0px;}
:first-child + html .picker-albumname .picker-albumname-album-cell .goog-li=
nk-button {position: relative; top: 6px;}
..picker-photosgrid-edit .picker-albumname {padding: 0px 7px;}
..picker-photosgrid-edit .picker-photo-control {padding: 0px 2px 12px;}
..picker-photosgrid-edit {padding: 12px 0px 0px 1px;}
..picker-albumsgrid .picker-dataview-content ,.picker-photosgrid .picker-dat=
aview-content {padding: 0px 13px 15px;}
..picker-dataview.picker-albumsgrid ,.picker-dataview.picker-photosgrid-came=
rasync {padding-top: 0px;}
..picker-breadcrumbs-content .picker-photosgrid .picker-dataview-content {pa=
dding-top: 14px;}
..picker-photo-control {vertical-align: middle; text-align: center; margin: =
1px; font-size: 0px; border: 1px solid rgb(255, 255, 255);}
..picker-photosuploadview .picker-photo-control.picker-photo-control-focused=
,.picker-photosgrid-edit .picker-photo-control.picker-photo-control-focuse=
d {border: 1px solid rgb(255, 255, 255);}
..picker-photo-control-focused.picker-photo-control {border: 1px solid rgb(7=
4, 151, 223);}
..picker-photo-control-preview {font-size: 0px; position: relative;}
..picker-photo-control-placeholder {background: transparent url("//ssl.gstat=
ic.com/docs/picker/images/placeholder-v1.gif") repeat scroll 0% 0%;}
..picker-photo-control-preview-content {cursor: pointer; outline: medium non=
e;}
..picker-upload-control-error .picker-photo-control-uploading {border: 1px s=
olid rgb(221, 221, 221); background-color: rgb(255, 255, 255);}
..picker-photo-control-preview-content .uploader-thumb-img {display: block; =
position: relative;}
..picker-photo-control-unselectable .picker-photo-control-preview-content {c=
ursor: default;}
..picker-photo-control-attribution {position: absolute; bottom: 0px; left: 7=
px; right: 7px; overflow: hidden; white-space: nowrap; text-overflow: ellip=
sis; font-size: 10px; text-align: left;}
* html .picker-photo-control-attribution ,body .picker-photo-control-attrib=
ution {width: 100%;}
..picker-photo-control-attribution-spacer {font-size: 10px; visibility: hidd=
en;}
..picker-photo-control-bottom-controls {bottom: -8px; width: 100%;}
..picker-photo-control-description {position: absolute; left: 0px; font-size=
: 13px; color: rgb(153, 153, 153); width: 100%; height: 1.2em; overflow: hi=
dden; text-align: center; text-overflow: ellipsis; white-space: nowrap;}
..picker-photosgrid-edit .picker-photo-control-description.goog-control-hove=
r {text-decoration: underline; cursor: pointer;}
..picker-photosgrid-camerasync {padding: 10px 13px;}
..picker-photosgrid-separator {font-size: 11px; color: rgb(170, 170, 170); m=
argin: 0px 10px 0px 8px;}
..picker-photosgrid-separatorhr {border-width: 1px 0px 0px; border-style: so=
lid none none; border-color: rgb(221, 221, 221) currentcolor currentcolor; =
-moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-b=
ottom-colors: none; -moz-border-left-colors: none; border-image: none; marg=
in-left: -1px;}
..picker-photo-control-border ,.picker-photosgrid-edit .picker-photo-control=
-checked .picker-photo-control-border {border: 6px solid transparent;}
..picker-photo-control-checked .picker-photo-control-border {border: 6px sol=
id rgb(77, 144, 254);}
..picker-photo-control .photo-image-edit-controls {position: absolute; top: =
-20px; right: 0px;}
..picker-photo-control-checked .photo-image-edit-controls {top: -26px; right=
: -6px;}
..picker-photo-control .photo-image-edit-caption {left: 50%; top: -35px; mar=
gin-left: -144px;}
..picker-photo-control .progress-bar-horizontal {position: absolute; bottom:=
4px; left: 4px; right: 4px; height: 5px; border: 0px none; text-align: lef=
t; background: transparent none repeat scroll 0% 0%;}
* html .picker-photo-control .progress-bar-horizontal ,body .picker-photo-c=
ontrol .progress-bar-horizontal {left: 0px; right: 0px; width: 100%;}
..picker-photo-control .progress-bar-thumb {background: rgb(136, 136, 136) n=
one repeat scroll 0% 0%; height: 5px;}
..picker-upload-control-canceled .picker-photo-control-preview .progress-bar=
-horizontal ,.picker-upload-control-default .picker-photo-control-preview .=
progress-bar-horizontal ,.picker-upload-control-error .picker-photo-control=
-preview .progress-bar-horizontal ,.picker-upload-control-scheduled .picker=
-photo-control-preview .progress-bar-horizontal ,.picker-upload-control-suc=
cess .picker-photo-control-preview .progress-bar-horizontal {display: none;=
}
..picker-upload-control-error .picker-photo-control-message {position: absol=
ute; bottom: 0px; left: 0px; right: 0px; height: 10px; border: 0px none; pa=
dding: 2px; text-align: left; background: rgb(215, 0, 0) none repeat scroll=
0% 0%; color: rgb(255, 255, 255); white-space: nowrap; overflow: hidden; t=
ext-overflow: ellipsis; font-size: 9px; cursor: default;}
* html .picker-photo-control .picker-photo-control-message ,body .picker-ph=
oto-control .picker-photo-control-message {left: 0px; right: 0px; width: 10=
0%; padding: 0px;}
..new-upload-box .picker-photo-control-uploading ,.new-upload-box .picker-ph=
oto-control-placeholder {background: rgb(238, 238, 238) none repeat scroll =
0% 0%; border: 1px solid rgb(206, 206, 206);}
..picker-upload-control-error .picker-photo-control-preview .picker-photo-co=
ntrol-uploading {background: rgb(255, 255, 255) none repeat scroll 0% 0%;}
..picker-upload-control-running .picker-photo-control-preview .progress-bar-=
horizontal {display: inline;}
..new-upload-box .progress-bar-thumb {height: 100%; background-repeat: repea=
t-x; background-size: 20px 10px; background-color: rgb(204, 204, 204); back=
ground-attachment: scroll; background-image: linear-gradient(315deg, transp=
arent, transparent 33%, rgba(0, 0, 0, 0.12) 33%, rgba(0, 0, 0, 0.12) 66%, t=
ransparent 66%, transparent); animation-duration: 0.8s; animation-iteration=
-count: infinite; animation-timing-function: linear;}
..new-upload-box .progress-bar-horizontal {right: 0px; bottom: 0px; left: 0p=
x; height: 8px; border: 1px solid rgb(153, 153, 153); margin: 0px 8px 8px; =
padding: 1px; background: rgb(255, 255, 255) none repeat scroll 0% 0%;}
..new-upload-box .picker-progress-bar-spinner.progress-bar-horizontal {borde=
r: 0px none; background: transparent url("//ssl.gstatic.com/docs/picker/ima=
ges/loading-v1.gif") no-repeat scroll 0px 0px; height: 16px; width: 16px; m=
argin: auto auto 5px; opacity: 0.5;}
..picker-video-control-thumb-table {width: 100%; position: relative; top: 10=
5px; z-index: 2200; opacity: 0.8; color: rgb(153, 153, 153); font-size: 10p=
x; height: 20px;}
..picker-video-filename {position: relative; top: 38px; z-index: 2104; heigh=
t: 13px; width: 120px; text-overflow: ellipsis; white-space: nowrap; overfl=
ow: hidden; font-size: 12px; color: rgb(153, 153, 153);}
..picker-video-spinner {position: relative; top: 5px; right: 1px; z-index: 2=
100; background-image: url("//ssl.gstatic.com/docs/picker/images/loading-v1=
..gif"); height: 16px; width: 16px; opacity: 0.5;}
..picker-photo-control-preview.picker-processing-video {background-color: rg=
b(238, 238, 238); border: 1px solid rgb(206, 206, 206); width: 120px; heigh=
t: 120px;}
..picker-video-processing-box {height: 120px; left: 0px; position: absolute;=
top: 0px; width: auto;}
..picker-video-play-icon {position: absolute; left: 12px; top: 12px;}
..jfk-bubble.picker-video-bubble {padding-top: 30px; z-index: 2200 !importan=
t; top: 0px;}
..picker-photo-control-unselectable .picker-photo-control-preview-content .u=
ploader-thumb-img {opacity: 0.3; position: relative;}
..picker-albumslist {padding: 15px 0px 0px 15px;}
..picker-content.picker-gridview-bandselect.picker-flatphotosgrid .picker-fl=
atphoto-control-wrapper ,.picker-content.picker-gridview-bandselect {cursor=
: crosshair;}
..picker-photosview .picker-dataview {padding-top: 0px;}
..picker-profile-toolbar.picker-edit-toolbar {padding: 0px; width: 160px;}
..picker-profile-toolbar .goog-button {margin: 3px; padding: 7px; text-trans=
form: uppercase; font-size: 11px; cursor: pointer; white-space: nowrap;}
..picker-profile-toolbar .goog-button-hover {background-color: rgb(238, 238,=
238);}
..picker-profile-toolbar-icon {opacity: 0.4; margin-right: 8px; vertical-ali=
gn: middle;}
..picker-profile-toolbar-label {vertical-align: middle;}
..picker-profileview {font-size: 13px; padding: 20px;}
..picker-profileview-photo {border: 6px solid rgb(77, 144, 254); width: 96px=
; height: 96px;}
..picker-profileview-text {margin-left: 115px;}
..picker-searchbarimagefilter {margin-right: 5px; padding-top: 2px;}
..picker-searchbarimagefilter-type-button {margin: 0px 5px 0px 0px; vertical=
-align: middle;}
..picker-searchbarimagefilter-colorbox {border: 3px solid transparent; heigh=
t: 19px; margin: 0px; opacity: 0.5; padding: 1px; width: 19px; vertical-ali=
gn: middle;}
..picker-searchbarimagefilter-colorbox-inner {border: 1px solid rgb(153, 153=
, 153); cursor: pointer; height: 19px; margin: -1px 0px 0px -1px; padding: =
0px; width: 19px;}
..picker-gplus .picker-searchbarimagefilter-colorbox-inner {margin: 0px; bor=
der: 0px none;}
..picker-searchbarimagefilter-colorbox[aria-selected=3D"true"] {background-c=
olor: rgb(255, 255, 255); border-color: rgb(77, 144, 254); opacity: 1;}
..picker-webcam-control {overflow: hidden;}
..picker-webcam {padding: 20px; text-align: center; z-index: 2110;}
..picker-webcam-buttons.goog-inline-block {width: auto; position: absolute;}
..picker-webcam .picker-webcam-buttons .jfk-button {z-index: 1;}
..picker-webcam .goog-slider-horizontal {height: 5px; background: rgb(229, 2=
29, 229) none repeat scroll 0% 0%; -moz-user-select: none; border-radius: 3=
px;}
..picker-webcam .goog-slider-horizontal.picker-slider-hover {background: rgb=
(209, 209, 209) none repeat scroll 0% 0%;}
..picker-webcam .goog-slider-horizontal .goog-slider-thumb {display: block; =
position: absolute; top: -7px; left: 0px; width: 15px; height: 15px; z-inde=
x: 1; border: 1px solid rgb(153, 153, 153); background-color: rgb(153, 153,=
153); cursor: col-resize; box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1); tran=
sition: left 0.1s ease 0s; border-radius: 8px;}
..picker-webcam .goog-slider-horizontal.picker-slider-hover .goog-slider-thu=
mb {background-color: rgb(255, 255, 255);}
..picker-webcam .goog-slider-horizontal .goog-slider-thumb .goog-slider-drag=
ging {background-color: rgb(83, 82, 82);}
..picker-webcam-icon {background: rgb(255, 255, 255) none repeat scroll 0% 0=
%; border: medium none; border-radius: 0px; height: 10px; width: 10px; disp=
lay: inline-block; margin-bottom: -1px; margin-right: 1px;}
..picker-webcam .picker-webcam-play-icon {background: transparent none repea=
t scroll 0% 0%; border-top: 5px solid transparent; border-bottom: 5px solid=
transparent; border-left: 10px solid rgb(51, 51, 51); height: 0px; width: =
0px;}
..picker-webcam .picker-webcam-stop-icon {background: rgb(51, 51, 51) none r=
epeat scroll 0% 0%;}
..picker-webcam .picker-webcam-working-icon {border-radius: 5px;}
..picker-webcam-timer {font-size: 13px; color: rgb(68, 68, 68); width: 80px;=
text-align: right; margin-left: 16px;}
..picker-webcam-working .picker-webcam-timer {background: rgb(245, 245, 245)=
none repeat scroll 0% 0%; border: 1px solid rgba(0, 0, 0, 0.05); text-alig=
n: center; position: absolute; top: 0px; padding: 5px 5px 6px; margin-left:=
0px;}
..picker-webcam-volume-button {padding: 6px; border: 1px solid transparent; =
position: absolute; height: 16px; width: 36px; top: 0px;}
..picker-spr-mic {margin-right: 7px;}
..picker-webcam-volume-button.goog-control-hover {border: 1px solid rgb(153,=
153, 153); border-radius: 2px;}
..picker-webcam-volume-meter {margin-right: 2px; margin-bottom: 4px; backgro=
und: rgb(153, 153, 153) none repeat scroll 0% 0%; width: 2px; height: 2px;}
..picker-webcam-volume-meter.picker-webcam-volume-meter-on {height: 7px; bac=
kground: rgb(0, 153, 51) none repeat scroll 0% 0%;}
..picker-webcam-volume-meter.picker-webcam-volume-meter-red.picker-webcam-vo=
lume-meter-on {background: rgb(209, 72, 54) none repeat scroll 0% 0%;}
..picker-youtube-banner-preview {margin: 20px; color: rgb(68, 68, 68);}
..picker-youtube-banner-preview-header {font-size: 20px; font-weight: normal=
;}
..picker-youtube-banner-preview-message {font-size: 13px; margin-top: 15px;}
..picker-youtube-banner-preview-container {margin-right: 20px; display: inli=
ne-block;}
..picker-youtube-banner-preview-icon-header {text-transform: uppercase; colo=
r: rgb(102, 102, 102); font-size: 13px; text-align: center;}
..picker-youtube-banner-preview-icon {background: rgba(0, 0, 0, 0) url("//ss=
l.gstatic.com/docs/picker/images/youtube-banner-sprite-v2.png") no-repeat s=
croll 0% 0%; position: relative;}
..picker-youtube-banner-preview-tv-icon {background-position: 0px 0px; width=
: 271px; height: 165px;}
..picker-youtube-banner-preview-laptop-icon {background-position: -271px 0px=
; width: 294px; height: 168px;}
..picker-youtube-banner-preview-mobile-icon {background-position: -565px 0px=
; width: 85px; height: 164px;}
..picker-youtube-banner-preview-desktop-image ,.picker-youtube-banner-previe=
w-tv-image ,.picker-youtube-banner-preview-mobile-image {position: absolute=
;}
..picker-youtube-banner-preview-desktop-image {top: 29px; left: 65px; width:=
168px; height: 29px;}
..picker-youtube-banner-preview-tv-image {top: 5px; left: 5px; width: 260px;=
height: 144px;}
..picker-youtube-banner-preview-mobile-image {top: 13px; left: 6px; width: 7=
3px; height: 20px;}
..picker-youtube-banner-preview-button-container {position: absolute; left: =
10px; bottom: 10px;}
..picker-youtube-banner-preview-loadingstatusbox {opacity: 0.8; font-size: 0=
px; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; z-i=
ndex: 2111; background: white url("//ssl.gstatic.com/docs/picker/images/loa=
ding-32-v1.gif") no-repeat scroll center center;}
..picker-youtube-banner-preview-auto-enhance {float: right; margin: 20px;}
..picker-youtube-banner-preview-toggle-label-container {display: inline-bloc=
k;}
..picker-youtube-banner-preview-toggle-label-container .picker-spr-icon-auto=
fix-active {display: inline-block; vertical-align: middle;}
..picker-content.picker-draguploadview {height: 100%; padding: 0px; overflow=
: hidden;}
..picker-upload-button-hidden .picker-draguploadview .picker-photos-upload-d=
ropzone-parent {height: 100%;}
..picker-draguploadview .picker-jfk-tall-progressbar {width: 70%;}
..picker-draguploadview-tip {font-size: 13px; padding: 5px;}
..picker-drag-drop-supported .picker-draguploadview-progress-parent {positio=
n: absolute; height: 50px; top: 50%; margin-top: -25px;}
..picker-draguploadview-progress-parent {position: relative; height: 40px; w=
idth: 100%; top: -20px;}
..picker-draguploadview-msg-bar {position: absolute; top: 10px; width: 80%; =
left: 10%; z-index: 2200;}
..picker-draguploadview-msg-bar .jfk-butterBar-shown {height: 30px;}
..picker-photos-upload-album-bar {z-index: 2102; position: relative;}
..picker-photos-upload-album-bar-cell {height: 1px;}
..picker-photos-upload-dropzone ,.picker-photos-upload-dropzone-cell {width:=
100%; text-align: center; position: relative;}
:first-child + html .picker-photos-upload-dropzone-cell {height: 100%; padd=
ing-top: 100px;}
..picker-upload-button-visible .picker-drag-drop-supported .picker-photos-up=
load-dropzone-cell {border: 4px dashed rgb(221, 221, 221); border-radius: 2=
px;}
..picker-drag-active .picker-upload-button-visible .picker-photos-upload-dro=
pzone-cell {border-color: rgb(77, 144, 254);}
..picker-photos-upload-dropzone-cell .jfk-button {margin: 0px;}
..picker-photos-upload-drop-alt {display: none; padding: 15px 0px 5px; font-=
weight: bold; font-size: 13px; color: rgb(204, 204, 204);}
..picker-photos-upload-drop-here {font-size: 20pt; color: rgb(204, 204, 204)=
; padding: 0px 10px; display: none;}
..picker-drag-active .picker-photos-upload-drop-here {color: rgb(57, 137, 21=
2);}
..picker-drag-drop-supported .picker-photos-upload-drop-alt ,.picker-drag-dr=
op-supported .picker-photos-upload-drop-here {display: block;}
..picker-photos-upload-dropzone-parent {height: 100%; width: 100%; position:=
relative; border-spacing: 20px;}
..picker-upload-button-hidden .picker-photos-upload-dropzone-parent {height:=
auto;}
..picker-photos-upload-dropzone-parent.picker-collapsed {margin: 0px 0px -40=
px;}
..picker-photos-upload-hidden-button {position: absolute; top: -1000px; left=
: -1000px;}
..jfk-butterBar-error .picker-link {color: rgb(255, 255, 255); text-decorati=
on: underline;}
..picker-photo-control-thumbframe {box-shadow: 0px 1px 0px rgb(218, 218, 218=
); width: 158px; height: 188px; background: rgb(255, 255, 255) none repeat =
scroll 0% 0%; border: 1px solid transparent; cursor: pointer;}
..picker-photo-control-thumbframe .picker-photo-control-uploading ,.picker-p=
hoto-control-thumbframe .new-upload-box-error .picker-photos-error-text {bo=
rder: 0px none transparent;}
..picker-upload-control-error .picker-photo-control-thumbframe .picker-photo=
-control-uploading {height: 158px;}
..picker-photosuploadview .new-upload-box .picker-photo-control-thumbframe .=
picker-photo-control-uploading .new-upload-box-error ,.picker-photo-control=
-thumbframe .new-upload-box-error .picker-photos-upload-filename {backgroun=
d: rgb(245, 245, 245) none repeat scroll 0% 0%;}
..new-upload-box .picker-photo-control-thumbframe .new-upload-box-error .pic=
ker-spr-upload-error {margin: 50px 74px 40px 73px;}
..picker-video-control-duration {position: absolute; display: inline-block; =
left: 9px; bottom: 8px; color: rgb(255, 255, 255); background: rgb(199, 199=
, 199) none repeat scroll 0% 0%; border-radius: 20px; font-weight: bold; pa=
dding: 2px 10px 3px 25px; font-size: 11px; text-shadow: 0px 0px 2px rgba(0,=
0, 0, 0.5);}
..picker-photosuploadview .picker-video-control-duration {padding: 2px 10px;=
}
..picker-photo-control-toolbar {background-color: rgb(255, 255, 255); bottom=
: 2px; height: 32px; left: 2px; position: absolute; width: 158px;}
..picker-photo-control-toolbar .picker-spr-checkbox-selected {cursor: pointe=
r; position: relative; right: 62px; top: 4px;}
..picker-photo-control-toolbar .picker-spr-checkbox-active {cursor: pointer;=
position: relative; right: 62px; top: 4px; opacity: 0.2;}
..picker-photo-control-toolbar .picker-spr-checkbox-active.picker-spr-checkb=
ox-active-hover {opacity: 1;}
..picker-photo-control-toolbar .picker-spr-checkbox-selected {display: none;=
}
..picker-photo-control-toolbar .picker-spr-checkbox-active {display: inline-=
block;}
..picker-photosuploadview .picker-photo-control-thumbframe {cursor: default;=
}
..new-upload-box .picker-photos-upload-filename ,.new-upload-box .picker-vid=
eos-upload-loadingthumb {color: rgb(153, 153, 153); font-size: 11px; overfl=
ow: hidden; background: rgb(238, 238, 238) none repeat scroll 0% 0%;}
..picker-photosuploadview .new-upload-box .picker-photo-control-uploading {b=
ackground: rgb(238, 238, 238) none repeat scroll 0% 0%;}
..picker-photosuploadview .new-upload-box .picker-photo-control-uploading .n=
ew-upload-box-error {background: rgb(255, 255, 255) none repeat scroll 0% 0=
%;}
..new-upload-box-error .picker-photos-upload-filename ,.new-upload-box-error=
.picker-videos-upload-loadingthumb {color: rgb(153, 153, 153); font-size: =
11px; overflow: hidden; background: rgb(255, 255, 255) none repeat scroll 0=
% 0%;}
..new-upload-box .picker-photos-upload-filename ,.new-upload-box-error .pick=
er-photos-upload-filename {width: 120px; height: 120px; padding: 0px;}
..new-upload-box .picker-upload-filename-inner ,.new-upload-box-error .picke=
r-upload-filename-inner {padding-top: 58px; text-overflow: ellipsis; white-=
space: nowrap; overflow: hidden; font-size: 12px;}
..new-upload-box .picker-spr-photo-icon {display: inline-block; opacity: 0.5=
; position: absolute; left: 51px; top: 40px;}
..new-upload-box-error .picker-spr-photo-icon {display: none;}
..new-upload-box .new-upload-box-error .picker-spr-upload-error {position: a=
bsolute; margin: 40px 55px 40px 50px; top: 0px;}
..nub-loading .picker-spr-upload-error {display: none;}
..picker-upload-control-error .picker-spr-photo-upload-cancel ,.picker-uploa=
d-control-scheduled .picker-spr-photo-upload-cancel {opacity: 0.5; position=
: absolute; right: 8px; bottom: 8px; cursor: pointer;}
..picker-upload-control-running .picker-spr-photo-upload-cancel ,.picker-upl=
oad-control-success .picker-spr-photo-upload-cancel ,.picker-photo-control-=
placeholder .picker-spr-photo-upload-cancel {display: none;}
..picker-upload-control-error .picker-spr-upload-retry {opacity: 0.5; positi=
on: absolute; left: 8px; bottom: 8px; cursor: pointer;}
..picker-upload-control-error .picker-photos-upload-retry-text {position: ab=
solute; left: 19px; bottom: -1px; cursor: pointer; color: rgb(0, 0, 0); fon=
t-size: 12px;}
..picker-upload-control-running .picker-spr-upload-retry ,.picker-upload-con=
trol-success .picker-spr-upload-retry ,.picker-photo-control-placeholder .p=
icker-spr-upload-retry ,.picker-upload-control-scheduled .picker-spr-upload=
-retry {display: none;}
..new-upload-box-error .picker-photos-error-text {position: absolute; top: 0=
px; left: 0px; right: 0px; bottom: 27px; font-weight: bold; font-size: 12px=
; background-color: rgb(238, 238, 238); border: 1px solid rgb(204, 204, 204=
); padding-top: 15px;}
..new-upload-box-error .picker-photos-error-details {position: absolute; top=
: 44px; left: 11px; right: 11px; padding: 2px; background: rgb(238, 238, 23=
8) none repeat scroll 0% 0%; font-size: 12px; font-weight: normal;}
..new-upload-box .picker-photos-upload-controls ,.new-upload-box-error .pick=
er-photos-upload-controls {background: transparent none repeat scroll 0% 0%=
; position: absolute !important; height: 20px; bottom: 0px; left: 0px; text=
-decoration: none; width: 100%;}
..picker-photo-control-preview-content {transition: opacity 250ms ease 0s;}
..picker-photo-control-preview-smartcrop-content {transition: opacity 450ms =
linear 100ms; opacity: 0; position: absolute; top: 0px;}
..picker-edit-toolbar-overlay-container .picker-spr-icon-photos-delete-white=
,.picker-edit-toolbar-overlay-container .picker-spr-icon-rotate-left-white=
,.picker-edit-toolbar-overlay-container .picker-spr-icon-rotate-right-whit=
e {display: none;}
..picker-photosuploadview-albumbar-visible .picker-albumname {position: rela=
tive;}
..picker-photosuploadview .picker-dataview {position: relative; margin: -10p=
x; overflow: visible;}
..picker-photosuploadview.picker-photosuploadview-albumbar-visible .picker-d=
ataview {margin: 10px -10px -10px;}
..picker-photosuploadview .picker-photosgrid .picker-dataview-content ,.pick=
er-photosuploadview .picker-photosgrid-edit {padding: 0px;}
..picker-photosuploadview .picker-dataview-message {display: none;}
..picker-photosuploadview-albumbar-visible .picker-dropzone ,.picker-photosu=
ploadview-albumbar-visible .picker-progress-wrapper {top: 50px;}
..picker-photosuploadview .goog-toolbar-button {cursor: pointer;}
..picker-photosuploadview .picker-photo-control-preview-content {outline: me=
dium none; cursor: default;}
..picker-photosuploadview .picker-photo-control-checked .picker-photo-contro=
l-border {border: 6px solid transparent;}
..picker-localphotosprofilephoto .picker-photo-control-border ,.picker-local=
photosprofilephoto.picker-photo-control-checked .picker-photo-control-borde=
r {border: 4px solid rgb(221, 75, 57); margin: 2px;}
..picker-photosuploadview-progress-wrapper ,.picker-photosuploadview-progres=
s-text ,.picker-photosuploadview-progress {position: absolute; top: 0px; ri=
ght: 0px; bottom: 0px; left: 0px;}
..picker-photosuploadview-progress-text {width: 70%; margin: auto;}
..picker-photosuploadview-progress {height: 9px; width: 70%; margin: auto;}
..picker-photosuploadview-progress-text {height: 41px; padding: 0px 0px 6px =
4px; font-size: 13px;}
..picker-photosuploadview-progress-wrapper .picker-progress-bar {width: 100%=
;}
..picker-photosuploadview-msgbar {position: absolute; top: 10px; width: 80%;=
left: 10%; z-index: 2200;}
..picker-photosuploadview-msgbar .jfk-butterBar-shown {height: 30px;}
..picker-photosuploadview .picker-photo-control-uploading {background: rgb(2=
43, 243, 243) none repeat scroll 0% 0%;}
..picker-photosuploadview .picker-photosgrid .picker-photo-control {padding:=
0px 0px 12px;}
..picker-photosuploadview-progress .progress-bar-horizontal ,.picker-photosu=
ploadview-actionpane .progress-bar-horizontal {height: 9px; border: 1px sol=
id rgb(153, 153, 153); margin: 2px; padding: 1px; background: rgb(255, 255,=
255) none repeat scroll 0% 0%;}
..picker-photosuploadview-progress .picker-progress-bar-spinner.progress-bar=
-horizontal ,.picker-photosuploadview-actionpane .picker-progress-bar-spinn=
er.progress-bar-horizontal {border: 0px none; background: transparent url("=
//ssl.gstatic.com/docs/picker/images/loading-v1.gif") no-repeat scroll 0px =
0px; height: 16px; width: 16px; padding-left: 7px; padding-top: 2px; margin=
: auto auto 5px; opacity: 0.5;}
..picker-photosuploadview-progress .progress-bar-thumb ,.picker-photosupload=
view-actionpane .progress-bar-thumb {height: 100%; background-repeat: repea=
t-x; background-size: 20px 10px; background-color: rgb(77, 144, 254); backg=
round-image: linear-gradient(315deg, transparent, transparent 33%, rgba(0, =
0, 0, 0.12) 33%, rgba(0, 0, 0, 0.12) 66%, transparent 66%, transparent); ba=
ckground-attachment: scroll; animation-duration: 0.8s; animation-iteration-=
count: infinite; animation-timing-function: linear;}
..picker-upload-photo-album-bar {position: absolute; top: 20px; left: 20px; =
height: 30px; padding: 0px;}
..picker-photo-upload-dropzone {position: absolute; top: 50px; left: 0px; ri=
ght: 0px; bottom: 0px;}
..picker-youtube-banner-recommended-size-messages {position: absolute; botto=
m: 20px; right: 20px; padding: 20px; color: rgb(204, 204, 204); text-align:=
right;}
..picker-youtube-banner-channel-art-link {text-decoration: none;}
..picker-docsuploadview-drive-promo {background-color: rgb(229, 229, 229); c=
ursor: default; height: 125px; left: 0px; overflow: hidden; position: absol=
ute; top: 0px; width: 100%; z-index: 1; transition: height 0.218s ease 0s;}
..picker-docsuploadview-with-drive-promo .picker-docsuploadview-drive-promo =
{border-bottom: 1px solid rgb(229, 229, 229);}
..picker-docsuploadview-drive-promo-text {padding-right: 40px; position: abs=
olute; top: 0px;}
..picker-docsuploadview-drive-promo-title {font-size: 18px; padding: 15px 5p=
x 5px 0px; white-space: nowrap;}
..picker-docsuploadview-drive-promo-paragraph {color: rgb(68, 68, 68); font-=
size: 13px; max-width: 650px;}
..picker-docsuploadview-drive-promo-dismiss {padding-top: 5px;}
..picker-docsuploadview-drive-promo-learnmore ,.picker-docsuploadview-drive-=
promo-up-to-link {color: rgb(17, 85, 204); cursor: pointer; text-decoration=
: none; white-space: nowrap;}
..picker-docsuploadview-drive-promo-learnmore.picker-hover ,.picker-docsuplo=
adview-drive-promo-up-to-link.picker-hover {text-decoration: underline;}
..picker-docsuploadview-drive-promo-img {margin: 15px 30px;}
..picker-docsuploadview-drive-promo-close {padding: 10px; position: absolute=
; right: 0px; top: 0px;}
..picker-folderbar {border-bottom: 1px solid rgb(221, 221, 221); height: 49p=
x; position: absolute; top: 0px; left: 0px; width: 100%;}
..picker-folderbar-menu {position: absolute; top: 10px; left: 10px;}
..picker-folderbar-menu .jfk-bubble-content-id {width: 300px;}
..picker-du-folderpopup-buttons .jfk-button {margin-top: 13px;}
..picker-docsuploadview.picker-upload {overflow: hidden; padding: 0px;}
..picker-docsuploadview .picker-dataview ,.picker-docsuploadview .picker-dro=
pzone {top: 50px;}
..picker-docsuploadview-with-drive-promo .picker-dataview ,.picker-docsuploa=
dview-with-drive-promo .picker-dropzone {top: 120px;}
..picker-doc-upload-control-cell {border-bottom: 1px solid rgb(221, 221, 221=
);}
..picker-doc-upload-control-row {height: 50px;}
..picker-doc-upload-control-icon-cell {width: 36px;}
..picker-doc-upload-control-icon {display: block; margin-top: 4px; margin-le=
ft: 10px; padding-top: 3px; width: 16px; height: 16px; background-repeat: n=
o-repeat;}
..picker-doc-upload-control-text ,.picker-doc-upload-control-retry-text ,.pi=
cker-docs-upload-error-dialog {font-size: 13px;}
..picker-doc-upload-control-retry-text {color: rgb(17, 85, 204);}
..picker-doc-upload-control-retry-text .jfk-button {cursor: pointer;}
..picker-doc-upload-control-retry-text .jfk-button-hover {text-decoration: u=
nderline;}
..picker-docsuploadview-uploadmore-button {display: inline-block; margin: 16=
px 20px;}
..picker-doc-upload-control-error-message {color: rgb(204, 51, 51);}
..picker-doc-upload-control-cell .picker-spr-upload-error {display: inline-b=
lock; margin-top: 5px; vertical-align: text-bottom;}
..picker-doc-upload-control-error-message {margin-left: 8px;}
..picker-docs-upload-error-dialog {width: 300px; z-index: 2112;}
..picker-docs-upload-error-dialog-bg {z-index: 2111;}
..picker-docs-upload-error-dialog-button::-moz-focus-inner {border: 0px none=
;}
..picker-doc-upload-control-progress {text-align: right; width: 130px;}
..picker-doc-upload-control-progress .progress-bar-horizontal {height: 9px; =
border: 1px solid rgb(153, 153, 153); margin: 2px; padding: 1px; background=
: rgb(255, 255, 255) none repeat scroll 0% 0%;}
..picker-doc-upload-control-progress .progress-bar-thumb {height: 100%; back=
ground-repeat: repeat-x; background-size: 20px 10px; background-color: rgb(=
77, 144, 254); background-image: linear-gradient(315deg, transparent, trans=
parent 33%, rgba(0, 0, 0, 0.12) 33%, rgba(0, 0, 0, 0.12) 66%, transparent 6=
6%, transparent); background-attachment: scroll; animation-duration: 0.8s; =
animation-iteration-count: infinite; animation-timing-function: linear;}
..picker-doc-upload-control-cancel {width: 45px;}
..picker-doc-upload-control-cancel-x .jfk-button {cursor: pointer; height: a=
uto; margin: 0px 17px; width: auto;}
..picker-doc-upload-control-size {margin-left: 15px; font-size: 12px; color:=
rgb(102, 102, 102);}
..picker-doc-upload-control-name ,.picker-doc-upload-control-size {cursor: d=
efault;}
..picker-doc-upload-control-row.picker-upload-control-scheduled .picker-spr-=
photo-upload-cancel {display: none;}
..picker-doc-upload-control-complete {color: rgb(204, 204, 204);}
..picker-doc-upload-more {margin-left: 10px;}
..picker-doc-upload-control-row.picker-upload-control-error .picker-spr-phot=
o-upload-cancel {position: static; opacity: 1;}
..picker-upload-control-error .progress-bar-horizontal {display: none;}
..picker-drag-indicator-top ,.picker-drag-indicator-left ,.picker-drag-indic=
ator-right ,.picker-drag-indicator-bottom {position: absolute; z-index: 220=
0; background-color: rgb(77, 144, 254);}
..picker-drag-indicator-top ,.picker-drag-indicator-bottom {height: 3px; wid=
th: 100%; left: 0px;}
..picker-drag-indicator-left ,.picker-drag-indicator-right {height: 100%; wi=
dth: 3px; top: 0px;}
..picker-drag-indicator-top {top: 0px;}
..picker-drag-indicator-left {left: 0px;}
..picker-drag-indicator-right {right: 0px;}
..picker-drag-indicator-bottom {bottom: 0px;}
..picker-drag-tooltip {position: absolute; display: table; top: 50%; left: 5=
0%; width: 350px; margin-left: -175px; height: 40px; margin-top: -20px; bac=
kground-color: rgb(77, 144, 254); color: rgb(255, 255, 255); font-weight: b=
old; padding: 10px; font-size: 13px; z-index: 2200; text-align: center; box=
-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2); border-radius: 2px;}
..picker-drag-tooltip-inner {display: table-cell; vertical-align: middle;}
..picker-dropzone ,.picker-dropzone-target ,.picker-dropzone-targetcontent ,=
..picker-dropzone-targetcontentwrapper {position: absolute; top: 0px; right:=
0px; bottom: 0px; left: 0px;}
..picker-drag-drop-supported .picker-dropzone-targetpointer {cursor: pointer=
;}
..picker-dropzone.goog-control-focused {border: 1px solid rgb(221, 221, 221)=
;}
..picker-drag-drop-supported .picker-dropzone-text ,.picker-drag-drop-suppor=
ted .picker-dropzone-alttext {display: block;}
..picker-dropzone-or {color: rgb(170, 170, 170); font-size: 14px; padding: 0=
px 0px 16px;}
..picker-dropzone-upload-button {padding: 5px 12px;}
..picker-dropzone-text ,.picker-dropzone-alttext ,.picker-spr-rio-upload-big=
{display: none;}
..picker-dropzone.picker-drag-drop-supported .picker-spr-rio-upload-big {opa=
city: 0.4; display: inline-block;}
..picker-dropzone .picker-dropzone-target {border-width: 3px;}
..picker-drag-active .picker-dropzone-target {background: rgb(245, 245, 245)=
none repeat scroll 0% 0%; border-color: rgb(77, 144, 254);}
..picker-dropzone-targetcontent {text-align: center;}
..picker-dropzone-targetcontentwrapper {margin: auto; height: 30px;}
..picker-dropzone-largetargetcontentwrapper {height: 200px;}
..picker-dropzone-text {color: rgb(170, 170, 170); font-size: 20pt; padding:=
0px 10px;}
..picker-dropzone-alttext {color: rgb(204, 204, 204); font-size: 13px; font-=
weight: bold; padding: 15px 0px 5px;}
..picker-dropzone-targetcontent .jfk-button {cursor: pointer; margin-right: =
0px;}
..picker-upload.picker-inline-upload {border-bottom: 1px solid rgb(229, 229,=
229); height: 119px; position: relative;}
..picker-inline-upload-icon {display: inline-block; left: 20px; opacity: 0.4=
; position: absolute; top: 15px;}
..picker-drag-drop-supported.picker-inline-upload-container {visibility: vis=
ible;}
..picker-inline-upload-container {border: 2px dashed rgb(221, 221, 221); bor=
der-radius: 2px; bottom: 20px; left: 20px; position: absolute; right: 30px;=
top: 20px; visibility: hidden;}
..picker-drag-active .picker-inline-upload-container {border: 2px dashed rgb=
(77, 144, 254);}
..picker-inline-upload-dropzone {height: 100%;}
..picker-inline-upload-dropzone-text {bottom: 26px; color: rgb(170, 170, 170=
); display: inline-block; font-size: 20px; left: 90px; padding-right: 5px; =
position: absolute;}
..picker-drag-active .picker-inline-upload-dropzone-text {color: rgb(57, 137=
, 212);}
..picker-inline-upload-button-container {bottom: 20px; position: absolute; r=
ight: 10px;}
..picker-upload-button-visible .picker-inline-upload-button {visibility: vis=
ible;}
..picker-inline-upload-button-pre-text {color: rgb(170, 170, 170); display: =
inline-block; font-size: 20px; padding-right: 10px;}
..picker-inline-upload .picker-draguploadview-progress-parent {text-align: c=
enter;}
..picker-inline-upload-actionpane-button {float: right; margin-right: 31px;}
..picker-main-container .goog-tree-hide-root {display: none;}
..picker-main-container .goog-tree-item {-moz-user-select: none;}
..picker-main-container .goog-tree-item .selected {-moz-user-select: none; v=
ertical-align: middle; cursor: default; white-space: nowrap; background-col=
or: rgb(77, 144, 254); color: rgb(255, 255, 255); font-weight: bold;}
..picker-main-container .goog-tree-row {padding: 2px 0px 3px 8px; vertical-a=
lign: middle; cursor: default; white-space: nowrap; height: 15px;}
..picker-main-container .goog-tree-item-label {overflow: hidden; white-space=
: nowrap; empty-cells: show; font-size: 13px; font-weight: normal; font-fam=
ily: Roboto,Arial,sans-serif; width: 95%;}
..picker-main-container .goog-tree-expand-icon {background-repeat: no-repeat=
; height: 12px; width: 12px; cursor: pointer; vertical-align: middle;}
..picker-main-container .goog-tree-expand-icon-minus ,.picker-main-container=
.goog-tree-expand-icon-lminus ,.picker-main-container .goog-tree-expand-ic=
on-tminus {background-image: url("//ssl.gstatic.com/docs/picker/images/icon=
s-v9.png"); background-position: -402px center;}
..picker-main-container .goog-tree-expand-icon-plus ,.picker-main-container =
..goog-tree-expand-icon-tplus ,.picker-main-container .goog-tree-expand-icon=
-lplus {background-image: url("//ssl.gstatic.com/docs/picker/images/icons-v=
9.png"); background-position: -384px center;}
..picker-main-container .goog-tree-expand-icon-blank {background-position: c=
enter center; background-repeat: no-repeat; height: 8px;}
..picker-content .goog-tree-root {min-height: 200px; max-height: 300px; over=
flow: auto; border: 1px solid rgb(217, 217, 217);}
..picker-treedoclistview-node-name {font-size: 13px; padding: 2px 3px 3px; f=
ont-weight: normal; vertical-align: middle;}
..picker-treedoclistview-node-message {color: rgb(102, 102, 102); padding-le=
ft: 4px;}
..picker-treedoclistview-node-error {color: rgb(204, 51, 51); padding-left: =
4px;}
..picker-upload {overflow-y: auto; padding: 20px;}
..picker-upload .picker-dataview ,.picker-upload .picker-dropzone {transitio=
n: top 0.218s ease 0s;}
* html .picker-upload ,body .picker-upload {height: 100%; width: 100%;}
..apps-upload-sprite {background-image: url("//ssl.gstatic.com/docs/picker/i=
mages/apps_upload_icons-v1.gif") !important;}
..picker-upload-container.picker-collapsed .picker-upload-button ,.picker-up=
load-container.picker-collapsed .picker-upload-header ,.picker-upload-conta=
iner.picker-collapsed .picker-upload-text {display: none;}
..picker-upload-container.picker-collapsed .upload-uploader-flash-content {p=
osition: absolute; top: -1000px !important; left: -1000px !important;}
..picker-upload-header {font-size: 13px; font-weight: bold; color: rgb(68, 6=
8, 68); margin-bottom: 4px;}
..upload-file-col {padding: 4px;}
..upload-state-default .upload-file-col {padding: 2px;}
..upload-file {border-bottom: 0px none;}
..upload-file .goog-flat-button {color: rgb(153, 153, 153); text-decoration:=
underline; cursor: pointer; margin-right: 5px;}
..upload-file-progress {display: none;}
..upload-file-status {width: 16px; background-position: 20px 20px; backgroun=
d-repeat: no-repeat;}
..upload-state-start .upload-file-status ,.upload-state-upload .upload-file-=
status ,.upload-state-backoff .upload-file-status {width: 16px; height: 16p=
x; background-position: center top;}
..upload-state-complete .upload-file-status {width: 16px; height: 13px; back=
ground-position: center -16px;}
..upload-state-error .upload-file-status {width: 16px; height: 13px; backgro=
und-position: center -31px;}
..upload-state-default .progress-bar-horizontal ,.upload-state-inqueue .prog=
ress-bar-horizontal ,.upload-state-error .progress-bar-horizontal ,.upload-=
state-complete .progress-bar-horizontal ,.upload-state-cancel .upload-file-=
size ,.upload-state-cancel .upload-file-progress ,.upload-state-cancel .upl=
oad-file-actions ,.upload-state-error .upload-file-size {display: none;}
..upload-file-size {text-align: right;}
..upload-file-progress {width: 88px;}
..upload-file-message {font-size: 11px; padding-left: 0.5em; color: rgb(153,=
153, 153);}
..upload-message .progress-bar-horizontal {display: none;}
..upload-file-actions {text-align: right;}
..upload-file-hidden {visibility: hidden; cursor: auto;}
..picker-upload-text {color: rgb(102, 102, 102); font-size: 10px; margin: 5p=
x 0px 4px;}
..picker-upload-text-a {color: rgb(153, 153, 153);}
..upload-uploader {font-size: 13px;}
..upload-uploader-table {width: auto;}
..picker-upload.picker-videoupload {padding: 0px;}
..picker-videoupload .upload-uploader-table {width: 100%;}
..upload-uploader-file-list {width: auto;}
..upload-uploader-hidden {display: none !important;}
..picker-upload-input-flash {font-size: 11px;}
..picker-upload-input-noflash {padding: 8px; font-size: 11px;}
..picker-upload-input-flash {border-top: 1px solid rgb(221, 221, 221); borde=
r-left: 1px solid rgb(221, 221, 221); background-color: rgb(245, 245, 245);=
padding: 4px 11px 2px; margin: 8px; text-align: center; vertical-align: mi=
ddle;}
..picker-upload-input-flash .picker-spr-upload-arrow {margin-right: 5px;}
..picker-upload-input-noflash .upload-uploader-input {font-size: 9px;}
..picker-docsuploadview .picker-upload-header {font-weight: normal; color: r=
gb(0, 0, 0);}
..picker-docsuploadview-title {font-weight: bold; color: rgb(68, 68, 68); ma=
rgin-bottom: 10px; font-size: 13px;}
..picker-doplaruploadview-uploading ,.picker-geouploadview-uploading {font-s=
ize: 13px; margin: 10px;}
..picker-doplaruploadview-error ,.picker-geouploadview-error {font-size: 13p=
x; margin: 10px; color: rgb(204, 51, 51);}
..picker-docsuploadview-checkbox {font-size: 12px; margin: 15px 0px 0px -4px=
;}
..picker-docsuploadview-checkbox-input {margin-right: 7px;}
..picker-docsuploadview-move-to-folder {font-size: 13px; margin: 0px 0px 10p=
x 27px;}
..picker-docsuploadview-folder-header {margin-top: 10px;}
..picker-docsuploadview-icon {background-image: url("//ssl.gstatic.com/docs/=
picker/images/folder_sprite-v1.gif"); background-position: -24px 0px; heigh=
t: 16px; vertical-align: middle; width: 16px;}
..picker-du-folder-icon {height: 11px; vertical-align: middle; width: 11px; =
margin: -1px 0px 0px 5px;}
..picker-docsuploadview-icon {margin-bottom: 3px;}
..picker-docsuploadview-spacing {width: 5px;}
..picker-du-folders-popup {border: 1px solid rgb(221, 221, 221); padding: 13=
px; font-size: 12px; width: 300px; color: rgb(0, 0, 0); background-color: r=
gb(255, 255, 255); position: absolute; z-index: 20; margin: -3px 0px 0px 2p=
x;}
..picker-docsuploadview-dropdown {background-image: url("//ssl.gstatic.com/d=
ocs/picker/images/folder_sprite-v1.gif"); background-position: -40px 0px; w=
idth: 12px; height: 16px; vertical-align: middle; margin: 0px -2px 3px 3px;=
}
..picker-docsuploadview .goog-tree-root {height: 125px; overflow-x: hidden; =
overflow-y: auto;}
..picker-videos-listview .picker-dataview-content {padding: 15px;}
..picker-video-control {border: 5px solid transparent; cursor: pointer; marg=
in: 5px; padding: 2px;}
..picker-video-control-checked {border: 5px solid rgb(77, 144, 254); backgro=
und: rgb(245, 245, 245) none repeat scroll 0% 0%;}
..picker-videoupload .picker-video-control-checked {border: 5px solid rgb(25=
5, 255, 255); background: rgb(255, 255, 255) none repeat scroll 0% 0%;}
..picker-video-control-inner {overflow: hidden;}
..picker-video-control-preview {padding: 1px; border: 1px solid rgb(153, 153=
, 153);}
..picker-video-control-thumb {z-index: 3; width: 96px; height: 72px; cursor:=
pointer;}
..picker-video-control-thumb-img {width: 96px; height: 72px; cursor: pointer=
;}
..picker-photos-upload .picker-video-control-thumb ,.picker-photos-upload .p=
icker-video-control-thumb-img {width: 240px; height: 182px;}
..picker-video-control-previewing .picker-video-control-thumb {display: none=
;}
..picker-video-control-star-mask {width: 55px; height: 11px; margin-right: 7=
px; overflow: hidden; vertical-align: middle; line-height: 9pt;}
..picker-video-control-star-mask .picker-spr-video-stars {position: relative=
;}
..picker-video-control .picker-spr-video-play-overlay {position: relative; z=
-index: 2; top: -50%; left: 50%; margin-left: -18px; margin-top: -20px;}
..picker-video-control-metadata {margin-left: 4px;}
..picker-video-control-previewing .picker-video-control-metadata {padding-to=
p: 3px;}
..picker-video-control-title {font-size: 13px; font-weight: bold; color: rgb=
(80, 80, 80); white-space: nowrap; text-overflow: ellipsis; height: 1.3em; =
overflow: hidden;}
..picker-video-control-previewing .picker-video-control-title {font-size: 12=
px;}
..picker-video-control-content {font-size: 12px; height: 3em; line-height: 1=
..5em; margin-bottom: -2px; overflow: hidden; overflow-wrap: break-word;}
..picker-video-control-time {color: rgb(133, 133, 133); font-size: 12px; ver=
tical-align: middle;}
..picker-video-control-previewing .picker-video-control-time {font-size: 11p=
x;}
..picker-video-control-publisher {color: rgb(0, 128, 0); font-size: 12px;}
..picker-video-control-previewing .picker-video-control-publisher {font-size=
: 11px;}
..picker-spr-youtube {margin: 0px 13px 6px 0px;}
..picker-videos-grid .picker-dataview-content {padding-left: 20px;}
..picker-videos-grid .picker-video-grid-control-border {opacity: 0; transiti=
on: opacity 0.218s ease 0s; padding: 5px; position: relative;}
..picker-video-grid-control-checked .picker-video-grid-control-border {borde=
r: 5px solid rgb(66, 133, 244); padding: 0px;}
..picker-video-grid-control-focused .picker-video-grid-control-border {outli=
ne: 1px solid rgb(66, 133, 244);}
..picker-videos-grid .picker-video-grid-control-wrapper {cursor: pointer; di=
splay: inline-block; height: 140px; outline: medium none; text-align: cente=
r; vertical-align: middle; width: 140px;}
..picker-videos-grid .picker-video-grid-control-thumbnail {max-height: 100%;=
max-width: 100%;}
..picker-videos-grid .picker-video-grid-control-hover .picker-video-grid-con=
trol-check {opacity: 0.7;}
..picker-videos-grid .picker-video-grid-control-checked .picker-video-grid-c=
ontrol-check {opacity: 1; left: 5px; top: 5px;}
..picker-videos-grid .picker-video-grid-control-check {opacity: 0; transitio=
n: opacity 0.218s ease 0s; left: 10px; position: absolute; top: 10px; z-ind=
ex: 2104;}
..picker-videos-grid .picker-spr-rio-checkmark-selected {animation: 0.3s lin=
ear 0s normal none 1 running pickerPhotosSelectionOverlayCheckmarkSelectedT=
ransition;}
..picker-video-control-disabled ,.picker-video-grid-control-disabled ,.picke=
r-video-grid-control-unselectable {opacity: 0.3;}
..picker-video-grid-control-unselectable .picker-video-grid-control-check {d=
isplay: none;}
..picker-video-duration-overlay {background: rgb(0, 0, 0) none repeat scroll=
0% 0%; bottom: 5px; color: rgb(255, 255, 255); font-size: 11px; font-weigh=
t: bold; height: 14px; line-height: 14px; opacity: 0.75; padding: 0px 4px; =
position: absolute; right: 5px; vertical-align: top; z-index: 2104;}
..picker-videos-grid .picker-video-grid-control-checked .picker-video-durati=
on-overlay {opacity: 1; bottom: 0px; right: 0px;}
..picker-video-grid-control-title {display: block; font-size: 13px; position=
: relative; height: 13px; line-height: 13px; margin: 2px 0px; overflow: hid=
den; text-align: center; text-overflow: ellipsis; white-space: nowrap;}
..picker-video-grid-control-timestamp {color: rgb(153, 153, 153); display: b=
lock; position: relative; font-size: 11px; height: 11px; line-height: 11px;=
margin: 2px 0px; text-align: center;}
..picker-videos-grid .picker-video-grid-control-preview {display: inline-blo=
ck; margin: 10px; outline: medium none;}
..picker-videos-grid .picker-spr-video-play-overlay {opacity: 0.8; left: 0px=
; top: 0px;}
..picker-video-grid-control-hover .picker-spr-video-play-overlay {opacity: 1=
;}
..picker-video-grid-control-checked .picker-spr-video-play-overlay {opacity:=
1; left: -5px; top: -5px;}
..upload-uploader .picker-photos-upload .progress-bar-horizontal {width: aut=
o; height: 5px; border: medium none; margin: 3px; padding: 0px; background:=
transparent none repeat scroll 0% 0%;}
..upload-uploader .picker-photos-upload .progress-bar-thumb {background: rgb=
(136, 136, 136) none repeat scroll 0% 0%; height: 100%;}
..picker-photos-upload-progress {position: absolute !important; bottom: 3px;=
left: 0px; width: 100%;}
..picker-photos-upload-controls {position: absolute !important; bottom: 3px;=
left: 0px; width: 100%; background: rgb(215, 0, 0) none repeat scroll 0% 0=
%; color: rgb(255, 255, 255);}
..picker-photos-upload-actions {text-decoration: underline; cursor: pointer;=
margin: 5px;}
..picker-photos-upload-message {margin: 5px;}
..picker-videos-upload .picker-video-control {cursor: auto;}
..picker-photos-upload-filename ,.picker-videos-upload-loadingthumb {color: =
rgb(153, 153, 153); background: transparent url("//ssl.gstatic.com/docs/pic=
ker/images/placeholder-v1.gif") repeat scroll 0% 0%;}
..picker-videos-upload-error .picker-videos-upload-loadingthumb {background:=
rgb(215, 0, 0) none repeat scroll 0% 0%;}
..picker-videos-upload-loadingthumb {width: 240px; height: 180px;}
..picker-photos-upload-filename {padding-top: 5px; height: 115px; width: 160=
px;}
..picker-videos-upload-metadata {vertical-align: top; width: 100%;}
..picker-videos-upload-processing {font-size: 12px; color: rgb(170, 170, 170=
);}
..picker-videos-upload-error {font-size: 12px; color: rgb(204, 51, 51);}
..upload-state-complete .picker-photos-upload-filename {background-color: rg=
b(245, 245, 245);}
..picker-photos-upload-rotating ,.upload-state-complete .picker-photos-uploa=
d-filename .picker-photos-upload-loading-icon ,.upload-state-complete .pick=
er-videos-upload-loadingthumb .picker-videos-upload-loading-icon {position:=
absolute !important; top: 50%; left: 50%; background-image: url("//ssl.gst=
atic.com/docs/picker/images/loading-32-v1.gif") !important; height: 32px; w=
idth: 32px; margin: -16px 0px 0px -16px; opacity: 0.3;}
..picker-videos-upload-error.upload-state-complete .picker-videos-upload-loa=
dingthumb .picker-videos-upload-loading-icon {display: none;}
..picker-videos-upload-loadingthumb .picker-videos-upload-loading-icon {posi=
tion: relative !important;}
..upload-state-default .picker-photos-upload-controls ,.upload-state-start .=
picker-photos-upload-controls ,.upload-state-cancel .picker-photos-upload-c=
ontrols ,.upload-state-complete .picker-photos-upload-controls ,.upload-sta=
te-upload .picker-photos-upload-controls ,.upload-state-inqueue .picker-pho=
tos-upload-controls {display: none;}
..picker-videos-upload-control {margin: 2px; border: 6px solid rgb(255, 255,=
255);}
..picker-videos-upload-preview {height: 182px; overflow: hidden; padding: 1p=
x; margin-right: 4px; border: 1px solid rgb(153, 153, 153); position: relat=
ive;}
..picker-photos-upload-preview {opacity: 0.8; overflow: hidden;}
..picker-photos-upload-preview .uploader-thumb-img {border: 1px solid rgb(10=
2, 102, 102); position: relative;}
..picker-photos-upload-description {color: rgb(153, 153, 153); width: 100%; =
height: 1.2em; overflow: hidden; text-align: center; text-overflow: ellipsi=
s; white-space: nowrap; position: absolute;}
..picker-videoupload .upload-state-complete .picker-photos-upload-preview .u=
ploader-thumb-img {border: 1px solid rgb(192, 192, 192); position: relative=
;}
..picker-videoupload .upload-state-complete .picker-photos-upload-preview {o=
pacity: 1; overflow: visible;}
..picker-videoupload .upload-state-default .progress-bar-horizontal ,.picker=
-videoupload .upload-state-inqueue .progress-bar-horizontal ,.picker-videou=
pload .upload-state-error .progress-bar-horizontal ,.picker-videoupload .up=
load-state-cancel .progress-bar-horizontal ,.picker-videoupload .upload-sta=
te-complete .progress-bar-horizontal {display: none;}
..photo-zoomview {position: relative; z-index: 2105;}
:first-child + html .photo-zoomview {background-color: rgb(255, 255, 255); =
padding-top: 3px;}
..picker-zoomview-image {background: rgb(255, 255, 255) none repeat scroll 0=
% 0%; margin: 0px 3px; padding-top: 22px;}
..photo-loading .photo-loading-indicator {display: block; font-size: 20pt; f=
ont-weight: bold; font-family: Roboto,Arial,sans-serif; text-align: center;=
width: 100%; position: absolute; top: 0px; margin: 1em;}
..scaledimage-onscreenpane {display: inline-block; position: relative;}
..upload-uploader-file-grid {margin: 10px 5px 0px;}
..picker-photos-welcome {bottom: 10px;}
..picker-photos-welcome-text {font-size: 13px; padding-left: 15px;}
..picker-photos-welcome-section {padding: 15px 15px 0px;}
..picker-photos-welcome-line {border-bottom: 1px solid rgb(221, 221, 221); p=
adding-top: 20px;}
..picker-photos-welcome-link {color: rgb(153, 153, 153);}
..picker-photos-welcome-icon-top {vertical-align: top;}
..picker-photos-welcome-desc {margin: 10px 0px 20px; font-size: 12px;}
..picker-photos-welcome-source-link {font-weight: bold; color: rgb(17, 85, 2=
04); cursor: pointer;}
..picker-photos-welcome-title {font-weight: bold; color: rgb(0, 0, 0);}
..picker-main-container .picker-photos-welcome .goog-imageless-button {font-=
weight: bold; color: rgb(34, 34, 34);}
..picker-html5-video {background: rgb(0, 0, 0) none repeat scroll 0% 0%;}
..picker-video-upload-processing ,.video-upload-box .picker-photo-control-lo=
ading {height: 270px; width: 360px; background-color: rgb(238, 238, 238);}
..picker-videosgrid .picker-photo-control {margin-top: 20px; margin-left: 20=
px;}
..picker-video-processing-text {position: absolute; bottom: 5px; left: 0px; =
right: 0px; height: 20px; text-align: center; z-index: 2109; opacity: 0.8; =
color: rgb(153, 153, 153); font-size: 12px;}
..picker-video-upload-spinner {z-index: 2109; background-image: url("//ssl.g=
static.com/docs/picker/images/loading-v1.gif"); height: 16px; width: 16px; =
opacity: 0.5; position: absolute; top: 50%; margin-top: -20px; left: 50%; m=
argin-left: -8px;}
..video-upload-box .picker-upload-filename-inner ,.video-upload-box-error .p=
icker-upload-filename-inner ,.picker-video-upload-filename {position: absol=
ute; top: 50%; margin-top: 3px; text-align: center; padding-top: 0px; z-ind=
ex: 2104; height: 14px; width: 120px; text-overflow: ellipsis; white-space:=
nowrap; overflow: hidden; font-size: 12px; color: rgb(153, 153, 153);}
..video-upload-box .picker-spr-video-upload-icon {opacity: 0.5; position: ab=
solute; top: 50%; margin-top: -20px; left: 50%; margin-left: -11px;}
..video-upload-box .picker-photos-upload-filename {background-color: rgb(238=
, 238, 238); background-image: none;}
..video-upload-box .picker-photos-upload-controls {display: none;}
..picker-videosgrid .picker-photo-control-focused ,.picker-videosgrid .picke=
r-photo-control-focused.picker-photo-control ,.picker-videosgrid .picker-ph=
oto-control ,.picker-videosgrid .picker-photo-control.picker-photo-control-=
focused {outline: medium none; border: medium none;}
..picker-remove-video-single {position: relative; margin-left: 600px; margin=
-top: 10px; cursor: pointer;}
..video-upload-box .progress-bar-horizontal {right: 0px; bottom: 0px; left: =
0px; height: 8px; border: 1px solid rgb(153, 153, 153); margin: 0px 8px 8px=
; padding: 1px; background: rgb(255, 255, 255) none repeat scroll 0% 0%; z-=
index: 2109;}
..video-upload-box .progress-bar-thumb {height: 100%; background-repeat: rep=
eat-x; background-size: 20px 10px; background-color: rgb(204, 204, 204); ba=
ckground-attachment: scroll; background-image: linear-gradient(315deg, tran=
sparent, transparent 33%, rgba(0, 0, 0, 0.12) 33%, rgba(0, 0, 0, 0.12) 66%,=
transparent 66%, transparent); animation-duration: 0.8s; animation-iterati=
on-count: infinite; animation-timing-function: linear;}
..video-upload-box .picker-spr-close-box-small-off {position: absolute; opac=
ity: 0.5; cursor: pointer; z-index: 2109; top: 5px; right: 5px;}
..video-upload-box .picker-spr-upload-error {position: absolute; top: 50%; m=
argin-top: -20px; left: 50%; margin-left: -8px;}
..picker-videosgrid .picker-edit-toolbar {display: none;}
..picker-videomsgbar.picker-msgbar.jfk-butterBar {width: 180px; z-index: 220=
0 !important;}
..picker-videosgrid .picker-photo-control-preview.picker-video-player {z-ind=
ex: 2103;}
..picker-videosgrid .new-upload-box-error .picker-photos-error-text {bottom:=
0px;}
..picker-html5-player-wrapper ,.picker-video-thumbnail {position: absolute; =
top: 0px; bottom: 0px; left: 0px; right: 0px;}
..picker-ribbon-wrapper {overflow: hidden; position: absolute; top: -3px; le=
ft: -3px; width: 85px; height: 88px;}
..picker-ribbon {position: relative; padding: 6px 0px; left: -24px; top: 24p=
x; width: 120px; font-size: 10px; font-weight: bold; color: rgb(255, 255, 2=
55); text-align: center; text-shadow: 0px 2px 0px rgba(0, 0, 0, 0.5); text-=
transform: uppercase; opacity: 0.9; transform: rotate(-45deg); background-c=
olor: rgb(170, 0, 0); background-image: -moz-linear-gradient(center top , r=
gb(255, 0, 0), rgb(170, 0, 0)); box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);=
}
..goog-inline-block {position: relative; display: inline-block;}
* html .goog-inline-block ,:first-child + html .goog-inline-block ,body .go=
og-inline-block {display: inline;}
..jfk-button {border-radius: 2px; cursor: default; font-size: 11px; font-wei=
ght: bold; text-align: center; white-space: nowrap; margin-right: 16px; hei=
ght: 27px; line-height: 27px; min-width: 54px; outline: 0px none; padding: =
0px 8px;}
..jfk-button-hover {box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1);}
..jfk-button-selected {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;}
..jfk-button .jfk-button-img {margin-top: -3px; vertical-align: middle;}
..jfk-button-label {margin-left: 5px;}
..jfk-button-narrow {min-width: 34px; padding: 0px;}
..jfk-button-collapse-left ,.jfk-button-collapse-right {z-index: 1;}
..jfk-button-collapse-left.jfk-button-disabled {z-index: 0;}
..jfk-button-checked.jfk-button-collapse-left ,.jfk-button-checked.jfk-butto=
n-collapse-right {z-index: 2;}
..jfk-button-collapse-left:focus ,.jfk-button-collapse-right:focus ,.jfk-but=
ton-hover.jfk-button-collapse-left ,.jfk-button-hover.jfk-button-collapse-r=
ight {z-index: 3;}
..jfk-button-collapse-left {margin-left: -1px; border-bottom-left-radius: 0p=
x; border-top-left-radius: 0px;}
..jfk-button-collapse-right {margin-right: 0px; border-top-right-radius: 0px=
; border-bottom-right-radius: 0px;}
..jfk-button.jfk-button-disabled:active {box-shadow: none;}
..jfk-button-action {box-shadow: none; background-color: rgb(77, 144, 254); =
background-image: -moz-linear-gradient(center top , rgb(77, 144, 254), rgb(=
71, 135, 237)); border: 1px solid rgb(48, 121, 237); color: rgb(255, 255, 2=
55);}
..jfk-button-action.jfk-button-hover {box-shadow: none; background-color: rg=
b(53, 122, 232); background-image: -moz-linear-gradient(center top , rgb(77=
, 144, 254), rgb(53, 122, 232)); border: 1px solid rgb(47, 91, 183);}
..jfk-button-action:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) in=
set; border: 1px solid rgba(0, 0, 0, 0); outline: 0px none rgba(0, 0, 0, 0)=
;}
..jfk-button-action.jfk-button-clear-outline {box-shadow: none; outline: med=
ium none;}
..jfk-button-action:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset=
; background: rgb(53, 122, 232) none repeat scroll 0% 0%; border: 1px solid=
rgb(47, 91, 183);}
..jfk-button-action.jfk-button-disabled {background: rgb(77, 144, 254) none =
repeat scroll 0% 0%; opacity: 0.5;}
..jfk-button-contrast {box-shadow: none; background-color: rgb(245, 245, 245=
); background-image: -moz-linear-gradient(center top , rgb(245, 245, 245), =
rgb(241, 241, 241)); color: rgb(68, 68, 68); border: 1px solid rgba(0, 0, 0=
, 0.1);}
..jfk-button-contrast.jfk-button-hover ,.jfk-button-contrast.jfk-button-clea=
r-outline.jfk-button-hover {box-shadow: none; background-color: rgb(248, 24=
8, 248); background-image: -moz-linear-gradient(center top , rgb(248, 248, =
248), rgb(241, 241, 241)); border: 1px solid rgb(198, 198, 198); color: rgb=
(51, 51, 51);}
..jfk-button-contrast:active ,.jfk-button-contrast.jfk-button-hover:active {=
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset; background: rgb(248, 248,=
248) none repeat scroll 0% 0%;}
..jfk-button-contrast.jfk-button-selected ,.jfk-button-contrast.jfk-button-c=
lear-outline.jfk-button-selected {background-color: rgb(238, 238, 238); bac=
kground-image: -moz-linear-gradient(center top , rgb(248, 248, 248), rgb(24=
1, 241, 241)); border: 1px solid rgb(204, 204, 204); color: rgb(51, 51, 51)=
;}
..jfk-button-contrast.jfk-button-checked ,.jfk-button-contrast.jfk-button-cl=
ear-outline.jfk-button-checked {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) =
inset; background-color: rgb(238, 238, 238); background-image: -moz-linear-=
gradient(center top , rgb(238, 238, 238), rgb(224, 224, 224)); border: 1px =
solid rgb(204, 204, 204); color: rgb(51, 51, 51);}
..jfk-button-contrast:focus {border: 1px solid rgb(77, 144, 254); outline: m=
edium none;}
..jfk-button-contrast.jfk-button-clear-outline {border: 1px solid rgb(220, 2=
20, 220); outline: medium none;}
..jfk-button-contrast.jfk-button-disabled {background: rgb(255, 255, 255) no=
ne repeat scroll 0% 0%; border: 1px solid rgba(0, 0, 0, 0.05); color: rgb(1=
84, 184, 184);}
..jfk-button-contrast .jfk-button-img {opacity: 0.55;}
..jfk-button-contrast.jfk-button-checked .jfk-button-img ,.jfk-button-contra=
st.jfk-button-selected .jfk-button-img ,.jfk-button-contrast.jfk-button-hov=
er .jfk-button-img {opacity: 0.9;}
..jfk-button-contrast.jfk-button-disabled .jfk-button-img {opacity: 0.333;}
..jfk-button-default {box-shadow: none; background-color: rgb(61, 148, 0); b=
ackground-image: -moz-linear-gradient(center top , rgb(61, 148, 0), rgb(57,=
138, 0)); border: 1px solid rgb(41, 105, 29); color: rgb(255, 255, 255); t=
ext-shadow: 0px 1px rgba(0, 0, 0, 0.1);}
..jfk-button-default.jfk-button-hover {box-shadow: none; background-color: r=
gb(54, 130, 0); background-image: -moz-linear-gradient(center top , rgb(61,=
148, 0), rgb(54, 130, 0)); border: 1px solid rgb(45, 98, 0); text-shadow: =
0px 1px rgba(0, 0, 0, 0.3);}
..jfk-button-default:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) i=
nset; border: 1px solid rgba(0, 0, 0, 0); outline: 0px none rgba(0, 0, 0, 0=
);}
..jfk-button-default.jfk-button-clear-outline {box-shadow: none; outline: me=
dium none;}
..jfk-button-default:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inse=
t; background: rgb(54, 130, 0) none repeat scroll 0% 0%; border: 1px solid =
rgb(45, 98, 0);}
..jfk-button-default.jfk-button-disabled {background: rgb(61, 148, 0) none r=
epeat scroll 0% 0%; opacity: 0.5;}
..jfk-button-primary {box-shadow: none; background-color: rgb(209, 72, 54); =
background-image: -moz-linear-gradient(center top , rgb(221, 75, 57), rgb(2=
09, 72, 54)); border: 1px solid transparent; color: rgb(255, 255, 255); tex=
t-shadow: 0px 1px rgba(0, 0, 0, 0.1); text-transform: uppercase;}
..jfk-button-primary.jfk-button-hover {box-shadow: 0px 1px 1px rgba(0, 0, 0,=
0.2); background-color: rgb(197, 55, 39); background-image: -moz-linear-gr=
adient(center top , rgb(221, 75, 57), rgb(197, 55, 39)); border-width: 1px;=
border-style: solid; border-color: rgb(176, 40, 26) rgb(176, 40, 26) rgb(1=
75, 48, 31); -moz-border-top-colors: none; -moz-border-right-colors: none; =
-moz-border-bottom-colors: none; -moz-border-left-colors: none; border-imag=
e: none;}
..jfk-button-primary:focus {box-shadow: 0px 0px 0px 1px rgb(255, 255, 255) i=
nset; border: 1px solid rgba(0, 0, 0, 0); outline: 0px none rgba(0, 0, 0, 0=
);}
..jfk-button-primary.jfk-button-clear-outline {box-shadow: none; outline: me=
dium none;}
..jfk-button-primary:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inse=
t; background-color: rgb(176, 40, 26); background-image: -moz-linear-gradie=
nt(center top , rgb(221, 75, 57), rgb(176, 40, 26)); border: 1px solid rgb(=
153, 42, 27);}
..jfk-button-primary.jfk-button-disabled {background: rgb(209, 72, 54) none =
repeat scroll 0% 0%; opacity: 0.5;}
..jfk-slideToggle {border-radius: 2px; box-shadow: 0px 1px 2px 0px rgba(0, 0=
, 0, 0.1) inset; background-color: rgb(245, 245, 245); background-image: -m=
oz-linear-gradient(center top , rgb(238, 238, 238), rgb(224, 224, 224)); bo=
rder: 1px solid rgb(204, 204, 204); color: rgb(102, 102, 102); font-weight:=
bold; height: 27px; line-height: 27px; margin-right: 16px; outline: medium=
none; overflow: hidden; padding: 0px; position: relative; width: 94px;}
..jfk-slideToggle-on ,.jfk-slideToggle-off ,.jfk-slideToggle-thumb {display:=
inline-block; text-align: center; text-transform: uppercase; width: 47px;}
..jfk-slideToggle-on {box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.1) inset; =
background-color: rgb(57, 139, 242); background-image: -moz-linear-gradient=
(center top , rgb(59, 147, 255), rgb(54, 137, 238)); color: rgb(255, 255, 2=
55); height: 27px;}
..jfk-slideToggle-off {border-radius: 2px 2px 0px 0px;}
..jfk-slideToggle-thumb {box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.1); bac=
kground-color: rgb(245, 245, 245); background-image: -moz-linear-gradient(c=
enter top , rgb(248, 248, 248), rgb(241, 241, 241)); transition: all 0.13s =
ease-out 0s; border: 1px solid rgb(204, 204, 204); display: block; height: =
27px; left: -1px; position: absolute; top: -1px;}
..jfk-slideToggle-thumb::after {content: ""; background-image: -moz-linear-g=
radient(left center , rgb(204, 204, 204) 50%, transparent 50%), -moz-linear=
-gradient(left center , rgb(204, 204, 204) 50%, transparent 50%), -moz-line=
ar-gradient(left center , rgb(204, 204, 204) 50%, transparent 50%), -moz-li=
near-gradient(left center , rgb(204, 204, 204) 50%, transparent 50%), -moz-=
linear-gradient(left center , rgb(204, 204, 204) 50%, transparent 50%); bac=
kground-position: 0px 0px, 0px 2px, 0px 4px, 0px 6px, 0px 8px; background-r=
epeat: repeat-x; background-size: 2px 1px; display: block; height: 9px; lef=
t: 15px; position: absolute; top: 9px; width: 17px;}
..jfk-slideToggle.jfk-slideToggle-checked .jfk-slideToggle-thumb {left: 47px=
;}
..jfk-slideToggle:focus {border: 1px solid rgb(77, 144, 254);}
..jfk-slideToggle.jfk-slideToggle-clearOutline {border: 1px solid rgb(204, 2=
04, 204);}
..jfk-button-standard {box-shadow: none; background-color: rgb(245, 245, 245=
); background-image: -moz-linear-gradient(center top , rgb(245, 245, 245), =
rgb(241, 241, 241)); color: rgb(68, 68, 68); border: 1px solid rgba(0, 0, 0=
, 0.1);}
..jfk-button-standard.jfk-button-hover ,.jfk-button-standard.jfk-button-clea=
r-outline.jfk-button-hover {box-shadow: none; background-color: rgb(248, 24=
8, 248); background-image: -moz-linear-gradient(center top , rgb(248, 248, =
248), rgb(241, 241, 241)); border: 1px solid rgb(198, 198, 198); color: rgb=
(51, 51, 51);}
..jfk-button-standard:active ,.jfk-button-standard.jfk-button-hover:active {=
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset; background: rgb(248, 248,=
248) none repeat scroll 0% 0%; color: rgb(51, 51, 51);}
..jfk-button-standard.jfk-button-selected ,.jfk-button-standard.jfk-button-c=
lear-outline.jfk-button-selected {background-color: rgb(238, 238, 238); bac=
kground-image: -moz-linear-gradient(center top , rgb(248, 248, 248), rgb(24=
1, 241, 241)); border: 1px solid rgb(204, 204, 204); color: rgb(51, 51, 51)=
;}
..jfk-button-standard.jfk-button-checked ,.jfk-button-standard.jfk-button-cl=
ear-outline.jfk-button-checked {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) =
inset; background-color: rgb(238, 238, 238); background-image: -moz-linear-=
gradient(center top , rgb(238, 238, 238), rgb(224, 224, 224)); border: 1px =
solid rgb(204, 204, 204); color: rgb(51, 51, 51);}
..jfk-button-standard:focus {border: 1px solid rgb(77, 144, 254); outline: m=
edium none;}
..jfk-button-standard.jfk-button-clear-outline {border: 1px solid rgba(0, 0,=
0, 0.1); outline: medium none;}
..jfk-button-standard.jfk-button-disabled {background: rgb(255, 255, 255) no=
ne repeat scroll 0% 0%; border: 1px solid rgba(0, 0, 0, 0.05); color: rgb(1=
84, 184, 184);}
..jfk-button-standard .jfk-button-img {opacity: 0.55;}
..jfk-button-standard.jfk-button-checked .jfk-button-img ,.jfk-button-standa=
rd.jfk-button-selected .jfk-button-img ,.jfk-button-standard.jfk-button-hov=
er .jfk-button-img {opacity: 0.9;}
..jfk-button-standard.jfk-button-disabled .jfk-button-img {opacity: 0.333;}
..jfk-button-flat {border-radius: 0px; border: 1px solid transparent; font-s=
ize: 13px; font-weight: normal; height: 21px; line-height: 21px; margin-rig=
ht: 1px; min-width: 0px; padding: 0px;}
..jfk-button-flat.jfk-button-hover ,.jfk-button-flat.jfk-button-selected ,.j=
fk-button-flat:focus ,.jfk-button-flat:active {box-shadow: none;}
..jfk-button-flat .jfk-button-img {height: 21px; opacity: 0.55; width: 21px;=
}
..jfk-button-flat .jfk-button-label {display: inline-block; margin: 0px; pad=
ding: 0px 1px;}
..jfk-button-flat.jfk-button-selected .jfk-button-img ,.jfk-button-flat.jfk-=
button-hover .jfk-button-img {opacity: 0.9;}
..jfk-button-flat.jfk-button-disabled .jfk-button-img {opacity: 0.333;}
..jfk-button-flat:focus {border: 1px solid rgb(77, 144, 254);}
..jfk-button-flat.jfk-button-clear-outline {border: 1px solid transparent;}
..jfk-button-mini {background-color: rgb(245, 245, 245); background-image: -=
moz-linear-gradient(center top , rgb(245, 245, 245), rgb(241, 241, 241)); b=
order: 1px solid rgba(0, 0, 0, 0.1); color: rgb(68, 68, 68); height: 17px; =
line-height: 17px; min-width: 22px; text-shadow: 0px 1px rgba(0, 0, 0, 0.1)=
;}
..jfk-button-mini.jfk-button-hover ,.jfk-button-mini.jfk-button-clear-outlin=
e.jfk-button-hover {background-color: rgb(248, 248, 248); background-image:=
-moz-linear-gradient(center top , rgb(248, 248, 248), rgb(241, 241, 241));=
border: 1px solid rgb(198, 198, 198); text-shadow: 0px 1px rgba(0, 0, 0, 0=
..3);}
..jfk-button-mini:active {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;}
..jfk-button-mini.jfk-button-checked ,.jfk-button-mini.jfk-button-clear-outl=
ine.jfk-button-checked {box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset; b=
ackground-color: rgb(224, 224, 224); background-image: -moz-linear-gradient=
(center top , rgb(238, 238, 238), rgb(224, 224, 224)); border: 1px solid rg=
b(204, 204, 204); color: rgb(51, 51, 51);}
..jfk-button-mini:focus {border: 1px solid rgb(77, 144, 254);}
..jfk-button-mini.jfk-button-clear-outline {border: 1px solid rgb(220, 220, =
220);}
..jfk-button-mini.jfk-button-disabled {background: rgb(255, 255, 255) none r=
epeat scroll 0% 0%; border: 1px solid rgba(0, 0, 0, 0.05); color: rgb(184, =
184, 184);}
..jfk-butterBar {border-radius: 2px; box-shadow: 0px 2px 4px rgba(0, 0, 0, 0=
..2); transition: all 0s linear 1s, opacity 1s ease 0s; border-style: solid;=
border-width: 0px; font-size: 11px; height: 0px; opacity: 0; visibility: h=
idden; overflow: hidden; padding: 0px; text-align: center;}
..jfk-butterBar-info {background-color: rgb(249, 237, 190); border-color: rg=
b(240, 195, 109); color: rgb(51, 51, 51);}
..jfk-butterBar-error {background-color: rgb(72, 72, 72); border-color: rgb(=
32, 32, 32); color: rgb(255, 255, 255);}
..jfk-butterBar-promo {background-color: rgb(214, 233, 248); border-color: r=
gb(77, 144, 240); color: rgb(51, 51, 51);}
..jfk-butterBar-warning {background-color: rgb(221, 75, 57); border-color: r=
gb(96, 32, 25); color: rgb(255, 255, 255);}
..jfk-butterBar-shown {transition: opacity 0.218s ease 0s; border-width: 1px=
; min-height: 14px; height: auto; opacity: 1; visibility: visible; padding:=
6px 16px;}
..jfk-butterBar-mini.jfk-butterBar-shown {padding: 2px 16px;}
..picker-dialog {background: rgb(255, 255, 255) none repeat scroll 0% 0%; bo=
rder: 1px solid rgb(172, 172, 172); position: absolute; box-shadow: 0px 4px=
16px rgba(0, 0, 0, 0.2); z-index: 1021; outline: medium none; padding: 0px=
;}
..picker.modal-dialog-content {width: 705px; height: 370px; padding: 0px; ma=
rgin: 0px; position: relative; border: 0px none;}
..picker.modal-dialog-bg {background: rgb(255, 255, 255) none repeat scroll =
0% 0%; left: 0px; position: absolute; top: 0px; z-index: 1001;}
..picker.modal-dialog-title ,.picker.modal-dialog-buttons {display: none;}
..picker-frame {width: 100%; height: 100%; border: 0px none; overflow: hidde=
n;}
..picker-upload-button-visible .picker-drag-drop-supported .picker-photos-up=
load-dropzone-cell {vertical-align: middle;}
..picker-photos-upload-dropzone td {text-align: center;}
..picker .progress-bar-thumb {background-color: rgb(93, 128, 239);}
..goog-inline-block {position: relative; display: inline-block;}
* html .goog-inline-block ,body .goog-inline-block {display: inline;}
:first-child + html .goog-inline-block {display: inline;}
..sketchy-dialog-bg ,.sketchy-dialog-fg {left: 0px; overflow: auto; position=
: absolute; top: 0px;}
..sketchy-dialog-bg {background-color: rgb(238, 238, 238); opacity: 0.75;}
..sketchy-dialog-fg {cursor: move;}
..sketchy-dialog {background-color: rgb(193, 217, 255); border: 1px solid rg=
b(58, 87, 116); padding: 8px; position: absolute; cursor: move;}
..sketchy-dialog-title {background-color: rgb(224, 237, 254); color: rgb(0, =
0, 0); font: bold 14px Arial,sans-serif; padding: 8px 15px 8px 8px; positio=
n: relative; vertical-align: middle;}
..sketchy-dialog-title-close {height: 24px; position: absolute; right: 8px; =
top: 4px; font-weight: normal; padding: 0px 6px;}
..sketchy-dialog-title-autosave {color: rgb(102, 102, 102); font: 12px Arial=
,sans-serif; position: absolute;}
..sketchy-dialog-content {background-color: rgb(255, 255, 255);}
..goog-tab-bar {margin: 0px; border: 0px none; padding: 0px; list-style: out=
side none none; cursor: default; outline: medium none; background: rgb(235,=
239, 249) none repeat scroll 0% 0%;}
..goog-tab-bar-clear {clear: both; height: 0px; overflow: hidden;}
..goog-tab-bar-start {float: left;}
..goog-tab-bar-end {float: right;}
* html .goog-tab-bar-start ,body .goog-tab-bar-start {margin-right: -3px;}
* html .goog-tab-bar-end ,body .goog-tab-bar-end {margin-left: -3px;}
div.tr_bubble {position: absolute;}
..tr_bubble_link {color: rgb(0, 0, 204); text-decoration: underline; cursor:=
pointer; font-size: 100%;}
..tr_bubble .tr_option-link ,.tr_bubble #tr_delete-image ,.tr_bubble #tr_mod=
ule-options-link {font-size: 83%;}
..tr_bubble .tr_body ,.tr_bubble .tr_t ,.tr_bubble .tr_l ,.tr_bubble .tr_r ,=
..tr_bubble .tr_b {background-color: rgb(224, 236, 255);}
..tr_bubble .tr_body {padding: 0px 19px 4px 4px; white-space: nowrap;}
..tr_bubble .tr_spacer {padding: 1px;}
..tr_bubble .tr_body ,.tr_bubble .tr_td ,.tr_bubble .tr_th {font-size: 83%; =
font-family: Arial,Helvetica,sans-serif;}
..tr_bubble .tr_tr ,.tr_bubble .tr_tl ,.tr_bubble .tr_bl ,.tr_bubble .tr_br =
{background-repeat: no-repeat; height: 0px; width: 2px;}
..tr_bubble .tr_tr {background-image: url("//ssl.gstatic.com/editor/bubble2_=
tr.gif");}
..tr_bubble .tr_tl {background-image: url("//ssl.gstatic.com/editor/bubble2_=
tl.gif");}
..tr_bubble .tr_bl {background-image: url("//ssl.gstatic.com/editor/bubble2_=
bl.gif");}
..tr_bubble .tr_br {background-image: url("//ssl.gstatic.com/editor/bubble2_=
br.gif");}
..tr_bubble .tr_t {border-top: 1px solid rgb(153, 192, 255);}
..tr_bubble .tr_b {border-bottom: 1px solid rgb(153, 192, 255);}
..tr_bubble .tr_l {border-left: 1px solid rgb(153, 192, 255);}
..tr_bubble .tr_r {border-right: 1px solid rgb(153, 192, 255);}
..tr_bubble .tr_tr ,.tr_bubble .tr_tl ,.tr_bubble .tr_bl ,.tr_bubble .tr_br =
,.tr_bubble .tr_b ,.tr_bubble .tr_t {line-height: 0; font-size: 1px;}
..tr_bubble_closebox {position: absolute; cursor: default; background: rgba(=
0, 0, 0, 0) url("//ssl.gstatic.com/editor/bubble_closebox.gif") no-repeat s=
croll left top; padding: 0px; margin: 0px; width: 10px; height: 10px; top: =
3px; right: 5px;}
div.tr_bubble_panel {padding: 2px 0px 1px;}
div.tr_bubble_panel_title {display: none;}
div.tr_multi_bubble div.tr_bubble_panel_title {margin-right: 1px; display: =
block; float: left; width: 50px;}
div.tr_multi_bubble div.tr_bubble_panel {padding: 2px 0px 1px; margin-right=
: 50px;}
..ee-content {width: 400px; height: 200px; overflow: auto; padding: 4px 8px;=
background: rgb(255, 255, 255) none repeat scroll 0% 0%; border: 1px solid=
rgb(51, 102, 153);}
..ee-tex {width: 388px; height: 60px; border: 1px solid rgb(0, 0, 0); margin=
-top: 4px; margin-bottom: 10px; display: block;}
..ee-preview-container {width: 380px; height: 80px; overflow: auto; border: =
1px solid rgb(204, 204, 204); padding: 4px;}
..editable a ,body a {cursor: text;}
..tr_well .tr_tl {background-image: url("//ssl.gstatic.com/editor/well_tl2.g=
if"); background-repeat: no-repeat;}
..tr_well .tr_t {background-image: url("//ssl.gstatic.com/editor/well_top2.g=
if"); background-repeat: repeat-x;}
..tr_well .tr_tr {background-image: url("//ssl.gstatic.com/editor/well_tr.gi=
f"); background-repeat: no-repeat;}
..tr_well .tr_l {background-image: url("//ssl.gstatic.com/editor/well_left.g=
if"); background-repeat: repeat-y;}
..tr_well .tr_r {background-image: url("//ssl.gstatic.com/editor/well_right.=
gif"); background-repeat: repeat-y;}
..tr_well .tr_r2 {background-image: url("//ssl.gstatic.com/editor/well_right=
2.gif"); background-repeat: repeat-y; background-position: right center;}
..tr_well .tr_bl {background-image: url("//ssl.gstatic.com/editor/well_bl.gi=
f"); background-repeat: no-repeat;}
..tr_well .tr_b {background-image: url("//ssl.gstatic.com/editor/well_bottom=
..gif"); background-repeat: repeat-x;}
..tr_well .tr_br {background-image: url("//ssl.gstatic.com/editor/well_br.gi=
f"); background-repeat: no-repeat;}
..tr_toolbar-styles .tr_well {border: medium none; padding: 0px; font-size: =
83%; text-align: center;}
..tr_toolbar-vertical .tr_toolbar-styles .tr_well .tr_separator {height: 5px=
; display: block;}
..tr_toolbar-styles .tr_well .tr_selected-style {background: rgb(250, 209, 9=
9) none repeat scroll 0% 0%;}
..tr_toolbar-styles .tr_well .tr_unselected-style span {color: rgb(97, 97, 1=
88); text-decoration: underline; font-weight: normal; cursor: pointer;}
..tr_toolbar-styles .tr_well .tr_selected-style span {font-weight: bold; cur=
sor: pointer;}
..tr_toolbar-vertical .tr_toolbar-styles {float: left;}
..tr_toolbar-vertical .tr_toolbar-styles .tr_well {width: 7.8em;}
..goog-tab {position: relative; border: 1px solid rgb(51, 102, 153); padding=
: 4px 8px; color: rgb(51, 51, 51); background: rgb(221, 221, 221) none repe=
at scroll 0% 0%; cursor: default;}
..goog-tab-bar-top .goog-tab {margin: 1px 4px 0px 0px; border-bottom: 0px no=
ne; float: left;}
..goog-tab-bar-bottom .goog-tab {margin: 0px 4px 1px 0px; border-top: 0px no=
ne; float: left;}
..goog-tab-bar-start .goog-tab {margin: 0px 0px 4px 1px; border-right: 0px n=
one;}
..goog-tab-bar-end .goog-tab {margin: 0px 1px 4px 0px; border-left: 0px none=
;}
..goog-tab-hover {background: rgb(238, 238, 238) none repeat scroll 0% 0%;}
..goog-tab-disabled {color: rgb(255, 255, 255); background: rgb(204, 204, 20=
4) none repeat scroll 0% 0%; border-color: rgb(204, 204, 204);}
..goog-tab-selected {background: rgb(255, 255, 255) none repeat scroll 0% 0%=
!important;}
..goog-tab-bar-top .goog-tab-selected {top: 1px; margin-top: 0px; padding-bo=
ttom: 5px;}
..goog-tab-bar-bottom .goog-tab-selected {top: -1px; margin-bottom: 0px; pad=
ding-top: 5px;}
..goog-tab-bar-start .goog-tab-selected {left: 1px; margin-left: 0px; paddin=
g-right: 9px;}
..goog-tab-bar-end .goog-tab-selected {left: -1px; margin-right: 0px; paddin=
g-left: 9px;}
..tr_tabbed-pane-tabs {line-height: 1.3; vertical-align: top; font-size: 10p=
t;}
..tr_tabbed-pane-tabs p {margin-bottom: 0.7ex; font-size: 10pt;}
..tr_tabbed-pane-tabs div {cursor: pointer; width: 148px;}
..tr_tabbed-pane-tabs .tr_tabbed-pane-tab-label {color: blue; text-decoratio=
n: underline;}
..tr_tabbed-pane-tabs td {font-size: 13px;}
..tr_vertical-tab div {padding: 0.5ex 0px 0.5ex 0.7ex;}
..tr_tabbed-pane {padding: 1.3ex 0px; font-size: 10pt;}
..tr_tabbed-pane-tabs .tr_selected-tab-in-tabbed-pane {background: white non=
e repeat scroll 0% 0%;}
..tr_tabbed-pane-tabs .tr_selected-tab-in-tabbed-pane .tr_tabbed-pane-tab-la=
bel {color: black; font-weight: bold; text-decoration: none;}
..tr_tabbed-pane-tab-content {width: 100%; vertical-align: top; padding: 5px=
7px 1px; background: white none repeat scroll 0% 0%; font-size: 10pt;}
..goog-palette {cursor: default; outline: medium none;}
..goog-palette-table {border: 1px solid rgb(102, 102, 102); border-collapse:=
collapse; margin: 5px;}
..goog-palette-cell {border-width: 0px 1px 0px 0px; border-style: none solid=
none none; border-color: currentcolor rgb(102, 102, 102) currentcolor curr=
entcolor; -moz-border-top-colors: none; -moz-border-right-colors: none; -mo=
z-border-bottom-colors: none; -moz-border-left-colors: none; border-image: =
none; cursor: pointer; height: 18px; margin: 0px; text-align: center; verti=
cal-align: middle; width: 18px;}
..goog-palette-cell .goog-palette-colorswatch {border: medium none; font-siz=
e: x-small; height: 18px; position: relative; width: 18px;}
..goog-palette-cell-hover .goog-palette-colorswatch {border: 1px solid rgb(2=
55, 255, 255); height: 16px; width: 16px;}
..goog-palette-cell-selected .goog-palette-colorswatch {background: rgba(0, =
0, 0, 0) url("//ssl.gstatic.com/editor/editortoolbar.png") no-repeat scroll=
-368px 0px; border: 1px solid rgb(51, 51, 51); color: rgb(255, 255, 255); =
font-weight: bold; height: 16px; width: 16px;}
..goog-palette-customcolor {background-color: rgb(250, 250, 250); border: 1p=
x solid rgb(238, 238, 238); color: rgb(102, 102, 102); font-size: x-small; =
height: 15px; position: relative; width: 15px;}
..goog-palette-cell-hover .goog-palette-customcolor {background-color: rgb(2=
55, 238, 238); border: 1px solid rgb(255, 102, 102); color: rgb(255, 102, 1=
02);}
..goog-menu-button {background: rgb(221, 221, 221) url("//ssl.gstatic.com/ed=
itor/button-bg.png") repeat-x scroll left top; border: 0px none; color: rgb=
(0, 0, 0); cursor: pointer; list-style: outside none none; margin: 2px; out=
line: medium none; padding: 0px; text-decoration: none; vertical-align: mid=
dle;}
..goog-menu-button-outer-box ,.goog-menu-button-inner-box {border-style: sol=
id; border-color: rgb(170, 170, 170); vertical-align: top;}
..goog-menu-button-outer-box {margin: 0px; border-width: 1px 0px; padding: 0=
px;}
..goog-menu-button-inner-box {margin: 0px -1px; border-width: 0px 1px; paddi=
ng: 3px 4px;}
* html .goog-menu-button-inner-box ,body .goog-menu-button-inner-box {left:=
-1px;}
* html .goog-menu-button-rtl .goog-menu-button-outer-box ,body .goog-menu-b=
utton-rtl .goog-menu-button-outer-box {left: -1px; right: auto;}
* html .goog-menu-button-rtl .goog-menu-button-inner-box ,body .goog-menu-b=
utton-rtl .goog-menu-button-inner-box {right: auto;}
:first-child + html .goog-menu-button-inner-box {left: -1px;}
:first-child + html .goog-menu-button-rtl .goog-menu-button-inner-box {left=
: 1px; right: auto;}
..goog-menu-button-disabled {background-image: none !important; opacity: 0.3=
;}
..goog-menu-button-disabled .goog-menu-button-outer-box ,.goog-menu-button-d=
isabled .goog-menu-button-inner-box ,.goog-menu-button-disabled .goog-menu-=
button-caption ,.goog-menu-button-disabled .goog-menu-button-dropdown {colo=
r: rgb(51, 51, 51) !important; border-color: rgb(153, 153, 153) !important;=
}
* html .goog-menu-button-disabled ,body .goog-menu-button-disabled {margin:=
2px 1px !important; padding: 0px 1px !important;}
:first-child + html .goog-menu-button-disabled {margin: 2px 1px !important;=
padding: 0px 1px !important;}
..goog-menu-button-hover .goog-menu-button-outer-box ,.goog-menu-button-hove=
r .goog-menu-button-inner-box {border-color: rgb(153, 204, 255) rgb(102, 15=
3, 238) rgb(102, 153, 238) rgb(119, 170, 255) !important;}
..goog-menu-button-active ,.goog-menu-button-open {background-color: rgb(187=
, 187, 187); background-position: left bottom;}
..goog-menu-button-focused .goog-menu-button-outer-box ,.goog-menu-button-fo=
cused .goog-menu-button-inner-box {border-color: orange;}
..goog-menu-button-caption {padding: 0px 4px 0px 0px; vertical-align: top;}
..goog-menu-button-dropdown {height: 15px; width: 7px; background: rgba(0, 0=
, 0, 0) url("//ssl.gstatic.com/editor/editortoolbar.png") no-repeat scroll =
-388px 0px; vertical-align: top;}
..goog-menu-button-collapse-right ,.goog-menu-button-collapse-right .goog-me=
nu-button-outer-box ,.goog-menu-button-collapse-right .goog-menu-button-inn=
er-box {margin-right: 0px;}
..goog-menu-button-collapse-left ,.goog-menu-button-collapse-left .goog-menu=
-button-outer-box ,.goog-menu-button-collapse-left .goog-menu-button-inner-=
box {margin-left: 0px;}
..goog-menu-button-collapse-left .goog-menu-button-inner-box {border-left: 1=
px solid rgb(255, 255, 255);}
..goog-menu-button-collapse-left.goog-menu-button-checked .goog-menu-button-=
inner-box {border-left: 1px solid rgb(221, 221, 221);}
..goog-color-menu-button-indicator {border-bottom: 4px solid rgb(240, 240, 2=
40);}
..goog-color-menu-button .goog-menu-button-inner-box ,.goog-toolbar-color-me=
nu-button .goog-toolbar-menu-button-inner-box {padding-top: 2px !important;=
padding-bottom: 2px !important;}
..goog-custom-button {margin: 2px; border: 0px none; padding: 0px; font-fami=
ly: Arial,sans-serif; color: rgb(0, 0, 0); background: rgb(221, 221, 221) u=
rl("//ssl.gstatic.com/editor/button-bg.png") repeat-x scroll left top; text=
-decoration: none; list-style: outside none none; vertical-align: middle; c=
ursor: default; outline: medium none;}
..goog-custom-button-outer-box ,.goog-custom-button-inner-box {border-style:=
solid; border-color: rgb(170, 170, 170); vertical-align: top;}
..goog-custom-button-outer-box {margin: 0px; border-width: 1px 0px; padding:=
0px;}
..goog-custom-button-inner-box {margin: 0px -1px; border-width: 0px 1px; pad=
ding: 3px 4px; white-space: nowrap;}
* html .goog-custom-button-inner-box ,body .goog-custom-button-inner-box {l=
eft: -1px;}
* html .goog-custom-button-rtl .goog-custom-button-outer-box ,body .goog-cu=
stom-button-rtl .goog-custom-button-outer-box {left: -1px;}
* html .goog-custom-button-rtl .goog-custom-button-inner-box ,body .goog-cu=
stom-button-rtl .goog-custom-button-inner-box {right: auto;}
:first-child + html .goog-custom-button-inner-box {left: -1px;}
:first-child + html .goog-custom-button-rtl .goog-custom-button-inner-box {=
left: 1px;}
..goog-custom-button-disabled {background-image: none !important; opacity: 0=
..3;}
..goog-custom-button-disabled .goog-custom-button-outer-box ,.goog-custom-bu=
tton-disabled .goog-custom-button-inner-box {color: rgb(51, 51, 51) !import=
ant; border-color: rgb(153, 153, 153) !important;}
* html .goog-custom-button-disabled ,body .goog-custom-button-disabled {mar=
gin: 2px 1px !important; padding: 0px 1px !important;}
:first-child + html .goog-custom-button-disabled {margin: 2px 1px !importan=
t; padding: 0px 1px !important;}
..goog-custom-button-hover .goog-custom-button-outer-box ,.goog-custom-butto=
n-hover .goog-custom-button-inner-box {border-color: rgb(153, 204, 255) rgb=
(102, 153, 238) rgb(102, 153, 238) rgb(119, 170, 255) !important;}
..goog-custom-button-active ,.goog-custom-button-checked {background-color: =
rgb(187, 187, 187); background-position: left bottom;}
..goog-custom-button-focused .goog-custom-button-outer-box ,.goog-custom-but=
ton-focused .goog-custom-button-inner-box {border-color: orange;}
..goog-custom-button-collapse-right ,.goog-custom-button-collapse-right .goo=
g-custom-button-outer-box ,.goog-custom-button-collapse-right .goog-custom-=
button-inner-box {margin-right: 0px;}
..goog-custom-button-collapse-left ,.goog-custom-button-collapse-left .goog-=
custom-button-outer-box ,.goog-custom-button-collapse-left .goog-custom-but=
ton-inner-box {margin-left: 0px;}
..goog-custom-button-collapse-left .goog-custom-button-inner-box {border-lef=
t: 1px solid rgb(255, 255, 255);}
..goog-custom-button-collapse-left.goog-custom-button-checked .goog-custom-b=
utton-inner-box {border-left: 1px solid rgb(221, 221, 221);}
* html .goog-custom-button-collapse-left .goog-custom-button-inner-box ,bod=
y .goog-custom-button-collapse-left .goog-custom-button-inner-box {left: 0p=
x;}
:first-child + html .goog-custom-button-collapse-left .goog-custom-button-i=
nner-box {left: 0px;}
..goog-menu {background: rgb(255, 255, 255) none repeat scroll 0% 0%; border=
-color: rgb(204, 204, 204) rgb(102, 102, 102) rgb(102, 102, 102) rgb(204, 2=
04, 204); border-style: solid; border-width: 1px; cursor: default; font: 13=
px Arial,sans-serif; margin: 0px; outline: medium none; padding: 4px 0px; p=
osition: absolute; z-index: 20000;}
..goog-menuitem {color: rgb(0, 0, 0); font: 13px Arial,sans-serif; list-styl=
e: outside none none; margin: 0px; padding: 4px 7em 4px 28px; white-space: =
nowrap;}
..goog-menuitem.goog-menuitem-rtl {padding-left: 7em; padding-right: 28px;}
..goog-menu-nocheckbox .goog-menuitem ,.goog-menu-noicon .goog-menuitem {pad=
ding-left: 12px;}
..goog-menu-noaccel .goog-menuitem {padding-right: 20px;}
..goog-menuitem-content {color: rgb(0, 0, 0); font: 13px Arial,sans-serif;}
..goog-menuitem-disabled .goog-menuitem-accel ,.goog-menuitem-disabled .goog=
-menuitem-content {color: rgb(204, 204, 204) !important;}
..goog-menuitem-disabled .goog-menuitem-icon {opacity: 0.3;}
..goog-menuitem-highlight ,.goog-menuitem-hover {background-color: rgb(214, =
233, 248); border-color: rgb(214, 233, 248); border-style: dotted; border-w=
idth: 1px 0px; padding-bottom: 3px; padding-top: 3px;}
..goog-menuitem-checkbox ,.goog-menuitem-icon {background-repeat: no-repeat;=
height: 16px; left: 6px; position: absolute; right: auto; vertical-align: =
middle; width: 16px;}
..goog-menuitem-rtl .goog-menuitem-checkbox ,.goog-menuitem-rtl .goog-menuit=
em-icon {left: auto; right: 6px;}
..goog-option-selected .goog-menuitem-checkbox ,.goog-option-selected .goog-=
menuitem-icon {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/e=
ditortoolbar.png") no-repeat scroll -512px 0px;}
..goog-menuitem-accel {color: rgb(153, 153, 153); direction: ltr; left: auto=
; padding: 0px 6px; position: absolute; right: 0px; text-align: right;}
..goog-menuitem-rtl .goog-menuitem-accel {left: 0px; right: auto; text-align=
: left;}
..goog-menuitem-mnemonic-hint {text-decoration: underline;}
..goog-menuitem-mnemonic-separator {color: rgb(153, 153, 153); font-size: 12=
px; padding-left: 4px;}
..goog-menuseparator {border-top: 1px solid rgb(204, 204, 204); margin: 4px =
0px; padding: 0px;}
..goog-toolbar {background: rgb(250, 250, 250) url("//ssl.gstatic.com/editor=
/toolbar-bg.png") repeat-x scroll left bottom; border-bottom: 1px solid rgb=
(213, 213, 213); cursor: default; font: 12px Arial,sans-serif; margin: 0px;=
outline: medium none; padding: 2px; position: relative;}
..goog-toolbar-button {margin: 0px 2px; border: 0px none; padding: 0px; font=
-family: Arial,sans-serif; color: rgb(51, 51, 51); text-decoration: none; l=
ist-style: outside none none; vertical-align: middle; cursor: default; outl=
ine: medium none;}
..goog-toolbar-button-outer-box ,.goog-toolbar-button-inner-box {border: 0px=
none; vertical-align: top;}
..goog-toolbar-button-outer-box {margin: 0px; padding: 1px 0px;}
..goog-toolbar-button-inner-box {margin: 0px -1px; padding: 3px 4px;}
* html .goog-toolbar-button-inner-box ,body .goog-toolbar-button-inner-box =
{left: -1px;}
* html .goog-toolbar-button-rtl .goog-toolbar-button-outer-box ,body .goog-=
toolbar-button-rtl .goog-toolbar-button-outer-box {left: -1px;}
* html .goog-toolbar-button-rtl .goog-toolbar-button-inner-box ,body .goog-=
toolbar-button-rtl .goog-toolbar-button-inner-box {right: auto;}
:first-child + html .goog-toolbar-button-inner-box {left: -1px;}
:first-child + html .goog-toolbar-button-rtl .goog-toolbar-button-inner-box=
{left: 1px; right: auto;}
..goog-toolbar-button-disabled {opacity: 0.3;}
..goog-toolbar-button-disabled .goog-toolbar-button-outer-box ,.goog-toolbar=
-button-disabled .goog-toolbar-button-inner-box {color: rgb(51, 51, 51) !im=
portant; border-color: rgb(153, 153, 153) !important;}
* html .goog-toolbar-button-disabled ,body .goog-toolbar-button-disabled {b=
ackground-color: rgb(240, 240, 240); margin: 0px 1px; padding: 0px 1px;}
:first-child + html .goog-toolbar-button-disabled {background-color: rgb(24=
0, 240, 240); margin: 0px 1px; padding: 0px 1px;}
..goog-toolbar-button-hover .goog-toolbar-button-outer-box ,.goog-toolbar-bu=
tton-active .goog-toolbar-button-outer-box ,.goog-toolbar-button-checked .g=
oog-toolbar-button-outer-box ,.goog-toolbar-button-selected .goog-toolbar-b=
utton-outer-box {border-width: 1px 0px; border-style: solid; padding: 0px;}
..goog-toolbar-button-hover .goog-toolbar-button-inner-box ,.goog-toolbar-bu=
tton-active .goog-toolbar-button-inner-box ,.goog-toolbar-button-checked .g=
oog-toolbar-button-inner-box ,.goog-toolbar-button-selected .goog-toolbar-b=
utton-inner-box {border-width: 0px 1px; border-style: solid; padding: 3px;}
..goog-toolbar-button-hover .goog-toolbar-button-outer-box ,.goog-toolbar-bu=
tton-hover .goog-toolbar-button-inner-box {border-color: rgb(161, 186, 223)=
!important;}
..goog-toolbar-button-active ,.goog-toolbar-button-checked ,.goog-toolbar-bu=
tton-selected {background-color: rgb(221, 225, 235) !important;}
..goog-toolbar-button-active .goog-toolbar-button-outer-box ,.goog-toolbar-b=
utton-active .goog-toolbar-button-inner-box ,.goog-toolbar-button-checked .=
goog-toolbar-button-outer-box ,.goog-toolbar-button-checked .goog-toolbar-b=
utton-inner-box ,.goog-toolbar-button-selected .goog-toolbar-button-outer-b=
ox ,.goog-toolbar-button-selected .goog-toolbar-button-inner-box {border-co=
lor: rgb(114, 155, 209);}
..goog-toolbar-button-collapse-right ,.goog-toolbar-button-collapse-right .g=
oog-toolbar-button-outer-box ,.goog-toolbar-button-collapse-right .goog-too=
lbar-button-inner-box {margin-right: 0px;}
..goog-toolbar-button-collapse-left ,.goog-toolbar-button-collapse-left .goo=
g-toolbar-button-outer-box ,.goog-toolbar-button-collapse-left .goog-toolba=
r-button-inner-box {margin-left: 0px;}
* html .goog-toolbar-button-collapse-left .goog-toolbar-button-inner-box ,b=
ody .goog-toolbar-button-collapse-left .goog-toolbar-button-inner-box {left=
: 0px;}
:first-child + html .goog-toolbar-button-collapse-left .goog-toolbar-button=
-inner-box {left: 0px;}
..goog-toolbar-menu-button {margin: 0px 2px; border: 0px none; padding: 0px;=
font-family: Arial,sans-serif; color: rgb(51, 51, 51); text-decoration: no=
ne; list-style: outside none none; vertical-align: middle; cursor: default;=
outline: medium none;}
..goog-toolbar-menu-button-outer-box ,.goog-toolbar-menu-button-inner-box {b=
order: 0px none; vertical-align: top;}
..goog-toolbar-menu-button-outer-box {margin: 0px; padding: 1px 0px;}
..goog-toolbar-menu-button-inner-box {margin: 0px -1px; padding: 3px 4px;}
* html .goog-toolbar-menu-button-inner-box ,body .goog-toolbar-menu-button-=
inner-box {left: -1px;}
* html .goog-toolbar-menu-button-rtl .goog-toolbar-menu-button-outer-box ,b=
ody .goog-toolbar-menu-button-rtl .goog-toolbar-menu-button-outer-box {left=
: -1px;}
* html .goog-toolbar-menu-button-rtl .goog-toolbar-menu-button-inner-box ,b=
ody .goog-toolbar-menu-button-rtl .goog-toolbar-menu-button-inner-box {righ=
t: auto;}
:first-child + html .goog-toolbar-menu-button-inner-box {left: -1px;}
:first-child + html .goog-toolbar-menu-button-rtl .goog-toolbar-menu-button=
-inner-box {left: 1px; right: auto;}
..goog-toolbar-menu-button-disabled {opacity: 0.3;}
..goog-toolbar-menu-button-disabled .goog-toolbar-menu-button-outer-box ,.go=
og-toolbar-menu-button-disabled .goog-toolbar-menu-button-inner-box {color:=
rgb(51, 51, 51) !important; border-color: rgb(153, 153, 153) !important;}
* html .goog-toolbar-menu-button-disabled ,body .goog-toolbar-menu-button-d=
isabled {background-color: rgb(240, 240, 240); margin: 0px 1px; padding: 0p=
x 1px;}
:first-child + html .goog-toolbar-menu-button-disabled {background-color: r=
gb(240, 240, 240); margin: 0px 1px; padding: 0px 1px;}
..goog-toolbar-menu-button-hover .goog-toolbar-menu-button-outer-box ,.goog-=
toolbar-menu-button-active .goog-toolbar-menu-button-outer-box ,.goog-toolb=
ar-menu-button-open .goog-toolbar-menu-button-outer-box {border-width: 1px =
0px; border-style: solid; padding: 0px;}
..goog-toolbar-menu-button-hover .goog-toolbar-menu-button-inner-box ,.goog-=
toolbar-menu-button-active .goog-toolbar-menu-button-inner-box ,.goog-toolb=
ar-menu-button-open .goog-toolbar-menu-button-inner-box {border-width: 0px =
1px; border-style: solid; padding: 3px;}
..goog-toolbar-menu-button-hover .goog-toolbar-menu-button-outer-box ,.goog-=
toolbar-menu-button-hover .goog-toolbar-menu-button-inner-box {border-color=
: rgb(161, 186, 223) !important;}
..goog-toolbar-menu-button-active ,.goog-toolbar-menu-button-open {backgroun=
d-color: rgb(221, 225, 235) !important;}
..goog-toolbar-menu-button-active .goog-toolbar-menu-button-outer-box ,.goog=
-toolbar-menu-button-active .goog-toolbar-menu-button-inner-box ,.goog-tool=
bar-menu-button-open .goog-toolbar-menu-button-outer-box ,.goog-toolbar-men=
u-button-open .goog-toolbar-menu-button-inner-box {border-color: rgb(114, 1=
55, 209);}
..goog-toolbar-menu-button-caption {padding: 0px 4px 0px 0px; vertical-align=
: middle;}
..goog-toolbar-menu-button-dropdown {width: 7px; background: rgba(0, 0, 0, 0=
) url("//ssl.gstatic.com/editor/editortoolbar.png") no-repeat scroll -388px=
0px; vertical-align: middle;}
..goog-toolbar-separator {margin: 0px 2px; border-left: 1px solid rgb(214, 2=
14, 214); border-right: 1px solid rgb(247, 247, 247); padding: 0px; width: =
0px; text-decoration: none; list-style: outside none none; outline: medium =
none; vertical-align: middle; line-height: normal; font-size: 120%; overflo=
w: hidden;}
..goog-toolbar-select .goog-toolbar-menu-button-outer-box {border-width: 1px=
0px; border-style: solid; padding: 0px;}
..goog-toolbar-select .goog-toolbar-menu-button-inner-box {border-width: 0px=
1px; border-style: solid; padding: 3px;}
..goog-toolbar-select .goog-toolbar-menu-button-outer-box ,.goog-toolbar-sel=
ect .goog-toolbar-menu-button-inner-box {border-color: rgb(191, 203, 223);}
..tr-icon {width: 16px; height: 16px; background: rgba(0, 0, 0, 0) url("//ss=
l.gstatic.com/editor/editortoolbar.png") no-repeat scroll 0% 0%; vertical-a=
lign: middle;}
..goog-color-menu-button-indicator .tr-icon {height: 14px;}
..tr-undo ,.goog-toolbar-button-rtl .tr-redo {background-position: 0px cente=
r;}
..tr-redo ,.goog-toolbar-button-rtl .tr-undo {background-position: -16px cen=
ter;}
..tr-fontName .goog-toolbar-menu-button-caption {color: rgb(34, 68, 102); wi=
dth: 16ex; height: 16px; overflow: hidden;}
..tr-fontSize .goog-toolbar-menu-button-caption {color: rgb(34, 68, 102); wi=
dth: 8ex; height: 16px; overflow: hidden;}
..tr-bold {background-position: -32px center;}
..tr-italic {background-position: -48px center;}
..tr-underline {background-position: -64px center;}
..tr-foreColor {height: 14px; background-position: -80px center;}
..tr-backColor {height: 14px; background-position: -96px center;}
..tr-link {font-weight: bold; color: rgb(0, 0, 153); text-decoration: underl=
ine;}
..tr-image {background-position: -112px center;}
..tr-newDrawing {background-position: -592px center;}
..tr-spChar {font-weight: bold; color: rgb(153, 0, 0);}
..tr-indent {background-position: -128px center;}
..tr-rtl-mode .tr-indent {background-position: -400px center;}
..tr-outdent {background-position: -144px center;}
..tr-rtl-mode .tr-outdent {background-position: -416px center;}
..tr-insertUnorderedList {background-position: -160px center;}
..tr-rtl-mode .tr-insertUnorderedList {background-position: -432px center;}
..tr-insertOrderedList {background-position: -176px center;}
..tr-rtl-mode .tr-insertOrderedList {background-position: -448px center;}
..tr-justifyLeft {background-position: -192px center;}
..tr-justifyCenter {background-position: -208px center;}
..tr-justifyRight {background-position: -224px center;}
..tr-justifyFull {background-position: -480px center;}
..tr-BLOCKQUOTE {background-position: -240px center;}
..tr-rtl-mode .tr-BLOCKQUOTE {background-position: -464px center;}
..tr-removeFormat {background-position: -256px center;}
..tr-spell {background-position: -272px center;}
..tr-ltr {background-position: -288px center;}
..tr-rtl {background-position: -304px center;}
..tr-insertModule {background-position: -496px center;}
..tr-strikeThrough {background-position: -544px center;}
..tr-subscript {background-position: -560px center;}
..tr-superscript {background-position: -576px center;}
..tr-equation {background-position: -608px center;}
..tr-editHtml {color: rgb(0, 0, 153);}
..tr-formatBlock .goog-toolbar-menu-button-caption {color: rgb(34, 68, 102);=
width: 12ex; height: 16px; overflow: hidden;}
..goog-menu .goog-palette {outline: medium none; cursor: default;}
..goog-menu .goog-palette-table {margin: 5px; border: 1px solid rgb(102, 102=
, 102); border-collapse: collapse;}
..goog-menu .goog-palette-cell {height: 18px; width: 18px; margin: 0px; bord=
er-width: 0px 1px 0px 0px; border-style: none solid none none; border-color=
: currentcolor rgb(102, 102, 102) currentcolor currentcolor; -moz-border-to=
p-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: =
none; -moz-border-left-colors: none; border-image: none; text-align: center=
; vertical-align: middle; cursor: pointer;}
..goog-menu .goog-palette-cell .goog-palette-colorswatch {position: relative=
; height: 18px; width: 18px; border: medium none; font-size: x-small;}
..goog-menu .goog-palette-cell-hover .goog-palette-colorswatch {height: 16px=
; width: 16px; border: 1px solid rgb(255, 255, 255);}
..goog-menu .goog-palette-cell-selected .goog-palette-colorswatch {height: 1=
6px; width: 16px; border: 1px solid rgb(51, 51, 51); color: rgb(255, 255, 2=
55); font-weight: bold; background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/editor/editortoolbar.png") no-repeat scroll -368px center;}
..goog-menu .goog-palette-customcolor {position: relative; height: 15px; wid=
th: 15px; font-size: x-small; background-color: rgb(250, 250, 250); color: =
rgb(102, 102, 102); border: 1px solid rgb(238, 238, 238);}
..goog-menu .goog-palette-cell-hover .goog-palette-customcolor {background-c=
olor: rgb(255, 238, 238); border: 1px solid rgb(255, 102, 102); color: rgb(=
255, 102, 102);}
..tr_toolbar {font-family: arial; font-size: 90%;}
..container ,.containerhover ,.containeron {float: left; margin: 2px 3px 2px=
0px !important; padding: 0px !important; color: rgb(0, 0, 0); cursor: defa=
ult;}
..desc {margin: 0px !important; line-height: 0.2em !important; background: r=
gba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/bg/cbleft_ltr.gif") no-repeat=
scroll left top;}
..link {margin: 0px !important; padding: 4px 0px 0px 9px !important; backgro=
und: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/bg/cbleft_ltr.gif") no-=
repeat scroll left bottom;}
..link em {display: block !important; padding: 0px 8px 6px 0px !important; f=
ont-style: normal; line-height: 1em !important; text-decoration: none; text=
-align: center !important; background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/editor/bg/cbright_ltr.gif") no-repeat scroll right bottom;}
div.leftpill ,div.leftpillhover ,div.leftpillon {margin-right: 0px !importa=
nt;}
div.leftpill p em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edit=
or/bg/cbpillbg.gif") no-repeat scroll right bottom;}
div.middlepill ,div.middlepillhover ,div.middlepillon {margin-right: 0px !i=
mportant;}
div.middlepill {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/=
bg/cbpillbg.gif") no-repeat scroll right top;}
div.middlepill p.desc {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/=
editor/bg/cbleftpill_ltr.gif") no-repeat scroll left top;}
div.middlepill p.link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/=
editor/bg/cbleftpill_ltr.gif") no-repeat scroll left bottom;}
div.middlepill p em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/ed=
itor/bg/cbpillbg.gif") no-repeat scroll right bottom;}
div.rightpill p.desc {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/e=
ditor/bg/cbleftpill_ltr.gif") no-repeat scroll left top;}
div.rightpill p.link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/e=
ditor/bg/cbleftpill_ltr.gif") no-repeat scroll left bottom;}
..container {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/bg/c=
bright_ltr.gif") no-repeat scroll right top;}
..leftpill {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/bg/cb=
pillbg.gif") no-repeat scroll right top;}
..containerhover {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor=
/bg/cbright_h_ltr.gif") no-repeat scroll right top;}
..containerhover .p1 {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/ed=
itor/bg/cbleft_h_ltr.gif") no-repeat scroll left top;}
..containerhover .p2 {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/ed=
itor/bg/cbleft_h_ltr.gif") no-repeat scroll left bottom;}
..containerhover .p2 em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/editor/bg/cbright_h_ltr.gif") no-repeat scroll right bottom;}
div.middlepillhover {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/ed=
itor/bg/cbpillbg_h.gif") no-repeat scroll right top;}
div.middlepillhover p.desc {background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/editor/bg/cbleftpill_h_ltr.gif") no-repeat scroll left top;}
div.middlepillhover p.link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/editor/bg/cbleftpill_h_ltr.gif") no-repeat scroll left bottom;}
div.middlepillhover p.p2 em {background: rgba(0, 0, 0, 0) url("//ssl.gstati=
c.com/editor/bg/cbpillbg_h.gif") no-repeat scroll right bottom;}
div.leftpillhover {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edit=
or/bg/cbpillbg_h.gif") no-repeat scroll right top;}
div.leftpillhover p em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/editor/bg/cbpillbg_h.gif") no-repeat scroll right bottom;}
div.leftpillhover .p2 em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.c=
om/editor/bg/cbpillbg_h.gif") no-repeat scroll right bottom;}
div.rightpillhover p.desc {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/editor/bg/cbleftpill_h_ltr.gif") no-repeat scroll left top;}
div.rightpillhover p.link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/editor/bg/cbleftpill_h_ltr.gif") no-repeat scroll left bottom;}
..containeron {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/bg=
/cbright_o_ltr.gif") no-repeat scroll right top;}
..containeron .p1 {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edito=
r/bg/cbleft_o_ltr.gif") no-repeat scroll left top;}
..containeron .p2 {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edito=
r/bg/cbleft_o_ltr.gif") no-repeat scroll left bottom;}
..containeron .p2 em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/ed=
itor/bg/cbright_o_ltr.gif") no-repeat scroll right bottom;}
div.middlepillon {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edito=
r/bg/cbpillbg_o.gif") no-repeat scroll right top;}
div.middlepillon p.desc {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.co=
m/editor/bg/cbleftpill_o_ltr.gif") no-repeat scroll left top;}
div.middlepillon p.link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.co=
m/editor/bg/cbleftpill_o_ltr.gif") no-repeat scroll left bottom;}
div.middlepillon p.p2 em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.c=
om/editor/bg/cbpillbg_o.gif") no-repeat scroll right bottom;}
div.leftpillon {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/=
bg/cbpillbg_o.gif") no-repeat scroll right top;}
div.leftpillon p em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/ed=
itor/bg/cbpillbg_o.gif") no-repeat scroll right bottom;}
div.leftpillon .p2 em {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/=
editor/bg/cbpillbg_o.gif") no-repeat scroll right bottom;}
div.rightpillon p.desc {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/editor/bg/cbleftpill_o_ltr.gif") no-repeat scroll left top;}
div.rightpillon p.link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com=
/editor/bg/cbleftpill_o_ltr.gif") no-repeat scroll left bottom;}
..container span ,.containerhover span ,.containeron span {background-positi=
on: 0% 50%; padding: 2px 0px 2px 20px !important; margin: -2px 0px !importa=
nt; width: 1px !important; white-space: nowrap !important;}
..container .icon_none ,.containerhover .icon_none ,.containeron .icon_none =
{padding: 2px 0px 2px 2px !important;}
..icon {width: 1.5em !important; font-family: times; line-height: 1.2em !imp=
ortant; font-weight: bold;}
..container .imageOnly ,.containerhover .imageOnly ,.containeron .imageOnly =
{margin-right: -1ex !important; white-space: normal !important; direction: =
ltr;}
..container span.justify ,.containerhover span.justify ,.containeron span.ju=
stify {padding: 0px 0px 0px 12px !important;}
..icon_image {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/ico=
ns/icon_image.gif") no-repeat scroll 0% 0%;}
..icon_link {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/icon=
s/icon_link.gif") no-repeat scroll 0% 0%;}
..icon_bullet {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/ic=
ons/icon_bullet.gif") no-repeat scroll 0% 0%;}
..icon_numbered {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/=
icons/icon_numbered.gif") no-repeat scroll 0% 0%;}
..icon_outdent {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/i=
cons/icon_outdent.gif") no-repeat scroll 0% 0%;}
..icon_indent {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/ic=
ons/icon_indent.gif") no-repeat scroll 0% 0%;}
..icon_text {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/icon=
s/icon_text.gif") no-repeat scroll 0% 0%;}
..icon_textbg {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/ic=
ons/icon_textbg.gif") no-repeat scroll 0% 0%;}
..icon_font {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/icon=
s/icon_font.gif") no-repeat scroll 0% 0%;}
..icon_size {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/icon=
s/icon_size.gif") no-repeat scroll 0% 0%;}
..icon_justleft {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/=
icons/icon_left.gif") no-repeat scroll 0% 0%;}
..icon_justmiddle {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edito=
r/icons/icon_middle.gif") no-repeat scroll 0% 0%;}
..icon_justright {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor=
/icons/icon_right.gif") no-repeat scroll 0% 0%;}
..icon_wfield {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/ic=
ons/icon_wfield.gif") no-repeat scroll 0% 0%;}
..icon_removeformat {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edi=
tor/icons/icon_removeformatting.gif") no-repeat scroll 0% 0%;}
..icon_blockquote {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/edito=
r/icons/icon_blockquote.gif") no-repeat scroll 0% 0%;}
..icon_gadget {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/ic=
ons/icon_gadget.gif") no-repeat scroll 0% 0%;}
..icon_ltr {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/icons=
/icon_ltr_dir.gif") no-repeat scroll 0% 0%;}
..icon_rtl {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.com/editor/icons=
/icon_rtl_dir.gif") no-repeat scroll 0% 0%;}
..toolbar_rtl .icon_bullet {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/editor/icons/icon_bullet_rtl.gif") no-repeat scroll left center;}
..toolbar_rtl .icon_numbered {background: rgba(0, 0, 0, 0) url("//ssl.gstati=
c.com/editor/icons/icon_numbered_rtl.gif") no-repeat scroll left center;}
..toolbar_rtl .icon_outdent {background: rgba(0, 0, 0, 0) url("//ssl.gstatic=
..com/editor/icons/icon_outdent_rtl.gif") no-repeat scroll left center;}
..toolbar_rtl .icon_indent {background: rgba(0, 0, 0, 0) url("//ssl.gstatic.=
com/editor/icons/icon_indent_rtl.gif") no-repeat scroll left center;}
..toolbar_rtl .icon_blockquote {background: rgba(0, 0, 0, 0) url("//ssl.gsta=
tic.com/editor/icons/icon_blockquote_rtl.gif") no-repeat scroll left center=
;}
..link em b {padding-left: 0.2em !important; background: rgba(0, 0, 0, 0) ur=
l("//ssl.gstatic.com/editor/bg/downarrow.gif") no-repeat scroll 80% 50%;}
..disabled {opacity: 0.5; cursor: default;}
#tr_preloadImages {width: 0px; height: 0px; display: inline;}
..cbleft {background-image: url("//ssl.gstatic.com/editor/bg/cbleft_ltr.gif"=
);}
..cbleft_h {background-image: url("//ssl.gstatic.com/editor/bg/cbleft_h_ltr.=
gif");}
..cbleft_o {background-image: url("//ssl.gstatic.com/editor/bg/cbleft_o_ltr.=
gif");}
..cbleftpill {background-image: url("//ssl.gstatic.com/editor/bg/cbleftpill_=
ltr.gif");}
..cbleftpill_h {background-image: url("//ssl.gstatic.com/editor/bg/cbleftpil=
l_h_ltr.gif");}
..cbleftpill_o {background-image: url("//ssl.gstatic.com/editor/bg/cbleftpil=
l_o_ltr.gif");}
..cbpillbggif {background-image: url("//ssl.gstatic.com/editor/bg/cbpillbg.g=
if");}
..cbpillbgpng {background-image: url("//ssl.gstatic.com/editor/bg/cbpillbg.p=
ng");}
..cbpillbg_h {background-image: url("//ssl.gstatic.com/editor/bg/cbpillbg_h.=
gif");}
..cbright {background-image: url("//ssl.gstatic.com/editor/bg/cbright_ltr.gi=
f");}
..cbright_h {background-image: url("//ssl.gstatic.com/editor/bg/cbright_h_lt=
r.gif");}
..cbright_o {background-image: url("//ssl.gstatic.com/editor/bg/cbright_o_lt=
r.gif");}
..downarrow {background-image: url("//ssl.gstatic.com/editor/bg/downarrow.gi=
f");}
..cbpillbg_o {background-image: url("//ssl.gstatic.com/editor/bg/cbpillbg_o.=
gif");}
..tr_popupmenu {position: absolute; z-index: 1000;}
..tr_popupmenu .goog-menu {-moz-user-select: none; background-attachment: sc=
roll; background-color: rgb(195, 217, 255); background-image: none; backgro=
und-repeat: repeat; border-width: 2px; border-style: solid; border-color: r=
gb(232, 241, 255) rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);=
cursor: pointer; padding: 2px;}
..tr_popupmenu .goog-menuitem {background-attachment: scroll; background-col=
or: rgb(195, 217, 255); background-image: none; background-repeat: repeat; =
color: rgb(0, 0, 0);}
..tr_popupmenu .goog-menuitem-highlight {background-color: rgb(85, 112, 204)=
; color: rgb(255, 255, 255);}
..tr_colorpicker {position: absolute; z-index: 1000; background-color: rgb(1=
87, 187, 187);}
..tr_colorpicker .goog-palette {outline: medium none; -moz-user-select: none=
; cursor: default;}
..tr_colorpicker .goog-palette-table {border: 1px solid rgb(102, 102, 102); =
border-collapse: collapse !important; padding: 0px; margin: 0px;}
..tr_colorpicker .goog-palette-cell {height: 13px; width: 15px; margin: 0px;=
border: 0px none; padding: 0px; text-align: center; vertical-align: middle=
;}
..tr_colorpicker .goog-palette-colorswatch {position: relative; height: 13px=
; width: 15px; border: 1px solid rgb(102, 102, 102); font-size: 1px;}
..tr_colorpicker .goog-palette-cell-hover .goog-palette-colorswatch {border:=
1px solid rgb(255, 255, 255);}
..tr_colorpicker .goog-palette-cell-selected .goog-palette-colorswatch {bord=
er: 1px solid rgb(0, 0, 0); color: rgb(255, 255, 255);}
..ac-renderer {border: 1px solid rgb(102, 102, 102); background: rgb(224, 23=
6, 255) none repeat scroll 0% 0%; color: rgb(0, 0, 204); margin: 0px; paddi=
ng: 0px 0px 1px; z-index: 10; position: absolute;}
..ac-renderer div {margin: 2px; cursor: pointer; padding: 0px 10px;}
..ac-renderer div b {color: rgb(0, 0, 255);}
..ac-renderer div.active {background: rgb(195, 217, 255) none repeat scroll =
0% 0%;}
..picker-dialog {background: rgb(255, 255, 255) none repeat scroll 0% 0%; bo=
rder: 1px solid rgb(172, 172, 172); position: absolute; box-shadow: 0px 4px=
16px rgba(0, 0, 0, 0.2); z-index: 1021; outline: medium none; padding: 0px=
;}
..picker.modal-dialog-content {width: 705px; height: 370px; padding: 0px; ma=
rgin: 0px; position: relative; border: 0px none;}
..picker.modal-dialog-bg {background: rgb(255, 255, 255) none repeat scroll =
0% 0%; left: 0px; position: absolute; top: 0px; z-index: 1001;}
..picker.modal-dialog-title ,.picker.modal-dialog-buttons {display: none;}
..picker-frame {width: 100%; height: 100%; border: 0px none; overflow: hidde=
n;}
..goog-toolbar {padding: 6px; border-top: 1px solid rgb(229, 229, 229); bord=
er-bottom: 1px solid rgb(235, 235, 235); background: rgb(245, 245, 245) non=
e repeat scroll 0% 0%;}
..goog-toolbar-button ,.goog-toolbar-menu-button {display: inline-block; tex=
t-align: center; color: rgb(85, 85, 85); font-size: 11px; font-weight: bold=
; height: 27px; padding: 0px 8px; line-height: 27px; transition: all 0.218s=
ease 0s; background-color: rgb(245, 245, 245); background-image: -moz-line=
ar-gradient(center top , rgb(245, 245, 245), rgb(241, 241, 241)); -moz-user=
-select: none; cursor: default; border: 1px solid transparent;}
..goog-toolbar-button-hover ,.goog-toolbar-menu-button-hover {border: 1px so=
lid rgb(198, 198, 198); color: rgb(51, 51, 51); transition: all 0s ease 0s;=
background-color: rgb(248, 248, 248); background-image: -moz-linear-gradie=
nt(center top , rgb(248, 248, 248), rgb(241, 241, 241)); box-shadow: 0px 1p=
x 1px rgba(0, 0, 0, 0.1);}
..goog-toolbar-button-active ,.goog-toolbar-menu-button-active {background-c=
olor: rgb(246, 246, 246); background-image: -moz-linear-gradient(center top=
, rgb(246, 246, 246), rgb(241, 241, 241)); box-shadow: 0px 1px 2px rgba(0,=
0, 0, 0.1) inset;}
..goog-toolbar-button-checked ,.goog-toolbar-menu-button-checked {background=
-color: rgb(238, 238, 238); background-image: -moz-linear-gradient(center t=
op , rgb(238, 238, 238), rgb(224, 224, 224)); box-shadow: 0px 1px 2px rgba(=
0, 0, 0, 0.1) inset; border: 1px solid rgb(204, 204, 204); color: rgb(51, 5=
1, 51);}
..goog-toolbar-button-inner-box ,.goog-toolbar-button-outer-box ,.goog-toolb=
ar-menu-button-inner-box ,.goog-toolbar-menu-button-outer-box {border: medi=
um none !important; padding: 0px !important; margin: 0px !important;}
..goog-toolbar-menu-button-inner-box {padding-top: 1px !important;}
..goog-toolbar-menu-button-caption {padding-bottom: 4px; height: auto !impor=
tant; color: rgb(85, 85, 85) !important;}
..goog-toolbar-menu-button-hover .goog-toolbar-menu-button-caption {color: r=
gb(51, 51, 51) !important;}
..goog-toolbar-menu-button-dropdown {position: relative; top: 3px;}
..goog-color-menu-button-indicator {line-height: 0;}
..tr-icon {display: inline-block;}
..tr-dialog {position: absolute; width: 475px; background: rgb(255, 255, 255=
) none repeat scroll 0% 0%; padding: 38px 42px 30px;}
..tr-dialog button {color: rgb(102, 102, 102); font-size: 11px; font-weight:=
bold; text-align: center; margin-right: 16px; white-space: nowrap; height:=
29px; line-height: 27px; min-width: 74px; outline: 0px none; padding: 0px =
8px; border-radius: 2px; cursor: pointer; transition: all 0.218s ease 0s; d=
isplay: inline-block; border: 1px solid rgba(0, 0, 0, 0.1); background-colo=
r: rgb(245, 245, 245); background-image: -moz-linear-gradient(center top , =
rgb(245, 245, 245), rgb(241, 241, 241));}
..tr-dialog button:hover {transition: all 0.218s ease 0s; box-shadow: 0px 1p=
x 1px rgba(0, 0, 0, 0.1); border: 1px solid rgb(198, 198, 198); color: rgb(=
51, 51, 51); background-color: rgb(248, 248, 248); background-image: -moz-l=
inear-gradient(center top , rgb(248, 248, 248), rgb(241, 241, 241));}
..tr-dialog button.goog-buttonset-default {border: 1px solid rgb(48, 121, 23=
7); color: rgb(255, 255, 255); background-color: rgb(77, 144, 254); backgro=
und-image: -moz-linear-gradient(center top , rgb(77, 144, 254), rgb(71, 135=
, 237));}
..tr-dialog button.goog-buttonset-default:hover {color: rgb(255, 255, 255); =
border: 1px solid rgb(47, 91, 183); background-color: rgb(53, 122, 232); ba=
ckground-image: -moz-linear-gradient(center top , rgb(77, 144, 254), rgb(53=
, 122, 232));}
..tr-link-dialog-target-input ,#linkdialog-text {border-width: 1px; border-s=
tyle: solid; border-color: rgb(192, 192, 192) rgb(217, 217, 217) rgb(217, 2=
17, 217); -moz-border-top-colors: none; -moz-border-right-colors: none; -mo=
z-border-bottom-colors: none; -moz-border-left-colors: none; border-image: =
none; vertical-align: top; box-sizing: border-box; border-radius: 1px; disp=
lay: inline-block; background-color: rgb(255, 255, 255); line-height: 27px;=
padding-left: 8px; color: rgb(51, 51, 51); height: 29px;}
..tr-link-dialog-target-input:hover ,#linkdialog-text:hover {border-width: 1=
px; border-style: solid; border-color: rgb(160, 160, 160) rgb(185, 185, 185=
) rgb(185, 185, 185); -moz-border-top-colors: none; -moz-border-right-color=
s: none; -moz-border-bottom-colors: none; -moz-border-left-colors: none; bo=
rder-image: none; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1) inset;}
..tr-link-dialog-target-input:focus ,#linkdialog-text:focus {box-shadow: 0px=
1px 2px rgba(0, 0, 0, 0.3) inset; outline: medium none; border: 1px solid =
rgb(77, 144, 254);}
..tr-dialog .modal-dialog-title {display: none;}
#linkdialog-text {position: relative; top: -7px; margin-bottom: 12px;}
..tr-tabpane-caption {margin-bottom: 4px;}
..tr-tabpane .goog-tab-bar {background: rgba(0, 0, 0, 0) none repeat scroll =
0% 0%; margin-right: 12px; height: 160px;}
..tr-tabpane .goog-tab {border: medium none; background: rgb(255, 255, 255) =
none repeat scroll 0% 0%; padding: 8px; left: 0px; margin-left: 0px;}
..tr-tabpane .goog-tab-selected {border: medium none; background: rgb(255, 2=
55, 255) none repeat scroll 0% 0%; padding: 8px; left: 0px;}
..tr-tabpane .goog-tab-hover {background: rgb(238, 238, 238) none repeat scr=
oll 0% 0%;}
..tr-tabpane .goog-tab input {margin-left: 0px;}
..tr-dialog .modal-dialog-buttons {margin-top: 24px;}
..tr-dialog .goog-link-button {text-decoration: none; color: rgb(17, 85, 204=
); cursor: pointer; margin-top: 0px !important; margin-bottom: 8px;}
..tr-link-dialog-target-input {display: block; margin: 8px 0px; width: 280px=
!important;}
..tr-link-dialog-explanation-text {line-height: 17px;}
..tr-fontSize .goog-toolbar-menu-button-caption {min-width: 8ex; width: auto=
; overflow: auto; white-space: nowrap;}
plaintext {display: none;}
html {color:rgb(34, 34, 34);visibility:visible;quotes:"=E2=80=9C" "=E2=80=
=9D" "=E2=80=98" "=E2=80=99";list-style-type:disc;list-style-image:none;lis=
t-style-position:outside;page-break-inside:auto;font-family:"Arial","Helvet=
ica",sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-=
indent:0px;text-align:start;text-transform:none;white-space:normal;caption-=
side:top;border-collapse:separate;border-spacing:0px 0px;empty-cells:show;c=
ursor:auto;}
body {position:relative !important;top:0 !important;left:0 !important;right=
:auto !important;display:block !important;visibility:visible !important;fon=
t-family:"Arial","Helvetica",sans-serif !important;font-size:13px !importan=
t;font-weight:400 !important;font-variant:normal !important;font-style:norm=
al !important;color:rgb(34, 34, 34) !important;text-align:start !important;=
text-decoration:none !important;text-indent:0px !important;text-transform:n=
one !important;letter-spacing:normal !important;white-space:normal !importa=
nt;word-spacing:0px !important;}
img {-moz-force-broken-image-icon: 1;}</style><br></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/f90d8cd7-d12c-44c4-8f4f-78ebe10ab344%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/f90d8cd7-d12c-44c4-8f4f-78ebe10ab344=
%40isocpp.org</a>.<br />
------=_Part_5930_450684669.1506998602871--
------=_Part_5929_1988271860.1506998602831--
.
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue, 03 Oct 2017 09:40:59 +0200
Raw View
On 10/03/2017 01:16 AM, Niall Douglas wrote:
> 1.2 item 10: "unexpected_type" seems to be a particularly obtuse
> naming choice when reading the expression here.
>=20
>=20
> That's Expected. Be aware that the Toronto meeting renamed it to `unexpec=
ted<E>` now. And it's gained template deduction guides like Outcome has for=
`success<T>` and `failure<E>`.
It would be good if your comparison paper would use the updated terms.
> Regardless of whether E is constrained (similar to "result"), the beh=
avior
> prescribed in item 11 seems reasonable. Oh, and std::error_code has
> an "ok" value; can we just return that instead of throwing bad_result=
_access,
> or is that too non-orthogonal?
>=20
>=20
> Yeah, I'm actually in agreement on that. But the Boost peer review was no=
t.
>=20
> Also, technically speaking, a default constructed error code is not an ok=
value. Nowhere in the standard does it actually guarantee that. Nor can it=
, because perhaps on some OS's system category the code 0 is not an ok valu=
e, and is in fact something very bad.
I disagree.
Reading 22.5.3 [syserr.errcode], a default-constructed std::error_code
initializes _val =3D 0, and we later have an "operator bool" that compares
against _val =3D=3D 0. I believe it's the expected usage pattern that you
invoke "operator bool" to determine whether std::error_code actually
says "here's an error".
I do agree that an xxx_errc enum's value=3D0 might not yield an "ok"
std::error_code, because make_error_code() for this enum maps away
value =3D=3D 0 to something else.
> 2.1 "Result is specifically designed..." The argument then talks abou=
t
> "compile-time overhead for variant storage with strong never-empty
> guarantees" For someone not well-versed in the variant wars, could
> you please explain (in the paper)? This is all templates in any case=
,
> right? (also mentioned in 3.2)
>=20
>=20
> I'll see what I can do about this. But even with explanation, some don't =
see the issue. Vicente for example thinks the compiler load for strong neve=
r empty variant storage to not be a problem. I say it does, but my proof is=
not the use of an Expected implementation, but rather when I wrapped std::=
variant into an Outcome which isn't the same thing because std::variant is =
really quite unusually hard on the compiler.
>=20
> And even then, it all depends on your personal weighting of the importanc=
e of lightweightness of interface files vs header files. And that encompass=
es a huge range of opinion, none of which is wrong per se. Though most on S=
G14 would tend in one direction on that.
There's a lot of stuff in the standard (e.g. stoi) that came in for
"ease of use" motivations, mostly oblivious to the argument "but it's
too slow for my use-case" (which, at least for me, was mostly "shrug,
it's a library facility, if I don't use it, I don't have to care").
result<T,E> (or whatever its final name) should be a widely used low-level
API facility, including being used in a v2 filesystem library etc.
If it's a serious compile-time burden (for example, because it needs to
#include a bunch of stuff), this is not good.
Though adoption of to_chars / from_chars is a move in the right direction,
including a C-compatible interface.
(Full disclosure: I'm the author of to_chars / from_chars.)
> One of Bjarne's concerns is "make it hard to ignore errors". How is
> that reflected in either design, in particular for T=3Dvoid?
>=20
>=20
> Outcome is specifically designed to be used primarily in function returns=
, so it is able to make stronger assurances that errors cannot be easily ig=
nored.
.... which are (e.g. [[nodiscard]] on the class)? (Please explain in the pa=
per; maybe I've overlooked it.)
=20
> Expected is specifically designed as a primitive on top of which you cons=
truct other stuff. That makes it hard to make such strong assurances.
Uh, that doesn't help the API vocabulary use-case: Having 10 different "on =
top" things
just fragments the landscape, if developed independently.
> I personally speaking think that WG21 should standardise /layers/ of impl=
ementation for these objects, not some one-size-fits-all single object like=
Expected which can never really deliver good practice on its own. But I'm =
told the committee don't want that. So the best I can do is submit a paper =
saying "please don't do X, Y and Z which the Boost peer review agreed to be=
a design mistake relative to other choices", and hope that what gets stand=
ardised doesn't wreck things too badly for future developments.
We're unlikely to get it right in WG21 if we're not seeing the full set
of such objects.
> The docs don't show it yet, but Outcome v2 is precisely such a layered de=
sign (so was v1, but different layers boost-dev didn't care for). You have:
>=20
> * unchecked<T, E> - no runtime checking for correct usage at all
> * checked<T, E> - throws bad_result_access_with<E> or bad_result_access=
if used incorrectly
> * result<T, E> - different default behaviours when used incorrectly dep=
ending on user's choice of type E
Maybe here's a fundamental difference in attitude.
From my point of view, we have:
- narrow contract: undefined behavior if used incorrectly
- wide contract: exception showing "bad usage" if used incorrectly
and that's nice from a general viewpoint, but that seems to ignore the "E i=
s an error"
information entirely. I don't see "used incorrectly" here at all for reas=
onable E.
Let's take .value():
- if there is a T, return it
- if there is no T, there's an E. Since the user called .value(), he (imp=
licitly)
asked for E turned into an exception to be thrown. Make that happen as bes=
t as you
can (works for xxx_errc, std::error_code, std::exception_ptr, and std::exce=
ption as E
by default; allow ADL customization for the rest, i.e. introduce a "throw_r=
esult_exception(E)"
ADL customization point. I'm happy to make that =3Ddelete for other E's, re=
quiring the user
to specify a behavior if he wants non-canonical E's.).
Let's take .error():
- if there is an E, return it
- if there is no E, return a default-constructed E, which is supposed to s=
ay
"no error".
What's the fall-out?
- We have to say that a default-constructed xxx_errc indicates "no error"
(is there a real-world situation where an OS value 0 actually means "error"=
)?
- We can't reasonably use std::exception as E, because a default-construct=
ed
std::exception() still indicates an error, not "no error".
- std::error_code and std::exception_ptr as E work out-of-the-box.
This seems to support the following usage patterns (hypothetical filesystem=
library):
std::result<std::path, std::error_code> cwd =3D std::filesystem::current_=
path();
(use "auto" if specifying the result type overwhelms you)
#1
std::ifstream input(cwd.value() + "file.txt"); // throw exception if "c=
wd" didn't work
#2 [is this supported already? if not, has_value() is good enough for me]
if (cwd) { ... } // success
#3 [is this supported already? if not, has_error() is good enough for me]
if (!cwd) return cwd; // propagate error, same T
#4
if (!cwd) return cwd.error(); // propagate error; possibly different T
#5
std::error_code ec =3D cwd.error(); // process error code
(might be useful if E is some xxx_errc)
(You can, of course, also use has_value() or has_error(), if that better fi=
ts
the code pattern in the caller.)
(If E and T are similar enough, e.g. T=3D=3DE, and you want to deal with th=
is in
generic code that doesn't know about the details of T and E, you probably n=
eed
something like success<> and failure<>. But that's probably the right amou=
nt
of extra annotations for generic code to see your way through the maze. For
non-generic code, naming something like std::errc::blah already gives enoug=
h
hint in the source code that you're talking about an E, so I support implic=
it
conversion from E to result<T, E>. Same for T.)
> * outcome<T, E, P> - result but E carries payload P
I'd rather have such a P inside a (more general) "E".
> * outcome<T, EC, E> - result but can be T or EC or E or EC + E. This ne=
atly sidesteps the std::filesystem loss-of-context API problem.
What's wrong with plugging a "struct { EC, E }" into where "E" goes,
if that's what you want?
Jens
--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/59D33F0B.7000607%40gmx.net.
.
Author: Niall Douglas <nialldouglas14@gmail.com>
Date: Tue, 3 Oct 2017 08:21:33 -0700 (PDT)
Raw View
------=_Part_6957_113859296.1507044093620
Content-Type: multipart/alternative;
boundary="----=_Part_6958_1207466558.1507044093620"
------=_Part_6958_1207466558.1507044093620
Content-Type: text/plain; charset="UTF-8"
>
>
> Yet another reason to prefer `expected`: it doesn't encourage you to use
> poor interfaces.
>
A lot of these sweeping hand waving generalisations of yours unfortunately
seem to repeatedly come from ignorance. It's hardly the first time you've
made these unfounded claims, and you did so repeatedly throughout your
reply.
Outcome's checked<T, E> is very similar to expected<T, E>. Do your research
before making more claims without basis.
>
> `Result` uses "variant storage" just as much as `Expected`.
>
Outcome uses struct storage, not union storage.
>
> And a strong never empty guaranteed variant storage like Expected provides
>> means a ton load more again implementation code, much of which is complex
>> for the compiler to instantiate i.e. lots of SFINAE and concept matching.
>> You've got potential double buffering in there,
>>
>
> P0110 shows that you don't have to double-buffer to get the strong never
> empty guarantee. The proposal already requires, if you do
> assignment/emplacement, that `E` is nothrow move constructible. That allows
> you to avoid double buffering.
>
> That's not to say that the code isn't complex. But there is no potential
> for double buffering.
>
D0323R3 currently entirely deletes assignment unless E is nothrow move
constructible, thus allowing avoidance of having to consider double
buffering.
>
> The moment the standard starts requiring a specific implementation is the
> moment it stops being a standard and starts being an implementation of some
> standard. The committee doesn't "historically" dictate implementations
> because *it's not their job*.
>
> Things change as standard libraries grow.
Niall
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/1f550260-377a-4409-b29e-dee0769d6bd9%40isocpp.org.
------=_Part_6958_1207466558.1507044093620
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin: 0;margi=
n-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"l=
tr"><div><br></div><div>Yet another reason to prefer `expected`: it doesn&#=
39;t encourage you to use poor interfaces.</div></div></blockquote><div><br=
></div><div>A lot of these sweeping hand waving generalisations of yours un=
fortunately seem to repeatedly come from ignorance. It's hardly the fir=
st time you've made these unfounded claims, and you did so repeatedly t=
hroughout your reply.</div><div><br></div><div>Outcome's checked<T, =
E> is very similar to expected<T, E>. Do your research before maki=
ng more claims without basis.</div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;"><div dir=3D"ltr"><div><br></div><div>`Result` uses &q=
uot;variant storage" just as much as `Expected`.<br></div></div></bloc=
kquote><div><br></div><div>Outcome uses struct storage, not union storage.<=
/div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;=
margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr"><div></div><div><br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"=
><div dir=3D"ltr"><div> And a strong never empty guaranteed variant storage=
like Expected provides means a ton load more again implementation code, mu=
ch of which is complex for the compiler to instantiate i.e. lots of SFINAE =
and concept matching. You've got potential double buffering in there,</=
div></div></blockquote><div><br></div><div>P0110 shows that you don't h=
ave to double-buffer to get the strong never empty guarantee. The proposal =
already requires, if you do assignment/emplacement, that `E` is nothrow mov=
e constructible. That allows you to avoid double buffering.</div><div><br><=
/div><div>That's not to say that the code isn't complex. But there =
is no potential for double buffering.<br></div></div></blockquote><div><br>=
</div><div>D0323R3 currently entirely deletes assignment unless E is nothro=
w move constructible, thus allowing avoidance of having to consider double =
buffering.<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" styl=
e=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left:=
1ex;"><div dir=3D"ltr"><div></div><div><br></div><div>The moment the stand=
ard starts requiring a specific implementation is the moment it stops being=
a standard and starts being an implementation of some standard. The commit=
tee doesn't "historically" dictate implementations because <i=
>it's not their job</i>.</div><br></div></blockquote><div>Things change=
as standard libraries grow.</div><div><br></div><div>Niall=C2=A0</div></di=
v>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/1f550260-377a-4409-b29e-dee0769d6bd9%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1f550260-377a-4409-b29e-dee0769d6bd9=
%40isocpp.org</a>.<br />
------=_Part_6958_1207466558.1507044093620--
------=_Part_6957_113859296.1507044093620--
.
Author: Niall Douglas <nialldouglas14@gmail.com>
Date: Tue, 3 Oct 2017 08:59:59 -0700 (PDT)
Raw View
------=_Part_6969_863662561.1507046399209
Content-Type: multipart/alternative;
boundary="----=_Part_6970_1919930080.1507046399210"
------=_Part_6970_1919930080.1507046399210
Content-Type: text/plain; charset="UTF-8"
>
>
> > Also, technically speaking, a default constructed error code is not an
> ok value. Nowhere in the standard does it actually guarantee that. Nor can
> it, because perhaps on some OS's system category the code 0 is not an ok
> value, and is in fact something very bad.
>
> I disagree.
>
> Reading 22.5.3 [syserr.errcode], a default-constructed std::error_code
> initializes _val = 0, and we later have an "operator bool" that compares
> against _val == 0. I believe it's the expected usage pattern that you
> invoke "operator bool" to determine whether std::error_code actually
> says "here's an error".
>
> I do agree that an xxx_errc enum's value=0 might not yield an "ok"
> std::error_code, because make_error_code() for this enum maps away
> value == 0 to something else.
>
I agree that the standard wording *implies* that a code 0 with system
category is "no error here".
But it cannot claim that without defining what code 0 with system category
is, and it can't do that because it can't know what the system category
coding is for some arbitrary platform.
This is really a defect in the present C++ standard which should be fixed.
As Charley mentioned on sg14, people are thinking about fixing the
non-constexpr constructor of error_code anyway, and that fix will fix this
problem in any case.
>
> result<T,E> (or whatever its final name) should be a widely used low-level
> API facility, including being used in a v2 filesystem library etc.
> If it's a serious compile-time burden (for example, because it needs to
> #include a bunch of stuff), this is not good.
>
I would be surprised if Expected in its present proposal would be
considered usable in stable public ABIs by people with multi million line
codebases.
But that's my experience only from seeing what big multinationals permit in
their C++ interface files. Others will have different experiences, and
different opinions.
Outcome's types are as low impact on the compiler as I can make them. The
only compiler-expensive part is construction because of the fancy
std::variant style constructor design. After that, copying, moving,
everything else is trivially easy for the compiler because it's a plain
struct.
All that said, Outcome v2 has slower compile times than v1 did, and it was
variant based. But it's still not a straight comparison to Expected, I used
a lot of evil tricks which Boost rejected to bring down compiler load. v2
Outcome is straight SFINAE/Concepts based C++, no preprocessor trickery, no
cunning trampoline hacks, no approaching-UB shortcutting.
>
> Though adoption of to_chars / from_chars is a move in the right direction,
> including a C-compatible interface.
> (Full disclosure: I'm the author of to_chars / from_chars.)
>
A long overdue addition. Thank you for investing the effort.
> > Expected is specifically designed as a primitive on top of which you
> construct other stuff. That makes it hard to make such strong assurances.
>
> Uh, that doesn't help the API vocabulary use-case: Having 10 different "on
> top" things
> just fragments the landscape, if developed independently.
>
I agree. Which is why Outcome provides pre-canned primitives which work
well together and with hard ABI guarantees so other stuff can speak them
too.
>
> > I personally speaking think that WG21 should standardise /layers/ of
> implementation for these objects, not some one-size-fits-all single object
> like Expected which can never really deliver good practice on its own. But
> I'm told the committee don't want that. So the best I can do is submit a
> paper saying "please don't do X, Y and Z which the Boost peer review agreed
> to be a design mistake relative to other choices", and hope that what gets
> standardised doesn't wreck things too badly for future developments.
>
> We're unlikely to get it right in WG21 if we're not seeing the full set
> of such objects.
>
I can do no more than now for now. Once the second Boost peer review is
complete, and *if* they approve it for entry into Boost, then I will be
more than happy to come to WG21 at the Rapperswil meeting in 2018 and say
"this set of layered objects is what an extensive peer review produced".
But until then, I can only currently claim "this set of layered objects is
what I personally interpreted from 800+ bits of feedback during the first
peer review, and it may be an incorrect/unwise/wrong interpretation".
But equally I don't want Expected to lose out on entering C++ 20. If you
standardise something approximating Outcome's unchecked<T, E> I think
you're reasonably safe. That's what my current draft of D0762R0 argues for.
>
> > The docs don't show it yet, but Outcome v2 is precisely such a layered
> design (so was v1, but different layers boost-dev didn't care for). You
> have:
> >
> > * unchecked<T, E> - no runtime checking for correct usage at all
> > * checked<T, E> - throws bad_result_access_with<E> or
> bad_result_access if used incorrectly
> > * result<T, E> - different default behaviours when used incorrectly
> depending on user's choice of type E
>
> Maybe here's a fundamental difference in attitude.
>
> From my point of view, we have:
> - narrow contract: undefined behavior if used incorrectly
> - wide contract: exception showing "bad usage" if used incorrectly
>
> and that's nice from a general viewpoint, but that seems to ignore the "E
> is an error"
> information entirely. I don't see "used incorrectly" here at all for
> reasonable E.
>
The reason is that E is not necessarily an error for Expected. It's merely
an "unexpected".
For Outcome, we similarly do not require that E is an error. We special
case when it's one of a list of most likely common error types and do treat
E as an error, but otherwise we don't enforce on the user. What we do do is
make life awful for the user by disabling all implicit construction if they
choose E badly. That encourages the user to behave, but doesn't force them.
>
> Let's take .value():
> - if there is a T, return it
> - if there is no T, there's an E. Since the user called .value(), he
> (implicitly)
> asked for E turned into an exception to be thrown.
Outcome also allows for std::terminate to be called. Or any routine of your
choice.
> Make that happen as best as you
> can (works for xxx_errc, std::error_code, std::exception_ptr, and
> std::exception as E
> by default; allow ADL customization for the rest, i.e. introduce a
> "throw_result_exception(E)"
> ADL customization point. I'm happy to make that =delete for other E's,
> requiring the user
> to specify a behavior if he wants non-canonical E's.).
>
Pretty much Outcome v2's design. Slight variation on the throw ADL
customisation point: we provide two points, a policy class mechanism and a
C macro override mechanism.
>
> Let's take .error():
> - if there is an E, return it
> - if there is no E, return a default-constructed E, which is supposed to
> say
> "no error".
>
Outcome v1 did this. Boost peer review wanted it gone, so it's gone in v2.
(Eagle eyed folk may notice v2 does it anyway as an implementation detail,
but the docs don't mention it)
>
> What's the fall-out?
> - We have to say that a default-constructed xxx_errc indicates "no error"
> (is there a real-world situation where an OS value 0 actually means
> "error")?
> - We can't reasonably use std::exception as E, because a
> default-constructed
> std::exception() still indicates an error, not "no error".
> - std::error_code and std::exception_ptr as E work out-of-the-box.
>
> This seems to support the following usage patterns (hypothetical
> filesystem library):
>
> std::result<std::path, std::error_code> cwd =
> std::filesystem::current_path();
> (use "auto" if specifying the result type overwhelms you)
>
> #1
> std::ifstream input(cwd.value() + "file.txt"); // throw exception if
> "cwd" didn't work
>
Looks good.
>
> #2 [is this supported already? if not, has_value() is good enough for me]
> if (cwd) { ... } // success
>
Looks good (and yes boolean test is supported already in both Expected and
Outcome)
>
> #3 [is this supported already? if not, has_error() is good enough for me]
> if (!cwd) return cwd; // propagate error, same T
Ditto.
>
> #4
> if (!cwd) return cwd.error(); // propagate error; possibly different T
>
Works for Outcome as we permit implicit construction for E. For Expected it
would need to be:
if(!cwd) return unexpected(cwd.error());
>
> #5
> std::error_code ec = cwd.error(); // process error code
> (might be useful if E is some xxx_errc)
>
Also looks good.
>
> (You can, of course, also use has_value() or has_error(), if that better
> fits
> the code pattern in the caller.)
>
> (If E and T are similar enough, e.g. T==E, and you want to deal with this
> in
> generic code that doesn't know about the details of T and E, you probably
> need
> something like success<> and failure<>. But that's probably the right
> amount
> of extra annotations for generic code to see your way through the maze.
> For
> non-generic code, naming something like std::errc::blah already gives
> enough
> hint in the source code that you're talking about an E, so I support
> implicit
> conversion from E to result<T, E>. Same for T.)
>
Ok. You're basically at where the Boost peer review consensus arrived at
eventually.
>
> > * outcome<T, E, P> - result but E carries payload P
>
> I'd rather have such a P inside a (more general) "E".
>
Ah yes this is non-obvious.
The reason for this is to enhance interoperation between the three-variable
outcome and the two-variable result. So if you, a result returning
function, calls an outcome returning function, you can explicitly cast the
returned outcome into a result which implies either dropping the payload or
having the exception converted or mapped. Outcome provides ADL
customisation points so you can indicate what you want to happen there.
And of course users who want result<T, pair<EC, P>> can absolutely do that
anyway if they want.
>
> > * outcome<T, EC, E> - result but can be T or EC or E or EC + E. This
> neatly sidesteps the std::filesystem loss-of-context API problem.
>
> What's wrong with plugging a "struct { EC, E }" into where "E" goes,
> if that's what you want?
>
>
Some in the Boost peer review felt that it would be useful to be able to
return both an error code and an exception_ptr where the exception_ptr
contains the same error in thrown form, but with additional type erased
payload. Consuming code can then inspect the error code and do something
with that, or rethrow the exception ptr with embedded payload, or a myriad
of other possibilities. And I also mentioned how end users may wish to
configure namespace-local conversion heuristics for localised outcome<T,
EC, E|P> => result<T, EC|E|P>.
To the wider std-proposals, if you're reading this and your head is
beginning to hurt, you're beginning to get some idea of that 800+
contribution Boost peer review. The fact such a small and simple class can
be so vast in scope and effect and consequence is mind boggling.
Niall
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9998947d-ac3e-4e02-b36c-df1670b30312%40isocpp.org.
------=_Part_6970_1919930080.1507046399210
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin: 0;margi=
n-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><br>> Also=
, technically speaking, a default constructed error code is not an ok value=
.. Nowhere in the standard does it actually guarantee that. Nor can it, beca=
use perhaps on some OS's system category the code 0 is not an ok value,=
and is in fact something very bad.
<br>
<br>I disagree.
<br>
<br>Reading 22.5.3 [syserr.errcode], a default-constructed std::error_code
<br>initializes _val =3D 0, and we later have an "operator bool" =
that compares
<br>against _val =3D=3D 0. =C2=A0I believe it's the expected usage patt=
ern that you
<br>invoke "operator bool" to determine whether std::error_code a=
ctually
<br>says "here's an error".
<br>
<br>I do agree that an xxx_errc enum's value=3D0 might not yield an &qu=
ot;ok"
<br>std::error_code, because make_error_code() for this enum maps away
<br>value =3D=3D 0 to something else.
<br></blockquote><div><br></div><div>I agree that the standard wording <i>i=
mplies</i>=C2=A0that a code 0 with system category is "no error here&q=
uot;.</div><div><br></div><div>But it cannot claim that without defining wh=
at code 0 with system category is, and it can't do that because it can&=
#39;t know what the system category coding is for some arbitrary platform.<=
/div><div><br></div><div>This is really a defect in the present C++ standar=
d which should be fixed. As Charley mentioned on sg14, people are thinking =
about fixing the non-constexpr constructor of error_code anyway, and that f=
ix will fix this problem in any case.</div><div>=C2=A0</div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #=
ccc solid;padding-left: 1ex;"><br>result<T,E> (or whatever its final =
name) should be a widely used low-level
<br>API facility, including being used in a v2 filesystem library etc.
<br>If it's a serious compile-time burden (for example, because it need=
s to
<br>#include a bunch of stuff), this is not good.
<br></blockquote><div><br></div><div>I would be surprised if Expected in it=
s present proposal would be considered usable in stable public ABIs by peop=
le with multi million line codebases.</div><div><br></div><div>But that'=
;s my experience only from seeing what big multinationals permit in their C=
++ interface files. Others will have different experiences, and different o=
pinions.</div><div><br></div><div>Outcome's types are as low impact on =
the compiler as I can make them. The only compiler-expensive part is constr=
uction because of the fancy std::variant style constructor design. After th=
at, copying, moving, everything else is trivially easy for the compiler bec=
ause it's a plain struct.</div><div><br></div><div>All that said, Outco=
me v2 has slower compile times than v1 did, and it was variant based. But i=
t's still not a straight comparison to Expected, I used a lot of evil t=
ricks which Boost rejected to bring down compiler load. v2 Outcome is strai=
ght SFINAE/Concepts based C++, no preprocessor trickery, no cunning trampol=
ine hacks, no approaching-UB shortcutting.</div><div>=C2=A0</div><blockquot=
e class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: =
1px #ccc solid;padding-left: 1ex;">
<br>Though adoption of to_chars / from_chars is a move in the right directi=
on,
<br>including a C-compatible interface.
<br>(Full disclosure: I'm the author of to_chars / from_chars.)
<br></blockquote><div><br></div><div>A long overdue addition. Thank you for=
investing the effort.</div><div>=C2=A0</div><blockquote class=3D"gmail_quo=
te" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;paddi=
ng-left: 1ex;">> Expected is specifically designed as a primitive on top=
of which you construct other stuff. That makes it hard to make such strong=
assurances.
<br>
<br>Uh, that doesn't help the API vocabulary use-case: Having 10 differ=
ent "on top" things
<br>just fragments the landscape, if developed independently.
<br></blockquote><div><br></div><div>I agree. Which is why Outcome provides=
pre-canned primitives which work well together and with hard ABI guarantee=
s so other stuff can speak them too.</div><div>=C2=A0</div><blockquote clas=
s=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #c=
cc solid;padding-left: 1ex;">
<br>> I personally speaking think that WG21 should standardise /layers/ =
of implementation for these objects, not some one-size-fits-all single obje=
ct like Expected which can never really deliver good practice on its own. B=
ut I'm told the committee don't want that. So the best I can do is =
submit a paper saying "please don't do X, Y and Z which the Boost =
peer review agreed to be a design mistake relative to other choices", =
and hope that what gets standardised doesn't wreck things too badly for=
future developments.
<br>
<br>We're unlikely to get it right in WG21 if we're not seeing the =
full set
<br>of such objects.
<br></blockquote><div><br></div><div>I can do no more than now for now. Onc=
e the second Boost peer review is complete, and <b>if</b>=C2=A0they approve=
it for entry into Boost, then I will be more than happy to come to WG21 at=
the Rapperswil meeting in 2018 and say "this set of layered objects i=
s what an extensive peer review produced". But until then, I can only =
currently claim "this set of layered objects is what I personally inte=
rpreted from 800+ bits of feedback during the first peer review, and it may=
be an incorrect/unwise/wrong interpretation".</div><div><br></div><di=
v>But equally I don't want Expected to lose out on entering C++ 20. If =
you standardise something approximating Outcome's unchecked<T, E>=
I think you're reasonably safe. That's what my current draft of=C2=
=A0D0762R0 argues for.</div><div>=C2=A0</div><blockquote class=3D"gmail_quo=
te" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;paddi=
ng-left: 1ex;">
<br>> The docs don't show it yet, but Outcome v2 is precisely such a=
layered design (so was v1, but different layers boost-dev didn't care =
for). You have:
<br>>=20
<br>> =C2=A0 * unchecked<T, E> - no runtime checking for correct u=
sage at all
<br>> =C2=A0 * checked<T, E> - throws bad_result_access_with<E&=
gt; or bad_result_access if used incorrectly
<br>> =C2=A0 * result<T, E> - different default behaviours when us=
ed incorrectly depending on user's choice of type E
<br>
<br>Maybe here's a fundamental difference in attitude.
<br>
<br>From my point of view, we have:
<br>=C2=A0- narrow contract: undefined behavior if used incorrectly
<br>=C2=A0- wide contract: exception showing "bad usage" if used =
incorrectly
<br>
<br>and that's nice from a general viewpoint, but that seems to ignore =
the "E is an error"
<br>information entirely. =C2=A0 I don't see "used incorrectly&quo=
t; here at all for reasonable E.
<br></blockquote><div><br></div><div>The reason is that E is not necessaril=
y an error for Expected. It's merely an "unexpected".</div><d=
iv><br></div><div>For Outcome, we similarly do not require that E is an err=
or. We special case when it's one of a list of most likely common error=
types and do treat E as an error, but otherwise we don't enforce on th=
e user. What we do do is make life awful for the user by disabling all impl=
icit construction if they choose E badly. That encourages the user to behav=
e, but doesn't force them.</div><div>=C2=A0</div><blockquote class=3D"g=
mail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc sol=
id;padding-left: 1ex;">
<br>Let's take =C2=A0.value():
<br>=C2=A0- if there is a T, return it
<br>=C2=A0- if there is no T, there's an E. Since the user called =C2=
=A0.value(), he (implicitly)
<br>asked for E turned into an exception to be thrown. </blockquote><div><b=
r></div><div>Outcome also allows for std::terminate to be called. Or any ro=
utine of your choice.</div><div>=C2=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;paddin=
g-left: 1ex;">=C2=A0Make that happen as best as you
<br>can (works for xxx_errc, std::error_code, std::exception_ptr, and std::=
exception as E
<br>by default; allow ADL customization for the rest, i.e. introduce a &quo=
t;throw_result_exception(E)"
<br>ADL customization point. I'm happy to make that =3Ddelete for other=
E's, requiring the user
<br>to specify a behavior if he wants non-canonical E's.).
<br></blockquote><div><br></div><div>Pretty much Outcome v2's design. S=
light variation on the throw ADL customisation point: we provide two points=
, a policy class mechanism and a C macro override mechanism.</div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: =
0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>Let's take =C2=A0.error():
<br>=C2=A0- if there is an E, return it
<br>=C2=A0- if there is no E, return a default-constructed E, which is supp=
osed to say
<br>"no error".
<br></blockquote><div><br></div><div>Outcome v1 did this. Boost peer review=
wanted it gone, so it's gone in v2.</div><div><br></div><div>(Eagle ey=
ed folk may notice v2 does it anyway as an implementation detail, but the d=
ocs don't mention it)</div><div>=C2=A0</div><blockquote class=3D"gmail_=
quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pa=
dding-left: 1ex;">
<br>What's the fall-out?
<br>=C2=A0- We have to say that a default-constructed xxx_errc indicates &q=
uot;no error"
<br>(is there a real-world situation where an OS value 0 actually means &qu=
ot;error")?
<br>=C2=A0- We can't reasonably use std::exception as E, because a defa=
ult-constructed
<br>std::exception() still indicates an error, not "no error".
<br>=C2=A0- std::error_code and std::exception_ptr as E work out-of-the-box=
..
<br>
<br>This seems to support the following usage patterns (hypothetical filesy=
stem library):
<br>
<br>=C2=A0 std::result<std::path, std::error_code> cwd =3D std::files=
ystem::current_path(<wbr>);
<br>(use "auto" if specifying the result type overwhelms you)
<br>
<br>#1
<br>=C2=A0 std::ifstream input(cwd.value() + "file.txt"); =C2=A0 =
// throw exception if "cwd" didn't work
<br></blockquote><div><br></div><div>Looks good.</div><div>=C2=A0</div><blo=
ckquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-=
left: 1px #ccc solid;padding-left: 1ex;">
<br>#2 [is this supported already? if not, has_value() is good enough for m=
e]
<br>=C2=A0 if (cwd) { ... } =C2=A0 // success
<br></blockquote><div><br></div><div>Looks good (and yes boolean test is su=
pported already in both Expected and Outcome)=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #cc=
c solid;padding-left: 1ex;">
<br>#3 [is this supported already? if not, has_error() is good enough for m=
e]
<br>=C2=A0 if (!cwd) return cwd; =C2=A0// propagate error, same T</blockquo=
te><div><br></div><div>Ditto.</div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc soli=
d;padding-left: 1ex;"><br>#4
<br>=C2=A0 if (!cwd) return cwd.error(); =C2=A0 // propagate error; possibl=
y different T
<br></blockquote><div><br></div><div>Works for Outcome as we permit implici=
t construction for E. For Expected it would need to be:</div><div><br></div=
><div>if(!cwd) return unexpected(cwd.error());</div><div>=C2=A0</div><block=
quote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-le=
ft: 1px #ccc solid;padding-left: 1ex;">
<br>#5
<br>=C2=A0 std::error_code ec =3D cwd.error(); =C2=A0// process error code
<br>=C2=A0 (might be useful if E is some xxx_errc)
<br></blockquote><div><br></div><div>Also looks good.=C2=A0</div><blockquot=
e class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: =
1px #ccc solid;padding-left: 1ex;">
<br>(You can, of course, also use has_value() or has_error(), if that bette=
r fits
<br>the code pattern in the caller.)
<br>
<br>(If E and T are similar enough, e.g. T=3D=3DE, and you want to deal wit=
h this in
<br>generic code that doesn't know about the details of T and E, you pr=
obably need
<br>something like success<> and failure<>. =C2=A0But that'=
s probably the right amount
<br>of extra annotations for generic code to see your way through the maze.=
For
<br>non-generic code, naming something like std::errc::blah already gives e=
nough
<br>hint in the source code that you're talking about an E, so I suppor=
t implicit
<br>conversion from E to result<T, E>. =C2=A0Same for T.)
<br></blockquote><div><br></div><div>Ok. You're basically at where the =
Boost peer review consensus arrived at eventually.</div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;borde=
r-left: 1px #ccc solid;padding-left: 1ex;">
<br>> =C2=A0 * outcome<T, E, P> - result but E carries payload P
<br>
<br>I'd rather have such a P inside a (more general) "E".
<br></blockquote><div><br></div><div>Ah yes this is non-obvious.</div><div>=
<br></div><div>The reason for this is to enhance interoperation between the=
three-variable outcome and the two-variable result. So if you, a result re=
turning function, calls an outcome returning function, you can explicitly c=
ast the returned outcome into a result which implies either dropping the pa=
yload or having the exception converted or mapped. Outcome provides ADL cus=
tomisation points so you can indicate what you want to happen there.</div><=
div><br></div><div>And of course users who want result<T, pair<EC, P&=
gt;> can absolutely do that anyway if they want.</div><div>=C2=A0</div><=
blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bord=
er-left: 1px #ccc solid;padding-left: 1ex;">
<br>> =C2=A0 * outcome<T, EC, E> - result but can be T or EC or E =
or EC + E. This neatly sidesteps the std::filesystem loss-of-context API pr=
oblem.
<br>
<br>What's wrong with plugging a "struct { EC, E }" into wher=
e "E" goes,
<br>if that's what you want?
<br><br></blockquote><div><br></div><div>Some in the Boost peer review felt=
that it would be useful to be able to return both an error code and an exc=
eption_ptr where the exception_ptr contains the same error in thrown form, =
but with additional type erased payload. Consuming code can then inspect th=
e error code and do something with that, or rethrow the exception ptr with =
embedded payload, or a myriad of other possibilities. And I also mentioned =
how end users may wish to configure namespace-local conversion heuristics f=
or localised outcome<T, EC, E|P> =3D> result<T, EC|E|P>.</di=
v><div><br></div><div>To the wider std-proposals, if you're reading thi=
s and your head is beginning to hurt, you're beginning to get some idea=
of that 800+ contribution Boost peer review. The fact such a small and sim=
ple class can be so vast in scope and effect and consequence is mind boggli=
ng.</div><div><br></div><div>Niall</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9998947d-ac3e-4e02-b36c-df1670b30312%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/9998947d-ac3e-4e02-b36c-df1670b30312=
%40isocpp.org</a>.<br />
------=_Part_6970_1919930080.1507046399210--
------=_Part_6969_863662561.1507046399209--
.