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.

PopPowhat is a gambling affiliatep 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="87w2u1ez56573hns related ntext"> <div class="2ij4a61ybtrd9olb item"> <span class="c8a3jx84h73nw8xd subtitle">Spotlight:</span> <a class="hofef930dzz91fh4 article-link" href="//sayaphlogin.com/app/AUVwqqMw-87/">procter and gamble operations</a> </div> <div class="a40vze8wrt0nn07e item"> <span class="f9rc5s5zou05kp5b subtitle">Spotlight:</span> <a class="dhb5ymu0tekl9lkp article-link" href="//sayaphlogin.com/jogo/eJuQueBm-63/">real roulette gambling online</a> </div> <div class="nzqnvvfr93e352q1 item"> <span class="l1240e7xqzf21ltd subtitle">Spotlight:</span> <a class="f5w99emqi5wv3r8v article-link" href="//sayaphlogin.com/h5/gCqeIRYk-85/">the procter & gamble company linkedin</a> </div> <div class="rxnjplurlisq3bon item"> <span class="07jdz5hfans5wbm4 subtitle">Spotlight:</span> <a class="jlgubeolxnr9tu5s article-link" href="//sayaphlogin.com/game/jbPmMQEH-61/">best gambling sites india</a> </div> <div class="yntgr3acc5hmn49z item"> <span class="dk3sn0q85h3ufqn2 subtitle">Link:</span> <a class="mgpj2rwyp8tn1i4v article-link" href="//sayaphlogin.com/game/IXMeBfvK-47/" target="_blank" rel="noopener">casino game slot machines free</a> </div> </div> </div> <div class="ngnub84ezx4iqmca tags"> <a href='//sayaphlogin.com/blogs/xBBPNlTS-27/'>gambling bookie</a> <a href='//sayaphlogin.com/bet/PuDCwJvI-43/'>gambling capital of the world</a> <a href='//sayaphlogin.com/web/UIJkqFof-25/'>sports gambling legal states</a> <a href='//sayaphlogin.com/game/eskLeYWH-82/'>gambling spanish</a> <a href='//sayaphlogin.com/bet/MooEfOTM-56/'>procter & gamble hygiene & health care ltd</a> <a href='//sayaphlogin.com/blogs/fQTZvVjV-50/'>casino gambling games names</a> <a href='//sayaphlogin.com/app/zNlKyUzE-56/'>gambling bitcoin free</a> <a href='//sayaphlogin.com/wap/iXNXXIQB-49/'>financial discipline and gambling</a> <a href='//sayaphlogin.com/products/hylYamJv-61/'>gambling games using months</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="mqji0nkhev8a9nl5 content-wrap"> <div id="dnn_ContentPane"> <div class="d0zq7thmjz6k53ye DnnModule DnnModule-DNN_HTML DnnModule-2787"><a name="2787"></a> <div class="64q60vnx28y32cxn 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="wk4fxbet0ossweqd DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr2787_HtmlModule_lblContent" class="n38wrnwngeuz6zyg 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="mfnbc96s5nwx6coq subscribe"> <article> <h3>Subscribe to Defense.gov Products</h3> <div class="k7590flu3oum76oe dgov-grid"> <div class="c5cg5r6s69mftbd7 dgov-col-sm-7 dgov-col-xs-12"> <p>Choose which Defense.gov products you want delivered to your inbox.</p> </div> <div class="9j3uni6zy11uqols dgov-col-sm-5 dgov-col-xs-12"><a class="ism01l3proc0sdqi btn btn-primary" href="//sayaphlogin.com/blogs/wewqxVnQ-52/">Subscribe </a></div> </div> </article> </div> </div> </div><!-- End_Module_2787 --> </div> </div> <!--end of empty container --> </div> <div class="d8g63jjyin7egyfz DnnModule DnnModule-ArticleCSDashboard DnnModule-670"><a name="670"></a> <div class="361nq39v8wa05q16 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="ul62kpvvfud4062e tab-title"><span>Related Stories</span></h2> <div id="dnn_ctr670_ModuleContent" class="v9vltl9sazn6zfxc DNNModuleContent ModArticleCSDashboardC"> <div id="dnn_ctr670_Dashboard_ph"> <div id="storyListing-670"> <div id="alist-suggest" class="an2bqmkruykbuolt alist stories external-news-list"> <div class="lfwf2s8rsmzyu1ba spinner3" style="display: none;"> <div class="me92wna5o5j4kw5h bounce1"></div> <div class="s4uaudlbjx7pvgyu bounce2"></div> <div class="17rohz8juv1gis2s bounce3"></div> </div> <div class="ci2gc8bc4hj9rss7 alist-inner alist-more-here"> <div class="gmq5rp9ov3qielmn feature-template"> <div class="jaujggutdtk7thrm feature-template-container"> <div class="v02gpql42fgu25f9 dgov-grid"> <div class="0dqlruo8pg3uffxt dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="aixiqfze9xxbwl6d listing-with-preview item explore-item"> <figure> <div class="ugfi3oy1p628ma75 dgov-grid dgov-grid-bleed"> <div class="gyjpupvz58tgmcx9 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="6tr55uvdcgiv69fn image-wrap"> <!----> <div class="f4g8qqgnv3hk499z image-wrap-wrap"> <div class="wmfgtj5bbcwytxf6 image-replacement" style="background-image: url(/images/blyoz.jpg);"></div> <img alt="" src="/images/omxux.jpg"> </div> </div> </div> <div class="8dkf944mswr008sp dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="eutxdztvhnr0kmkq category"><a href="//sayaphlogin.com/game/bxLcXnEx-81/" class="d68muefrwrwzu2ga content-type-text feature"><span>NEWS</span></a> <span class="yvtice4f1his2btn item-date-time"><span class="1vkc12qdvg7a3ijn separator">|</span> <time data-dateago="2024-12-05 07:56:03" data-dateap="{日期}">2024-12-05 07:56:03</time></span></span> <h3 class="mpngltleiqzy6paq title"><span>ber of foreign visits increases</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/pc/ZeWwgOhS-29/" class="3nugsc4o1q1xkmq1 link-overlay"><span class="g7ubfkux0fslbn4m sr-only">nnel</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="vz0gwd0429558sku dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="g1r7a3bccp6jbo4c listing-with-preview item explore-item"> <figure> <div class="redqkm0hbfmjjh7l dgov-grid dgov-grid-bleed"> <div class="l6zmyvl6dpq5wq3x dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="hqxe3cxxe61yoshz image-wrap"> <!----> <div class="sbhm6hs19qo06s6e image-wrap-wrap"> <div class="uv07f7348jb6nya3 image-replacement" style="background-image: url(/images/dvkpv.jpg);"></div> <img alt="" src="/images/eutowlxw.png"> </div> </div> </div> <div class="mgbomgx6ze2q57s1 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="7momq6bdia00qnq9 category"><a href="//sayaphlogin.com/online/nwQMWJxa-29/" class="v43ymzmll41s1u0a content-type-text feature"><span>NEWS</span></a> <span class="scxqvhmb8jdse7l8 item-date-time"><span class="dow2sbix1tis2gfr separator">|</span> <time data-dateago="2024-12-05 07:56:03" data-dateap="{日期}">2024-12-05 07:56:03</time></span></span> <h3 class="ddxj2w6rr3yd0cjz title"><span>Chi</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/slots/RYSRAQXE-61/" class="ghuej2wl7phnst4r link-overlay"><span class="5tpog0a8pkr3jivp sr-only">China repatr</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="ixqmrqdze9lv5ikz dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="i58qaapntd6unlar listing-with-preview item explore-item"> <figure> <div class="dtmojnekwkvi85xg dgov-grid dgov-grid-bleed"> <div class="h1tfvjnnz75npq9l dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="ias8ltj4468a2dq3 image-wrap"> <!----> <div class="k4kxhl44dgjw7lsf image-wrap-wrap"> <div class="d4e78k85t6spx9rw image-replacement" style="background-image: url(/images/new_resized_image_190x120.png);"></div> <img alt="" src="/images/jjbeuaao.jpg"> </div> </div> </div> <div class="5qie1qv9acr4olo0 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="hmupv4brwatn6t6p category"><a href="//sayaphlogin.com/jogo/GRMwDBct-65/" class="xm1qcn5fwkay0s9h content-type-text feature"><span>NEWS</span></a> <span class="0rtu5ubyk5bszoac item-date-time"><span class="t3mx2gqid3jqy23m separator">|</span> <time data-dateago="2024-12-05 07:56:03" data-dateap="{日期}">2024-12-05 07:56:03</time></span></span> <h3 class="ssdojo0rbl625k2d title"><span>Supr</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/wap/bKrqmwtC-65/" class="g8b9o2pe00bo7hig link-overlay"><span class="a3tgjtdc5vsm7mao sr-only">nnel</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="q6t7hzlpdokohehz dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="z2xe2evy993xfctp listing-with-preview item explore-item"> <figure> <div class="0eenmadw2kvaotbz dgov-grid dgov-grid-bleed"> <div class="raevuvq4720eelzb dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="fsruu23qqjzce8lr image-wrap"> <!----> <div class="gw17a2dflkdh1pbe image-wrap-wrap"> <div class="ul0q2pashujvlrwn image-replacement" style="background-image: url(/images/fhkph.jpg);"></div> <img alt="" src="/images/awtax.jpg"> </div> </div> </div> <div class="x4ak6few2e1v7c4n dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="30eoyuvsyfbvdmf4 category"><a href="//sayaphlogin.com/br/zBGpfmkv-88/" class="01duq103k5kz9vi5 content-type-text feature"><span>NEWS</span></a> <span class="dh6vf60jtln4c1gv item-date-time"><span class="q0cyd622ugf5j46d separator">|</span> <time data-dateago="2024-12-05 07:56:03" data-dateap="{日期}">2024-12-05 07:56:03</time></span></span> <h3 class="b21mr9lptusxl29b title"><span>eme People's Court sentences fou</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/h5/ChkjrdLD-99/" class="dynq96y6lp03o8b8 link-overlay"><span class="jg7jsmjzarvdpkot sr-only">chemical plant kills two, injur</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> </div> </div> <!----> <div class="gwm85tk4adng06ra bottom-target"></div> </div> </div> <br> <br> <div class="opetddpli9qi9pcs pager"><button class="qvy10k8ihlhxe91l alist-more-button btn btn-primary btn-primary-ghost" style="display: none;"> Load More </button> <div class="n114rr3of3irgcmy number-pager"> <div class="w269tuarlppg1btq hidden-xs"></div> <div class="n0p0hnom0peziihm 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="1u97x94vz4f5ayt2 feature-template"> <div :class="d0el4ijjbowke7sm 'feature-template-container' + (removeGrid ? '' : ' dgov-grid dgov-grid-full')"> <slot></slot> </div> <div class="dg62a596u0xgkx2d more-row" v-if="thereAreMoreToView()"> <a class="qexgxg9i715x8vax btn btn-default btn btn-insidedod btn-insidedod-ghost" v-on:click="viewMore" :title="moreText">Load More</a> </div> <div class="be2ch3oahz1jp06a 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="yvkk0dmqq4h7g7hx listing-with-preview item explore-item"> <figure> <div class="4xl6zv4cra6n3c6h dgov-grid dgov-grid-bleed"> <template v-if="pageNumber == 1 || alwaysShowImages"> <div :class="i6bs6fvc8w3azohb imageContainerClasses"> <div class="a8vxyt6gzk5lhrcy image-wrap" v-bind:class="lgjsjd3kcsu4aqe9 {'video-wrap-container no-pointer-events': isVideo}"> <template v-if="isVideo"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-default.png" class="jaytnt3o8dsrawdl defaultVideoOverlay a-video-button"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-hover.png" class="wfodrre13xehmomy hoverVideoOverlay a-video-button"> </template> <div class="m0u95fd6g0smb23o image-wrap-wrap"> <div class="giayezvc0t0tpnyj image-replacement" :style="'background-image: url('+ imageUrl +')'"></div> <img alt="" :src="imageUrl"> </div> </div> </div> </template> <div :class="jt19jatwl2g19gn9 contentContainerClasses"> <figcaption :style="pageNumber > 1 && !alwaysShowImages ? 'margin-left: 0 !important' : ''"> <span class="h353zd18iuz16uro category"> <template v-if="isInDashboard"> <template v-if="contentTypeVal === '987'"> <a class="7ry20pwm9d6llytp content-type-text live" href="/Live"> <img class="wvy3mm4jrjru6871 live-icon" src="/Portals/1/Images/icons/blue/dgov-live-now.svg" /> <span>Live</span> </a> </template> <template v-else> <a :class="k7xzhx3srvdn9rmz '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="cdvvsmm6iwdiso4f 'service-source service-'+categoryName">{{category}}</span> </template> <template v-else> <a class="9gf8m11tjy9zu1vp content-type-text" :href="categoryLineOverride ? termUrl: prettyContentTypeUrl"> <span>{{categoryLineOverride ? categoryLineOverride : prettyContentTypeName}}</span> </a> </template> </template> <template v-if="shouldShowDate"> <span class="8erfr34ahp9955ui item-date-time"> <span class="m2fedgvvi88tssh0 separator">|</span> <time :data-dateago="publishDateJss" :data-dateap="publishDateAp"> {{publishDateAp}} </time> </span> </template> </span> <h3 class="jjmqcgwpylwbd44f title"> <span v-html="articleTitle"></span> <card-edit-span :isEditMode="canEdit" :editUrl="editUrl" :imageUrl="editImage"></card-edit-span> </h3> <p v-if="!hideSummary" class="j62uu3jpgh20i1pd summary hidden-xs hidden-xxs" v-html="articleSummary"></p> </figcaption> </div> <a class="vimsjt7bc9odxx4u link-overlay" :href="articleUrlOrLink" :target="linkTarget" :rel="linkRel"> <span class="2mmujqavu59shcuv 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="yn5hgtmh28ot5s6w 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="mfizsdq48ns2iydp DNNEmptyPane"></div> <div id="content-pane-wrap2"> <div class="ue3lsgzf1zk68r70 content-wrap"> <div id="dnn_ContentPane2" class="php2xrcjmnuwxqds DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed3" class="feb194wiovzk7pz8 DNNEmptyPane"></div> <div id="content-pane-wrap3"> <div class="zr557n8ojvqnq6sz content-wrap"> <div id="dnn_ContentPane3" class="xr7qt5dsn4sddzyi DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed4" class="cq1du05karcsidck DNNEmptyPane"></div> <div id="content-pane-wrap4"> <div class="lvrut2l8cctqyfqe content-wrap"> <div id="dnn_ContentPane4" class="rudugeh21346vyrn DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed5" class="f5m69f5pgpqidvvk DNNEmptyPane"></div> <div id="content-pane-wrap5"> <div class="qcz9wlcvadi0dfzm content-wrap"> <div id="dnn_ContentPane5" class="cf6ofy5wdtbtbv7d DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed6" class="lqip0dsd0v43mj9y DNNEmptyPane"></div> <div id="content-pane-wrap6"> <div class="xn44ajwukytgnddt content-wrap"> <div id="dnn_ContentPane6" class="j1h2gtefh0rsl3gj DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed7" class="fuh275gtzsguhtl6 DNNEmptyPane"></div> <div id="content-pane-wrap7"> <div class="hco60megrzee4txs content-wrap"> <div id="dnn_ContentPane7" class="50wztgu2s2pd94je DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed8" class="lxdrcegkr2bwixjd DNNEmptyPane"></div> <div id="content-pane-wrap8"> <div class="jk821wsnaonx39vn content-wrap"> <div id="dnn_ContentPane8" class="e13c26y8bf17mnt4 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed9" class="zbv46dytvm3g560t DNNEmptyPane"></div> <div id="content-pane-wrap9"> <div class="nr0brlw3bsnme7uz content-wrap"> <div id="dnn_ContentPane9" class="y94jdcgig6ebr4iz DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed10" class="s3lzy97dc4f7mzkw DNNEmptyPane"></div> <div id="content-pane-wrap10"> <div class="0u8umkxbja6znsnq content-wrap"> <div id="dnn_ContentPane10" class="x8uy6jbczf0i1n4i DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed11" class="fcwc304rkecz3k1z DNNEmptyPane"></div> <div id="content-pane-wrap11"> <div class="u0ld1d8ud4k6iv02 content-wrap"> <div id="dnn_ContentPane11" class="blefxs0sc179623x DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed12" class="z8kfw5ke0a4vi1c4 DNNEmptyPane"></div> <div id="content-pane-wrap12"> <div class="ehuc4ihz6rss7v38 content-wrap"> <div id="dnn_ContentPane12" class="0zwpqehows2606a2 DNNEmptyPane"></div> </div> </div> </main> <div id="footer"> <div class="jmu5cf57sth1urqr footer-inner content-wrap content-wrap-wide"> <div class="xw5edtzh173yjvui dgov-grid"> <div class="kdcp2ha77ejwhhwl dgov-col-auto"> <div class="2cow98zc4tx4fpq2 dgov-grid"> <div id="dnn_Footer_footerNavCol1" class="19hr0oz04rh4kyt9 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Defense.gov<i class="s9mu0okus8i3o966 fas fa-chevron-down"></i></h3> <ul class="duo0amy7khksidx4 footer-nav"> <li class="5rkqxseftu0vfv1a "><a href="//sayaphlogin.com/blogs/fReSgmYJ-60/"><span class="6hps0w48qpbgdse7 text text-link-18">Home</span></a></li> <li class="67ibnvaamid8vpz3 "><a href="//sayaphlogin.com/app/kSdguvDD-50/"><span class="hrsro8ejmfe1bycs text text-link-20">News</span></a></li> <li class="gltsyfp9qtfofxra "><a href="//sayaphlogin.com/h5/gJGbAcCA-85/"><span class="y6vyt9ebpkgcna5h text text-link-22">Spotlights</span></a></li> <li class="pw55890cskpoup24 "><a href="//sayaphlogin.com/win/ytAaAcTV-73/"><span class="g3q2pxf1dfiumpm3 text text-link-21">About</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol2" class="1n0p1fdiy72fk95x footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Helpful Links<i class="y3phmxb7vegpyw4u fas fa-chevron-down"></i></h3> <ul class="h44okeii8j7em5dp footer-nav"> <li class="151u3uf5a4e958jx "><a href="//sayaphlogin.com/game/kutyLozl-21/"><span class="4mriura2755u8ge3 text text-link-23">Live Events</span></a></li> <li class="uyq0kwhu63c8vfvs "><a href="//sayaphlogin.com/pc/UbUTGguG-40/"><span class="46plic2qtj375ylw text text-link-24">Today in DOD</span></a></li> <li class="604i8ixas4ym8tq3 "><a href="//sayaphlogin.com/m/kXKgcqrr-73/"><span class="0p11dx4qlj7ddo4y text text-link-25">Contracts</span></a></li> <li class="wz86dieatwn1kbqv "><a href="//sayaphlogin.com/jogo/lUFACtLG-44/"><span class="lxfb40wlhtb5xwdd text text-link-26">For the Media</span></a></li> <li class="8tv5oujn4aoml8ws "><a href="//sayaphlogin.com/win/ohSdZDkr-22/"><span class="ut4199ed3lw7u9sl text text-link-27">Contact</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol3" class="3r84uvnbkbsmzqgb footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Resources<i class="rkjcwo3txu6qjnwo fas fa-chevron-down"></i></h3> <ul class="x6tv9m25cbj2p8v5 footer-nav"> <li class="u2kwn0gk384w034a "><a href="//sayaphlogin.com/game/seaMeSZB-14/"><span class="dbmk7skutaekoc90 text text-link-28">DOD Resources</span></a></li> <li class="yk4rntcdw9gw8gu4 "><a href="//sayaphlogin.com/products/JZXQFQGb-60/" target="_blank" rel="noopener noreferrer"><span class="yv5xnxbitlv8p63b text text-link-53">DOD Careers</span></a></li> <li class="9uu4vrttqqbokrqq "><a href="//sayaphlogin.com/blogs/XYfiKncM-38/"><span class="jf9u8yaxe3d48kn3 text text-link-29">Help Center</span></a></li> <li class="fwmzj43834vkew9e "><a href="//sayaphlogin.com/bet/iSSrZiOo-57/"><span class="qg3qbo8eel6vmthp text text-link-30">DOD / Military Websites</span></a></li> <li class="ih5q19rk5hd5jtvj "><a href="//sayaphlogin.com/slots/MTTTfmaQ-10/" target="_blank" rel="noopener noreferrer"><span class="dvo2tko73za5eis5 text text-link-49">Agency Financial Report</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol4" class="btscayewgvrx6ioi footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Popular<i class="6r43ezhdfl5udxjw fas fa-chevron-down"></i></h3> <ul class="pp3zg9r6be1akrcz footer-nav"> <li class="t78d4mcqebwqpruh "><a href="//sayaphlogin.com/online/BOrsNUrp-44/"><span class="2910td4z1h87a5tl text text-link-33">Value of Service</span></a></li> <li class="89i1kzwvtlbdtn8q "><a href="//sayaphlogin.com/wap/OpwSJhAy-63/"><span class="2zp6cin3wfz3grn7 text text-link-36">Taking Care of Our People</span></a></li> <li class="zxih95m15bar6w57 "><a href="//sayaphlogin.com/h5/GbgyvYbb-11/"><span class="qdxe90yozmii10k3 text text-link-34">FY 2025 Defense Budget</span></a></li> <li class="0o603b5sv1uy00d4 "><a href="//sayaphlogin.com/app/CkRcuXAB-56/"><span class="cc9sybaahtpsgj3u text text-link-54">National Defense Strategy</span></a></li> </ul> </div> </div> </div> <div class="jojtqyzgnw6qa8y4 right-col dgov-col-md-12 dgov-col-lg-4"> <div class="ahme84scugruep8p right-col-inner"> <div class="cz33dbv9nafy9p8d mission"> <img class="dmkaflca1um14yie 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="iaqlc9r85she7ug9 footer-search-wrap"> <label class="7hxxg3ukd761d3vi sr-only" for="footer-search-input">Enter Your Search Terms</label> <i class="ayvf2o3ntq7zdwdl 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="jdspw290via886e6 utility-nav"> <ul class="e75yqbni6d1vaj1l "> <li class="zop08hthdpxbhryw ">申请友情链接</li> </ul> </div> <div class="6rd9i87ftom9ym4k social-nav-subscribe-container"> <div class="lz5ruyusuh5qvwrt social-nav"> <ul class="0nltv3i7fwr7700z "> <li class="ub7lej2r3c9qys6s "></li><a href="/sitemap.xml"><span class="i0b0zge2ft2vf2jm text text-link-47">Site Map</span></a></li> <li class="o0ls7lmdjexxnkcc "><a href="//sayaphlogin.com/br/DPgJISOp-29/" target="_blank" rel="noopener noreferrer" title="X" aria-label="X"><span class="etk3yq3gvxvahv07 social-icon fa-brands fa-x-twitter social-link-5"></span></a></li> <li class="b0mkw3y2c2czv7wu "><a href="//sayaphlogin.com/h5/TnSSgqbV-61/" target="_blank" rel="noopener noreferrer" title="Facebook" aria-label="Facebook"><span class="r5bpl0km1q1sbim0 social-icon fa-brands fa-facebook-f social-link-6"></span></a></li> <li class="l7drtybskemhucpb "><a href="//sayaphlogin.com/bet/WYOkQFwY-47/" target="_blank" rel="noopener noreferrer" title="Instagram" aria-label="Instagram"><span class="px8dd9kjbx901r0s social-icon fa fa-instagram social-link-8"></span></a></li> <li class="f4896k797wwka1b1 "><a href="//sayaphlogin.com/br/aUOcnciZ-99/" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn"><span class="dugpfhfljr841o7e social-icon fa-brands fa-linkedin-in social-link-51"></span></a></li> <li class="qbtfvuc4er08glls "><a href="//sayaphlogin.com/blogs/DQrNkseV-89/" target="_blank" rel="noopener noreferrer" title="YouTube" aria-label="YouTube"><span class="miht2zauczrggbfc social-icon fa-brands fa-youtube social-link-7"></span></a></li> </ul> </div> <a class="rua0qompeeyl1kmd subscribe-btn btn btn-sm btn-primary" href="//sayaphlogin.com/online/IpYmBMEI-17/" target="_blank">Subscribe</a> </div> </footer> <div id="footer-hosting"> <div class="imz9b1csncf9co93 skin-footer-banner"><a target="_blank" href="http://sayaphlogin.com/jogo/ptCPLYav-59"><span>casino game slot machines free</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>