An official website of the United States Government 
Here's how you know

Official websites use .gov

.gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS

A lock ( lock ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

PopPthe meaning of gamblingop Fruity

```html Exploring the Contents of PopPop Fruity

Exploring the Contents of PopPop Fruity

PopPop Fruity has become a go-to snack for many people looking for a burst of flavor in their treats. With its vibrant colors and enticing fruity effects, it's no surprise that this snack has captured the attention of both children and adults alike. But what exactly is in PopPop Fruity? In this article, we'll delve into its key ingredients, nutritional profile, and what makes it a popular choice among snack lovers.

1. Key Ingredients of PopPop Fruity

The foundation of any snack lies in its ingredients. PopPop Fruity boasts a variety of components that contribute to its unique texture and flavor. The core ingredients include:

  • Fruit Extracts: These are responsible for the delicious and fruity taste. Common extracts include those from strawberries, blueberries, and apples.
  • Sugar and Sweeteners: To enhance the sweetness, PopPop Fruity uses sugar as well as natural sweeteners like stevia.
  • Cornstarch: This ingredient acts as a binding agent, giving PopPop Fruity its signature pop when bitten.

2. Nutritional Profile

Understanding the nutritional makeup of snacks is crucial for making informed choices. PopPop Fruity generally offers:

  • Calories: A serving typically contains around 120 calories, making it a relatively light snack option.
  • Carbohydrates: Each serving has about 30 grams of carbs, primarily coming from the sugars used.
  • Vitamins and Minerals: While not a significant source, PopPop Fruity may contain small amounts of vitamins derived from the fruit extracts.

3. Allergen Information

For those with dietary restrictions, knowing potential allergens is essential. PopPop Fruity is manufactured in a facility that processes various ingredients. Therefore, it may contain traces of:

  • Nuts
  • Dairy
  • Gluten

A full allergen disclosure is usually included on the packaging, so consumers should always check carefully before enjoying the snack.

4. Popularity Among Snack Lovers

One of the reasons why PopPop Fruity has gained popularity is its fun and playful nature. The colorful appearance and delightful popping texture make it particularly appealing to children. Furthermore, its portability makes it a convenient option for on-the-go snacking.

Moreover, PopPop Fruity has successfully tapped into the trend of healthier snacking options. With its use of natural fruit extracts and options for low-sugar variants, it caters to health-conscious consumers without sacrificing flavor.

5. Conclusion

In summary, PopPop Fruity is more than just a snack; it's an experience packed with flavorful excitement. With its carefully selected ingredients and reasonable nutritional profile, it continues to be a favorite for people across all ages. Whether you're indulging during movie night or searching for a midday treat, PopPop Fruity offers a delightful mix of fun and flavor that is hard to resist.

``` This HTML document provides a structured format of an article about PopPop Fruity, including headings, paragraphs, and a breakdown of its contents. Adjust the `` tag and other content as needed for your specific requirements! <div class="4hljsdd82k1up1gs related ntext"> <div class="mhy87s73q432a5lt item"> <span class="asch3q39h9ygjbmk subtitle">Spotlight:</span> <a class="2r73kuupeavi47cu article-link" href="//solophlogin.com/win/qhdSfQNt-99/">online gambling real money texas holdem</a> </div> <div class="043lwjka8wficjbx item"> <span class="xxwr2qwrktsmp8xt subtitle">Spotlight:</span> <a class="hm1841c5duav623j article-link" href="//solophlogin.com/products/Qondddbk-74/">sopranos gambling</a> </div> <div class="gjne4cqf9ulys1p9 item"> <span class="46gyes4wzcijpci4 subtitle">Spotlight:</span> <a class="dpg7wc1hffbu0qhw article-link" href="//solophlogin.com/pc/TadOiUvk-12/">procter and gamble facilities</a> </div> <div class="qjzt5xspxfa7yukf item"> <span class="v3f16fc6h6mv4mwh subtitle">Spotlight:</span> <a class="y3tntb75hf6bqoza article-link" href="//solophlogin.com/pc/OdUKLBED-53/">flashyflashy gambling</a> </div> <div class="30eexs19w13emtlg item"> <span class="aycpjst4h9db2nx5 subtitle">Link:</span> <a class="8cp0cdhpyvqui9gw article-link" href="//solophlogin.com/app/BPJAMNgn-96/" target="_blank" rel="noopener">gin rummy app play with friends</a> </div> </div> </div> <div class="ij3k7kzr9wp1p332 tags"> <a href='//solophlogin.com/app/IwzNKjfO-34/'>free gambling online casinos</a> <a href='//solophlogin.com/jogo/XoGMSytk-50/'>procter & gamble zoominfo</a> <a href='//solophlogin.com/game/WLljyKDp-96/'>illinois gambling bill</a> <a href='//solophlogin.com/jogo/oEeyBRLS-34/'>fake csgo gambling sites</a> <a href='//solophlogin.com/jogo/EdBDsqzH-86/'>gambling research journal</a> <a href='//solophlogin.com/store/RlkhdVQD-23/'>gambling facts and statistics</a> <a href='//solophlogin.com/game/CcLzntsV-24/'>downy procter and gamble</a> <a href='//solophlogin.com/online/NYTDGIKn-27/'>funding gambling gateway</a> <a href='//solophlogin.com/app/cNUZpkCB-35/'>berkshire duracell procter gamble</a> </div> </div> </div> </div> </div> <script type="text/javascript"> var displayNextPrevNav = false var loggedIn = false; var articleId = 3860284; var moduleId = 1990; var mejPlayer; $(function () { if (!window.delayInitMediaElementJs) initMediaElementJs(); }); function initMediaElementJs() { mejPlayer = $(".article-view video").not(".noplayer").mediaelementplayer({ pluginPath: "https://www.defense.gov/desktopmodules/SharedLibrary/Plugins/MediaElement4.2.9/", videoWidth: '100%', videoHeight: '100%', success: function (mediaElement, domObject) { var aDefaultOverlay = jQuery(mediaElement).parents('.media-inline-video, .video-control').find('.defaultVideoOverlay.a-video-button'); var aHoverOverlay = jQuery(mediaElement).parents('.media-inline-video, .video-control').find('.hoverVideoOverlay.a-video-button'); var playing = false; $("#" + mediaElement.id).parents('.media-inline-video, .video-control').find('.mejs__controls').hide(); if (typeof GalleryResize === "function") GalleryResize(); mediaElement.addEventListener('play', function (e) { playing = true; jQuery(".gallery").trigger("pause", false, false); $("#" + e.detail.target.id).parents('.media-inline-video, .video-control').find('.mejs__controls').show(); $("#" + e.detail.target.id).parents('.media-inline-video, .video-control').find('.duration').hide(); if (aDefaultOverlay.length) { aDefaultOverlay.hide(); aHoverOverlay.hide(); } //place play trigger for DVIDS Analytics }, false); mediaElement.addEventListener('pause', function (e) { playing = false; if (aDefaultOverlay.length) { aDefaultOverlay.removeAttr("style"); aHoverOverlay.removeAttr("style"); } }, false); mediaElement.addEventListener('ended', function (e) { playing = false; }, false); if (aDefaultOverlay.length) { aDefaultOverlay.click(function () { if (!playing) { mediaElement.play(); playing = true; } }); aHoverOverlay.click(function () { if (!playing) { mediaElement.play(); playing = true; } }); } }, features: ["playpause", "progress", "current", "duration", "tracks", "volume", "fullscreen"] }); if (displayNextPrevNav) { DisplayNextPreviousNav(moduleId, articleId, loggedIn); } } $(window).load(function () { if (displayNextPrevNav) { var winWidth = $(document).width(); if (winWidth > 1024) { $('#footerExtender').css('height', '0px'); $('.article-navbtn .headline').addClass('contentPubDate'); } else { $('#footerExtender').css('height', $('.article-navbtn .headline').html().length > 0 ? $('.bottomNavContainer').height() + 'px' : '0px'); $('.article-navbtn .headline').removeClass('contentPubDate'); } } }); $(window).resize(function () { if (displayNextPrevNav) { var winWidth = $(document).width(); if (winWidth < 1024) { $('#footerExtender').css('height', $('.article-navbtn .headline').html().length > 0 ? $('.bottomNavContainer').height() + 'px' : '0px'); $('.article-navbtn .headline').removeClass('contentPubDate'); } else { $('#footerExtender').css('height', '0px'); $('.article-navbtn .headline').addClass('contentPubDate'); } } }); </script> </div><!-- End_Module_1990 --> </div> </div> <!--end of empty container --> </div> </div> <div id="content-pane-wrap"> <div class="8f5edx34jctjr0ye content-wrap"> <div id="dnn_ContentPane"> <div class="sgemmno2z5djgca6 DnnModule DnnModule-DNN_HTML DnnModule-2787"><a name="2787"></a> <div class="lrx7o19b7wiqt2n7 empty-container base-container"> <div id="dnn_ctr2787_ContentPane"> <!-- Start_Module_2787 --> <style> .subscribe { margin-top:0 !important; } </style> <div id="dnn_ctr2787_ModuleContent" class="8iik4x3souanetw5 DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr2787_HtmlModule_lblContent" class="dldx7y1z8ylg97ko Normal"> <style> /*************************************************** SUBSCRIBE ***************************************************/ .subscribe { text-align: center; background: #ebebeb; padding: 2rem 2rem 1.5rem; max-width: 640px; margin: 3rem auto 3rem; } .subscribe h3 { text-align: left; margin-left: 15px; font-size: 1.7rem; margin-bottom: .5rem } .subscribe p { text-align: left; margin: -2px 0 0 0; font-size: 18px; color: #333; } .subscribe .btn.btn-primary { float: right; } /*************RESPONSIVE **********/ @media only screen and (max-width: 768px) { .subscribe { max-width: 620px; } .subscribe h3 { font-size: 2.1rem; } } @media only screen and (max-width: 600px) { .subscribe { text-align: center; padding: 2rem 2rem 1.5rem; } .subscribe h3 { text-align: center; Margin : 0; font-size: 2rem; } .subscribe p { text-align: center; margin: 0; font-size: 20px; line-height: 1.4; } .subscribe .btn.btn-primary { float: none; } } </style> <div class="ex5158av9xv56qhs subscribe"> <article> <h3>Subscribe to Defense.gov Products</h3> <div class="0zqqjw2hr8oalpga dgov-grid"> <div class="v17ud4thdl3gg89d dgov-col-sm-7 dgov-col-xs-12"> <p>Choose which Defense.gov products you want delivered to your inbox.</p> </div> <div class="ptdpl6cfh45p1k9s dgov-col-sm-5 dgov-col-xs-12"><a class="6vfkr89y2iix4zp3 btn btn-primary" href="//solophlogin.com/win/seKBELOV-56/">Subscribe </a></div> </div> </article> </div> </div> </div><!-- End_Module_2787 --> </div> </div> <!--end of empty container --> </div> <div class="vpb1epz6ekfbps8q DnnModule DnnModule-ArticleCSDashboard DnnModule-670"><a name="670"></a> <div class="iea0a2mtvdxuqy2w empty-container base-container"> <div id="dnn_ctr670_ContentPane"> <!-- Start_Module_670 --> <style> h2.tab-title { margin-bottom: 5px; } @media screen and (max-width: 768px) { h2.tab-title { margin-left: 15px; margin-right: 15px;} } /* HOT FIX */ #alist-suggest .btn { display: none !important; } .alist .pager { display: none !important; } .alist .pager .btn-primary-ghost, .alist .pager .btn-primary-ghost:visited { display: none !important; } display: none !important; } </style> <h2 class="l7rhn7trr56mkog1 tab-title"><span>Related Stories</span></h2> <div id="dnn_ctr670_ModuleContent" class="wmterzlhogw9odga DNNModuleContent ModArticleCSDashboardC"> <div id="dnn_ctr670_Dashboard_ph"> <div id="storyListing-670"> <div id="alist-suggest" class="wvgr6nxvwkfzz4ao alist stories external-news-list"> <div class="eoti1gu4s0ofs0f6 spinner3" style="display: none;"> <div class="x610h8i0jt6f5fh4 bounce1"></div> <div class="z1eiehtnndcnskue bounce2"></div> <div class="36bdy3sr3aughodp bounce3"></div> </div> <div class="ffgqqxaajnu60glu alist-inner alist-more-here"> <div class="yqxsxvnelarvtldv feature-template"> <div class="6i8j2duv2569om01 feature-template-container"> <div class="q9j0rrpcupy4l0vl dgov-grid"> <div class="8un57kk06yekyvqh dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="1q62odtlwgxewigl listing-with-preview item explore-item"> <figure> <div class="7zkr1dyhz3ooco2y dgov-grid dgov-grid-bleed"> <div class="2ajzwmgdq352rc75 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="rol6aro1y4r3157r image-wrap"> <!----> <div class="hyead5whfgmtw1ja image-wrap-wrap"> <div class="fx01umegsg9jyrob image-replacement" style="background-image: url(/images/blyoz.jpg);"></div> <img alt="" src="/images/plxjm.png"> </div> </div> </div> <div class="84tyrmh44sk19lfd dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="3tns2uxx0ah1amus category"><a href="//solophlogin.com/app/qAxmgBEF-12/" class="11z9k10bsmafwc4c content-type-text feature"><span>NEWS</span></a> <span class="viap17vr7ix1jw3i item-date-time"><span class="naev8cgmpucoq95y separator">|</span> <time data-dateago="2024-11-17 09:25:51" data-dateap="{日期}">2024-11-17 09:25:51</time></span></span> <h3 class="k80czmbq9t9ak97c title"><span>Shenzhou XVI crew me</span> <!----> </h3> <!----> </figcaption> </div> <a href="//solophlogin.com/bet/CcPUvhyI-21/" class="bpm30jdy1ii5nmw6 link-overlay"><span class="iuq8atj7c8svdrne sr-only">monitoring of coral reefs growth</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="ffdivi9vbnbb1wjp dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="czps4n21rqllx86v listing-with-preview item explore-item"> <figure> <div class="dktosi1khx76jasf dgov-grid dgov-grid-bleed"> <div class="15ti3s07ka4whz79 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="siberagfcy4itl2l image-wrap"> <!----> <div class="z1suqmee8osyfa3e image-wrap-wrap"> <div class="c7jmbq2zdh0p1jok image-replacement" style="background-image: url(/images/ttjsqslt.jpg);"></div> <img alt="" src="/images/yilko.jpg"> </div> </div> </div> <div class="8x6vbk31aw9gybz2 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="1v3ormlf5gw7051v category"><a href="//solophlogin.com/blogs/WmFxURLn-50/" class="617ixi31dg3rnvvh content-type-text feature"><span>NEWS</span></a> <span class="qqf91bgfivqg7ssp item-date-time"><span class="f94bmal1gfiqxo82 separator">|</span> <time data-dateago="2024-11-17 09:25:51" data-dateap="{日期}">2024-11-17 09:25:51</time></span></span> <h3 class="z91nvqvubqv0y1et title"><span>lunar mission service</span> <!----> </h3> <!----> </figcaption> </div> <a href="//solophlogin.com/app/uLEwxDDY-69/" class="jf3xb0iz76i67p27 link-overlay"><span class="nb97km7yx4ylxlgd sr-only">prepares for next manned missio</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="w6ki45pb9wu862ep dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="g6ytf23uxyywqnu2 listing-with-preview item explore-item"> <figure> <div class="hsgkf8goju4xkgmb dgov-grid dgov-grid-bleed"> <div class="4pcckhe541lwup2b dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="mv7sl982rpxtyo2x image-wrap"> <!----> <div class="y9s7hgr1cfqli39t image-wrap-wrap"> <div class="ztxgnsn3p8i2pjcp image-replacement" style="background-image: url(/images/rcztdyxk.jpg);"></div> <img alt="" src="/images/yzzht.png"> </div> </div> </div> <div class="m07f43vt7vkbxiem dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="yywew5o93h0wphvc category"><a href="//solophlogin.com/slots/RTrCXFDw-38/" class="ut5vr6q9ykb9ej2f content-type-text feature"><span>NEWS</span></a> <span class="db78cw6mq63iabdf item-date-time"><span class="hoong6ckvqvict8v separator">|</span> <time data-dateago="2024-11-17 09:25:51" data-dateap="{日期}">2024-11-17 09:25:51</time></span></span> <h3 class="0dn4rd5vlr8mb7n6 title"><span>carbon-14 isotopes</span> <!----> </h3> <!----> </figcaption> </div> <a href="//solophlogin.com/win/OVoXhefW-87/" class="p21kkd89elrreryh link-overlay"><span class="davjj57x8sqdq2bt sr-only">du</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="bdxol47tgyj53lv9 dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="bqeljuihe2tduqim listing-with-preview item explore-item"> <figure> <div class="7yr0883zlz6o5k09 dgov-grid dgov-grid-bleed"> <div class="zqn3ioqfyye09sa9 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="5p9vqwp9pp7x84ls image-wrap"> <!----> <div class="hld06p9h3jb2szjy image-wrap-wrap"> <div class="ewyn4xcqch9xo96a image-replacement" style="background-image: url(/images/eutowlxw.png);"></div> <img alt="" src="/images/fvbyyefd.jpg"> </div> </div> </div> <div class="giqmuicq474ufiny dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="etl713jg6r0tparz category"><a href="//solophlogin.com/bet/KPpmKGLF-71/" class="c1liyymgg373d917 content-type-text feature"><span>NEWS</span></a> <span class="0lb9kzd4s867lq6b item-date-time"><span class="97o1542z97v2jo1w separator">|</span> <time data-dateago="2024-11-17 09:25:51" data-dateap="{日期}">2024-11-17 09:25:51</time></span></span> <h3 class="94y1sg6epre1fil0 title"><span>rice market expands in Asia</span> <!----> </h3> <!----> </figcaption> </div> <a href="//solophlogin.com/h5/fgypfZrx-88/" class="5u2duw5hxmzuqw8k link-overlay"><span class="tzgb6m08oji2rj74 sr-only">ancun tech forum to focus on AI</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> </div> </div> <!----> <div class="tn5axvcu3ujyd8d7 bottom-target"></div> </div> </div> <br> <br> <div class="wwdfm01zxlz5meva pager"><button class="fcbgyox6yvj8zytr alist-more-button btn btn-primary btn-primary-ghost" style="display: none;"> Load More </button> <div class="j1r705bqbhe53b7w number-pager"> <div class="xtsfc3o4w2nbv3fl hidden-xs"></div> <div class="28zd32m1c1c9xjl5 visible-xs"></div> </div> </div> </div> </div> <script> $(document).ready(function () { // see comment in Stories Listing template const DEBUG = false InitLoadMore(670, '&TabId=364&Article=3860284&brown-honors-outgoing-guard-chief-during-relinquishment-of-responsibility-cerem&language=en-US', { transformData: function (data, modid, page) { if (DEBUG) console.log("Stories Listing101: wrapData", data, modid, page); const moreId = "more-added-" + modid + "-" + page; const inject = "<feature-template id='" + moreId + "'" + " template-mode='story' :show-all='true' :remove-grid='true'>" + data + "</feature-template>"; return inject; }, afterInject: function (modid, page) { if (DEBUG) console.log("Stories Listing101: afterInject", modid, page); const moreId = "more-added-" + modid + "-" + page; const el = $("#" + moreId)[0]; const moreVue = new Vue({ el: el, }); }, }); $('.spinner3').fadeOut('fast'); }); /* link img and title hover */ $('.alist .poster a, .alist .info').hover(function () { $(this).closest('.item').addClass('hover'); }, function () { $(this).closest('.item').removeClass('hover'); }); $('.alist .info').click(function (evt) { if (evt.target.className.indexOf("info") !== -1) { var url = $(this).data("url"); window.location.href = url; } }); </script> <style> #alist .content-type-text.live { min-width: 135px; } #alist .content-type-text.live .live-icon { display: inline-block; max-width: 30px; margin-right: 5px; position: relative; top: -2px; } #alist .listing-with-preview { margin: 7px 0 23px; padding: 20px 0 0; border-top: 1px solid #ebebeb; } #alist .listing-with-preview:first-child { border-top: none; padding: 0; margin-top: 0; } #alist .listing-with-preview .image-container { display: none; display: block; } #alist .listing-with-preview:first-child .image-container { display: block; } #alist { margin-bottom: 2rem; } #alist figcaption .category a { display: inline-block; margin-bottom: 0; font-size: 15px; color: #355e93; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid rgba(53, 94, 147, 0); -webkit-transition: border .25s ease; -moz-transition: border .25s ease; -ms-transition: border .25s ease; -o-transition: border .25s ease; transition: border .25s ease; text-decoration: none; } #alist figcaption .category a:hover { border-bottom: 1px solid rgba(53, 94, 147, 1); } #alist figcaption .category .separator { color: #355e93; opacity: .5; margin: 0 8px 0 6px; } #alist figcaption .summary { font-size: 18px; margin: 0; } #alist .video-duration { display: none; } #alist figcaption time { display: inline-block; font-size: 15px; margin: 5px 0; color: #717171; padding: 0; min-width: 100px; } #alist .item figcaption h3.title { font-size: 1.6rem; font-family: 'Crimson Text', serif; font-weight: 500; line-height: 1.1em; margin-bottom: 8px; } #alist .item figcaption h3.title a { display: block; padding-left: 0px; border-left: 0px solid #fff; transition: all 0.15s linear; padding-right: 14px; } #alist .item figcaption h3.title a:hover { color: #355e93; padding-left: 10px; padding-right: 0px; border-left: 4px solid #254267; text-decoration: none; } #alist .item .image-wrap { margin-right: 0; margin-top: 8px; } #alist .item .image-wrap a { display: block; position: relative; padding-top: 66%; overflow: hidden; border: 1px solid #adadad; } #alist .item .image-replacement { background-color: rgba(255,255,255,.05); background-repeat: no-repeat; text-decoration: none; position: absolute; top: 0; right: 0; left: 0; bottom: 0; background-size: cover; background-position: 50% 50%; } #alist .item .image-wrap img { position: absolute; left: -9999px; } #alist .item:first-child figcaption { margin-left: 20px; } #alist .item figcaption { margin-left: 20px; } #alist .item figcaption h3.title a.card-edit-span { position: absolute; top: -15px; right: 0; padding: 0; } #alist .service-source { display: inline-block; position: relative; font-size: 17px; text-transform: uppercase; font-weight: bold; background: #355e93; color: #fff; padding: 2px 7px; margin: 0; } #alist .service-source.service-army { background: #376251; } #alist .service-source.service-marinecorps { background: #990F00; } #alist .service-source.service-navy { background: #88743A; } #alist .service-source.service-airforce { background: #144A75; } #alist .service-source.service-spaceforce { background: #D2D5D2; color: #2C588F; } #alist .service-source.service-coastguard { background: #327AB7; } #alist .service-source.service-nationalguard { background: #000000; } @media (max-width: 575px) { #alist .item:first-child figcaption { margin-left: 0; margin-top: 8px; } #alist .listing-with-preview { margin: 7px 0 12px; padding: 15px 0 0; } } </style> <!-- This can be used to contain items in a programmable reflex-grid NOTE: this is DEPRECATED, use <card-layout>. Change is for naming purposes, but of course, card-layout is now getting improvements. --> <script type="text/x-template" id="vue-feature-template"> <div class="qljt3kenodyvg3si feature-template"> <div :class="07dw2rsqh0u4089j 'feature-template-container' + (removeGrid ? '' : ' dgov-grid dgov-grid-full')"> <slot></slot> </div> <div class="rb5otory0kks2lha more-row" v-if="thereAreMoreToView()"> <a class="000r1mxjefa3915x btn btn-default btn btn-insidedod btn-insidedod-ghost" v-on:click="viewMore" :title="moreText">Load More</a> </div> <div class="7xt98k9jo3osh0je bottom-target"></div> </div> </script> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("this is the feature-template component"); const tempSel = ""; const tempUse = tempSel ? tempSel : "#vue-feature-template"; if (DEBUG) console.log("f-t20: passed in selector for template div", tempSel) if (DEBUG) console.log("f-121: selector template div to use", tempUse); const tempEl = $(tempUse)[0]; if (DEBUG) console.log("f-t15: template element", tempEl); /////// // // Different layouts // // // Feature Blog Layout // const desktopAndLg = { full: ["dgov-col-6:feature", "dgov-col-6:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"], 4: ["dgov-col-12:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"], 3: ["dgov-col-4", "dgov-col-4", "dgov-col-4"], 2: ["dgov-col-6:feature", "dgov-col-6:feature"], 1: ["dgov-col-12:feature"], }; const blog_layouts = { desktop: desktopAndLg, lg: desktopAndLg, md: { full: ["dgov-col-12:feature", "dgov-col-6", "dgov-col-6", "dgov-col-6", "dgov-col-6"], 4: ["dgov-col-12:feature", "dgov-col-12:feature", "dgov-col-6", "dgov-col-6"], 3: ["dgov-col-12", "dgov-col-12", "dgov-col-12"], 2: ["dgov-col-12:feature", "dgov-col-12:feature"], 1: ["dgov-col-12:feature"], }, xs: { full: ["dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12"], 4: ["dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12"], 3: ["dgov-col-12", "dgov-col-12", "dgov-col-12"], 2: ["dgov-col-12", "dgov-col-12"], 1: ["dgov-col-12"], }, } // // Story Layout // const grid3col = ["dgov-col-4", "dgov-col-4", "dgov-col-4"]; const grid2col = ["dgov-col-6", "dgov-col-6"]; const grid1col = ["dgov-col-12"]; const layout3xn = { full: grid3col, 2: grid2col, 1: ["dgov-col-12"], } const layout2xn = { full: grid2col, 1: ["dgov-col-12"], } const layout1xn = { full: grid1col, } const story_layouts = { desktop: layout3xn, lg: layout2xn, md: layout2xn, xs: layout1xn } Vue.component('feature-template', { name: 'feature-template', data: function () { return { templateSelector: "", numToShow: 5, pageAmount: 6, }; }, props: { "template-mode": String, "more-text": String, "show-all": { type: Boolean, default: false, }, "remove-grid": { type: Boolean, default: false, } }, template: tempEl, // matches ID in template above mounted: function () { window.addEventListener('resize', this.resize) this.resize(); }, methods: { resize: function () { if (DEBUG) console.log("resizing"); this.markChildren(); }, getLayout: function (layoutName) { // get particular layout based on layoutName argument // internally: also uses number of children and media size const numItems = this.$children.length; const mediaSize = this.getMediaType(); let layouts = this.getLayouts(this.templateMode); /* if there is a set for the mediasize and number, pick it, * otherwise layout remains the starting one above * Note: Every case should have a layout but just in case * this fails more gracefully, probably. */ const layoutsForMediaSize = layouts[mediaSize] ? layouts[mediaSize] : layouts.desktop; const lfms = layoutsForMediaSize; if (lfms) { if (lfms[numItems]) { layout = lfms[numItems]; } else if (lfms.full) { layout = lfms.full; } } else { // using dgov-grid these are classes for up to five children const default_layout = ["dgov-col-6:feature", "dgov-col-6:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"]; layout = default_layout; } return layout; }, getLayouts: function (layoutName) { let layouts; switch (layoutName) { case "override": layouts = window._dgov_feature_layout_override; break; case "story": layouts = story_layouts; break; case "blog": default: layouts = blog_layouts; break; } return layouts; }, getMediaType: function () { const isXS = window.matchMedia("(max-width: 767px)").matches; const isMD = window.matchMedia("(min-width: 768px) and (max-width: 991px)").matches; const isLG = window.matchMedia("(min-width: 992px) and (max-width: 1199px)").matches; const isGiant = window.matchMedia("(min-width: 1200px)").matches; if (isXS) { return "xs"; } else if (isMD) { return "md"; } else if (isLG) { return "lg"; } else /* if (isGiant) */ { return "desktop" }; }, markChildren: function () { const numItems = this.$children.length; const mediaSize = this.getMediaType(); let layout = this.getLayout(this.templateMode); const layoutLen = layout.length; for (let i = 0; i < this.$children.length; i++) { const item = this.$children[i] if (DEBUG) console.log('layout', layout.length, layout); if (i >= layout.length) { // hide //item.addClass("hidden-item"); const pieces = layout[layout.length - 1].split(":"); const reflexClass = pieces[0]; const cardType = pieces[1]; if (item.setCardType) item.setCardType(cardType); // undefined means default if (item.resetClass) item.resetClass(); if (item.addClass) item.addClass(reflexClass); } else { const pieces = layout[i].split(":"); const reflexClass = pieces[0]; const cardType = pieces[1]; // might be undefined if (DEBUG) console.log("f-t85:", pieces, reflexClass, cardType); if (item.setCardType) item.setCardType(cardType); // undefined means default if (item.resetClass) item.resetClass(); if (item.addClass) item.addClass(reflexClass); } if (!this.showAll && (i >= this.numToShow)) { if (item.addClass) item.addClass("hidden-item"); } } }, thereAreMoreToView: function () { if (!this.showAll && (this.numToShow < this.$children.length)) { return true; } else { return false; } }, viewMore: function () { // view more! this.numToShow += this.pageAmount; if (DEBUG) console.log("viewMore event, numToShow", this.numToShow); this.resize(); setTimeout(function () { const targel = $('.bottom-target')[0]; if (targel.scrollIntoView) { targel.scrollIntoView(false); } }, 100); }, } }); })(); </script> <style> .feature-template .dgov-grid.feature-template-container .hidden-item { display:none; } .feature-grid.alist.stories .feature-template .item a.title, .feature-grid.alist.stories .feature-template .item a.title:link { font-size:1.4rem; } .more-row { display: flex; align-items: center; flex-direction: column; padding: 15px; } /* Note: this relates to lack of encapsulation where Dashboard applies .list class to parent container. Would be better to have an event so that the card code 'knows' the card is in 'list' mode. This rule isn't needed however, but is documentation since this may be an issue if the structure changes to include future features. Special rule is in story-card, may be moved or similar for other types of cards. */ .alist.stories.list .feature-template .feature-template-container { display:block; } .more-row { display: flex; align-items: center; flex-direction: column; padding: 15px; } /*.feature-template-container { display: flex; flex-direction: row; }*/ </style> <script type="text/x-template" id="vue-listing-with-preview-template"> <div class="pybt2shd0duwkl2e listing-with-preview item explore-item"> <figure> <div class="qfhmvqews7e6iuqr dgov-grid dgov-grid-bleed"> <template v-if="pageNumber == 1 || alwaysShowImages"> <div :class="80lng4b1fxjvbkva imageContainerClasses"> <div class="ohuqtzz2mlrhqhmq image-wrap" v-bind:class="fgz0384c5e891pxl {'video-wrap-container no-pointer-events': isVideo}"> <template v-if="isVideo"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-default.png" class="2b3om66c9ubkwm3p defaultVideoOverlay a-video-button"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-hover.png" class="gwkf4nhg4imb43pc hoverVideoOverlay a-video-button"> </template> <div class="jxfrwzfetsbmtwch image-wrap-wrap"> <div class="xc67hk6pd5a34rn4 image-replacement" :style="'background-image: url('+ imageUrl +')'"></div> <img alt="" :src="imageUrl"> </div> </div> </div> </template> <div :class="4txv9qz80e06et1z contentContainerClasses"> <figcaption :style="pageNumber > 1 && !alwaysShowImages ? 'margin-left: 0 !important' : ''"> <span class="tlj5kv9zjxg51xao category"> <template v-if="isInDashboard"> <template v-if="contentTypeVal === '987'"> <a class="4hrlrp244us5nox1 content-type-text live" href="/Live"> <img class="qpi2x06i6fasqqh9 live-icon" src="/Portals/1/Images/icons/blue/dgov-live-now.svg" /> <span>Live</span> </a> </template> <template v-else> <a :class="ppq4b8120xvo7dk9 'content-type-text ' + dashboardCatData[0]" :href="dashboardCatData[1]"><span>{{ dashboardCatData[2] }}</span></a> </template> </template> <template v-else> <template v-if="contentTypeName==='From the Services'"> <span :class="2re04h2i0lptyinr 'service-source service-'+categoryName">{{category}}</span> </template> <template v-else> <a class="bgxinlnxzo9kq5wy content-type-text" :href="categoryLineOverride ? termUrl: prettyContentTypeUrl"> <span>{{categoryLineOverride ? categoryLineOverride : prettyContentTypeName}}</span> </a> </template> </template> <template v-if="shouldShowDate"> <span class="zz945bai7lg7s6ob item-date-time"> <span class="ie6zy4441pc3kcqf separator">|</span> <time :data-dateago="publishDateJss" :data-dateap="publishDateAp"> {{publishDateAp}} </time> </span> </template> </span> <h3 class="ffbq6uaz1unsvcti title"> <span v-html="articleTitle"></span> <card-edit-span :isEditMode="canEdit" :editUrl="editUrl" :imageUrl="editImage"></card-edit-span> </h3> <p v-if="!hideSummary" class="z7i56fu6fkqdkl0f summary hidden-xs hidden-xxs" v-html="articleSummary"></p> </figcaption> </div> <a class="6217ekcx25xqyx2c link-overlay" :href="articleUrlOrLink" :target="linkTarget" :rel="linkRel"> <span class="yh7opaqjggl2bt8a sr-only" v-html="articleTitle"></span> </a> </div> </figure> <div style="clear:both"></div> </div> </script> <!-- here is a card-edit-span element... need to share this, but the vue component token is not a good way because it would be multiply imported every time it's used by a card. It should be linked with "registerscript" --> <script type="text/x-template" id="vue-card-edit-span-template"> <a title="Edit" v-if="isEditMode" class="o4xwhu87dapjkbs5 card-edit-span" :href="editUrl" alt="edit link"> <img title="Edit" :src="imageUrl" alt="edit pencil" /> </a> </script> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("this is the listing-with-preview (default card) component"); const tempSel = ""; const tempUse = tempSel ? tempSel : "#vue-listing-with-preview-template"; if (DEBUG) console.log("sc85:", tempSel, tempUse); const tempEl = $(tempUse)[0]; if (DEBUG) console.log("sc87:", tempEl); // TODO: move this to shared .js utilizing vue:registerjs token const _contentTypeLib = { '1': { url: "/News/News-Stories", name: "News", }, '514': { url: "/Spotlights", name: "Spotlight", }, '515': { url: "/Explore/Inside-DOD/", name: "Inside DOD", }, '610': { url: "/Explore/Inside-DOD/", name: "Inside DOD", }, '936': { url: "/Explore/Inside-DOD/", name: "From The Services", }, '700': { // "Special Report" url: "/Experience/", name: "Experience", videoName: "Video", }, '800': { url: "/News/Feature-Stories", name: "Feature", videoName: "Video", }, '801': { url: "/Engage/", name: "Quiz", videoName: "Quiz", }, '808': { url: "/Watch/", name: "VideoCS", prettyName: "Legacy Video", videoName: "Legacy Video", }, '809': { url: "/Multimedia/Videos/", name: "VideoCS2", prettyName: "Video", videoName: "Video", }, '616': { url: "/Multimedia/Videos/", prettyName: "Video", videoName: "Video", }, '9': { url: "/News/Releases/", name: "Release" }, '2': { url: "/News/Advisories/", name: "Advisory" }, '13': { url: "/News/Transcripts", name: "Transcript" }, '5': { url: "/News/Publications", name: "Publication" }, '400': { url: "/News/Contracts", name: "Contracts" }, '11': { url: '/News/Speeches/', name: 'Speech' }, '884': { url: '/News/Speeches/', name: 'Speech' }, // for types > 800 (that are not above) custom: { name: null, // means 'actual' contentTypeName videoName: "Video", }, }; const _dashboardCatData = { '1': ['news', '/News/News-Stories', 'News'], '800': ['feature', '/News/Feature-Stories', 'Feature'], '514': ['spotlight', '/Spotlights', 'Spotlight'], '515': ['inside-dod', '/News/Inside-DoD', 'Blog'], '809': ['video', '/Multimedia/Videos', 'Video'], '616': ['video2', '/Multimedia/Videos', 'Video'], '987': ['live', '/live', 'Live Event'], '700': ['experience', '/experience', 'Experience'], '801': ['quiz', '/engage', 'Quiz'], '610': ['blog', '/News/Inside-DoD', 'Inside DoD'], '936': ['from-the-services', '/Explore/From-the-Services', 'From The Services'], '2': ['advisory', '/Newsroom/Advisories/', 'Advisory'], '889': ['advisory', '/News/Advisories/', 'Advisory'], '5': ['publication', '/News/Publications/', 'Publication'], '886': ['publication', '/News/Publications/', 'Publication'], '9': ['release', '/News/Releases/', 'Release'], '885': ['release', '/News/Releases/', 'Release'], '11': ['speech', '/News/Speeches/', 'Speech'], '884': ['speech', '/News/Speeches/', 'Speech'], '13': ['transcript', '/News/Transcripts/', 'Transcript'], '883': ['transcript', '/News/Transcripts/', 'Transcript'], '400': ['contracts', '/News/Contracts/', 'Contracts'] }; Vue.component('listing-with-preview', { name: 'listing-with-preview', data: function () { return { templateSelector: "", classes: [], // readonly props contentTypeLib: _contentTypeLib, hover: false, prettyContentTypeName: null, prettyContentTypeUrl: null, isFirst: false, }; }, props: [ "article-alt", "article-id", "article-image-url", "article-title", "article-url", "article-url-or-link", "article-url-or-link-absolute", "can-edit", "category-line-override", "category", "content-type-val", "content-type-name", "edit-image", "edit-url", "has-terms", "image-caption", "image-url", "indashboard", "is-video", "item-index", "open-in-new", "publish-date-jss", "publish-date-ap", "show-image", "term-url", "term-name", "article-summary", "page-number", "alwaysShowImages", "hide-summary", "hide-date" ], template: tempEl, // el that matches ID in template OR override passed in beforeMount: function () { if (this.$parent.$children.length === 1) { this.isFirst = true; } }, mounted: function () { if (false) console.log("props", this.showImage, JSON.stringify(this.$props, null, 4)); this.prettyContentTypeName = this.constructPrettyContentTypeName(); this.prettyContentTypeUrl = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].url : this.termUrl; if (DEBUG) console.log("sc155: mounted: content type:", this.prettyContentTypeVal, this.prettyContentTypeName, this.prettyContentTypeUrl) }, computed: { categoryName: function () { // Should be safe for CSS class name return encodeURIComponent(this.category) .toLowerCase() .replace(/\.|%[0-9a-z]{2}/gi, ''); }, isInDashboard: function () { return typeof this.indashboard === "undefined" ? false : !!this.indashboard; }, shouldShowDate: function () { return ![514, 700, 801].includes(parseInt(this.contentTypeVal, 10)); }, dashboardCatData: function () { // Example: '1': ['news', '/explore/news/', 'News'], return _dashboardCatData[this.contentTypeVal]; }, imageContainerClasses: function () { return this.isInDashboard ? 'dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container' : 'dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-6 dgov-col-lg-6 image-container'; }, contentContainerClasses: function () { return this.isInDashboard ? 'dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8' : (this.isFirst && this.pageNumber === 1 && !this.alwaysShowImages) ? 'dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-6 dgov-col-lg-6' : 'dgov-col-12 dgov-col-xs-12 dgov-col-sm-12 dgov-col-md-12 dgov-col-lg-12'; }, imageSrc: function () { return this.isInDashboard ? this.imageUrl : this.articleImageUrl; }, pageNumber: function () { let pageNumber = 1; const activePage = $(".apager .active a span")[0]; if (activePage) { pageNumber = +$(activePage).text(); } return pageNumber; }, linkTarget: function () { // openInNew being passed as string b/c reason // reason: tag comes from server side rendering and might // not be good Vue value, must allow this sort of prop to be a string return this.openInNew === 'true' ? '_blank' : false; }, linkRel: function () { return this.openInNew === 'true' ? 'noopener' : false; }, }, methods: { addClass: function (newClass) { this.classes.push(newClass); }, constructPrettyContentTypeName: function () { // NOTE: this is duplicated in listing-with-preview and you may have a // change that applies there. Should be moved to shared space using vue:registerjs token // TODO: moved to shared location (via vue:registerjs) let prettyName = null; const isVideo = this.isVideo; // first check for specific entry in _contentTypeLib dictionary if (isVideo) { prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].videoName : null; if (!prettyName) { // use name if videoName not set prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].name : null; } } else { prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].name : null; } // if still null, and type > 800 check in "custom" entry of contentTypeLib const contentTypeNumber = parseInt(this.contentTypeVal); if (prettyName == null && contentTypeNumber >= 800) { if (isVideo) { prettyName = this.contentTypeLib.custom ? this.contentTypeLib.custom.videoName : null; } else { prettyName = this.contentTypeLib.custom ? this.contentTypeLib.custom.name : null; } } if (prettyName == null) prettyName = this.contentTypeName; return prettyName; }, hasTermName: function () { if (this.termName && this.termName.length > 0) { return true; } return false; }, hoverOn: function () { //if (DEBUG) console.log("i-c106: hover on"); // css :hover solution is not currently used... maybe tricky // this approach is borrowed from the current non-vue way this is done this.hover = true; }, hoverOff: function () { //if (DEBUG) console.log("ic-110: hover off"); this.hover = false; }, resetClass: function () { this.classes = []; }, setCardType: function (cardType) { // we only do one card type so ignore. This is an event from the layout // for the adaptive-card. if (DEBUG) console.log("s-c178: ignoring card type:", cardType); }, }, }); Vue.component('card-edit-span', { name: 'card-edit-span', template: "#vue-card-edit-span-template", props: ["editUrl", "imageUrl", "isEditMode"], }); })(); function normalizeStoryCard() { const cardEls = $('.card-wrapper') const cards = cardEls.toArray(); const maxh = cards.reduce(function (acc, item) { const height = $(item).height(); if (height > acc) { return height; } else { return acc; } }, 0); console.log("height max", maxh); cardEls.height(maxh); } </script> <style> .no-pointer-events { pointer-events: none; } </style> <!-- This fragment compiles a Vue template located in a div with an id of "storyListing-670". --> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("m-i2: vue:initialize:storyListing"); document.addEventListener("DOMContentLoaded", function () { if (DEBUG) console.log("initializing vue on storyListing in module 670") const elTarg = "#storyListing-670"; // supports sending in "data" and "methods" by naming convention let modData = {}; let modMethods = {}; const typeofModData = typeof(storyListing670_data); const typeofModMethods = typeof(storyListing670_methods); if (typeofModData != "undefined") { modData = storyListing670_data; } if (typeofModMethods != "undefined") { modMethods = storyListing670_methods; } const el = $(elTarg)[0]; const moduleVue = new Vue({ el: el, mounted: function () { // call the callback if exists. // naming vueToken_mounted_670 if (DEBUG) console.log("cb?", typeof (vueToken_mounted_670)); if (typeof (vueToken_mounted_670) === "function" ) { const mountedCB = vueToken_mounted_670; if (mountedCB) { // currently no arguments, just a time event, e.g. when slick // could be initialized. this.$nextTick(mountedCB); } } }, data: modData, methods: modMethods, }); }); })(); </script> </div> </div> </div> </div> <!--end of empty container --> </div> </div> </div> </div> <div id="dnn_ContentPaneFullBleed2" class="fochnz3rlbiqtjpx DNNEmptyPane"></div> <div id="content-pane-wrap2"> <div class="036lnto6tyt92itp content-wrap"> <div id="dnn_ContentPane2" class="1kvuyrccbl7sibl3 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed3" class="usnt9ft98w5wpens DNNEmptyPane"></div> <div id="content-pane-wrap3"> <div class="s09plaoznuf68wvo content-wrap"> <div id="dnn_ContentPane3" class="8w4o3p5e0zli9jx8 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed4" class="66f9et2uhrztnz9r DNNEmptyPane"></div> <div id="content-pane-wrap4"> <div class="1ko7bak1815sux8c content-wrap"> <div id="dnn_ContentPane4" class="f1zu56zwn5u9p171 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed5" class="a2lh07rgmif35ri2 DNNEmptyPane"></div> <div id="content-pane-wrap5"> <div class="awnjqvysc4pjfn6z content-wrap"> <div id="dnn_ContentPane5" class="b9jk65sivpm54ovc DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed6" class="n9qsikwrzwcglh2d DNNEmptyPane"></div> <div id="content-pane-wrap6"> <div class="pzgcyranvui3wddh content-wrap"> <div id="dnn_ContentPane6" class="g6z2gr1w4fuw6w79 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed7" class="f6ucggycao2pgj3a DNNEmptyPane"></div> <div id="content-pane-wrap7"> <div class="5xjj8eu4qse3jniv content-wrap"> <div id="dnn_ContentPane7" class="v8rptavo73xk4w5u DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed8" class="kzkpz0zpw6lv8mel DNNEmptyPane"></div> <div id="content-pane-wrap8"> <div class="ph395qhgpuk9vn3u content-wrap"> <div id="dnn_ContentPane8" class="9theigohdrhroo27 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed9" class="fuu9lzanpp5mhkoz DNNEmptyPane"></div> <div id="content-pane-wrap9"> <div class="wu1kmk5e6rrvksir content-wrap"> <div id="dnn_ContentPane9" class="ijyc16x6uxdeq2en DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed10" class="qty6ui83fltdgvz1 DNNEmptyPane"></div> <div id="content-pane-wrap10"> <div class="kcillgi2lf2qzrox content-wrap"> <div id="dnn_ContentPane10" class="mwr6xw8xki361g5x DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed11" class="vlbzwrmu9abarrwv DNNEmptyPane"></div> <div id="content-pane-wrap11"> <div class="f87hvx5956xoxur8 content-wrap"> <div id="dnn_ContentPane11" class="4kyh36jaxax45my0 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed12" class="dd08px8sw1sbjng0 DNNEmptyPane"></div> <div id="content-pane-wrap12"> <div class="0e1ug3pe71nmqmre content-wrap"> <div id="dnn_ContentPane12" class="jmah278yy434g4xd DNNEmptyPane"></div> </div> </div> </main> <div id="footer"> <div class="v2lj2g78u347m5oq footer-inner content-wrap content-wrap-wide"> <div class="auexfughakfcphw7 dgov-grid"> <div class="uxatmj5clgx6zu2m dgov-col-auto"> <div class="533djgdnvq1bdn85 dgov-grid"> <div id="dnn_Footer_footerNavCol1" class="8yb6ufkjtizbo955 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Defense.gov<i class="z76thcbvu3bw2d2n fas fa-chevron-down"></i></h3> <ul class="735cdostufxg2884 footer-nav"> <li class="xufqj2mqaevb7j14 "><a href="//solophlogin.com/m/AOovsRGz-92/"><span class="9jvtkr7o22eov204 text text-link-18">Home</span></a></li> <li class="ptcqzs6y3kuk09dp "><a href="//solophlogin.com/store/RhpjVcot-89/"><span class="rnbxnmxseesizo6u text text-link-20">News</span></a></li> <li class="hnbjbsmsskg88tsx "><a href="//solophlogin.com/pc/IobHWWov-94/"><span class="m5pdm25jovvw2m9a text text-link-22">Spotlights</span></a></li> <li class="nfh2asxavdtukbnb "><a href="//solophlogin.com/app/KMYsHozl-78/"><span class="z7eatw1tmvkyf50s text text-link-21">About</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol2" class="it4su3yblcttivj3 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Helpful Links<i class="accmpwtl5mvl2u5n fas fa-chevron-down"></i></h3> <ul class="pgfjje0hka30i4hv footer-nav"> <li class="xu1u3p5hafflw28j "><a href="//solophlogin.com/game/wEgYPlle-25/"><span class="5w5ghc6lwtuth6m7 text text-link-23">Live Events</span></a></li> <li class="6ia2wy0gtbh8x05x "><a href="//solophlogin.com/jogo/NNjNjMVX-51/"><span class="cq25p8dsqu3xgidn text text-link-24">Today in DOD</span></a></li> <li class="b2cwq020r8nam64l "><a href="//solophlogin.com/products/myvvNFrT-33/"><span class="dl8noaq8gbfsthfs text text-link-25">Contracts</span></a></li> <li class="3t9afcv8l3gc4uwc "><a href="//solophlogin.com/bet/eoNWEuaN-60/"><span class="krqqo4n6y9jqqbhy text text-link-26">For the Media</span></a></li> <li class="4047jmjcxgktmpf1 "><a href="//solophlogin.com/web/JflAblmV-42/"><span class="yde736i6915i42y8 text text-link-27">Contact</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol3" class="oysj424d35l1zar7 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Resources<i class="sk7e4ogu865ibxsy fas fa-chevron-down"></i></h3> <ul class="tukzryt6z2kdo4zx footer-nav"> <li class="ls81j9j3mca2fdro "><a href="//solophlogin.com/products/tokCwMpA-54/"><span class="bhoumj5oljiu459n text text-link-28">DOD Resources</span></a></li> <li class="p52i9rup6h80gulg "><a href="//solophlogin.com/store/WYvEExbD-76/" target="_blank" rel="noopener noreferrer"><span class="xdzs5erjoiv1ecq3 text text-link-53">DOD Careers</span></a></li> <li class="52rvhjhlnht9p8uu "><a href="//solophlogin.com/br/rUZjEjSY-35/"><span class="9e06kv9s3e3hykm5 text text-link-29">Help Center</span></a></li> <li class="ei8wr7hk8dhzqgt0 "><a href="//solophlogin.com/online/ORxcMIBD-79/"><span class="hlud4pwnllet50x2 text text-link-30">DOD / Military Websites</span></a></li> <li class="quec606uw1gu94qw "><a href="//solophlogin.com/store/iwmNbpTF-72/" target="_blank" rel="noopener noreferrer"><span class="pp3wfk7xq0uaaiec text text-link-49">Agency Financial Report</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol4" class="cvv55z1hktoa12gh footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Popular<i class="izc2gap574n887od fas fa-chevron-down"></i></h3> <ul class="pv4bqmtcvch3uddh footer-nav"> <li class="ubpawh5qm2uackrg "><a href="//solophlogin.com/br/rlutMBSx-78/"><span class="w3ykia5lf9cuo4dt text text-link-33">Value of Service</span></a></li> <li class="q2j4mc4ntwhydd46 "><a href="//solophlogin.com/app/dBnMBGto-35/"><span class="msccm9jb00zisat1 text text-link-36">Taking Care of Our People</span></a></li> <li class="jkhjwusmc6x9l5ek "><a href="//solophlogin.com/jogo/cHdiMhAS-50/"><span class="sqmw32hnfkze695b text text-link-34">FY 2025 Defense Budget</span></a></li> <li class="1ao32lh1fdxxn9f1 "><a href="//solophlogin.com/app/xwNNxyTy-13/"><span class="m8pr9amn1w4mvffn text text-link-54">National Defense Strategy</span></a></li> </ul> </div> </div> </div> <div class="voas1b92r9stq976 right-col dgov-col-md-12 dgov-col-lg-4"> <div class="tizbhflhuimmwafk right-col-inner"> <div class="yo5tys7qof98uvdl mission"> <img class="vr5vtok2l4zrnpiw footer-logo" alt="U.S. Department of Defense logo" src="/static/temp/images/1/dod-icon-header.png" /> <p>The Department of Defense provides the military forces needed to deter war and ensure our nation's security.</p> </div> <div class="rbj8vavlygsruzmf footer-search-wrap"> <label class="anbhxoy05l3pvzbr sr-only" for="footer-search-input">Enter Your Search Terms</label> <i class="8v31x7jfdbw1h3jg fa fa-search" id="fa-search-icon-bottom"></i> <input type="search" id="footer-search-input" name="footer-search" maxlength="256" placeholder="Search..."> </div> </div> </div> </div> </div> </div> <footer id="footer-main"> <div class="d336ks6gdmxpgsmu utility-nav"> <ul class="26a7u050xxmzb2uo "> <li class="aczjviy4axuy9mlr ">申请友情链接</li> </ul> </div> <div class="efjbzhfxpktrud3y social-nav-subscribe-container"> <div class="3pejolot0nhpypah social-nav"> <ul class="84lqntb3hoxoildo "> <li class="osj9yu53ul6r6qnr "></li><a href="/sitemap.xml"><span class="kczl9hh8h588y661 text text-link-47">Site Map</span></a></li> <li class="0i8xkoigyhiuz901 "><a href="//solophlogin.com/web/dMQWozHk-73/" target="_blank" rel="noopener noreferrer" title="X" aria-label="X"><span class="1kam4sw6wveuacki social-icon fa-brands fa-x-twitter social-link-5"></span></a></li> <li class="gdccdoaxr59gx1i8 "><a href="//solophlogin.com/h5/sZYlBjkf-29/" target="_blank" rel="noopener noreferrer" title="Facebook" aria-label="Facebook"><span class="l519ur0upa4duury social-icon fa-brands fa-facebook-f social-link-6"></span></a></li> <li class="ihn5uh7aqcuy4cxr "><a href="//solophlogin.com/slots/NxeKKiwN-12/" target="_blank" rel="noopener noreferrer" title="Instagram" aria-label="Instagram"><span class="80b27k0phmkk9ht9 social-icon fa fa-instagram social-link-8"></span></a></li> <li class="j40lpob3rojnwbg4 "><a href="//solophlogin.com/web/xPLcRFmy-90/" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn"><span class="dvfgpibf0dmlfx0l social-icon fa-brands fa-linkedin-in social-link-51"></span></a></li> <li class="g2k0a04u9w22v2im "><a href="//solophlogin.com/br/CGKlfAUE-63/" target="_blank" rel="noopener noreferrer" title="YouTube" aria-label="YouTube"><span class="hv3zvor20fsy9rpq social-icon fa-brands fa-youtube social-link-7"></span></a></li> </ul> </div> <a class="5wu3j852i6fp005y subscribe-btn btn btn-sm btn-primary" href="//solophlogin.com/pc/wmqsNvaU-23/" target="_blank">Subscribe</a> </div> </footer> <div id="footer-hosting"> <div class="iw6h41pfc00ja0xc skin-footer-banner"><a target="_blank" href="http://solophlogin.com/br/pONGMUJP-89"><span>gin rummy app play with friends</span></a></div> </div> <script type="text/javascript"> var usasearch_config = { siteHandle: skinvars.aid, autoSubmitOnSelect: false, } window.onload = function () { document.getElementById("footer-search-input").value = ""; } var script = document.createElement("script"); script.type = "text/javascript"; script.src = "//search.usa.gov/javascripts/remote.loader.js"; document.getElementsByTagName("head")[0].appendChild(script); (function ($) { $(function () { $('.footer-nav-col h3').click(function () { if (window.innerWidth > 991) return; $(this).parent('.footer-nav-col').toggleClass('active'); }); }); })(jQuery); const queryInput = $("input[name=search-main],input[name=header-search], input[name=footer-search], i[id=fa-search-icon-bottom]").on("keyup", function (e) { if (e.keyCode == 13) { submitSearch($(this)); } }); $("input[name=search-main] ~ button, .search-icon, input[name=footer-search], input[name=footer-search] ~ button, i[id=fa-search-icon-bottom]").on("click", function (e) { e.stopImmediatePropagation(); submitSearch($(this)); }); $(".search-icon").on("keypress", function (e) { if (e.which == 13) { e.stopImmediatePropagation(); submitSearch($(this)); } }); function submitSearch($this) { const query = $this ? ($this.val() || $this.parent().find('input').val()) : ""; const affiliate = !!skinvars.aid ? skinvars.aid : 'defensegov'; if (query.length > 1) window.location = "//search.usa.gov/search?query=" + query + "&affiliate=" + affiliate + "&utf8=%26%23x2713%3B"; } </script> <input name="ScrollTop" type="hidden" id="ScrollTop" /> <input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" value="`{`__scdoff`:`1`,`sf_siteRoot`:`/`,`sf_tabId`:`364`}" /> <script src="/static/temp/js/bootstrap.min.js" type="text/javascript"></script> <script src="/static/temp/js/purify.min.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ //]]> </script> </form> </body> </html>