Gossip & News

Jussie Smollett Alleged Attack: Everything We Know


master mentalism tricks

[]

In two years since Jussie Smollett told Chicago police that he was the victim of a homophobic and racist attack, there has been one shocking development after another. Investigators searched for the perpetrators of what was initially described as a “possible hate crime” before ultimately accusing the actor of staging his own assault.

The Empire star reported that he was attacked in the early hours of January 29, 2019. Days later, he spoke out for the first time since the incident, stating that he was “working with authorities and [has] been 100 percent factual and consistent on every level.” He also returned to work, performing a concert in West Hollywood before returning to the set of his Fox musical drama.

Smollett appeared on Good Morning America in February 2019, for his first interview about the alleged attack. He became emotional at one point, saying that he was “forever changed” and felt “pissed off” by both the incident itself and the skepticism swirling on social media.

A major development in the case came that same month, when police arrested two possible suspects, but they were released soon after without charges. Multiple reports later surfaced accusing the actor of staging the attack with the help of Abimbola “Bola” Osundairo and Olabinjo “Ola” Osundairo, which he repeatedly and vehemently denied.

{ let bidders = [‘a9’, ‘ix’, ‘iris’]; // create a requestManager to keep track of bidder state to determine when to send ad server // request and what amazonSlots to request from the ad server var requestManager = { adserverRequestSent: false, }; //loop through bidder array and add the bidders to the request manager: bidders.forEach( function( bidder ) { requestManager[bidder] = false; } ); // return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map( function( bidder ) { return requestManager[bidder]; } ) // get rid of false values – indicates that the bidder has responded .filter( Boolean ) // if length is equal to bidders, all bidders are back .length === bidders.length; return allBiddersBack; } // handler for header bidder responses function headerBidderBack( bidder ) { // return early if request to adserver is already sent if ( requestManager.adserverRequestSent === true ) { return; } // flip bidder back flag if ( bidder === ‘a9’ ) { requestManager.a9 = true; console.log(‘second promise a9 ready’); } else if ( bidder === ‘ix’ ) { requestManager.ix = true; console.log(‘second promise ix ready’); } else if ( bidder === ‘iris’ ) { requestManager.iris = true; console.log(‘second promise iris ready’); } // if all bidders are back, send the request to the ad server if ( allBiddersBack() ) { resolve( url ); } } if ( typeof apstag == ‘object’ && apstag ) { apstag.fetchBids({ slots: [{ slotID: window.prerollTag[vHash], mediaType: ‘video’ }] }, function( bids ) { console.log( “AMI jwp amazon bid callback”, new Date().getTime(), bids ); window.jwpBids[vHash].amazon = true; if ( bids.length > 0 ) { //If we have received any bids back try { console.log(“AMI jwp amazon bid request ad”, bids[0].encodedQsParams); url = url + ‘&scp=’ + bids[0].encodedQsParams; } catch ( e ) { console.log(e); } } else { console.log(“AMI jwp amazon no bids”); } headerBidderBack(‘a9’); }); } else { headerBidderBack(‘a9’); } headertag.cmd.push( function() { headertag.retrieveVideoDemand( [{‘htSlotName’: ‘preroll’}], function( demand ) { console.log( “AMI jwp IX callback”, demand ); if ( ‘undefined’ !== typeof demand.preroll && demand.preroll.length ){ window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price; console.log( ‘AMI jwp IX Bids’, new Date().getTime(), demand.preroll[0].targeting ); var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } var keys = Object.keys( demand.preroll[0].targeting.price ); for ( var key of keys ) { custParams.set( key, demand.preroll[0].targeting.price[key][0]); } vastParams.set( ‘cust_params’, custParams.toString() ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘ix’); } ); } ); // Get main item context data window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) { // Encode the context data console.log( ‘AMI jwp IrisTV Bids’, new Date().getTime(), data.context ); // Replace the server url with the context data (this is for simple ad requests), // If you have the serverUrl dynamically configured, then you will need to append the context data // under cust_params, so this is just for testing purpose if ( data.context && Object.keys( data.context ).length ) { var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } custParams.set( ‘iris_context’, data.context.join(‘,’)); vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘iris’); }); setTimeout(function(){ resolve( url ); }, 10000); }); } var player_jwplayer_VAGkYxQ3_zhNYySv2_div = jwplayer(el).setup(videoParams).on(“ready”, function(){ var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var playerInstance = jwplayer(el); ns_.StreamingAnalytics.JWPlayer( playerInstance, { publisherId: “6036076”, labelmapping: “ns_st_pu=”AMI”, c3=”Us Weekly”, ns_st_ge=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ia=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ce=”” + decodeURIComponent( “1” ) + “”, ns_st_ddt=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_tdt=”” + decodeURIComponent( “%2Anull” ) + “””, }); }).on(‘adsManager’, (e) => { var vHash = ‘ami’ + decodeURIComponent( ‘VAGkYxQ3’ ); const { adsManager, videoElement } = e; const iasConfig = { anId: ‘928572’, campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded chanId: window.prerollTag[vHash], placementId: ‘Open Auction’, pubOrder: ‘Video’, pubId: ‘Direct’ }; if (googleImaVansAdapter) { googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig); } }).on( ‘time’, function( e ) { var id = this.id; var pct = Math.round( e.position ); if ( ! window.amiPlayersData ) { window.amiPlayersData = {}; } if ( ! window.amiPlayersData[id] ) { window.amiPlayersData[id] = { m3: false, m10: false }; } if ( window.amiPlayersData[id][‘m3’] === false && pct >= 3 ) { window.amiPlayersData[id][‘m3’] = true; console.log( ‘3sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ‘3s played’} ); } if ( window.amiPlayersData[id][‘m10’] === false && pct >= 10 ) { window.amiPlayersData[id][‘m10’] = true; console.log( ’10sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ’10s played’} ); } }).on( ‘complete’, function( e ) { if ( window.amiPlayersData && window.amiPlayersData[ this.id ] ) { window.amiPlayersData[ this.id ][‘m3’] = false; window.amiPlayersData[ this.id ][‘m10’] = false; console.log( ‘clear played: ‘, this.id ); } }).once(“play”, function(){ var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var playerInstance = jwplayer(el); loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins[“https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js”]) }).on(‘play’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language:”English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video play”); }).on(‘complete’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoComplete”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video event:”, e); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; }).on(‘time’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.currentTime/e.duration).toFixed(2); if ( (0.25 === progress && false === window.lock_25) || (0.5 === progress && false === window.lock_50) || (0.75 === progress && false === window.lock_75) || (100 === progress && false === window.lock_100) ) { window.permutive.track(“VideoProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 === progress ) { window.lock_25 = true; } if ( 0.5 === progress ) { window.lock_50 = true; } if ( 0.75 === progress ) { window.lock_75 = true; } if ( 1 === progress ) { window.lock_100 = true; } console.log(“Permutive video play progress ” + progress); } }).on(‘mute’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.mute) ? “sound off” : “sound on”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘fullscreen’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.fullscreen) ? “fullscreen on” : “fullscreen off”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘ready’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); console.log(jwInfo); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; window.permutive.track(“VideoLoad”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video load event”); }).on(‘adPlay’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); window.adInfo = e; var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.adlock_25 = false; window.adlock_50 = false; window.adlock_75 = false; window.adlock_100 = false; window.permutive.track(“VideoAdPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad play”); }).on(‘adClick’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoAdClick”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad click”); }).on(‘adTime’, (e) => { var el = decodeURIComponent( “jwplayer_VAGkYxQ3_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “VAGkYxQ3” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.position/e.duration).toFixed(2); if ( (0.25 >= progress && false === window.adlock_25) || (0.5 >= progress && false === window.adlock_50) || (0.75 >= progress && false === window.adlock_75) || (0.95 >= progress && false === window.adlock_100) ) { window.permutive.track(“VideoAdProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “VAGkYxQ3” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 >= progress ) { window.adlock_25 = true; } if ( 0.5 >= progress ) { window.adlock_50 = true; } if ( 0.75 >= progress ) { window.adlock_75 = true; } if ( 0.95 >= progress ) { window.adlock_100 = true; } console.log(“Permutive video ad progress ” + progress); } }).setPlaylistItemCallback(function(item, index) { return waitForAmazon // Wait until Amazon is loaded. .then(() => performAsyncBidding( player_jwplayer_VAGkYxQ3_zhNYySv2_div, item, index ), () => { console.log(“AMI JWP bidding FAILER”); }) // External bidding. .then(tag => { // Update the playlist item. console.log(“AMI jwp new headerbid”, tag); return Object.assign({}, item, { adschedule: [{ tag, offset: “pre” }] }); }).catch(function(e){ console.log(“AMI jwp bidding failed”, e); return item; }); // If bidding fails, use unmodified playlist item. });; clearInterval(checkJWReady); } }, 500); })(); ]]>

However, in February 2019, he was charged with felony disorderly conduct for making a false police report. The next morning, he was arrested. He was subsequently charged with 16 felony counts.

In another shocking reversal, Smollett’s attorneys announced in March 2019, that Cook County prosecutors dropped all charges against him and “his record has been wiped clean.”

“After reviewing all of the facts and circumstances of the case, including Mr. Smollett’s volunteer service in the community and agreement to forfeit his bond to the City of Chicago, we believe this outcome is a just disposition and appropriate resolution to this case,” the Cook County State’s Attorney’s Office said in a statement at the time.

However, nearly a year later, in February 2020, a special prosecutor Dan Webb indicted Smollett again, renewing the divisive case. The indictment against Smollett stated that he “knew at the time” that there was no crime when he reported to the police that he had been assaulted.

In December 2021, Smollett took the stand where he explained that the attack was “no hoax.”

“My character was a superstar, a pop star, a beloved GQ whatever,” he told the jury, according to the Tribune. “It was very important that I looked like Black Cary Grant, not beat down.”

Smollett was found guilty of five felony counts of disorderly conduct in December 2021.

Scroll down for a comprehensive timeline to stay up-to-date on everything we know about the story so far:

Read The Full Article Here


trick photography
Jersey Shores Vinny Guadagnino Reacts to Best Friend DJ Pauly Ds Engagement: Not OK
Jersey Shores Vinny Guadagnino Reacts to Best Friend DJ Pauly Ds Engagement: Not OK
Theranos Founder Elizabeth Holmes Faces Backlash for Health and Safety Post After Blood Testing Fraud
Theranos Founder Elizabeth Holmes Faces Backlash for Health and Safety Post After Blood Testing Fraud
Prince Harry Reveals Meghan Markles Reaction After He Landed Safely After Skydiving in Canada
Prince Harry Reveals Meghan Markles Reaction After He Landed Safely After Skydiving in Canada
44 Open Secrets In Hollywood That Prove Its Not As Glamorous As It Seems
44 Open Secrets In Hollywood That Prove Its Not As Glamorous As It Seems
Emmy Rossum Says Shameless Nude Scenes Created an Unexpected Dating Problem
Emmy Rossum Says Shameless Nude Scenes Created an Unexpected Dating Problem
Her Private Hell review – a phantasmagoria bathed in neon
Her Private Hell review – a phantasmagoria bathed in neon
Why Theres No Lioness Season 3 Episode 9 Tonight From Taylor Sheridan
Why Theres No Lioness Season 3 Episode 9 Tonight From Taylor Sheridan
Nicolas Winding Refn: Id been given a gift to start over again
Nicolas Winding Refn: Id been given a gift to start over again
What To Watch Monday: All American Ends, Futurama Season 14 Wraps, And More – TVLine
What To Watch Monday: All American Ends, Futurama Season 14 Wraps, And More – TVLine
Rivals Season 2 Boss Teases More Rupert & Taggie Angst in Part 2
Rivals Season 2 Boss Teases More Rupert & Taggie Angst in Part 2
A Night Court Star Won Four Emmys — Then Asked Not To Be Nominated Again – TVLine
A Night Court Star Won Four Emmys — Then Asked Not To Be Nominated Again – TVLine
Bridgerton: Will Francesca & Michaela Get Married? My Season 5 Theory
Bridgerton: Will Francesca & Michaela Get Married? My Season 5 Theory
Lana Del Rey Celebrates Second Wedding Anniversary With Jeremy Dufrene
Lana Del Rey Celebrates Second Wedding Anniversary With Jeremy Dufrene
Jason Newsted Remembers Cliff Burton 40 Years After Metallica Bassists Passing
Jason Newsted Remembers Cliff Burton 40 Years After Metallica Bassists Passing
Chuck Varga, GWAR Founding Member, Dies at 68 After Cancer Battle
Chuck Varga, GWAR Founding Member, Dies at 68 After Cancer Battle
Drummer Abe Laboriel Jr. Joins Pearl Jam at Ohana Festival
Drummer Abe Laboriel Jr. Joins Pearl Jam at Ohana Festival
Irresistible Attraction and Unexpected Love: Romance Novels For You – NewInBooks
Irresistible Attraction and Unexpected Love: Romance Novels For You – NewInBooks
The Buzziest Books of September | 2026 – NewInBooks
The Buzziest Books of September | 2026 – NewInBooks
Epic Worlds and Distant Stars: Fantasy & Sci-Fi Picks For You – NewInBooks
Epic Worlds and Distant Stars: Fantasy & Sci-Fi Picks For You – NewInBooks
Business Books for Leaders Ready to Level Up – NewInBooks
Business Books for Leaders Ready to Level Up – NewInBooks
Minimalism Is Alive and Well: 30 Exquisitely Chic Autumn Buys From COS, Zara and Massimo Dutti
Minimalism Is Alive and Well: 30 Exquisitely Chic Autumn Buys From COS, Zara and Massimo Dutti
I Think Ive Just Discovered the Best Everyday Mascara for Short Lashes
I Think Ive Just Discovered the Best Everyday Mascara for Short Lashes
6 Nail Brighteners That Leave Natural Nails Looking Healthier Than Ever
6 Nail Brighteners That Leave Natural Nails Looking Healthier Than Ever
I Cant Stop Wearing Indigo Jeans—These Are the Shoes Id Pair With Them
I Cant Stop Wearing Indigo Jeans—These Are the Shoes Id Pair With Them
Hope Digital Release Arrives October 13 From NEON
Hope Digital Release Arrives October 13 From NEON
Evil Dead Burn HBO Max Date Set, With an HBO Triple Bill
Evil Dead Burn HBO Max Date Set, With an HBO Triple Bill
Yaga Trailer Scores Baba Yaga to Season of the Witch
Yaga Trailer Scores Baba Yaga to Season of the Witch
Hollow: Belmont Cameli Joins Sydney Sweeney as Brom Bones
Hollow: Belmont Cameli Joins Sydney Sweeney as Brom Bones